unit schContactosClient_Intf;

interface

uses
  Classes, DB, SysUtils, uROClasses, uDADataTable;

const
  { Data table rules ids
       Feel free to change them to something more human readable
       but make sure they are unique in the context of your application }
  RID_Contactos = '{33C84E08-0A1A-480D-9DC3-C3018C06F3E3}';
  RID_GruposCliente = '{F2D5F27E-11A6-4CEB-918E-651645D76074}';
  RID_DatosBancarios = '{377DF153-0315-4294-8686-6440FE225046}';
  RID_ContactosCategorias = '{D216EFA9-F9B0-40EE-A0C7-1D815F11351F}';
  RID_Clientes = '{5A2D63F5-E326-4E67-A98F-636311835078}';
  RID_Proveedores = '{D57745E8-EE67-4D1E-8125-DBAED499CD2F}';
  RID_Agentes = '{A5CB0F33-2C45-4271-B171-D1791FD592CB}';
  RID_DireccionesContacto = '{1CB24F46-C07B-48D7-829E-8131FE5B2440}';
  RID_AgentesComisiones = '{941C0860-A1C4-4824-A0F1-B6DEB528B8C8}';
  RID_ClientesDescuentos = '{A55A7383-044D-4E5D-BF70-9D1346079782}';

  { Data table names }
  nme_Contactos = 'Contactos';
  nme_GruposCliente = 'GruposCliente';
  nme_DatosBancarios = 'DatosBancarios';
  nme_ContactosCategorias = 'ContactosCategorias';
  nme_Clientes = 'Clientes';
  nme_Proveedores = 'Proveedores';
  nme_Agentes = 'Agentes';
  nme_DireccionesContacto = 'DireccionesContacto';
  nme_AgentesComisiones = 'AgentesComisiones';
  nme_ClientesDescuentos = 'ClientesDescuentos';

  { Contactos fields }
  fld_ContactosID = 'ID';
  fld_ContactosID_CATEGORIA = 'ID_CATEGORIA';
  fld_ContactosNIF_CIF = 'NIF_CIF';
  fld_ContactosNOMBRE = 'NOMBRE';
  fld_ContactosCALLE = 'CALLE';
  fld_ContactosPOBLACION = 'POBLACION';
  fld_ContactosPROVINCIA = 'PROVINCIA';
  fld_ContactosCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_ContactosTELEFONO_1 = 'TELEFONO_1';
  fld_ContactosTELEFONO_2 = 'TELEFONO_2';
  fld_ContactosMOVIL_1 = 'MOVIL_1';
  fld_ContactosMOVIL_2 = 'MOVIL_2';
  fld_ContactosFAX = 'FAX';
  fld_ContactosEMAIL_1 = 'EMAIL_1';
  fld_ContactosEMAIL_2 = 'EMAIL_2';
  fld_ContactosPAGINA_WEB = 'PAGINA_WEB';
  fld_ContactosNOTAS = 'NOTAS';
  fld_ContactosFECHA_ALTA = 'FECHA_ALTA';
  fld_ContactosFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ContactosUSUARIO = 'USUARIO';
  fld_ContactosID_EMPRESA = 'ID_EMPRESA';
  fld_ContactosREFERENCIA = 'REFERENCIA';

  { Contactos field indexes }
  idx_ContactosID = 0;
  idx_ContactosID_CATEGORIA = 1;
  idx_ContactosNIF_CIF = 2;
  idx_ContactosNOMBRE = 3;
  idx_ContactosCALLE = 4;
  idx_ContactosPOBLACION = 5;
  idx_ContactosPROVINCIA = 6;
  idx_ContactosCODIGO_POSTAL = 7;
  idx_ContactosTELEFONO_1 = 8;
  idx_ContactosTELEFONO_2 = 9;
  idx_ContactosMOVIL_1 = 10;
  idx_ContactosMOVIL_2 = 11;
  idx_ContactosFAX = 12;
  idx_ContactosEMAIL_1 = 13;
  idx_ContactosEMAIL_2 = 14;
  idx_ContactosPAGINA_WEB = 15;
  idx_ContactosNOTAS = 16;
  idx_ContactosFECHA_ALTA = 17;
  idx_ContactosFECHA_MODIFICACION = 18;
  idx_ContactosUSUARIO = 19;
  idx_ContactosID_EMPRESA = 20;
  idx_ContactosREFERENCIA = 21;

  { GruposCliente fields }
  fld_GruposClienteDESCRIPCION = 'DESCRIPCION';

  { GruposCliente field indexes }
  idx_GruposClienteDESCRIPCION = 0;

  { DatosBancarios fields }
  fld_DatosBancariosID = 'ID';
  fld_DatosBancariosID_CONTACTO = 'ID_CONTACTO';
  fld_DatosBancariosTITULAR = 'TITULAR';
  fld_DatosBancariosENTIDAD = 'ENTIDAD';
  fld_DatosBancariosSUCURSAL = 'SUCURSAL';
  fld_DatosBancariosDC = 'DC';
  fld_DatosBancariosCUENTA = 'CUENTA';

  { DatosBancarios field indexes }
  idx_DatosBancariosID = 0;
  idx_DatosBancariosID_CONTACTO = 1;
  idx_DatosBancariosTITULAR = 2;
  idx_DatosBancariosENTIDAD = 3;
  idx_DatosBancariosSUCURSAL = 4;
  idx_DatosBancariosDC = 5;
  idx_DatosBancariosCUENTA = 6;

  { ContactosCategorias fields }
  fld_ContactosCategoriasID_CONTACTO = 'ID_CONTACTO';
  fld_ContactosCategoriasID_CATEGORIA = 'ID_CATEGORIA';

  { ContactosCategorias field indexes }
  idx_ContactosCategoriasID_CONTACTO = 0;
  idx_ContactosCategoriasID_CATEGORIA = 1;

  { Clientes fields }
  fld_ClientesID = 'ID';
  fld_ClientesID_CATEGORIA = 'ID_CATEGORIA';
  fld_ClientesNIF_CIF = 'NIF_CIF';
  fld_ClientesNOMBRE = 'NOMBRE';
  fld_ClientesCALLE = 'CALLE';
  fld_ClientesPOBLACION = 'POBLACION';
  fld_ClientesPROVINCIA = 'PROVINCIA';
  fld_ClientesCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_ClientesTELEFONO_1 = 'TELEFONO_1';
  fld_ClientesTELEFONO_2 = 'TELEFONO_2';
  fld_ClientesMOVIL_1 = 'MOVIL_1';
  fld_ClientesMOVIL_2 = 'MOVIL_2';
  fld_ClientesFAX = 'FAX';
  fld_ClientesEMAIL_1 = 'EMAIL_1';
  fld_ClientesEMAIL_2 = 'EMAIL_2';
  fld_ClientesPAGINA_WEB = 'PAGINA_WEB';
  fld_ClientesNOTAS = 'NOTAS';
  fld_ClientesFECHA_ALTA = 'FECHA_ALTA';
  fld_ClientesFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ClientesUSUARIO = 'USUARIO';
  fld_ClientesID_EMPRESA = 'ID_EMPRESA';
  fld_ClientesREFERENCIA = 'REFERENCIA';
  fld_ClientesID_AGENTE = 'ID_AGENTE';
  fld_ClientesGRUPO_CLIENTE = 'GRUPO_CLIENTE';
  fld_ClientesNOMBRE_COMERCIAL = 'NOMBRE_COMERCIAL';
  fld_ClientesVENCIMIENTO_FACTURAS = 'VENCIMIENTO_FACTURAS';
  fld_ClientesBLOQUEADO = 'BLOQUEADO';
  fld_ClientesMOTIVO_BLOQUEO = 'MOTIVO_BLOQUEO';
  fld_ClientesRECARGO_EQUIVALENCIA = 'RECARGO_EQUIVALENCIA';
  fld_ClientesREGIMEN_IVA = 'REGIMEN_IVA';
  fld_ClientesID_TIPO_IVA = 'ID_TIPO_IVA';
  fld_ClientesID_FORMA_PAGO = 'ID_FORMA_PAGO';
  fld_ClientesTIENDA_WEB = 'TIENDA_WEB';
  fld_ClientesAGENTE = 'AGENTE';

  { Clientes field indexes }
  idx_ClientesID = 0;
  idx_ClientesID_CATEGORIA = 1;
  idx_ClientesNIF_CIF = 2;
  idx_ClientesNOMBRE = 3;
  idx_ClientesCALLE = 4;
  idx_ClientesPOBLACION = 5;
  idx_ClientesPROVINCIA = 6;
  idx_ClientesCODIGO_POSTAL = 7;
  idx_ClientesTELEFONO_1 = 8;
  idx_ClientesTELEFONO_2 = 9;
  idx_ClientesMOVIL_1 = 10;
  idx_ClientesMOVIL_2 = 11;
  idx_ClientesFAX = 12;
  idx_ClientesEMAIL_1 = 13;
  idx_ClientesEMAIL_2 = 14;
  idx_ClientesPAGINA_WEB = 15;
  idx_ClientesNOTAS = 16;
  idx_ClientesFECHA_ALTA = 17;
  idx_ClientesFECHA_MODIFICACION = 18;
  idx_ClientesUSUARIO = 19;
  idx_ClientesID_EMPRESA = 20;
  idx_ClientesREFERENCIA = 21;
  idx_ClientesID_AGENTE = 22;
  idx_ClientesGRUPO_CLIENTE = 23;
  idx_ClientesNOMBRE_COMERCIAL = 24;
  idx_ClientesVENCIMIENTO_FACTURAS = 25;
  idx_ClientesBLOQUEADO = 26;
  idx_ClientesMOTIVO_BLOQUEO = 27;
  idx_ClientesRECARGO_EQUIVALENCIA = 28;
  idx_ClientesREGIMEN_IVA = 29;
  idx_ClientesID_TIPO_IVA = 30;
  idx_ClientesID_FORMA_PAGO = 31;
  idx_ClientesTIENDA_WEB = 32;
  idx_ClientesAGENTE = 33;

  { Proveedores fields }
  fld_ProveedoresID = 'ID';
  fld_ProveedoresID_CATEGORIA = 'ID_CATEGORIA';
  fld_ProveedoresNIF_CIF = 'NIF_CIF';
  fld_ProveedoresNOMBRE = 'NOMBRE';
  fld_ProveedoresCALLE = 'CALLE';
  fld_ProveedoresPOBLACION = 'POBLACION';
  fld_ProveedoresPROVINCIA = 'PROVINCIA';
  fld_ProveedoresCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_ProveedoresTELEFONO_1 = 'TELEFONO_1';
  fld_ProveedoresTELEFONO_2 = 'TELEFONO_2';
  fld_ProveedoresMOVIL_1 = 'MOVIL_1';
  fld_ProveedoresMOVIL_2 = 'MOVIL_2';
  fld_ProveedoresFAX = 'FAX';
  fld_ProveedoresEMAIL_1 = 'EMAIL_1';
  fld_ProveedoresEMAIL_2 = 'EMAIL_2';
  fld_ProveedoresPAGINA_WEB = 'PAGINA_WEB';
  fld_ProveedoresNOTAS = 'NOTAS';
  fld_ProveedoresFECHA_ALTA = 'FECHA_ALTA';
  fld_ProveedoresFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ProveedoresUSUARIO = 'USUARIO';
  fld_ProveedoresID_EMPRESA = 'ID_EMPRESA';
  fld_ProveedoresREGIMEN_IVA = 'REGIMEN_IVA';
  fld_ProveedoresDESCUENTO = 'DESCUENTO';
  fld_ProveedoresREFERENCIA = 'REFERENCIA';
  fld_ProveedoresID_TIPO_IVA = 'ID_TIPO_IVA';
  fld_ProveedoresID_FORMA_PAGO = 'ID_FORMA_PAGO';
  fld_ProveedoresTIENDA_WEB = 'TIENDA_WEB';

  { Proveedores field indexes }
  idx_ProveedoresID = 0;
  idx_ProveedoresID_CATEGORIA = 1;
  idx_ProveedoresNIF_CIF = 2;
  idx_ProveedoresNOMBRE = 3;
  idx_ProveedoresCALLE = 4;
  idx_ProveedoresPOBLACION = 5;
  idx_ProveedoresPROVINCIA = 6;
  idx_ProveedoresCODIGO_POSTAL = 7;
  idx_ProveedoresTELEFONO_1 = 8;
  idx_ProveedoresTELEFONO_2 = 9;
  idx_ProveedoresMOVIL_1 = 10;
  idx_ProveedoresMOVIL_2 = 11;
  idx_ProveedoresFAX = 12;
  idx_ProveedoresEMAIL_1 = 13;
  idx_ProveedoresEMAIL_2 = 14;
  idx_ProveedoresPAGINA_WEB = 15;
  idx_ProveedoresNOTAS = 16;
  idx_ProveedoresFECHA_ALTA = 17;
  idx_ProveedoresFECHA_MODIFICACION = 18;
  idx_ProveedoresUSUARIO = 19;
  idx_ProveedoresID_EMPRESA = 20;
  idx_ProveedoresREGIMEN_IVA = 21;
  idx_ProveedoresDESCUENTO = 22;
  idx_ProveedoresREFERENCIA = 23;
  idx_ProveedoresID_TIPO_IVA = 24;
  idx_ProveedoresID_FORMA_PAGO = 25;
  idx_ProveedoresTIENDA_WEB = 26;

  { Agentes fields }
  fld_AgentesID = 'ID';
  fld_AgentesID_CATEGORIA = 'ID_CATEGORIA';
  fld_AgentesNIF_CIF = 'NIF_CIF';
  fld_AgentesNOMBRE = 'NOMBRE';
  fld_AgentesCALLE = 'CALLE';
  fld_AgentesPOBLACION = 'POBLACION';
  fld_AgentesPROVINCIA = 'PROVINCIA';
  fld_AgentesCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_AgentesTELEFONO_1 = 'TELEFONO_1';
  fld_AgentesTELEFONO_2 = 'TELEFONO_2';
  fld_AgentesMOVIL_1 = 'MOVIL_1';
  fld_AgentesMOVIL_2 = 'MOVIL_2';
  fld_AgentesFAX = 'FAX';
  fld_AgentesEMAIL_1 = 'EMAIL_1';
  fld_AgentesEMAIL_2 = 'EMAIL_2';
  fld_AgentesPAGINA_WEB = 'PAGINA_WEB';
  fld_AgentesNOTAS = 'NOTAS';
  fld_AgentesFECHA_ALTA = 'FECHA_ALTA';
  fld_AgentesFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_AgentesUSUARIO = 'USUARIO';
  fld_AgentesID_EMPRESA = 'ID_EMPRESA';
  fld_AgentesREFERENCIA = 'REFERENCIA';

  { Agentes field indexes }
  idx_AgentesID = 0;
  idx_AgentesID_CATEGORIA = 1;
  idx_AgentesNIF_CIF = 2;
  idx_AgentesNOMBRE = 3;
  idx_AgentesCALLE = 4;
  idx_AgentesPOBLACION = 5;
  idx_AgentesPROVINCIA = 6;
  idx_AgentesCODIGO_POSTAL = 7;
  idx_AgentesTELEFONO_1 = 8;
  idx_AgentesTELEFONO_2 = 9;
  idx_AgentesMOVIL_1 = 10;
  idx_AgentesMOVIL_2 = 11;
  idx_AgentesFAX = 12;
  idx_AgentesEMAIL_1 = 13;
  idx_AgentesEMAIL_2 = 14;
  idx_AgentesPAGINA_WEB = 15;
  idx_AgentesNOTAS = 16;
  idx_AgentesFECHA_ALTA = 17;
  idx_AgentesFECHA_MODIFICACION = 18;
  idx_AgentesUSUARIO = 19;
  idx_AgentesID_EMPRESA = 20;
  idx_AgentesREFERENCIA = 21;

  { DireccionesContacto fields }
  fld_DireccionesContactoID = 'ID';
  fld_DireccionesContactoID_CONTACTO = 'ID_CONTACTO';
  fld_DireccionesContactoNOMBRE = 'NOMBRE';
  fld_DireccionesContactoCALLE = 'CALLE';
  fld_DireccionesContactoPOBLACION = 'POBLACION';
  fld_DireccionesContactoPROVINCIA = 'PROVINCIA';
  fld_DireccionesContactoCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_DireccionesContactoPERSONA_CONTACTO = 'PERSONA_CONTACTO';
  fld_DireccionesContactoTELEFONO = 'TELEFONO';
  fld_DireccionesContactoEMAIL = 'EMAIL';
  fld_DireccionesContactoNOTAS = 'NOTAS';
  fld_DireccionesContactoPORTE = 'PORTE';
  fld_DireccionesContactoFECHA_ALTA = 'FECHA_ALTA';
  fld_DireccionesContactoFECHA_MODIFICACION = 'FECHA_MODIFICACION';

  { DireccionesContacto field indexes }
  idx_DireccionesContactoID = 0;
  idx_DireccionesContactoID_CONTACTO = 1;
  idx_DireccionesContactoNOMBRE = 2;
  idx_DireccionesContactoCALLE = 3;
  idx_DireccionesContactoPOBLACION = 4;
  idx_DireccionesContactoPROVINCIA = 5;
  idx_DireccionesContactoCODIGO_POSTAL = 6;
  idx_DireccionesContactoPERSONA_CONTACTO = 7;
  idx_DireccionesContactoTELEFONO = 8;
  idx_DireccionesContactoEMAIL = 9;
  idx_DireccionesContactoNOTAS = 10;
  idx_DireccionesContactoPORTE = 11;
  idx_DireccionesContactoFECHA_ALTA = 12;
  idx_DireccionesContactoFECHA_MODIFICACION = 13;

  { AgentesComisiones fields }
  fld_AgentesComisionesID = 'ID';
  fld_AgentesComisionesID_AGENTE = 'ID_AGENTE';
  fld_AgentesComisionesID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_AgentesComisionesNOMBRE = 'NOMBRE';
  fld_AgentesComisionesCOMISION = 'COMISION';

  { AgentesComisiones field indexes }
  idx_AgentesComisionesID = 0;
  idx_AgentesComisionesID_AGENTE = 1;
  idx_AgentesComisionesID_PROVEEDOR = 2;
  idx_AgentesComisionesNOMBRE = 3;
  idx_AgentesComisionesCOMISION = 4;

  { ClientesDescuentos fields }
  fld_ClientesDescuentosID = 'ID';
  fld_ClientesDescuentosID_CLIENTE = 'ID_CLIENTE';
  fld_ClientesDescuentosID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ClientesDescuentosNOMBRE = 'NOMBRE';
  fld_ClientesDescuentosDESCUENTO = 'DESCUENTO';

  { ClientesDescuentos field indexes }
  idx_ClientesDescuentosID = 0;
  idx_ClientesDescuentosID_CLIENTE = 1;
  idx_ClientesDescuentosID_PROVEEDOR = 2;
  idx_ClientesDescuentosNOMBRE = 3;
  idx_ClientesDescuentosDESCUENTO = 4;

type
  { IContactos }
  IContactos = interface(IDAStronglyTypedDataTable)
  ['{0DEF806F-3B58-4418-BC39-4A3BE0D3A04C}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CATEGORIAValue: Integer;
    procedure SetID_CATEGORIAValue(const aValue: Integer);
    function GetNIF_CIFValue: String;
    procedure SetNIF_CIFValue(const aValue: String);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetCALLEValue: String;
    procedure SetCALLEValue(const aValue: String);
    function GetPOBLACIONValue: String;
    procedure SetPOBLACIONValue(const aValue: String);
    function GetPROVINCIAValue: String;
    procedure SetPROVINCIAValue(const aValue: String);
    function GetCODIGO_POSTALValue: String;
    procedure SetCODIGO_POSTALValue(const aValue: String);
    function GetTELEFONO_1Value: String;
    procedure SetTELEFONO_1Value(const aValue: String);
    function GetTELEFONO_2Value: String;
    procedure SetTELEFONO_2Value(const aValue: String);
    function GetMOVIL_1Value: String;
    procedure SetMOVIL_1Value(const aValue: String);
    function GetMOVIL_2Value: String;
    procedure SetMOVIL_2Value(const aValue: String);
    function GetFAXValue: String;
    procedure SetFAXValue(const aValue: String);
    function GetEMAIL_1Value: String;
    procedure SetEMAIL_1Value(const aValue: String);
    function GetEMAIL_2Value: String;
    procedure SetEMAIL_2Value(const aValue: String);
    function GetPAGINA_WEBValue: String;
    procedure SetPAGINA_WEBValue(const aValue: String);
    function GetNOTASValue: IROStrings;
    procedure SetNOTASValue(const aValue: IROStrings);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
    function GetUSUARIOValue: String;
    procedure SetUSUARIOValue(const aValue: String);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
  end;

  { TContactosDataTableRules }
  TContactosDataTableRules = class(TDADataTableRules, IContactos)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CATEGORIAValue: Integer; virtual;
    procedure SetID_CATEGORIAValue(const aValue: Integer); virtual;
    function GetNIF_CIFValue: String; virtual;
    procedure SetNIF_CIFValue(const aValue: String); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetCALLEValue: String; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    function GetPOBLACIONValue: String; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    function GetPROVINCIAValue: String; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    function GetTELEFONO_1Value: String; virtual;
    procedure SetTELEFONO_1Value(const aValue: String); virtual;
    function GetTELEFONO_2Value: String; virtual;
    procedure SetTELEFONO_2Value(const aValue: String); virtual;
    function GetMOVIL_1Value: String; virtual;
    procedure SetMOVIL_1Value(const aValue: String); virtual;
    function GetMOVIL_2Value: String; virtual;
    procedure SetMOVIL_2Value(const aValue: String); virtual;
    function GetFAXValue: String; virtual;
    procedure SetFAXValue(const aValue: String); virtual;
    function GetEMAIL_1Value: String; virtual;
    procedure SetEMAIL_1Value(const aValue: String); virtual;
    function GetEMAIL_2Value: String; virtual;
    procedure SetEMAIL_2Value(const aValue: String); virtual;
    function GetPAGINA_WEBValue: String; virtual;
    procedure SetPAGINA_WEBValue(const aValue: String); virtual;
    function GetNOTASValue: IROStrings; virtual;
    procedure SetNOTASValue(const aValue: IROStrings); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    function GetUSUARIOValue: String; virtual;
    procedure SetUSUARIOValue(const aValue: String); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IGruposCliente }
  IGruposCliente = interface(IDAStronglyTypedDataTable)
  ['{35B25FCC-71F1-4E80-8745-8003AA977A86}']
    { Property getters and setters }
    function GetDESCRIPCIONValue: String;
    procedure SetDESCRIPCIONValue(const aValue: String);


    { Properties }
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
  end;

  { TGruposClienteDataTableRules }
  TGruposClienteDataTableRules = class(TDADataTableRules, IGruposCliente)
  private
  protected
    { Property getters and setters }
    function GetDESCRIPCIONValue: String; virtual;
    procedure SetDESCRIPCIONValue(const aValue: String); virtual;

    { Properties }
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IDatosBancarios }
  IDatosBancarios = interface(IDAStronglyTypedDataTable)
  ['{12619C5D-3D50-4758-963E-03873460686D}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CONTACTOValue: Integer;
    procedure SetID_CONTACTOValue(const aValue: Integer);
    function GetTITULARValue: String;
    procedure SetTITULARValue(const aValue: String);
    function GetENTIDADValue: String;
    procedure SetENTIDADValue(const aValue: String);
    function GetSUCURSALValue: String;
    procedure SetSUCURSALValue(const aValue: String);
    function GetDCValue: String;
    procedure SetDCValue(const aValue: String);
    function GetCUENTAValue: String;
    procedure SetCUENTAValue(const aValue: String);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue;
    property TITULAR: String read GetTITULARValue write SetTITULARValue;
    property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue;
    property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue;
    property DC: String read GetDCValue write SetDCValue;
    property CUENTA: String read GetCUENTAValue write SetCUENTAValue;
  end;

  { TDatosBancariosDataTableRules }
  TDatosBancariosDataTableRules = class(TDADataTableRules, IDatosBancarios)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CONTACTOValue: Integer; virtual;
    procedure SetID_CONTACTOValue(const aValue: Integer); virtual;
    function GetTITULARValue: String; virtual;
    procedure SetTITULARValue(const aValue: String); virtual;
    function GetENTIDADValue: String; virtual;
    procedure SetENTIDADValue(const aValue: String); virtual;
    function GetSUCURSALValue: String; virtual;
    procedure SetSUCURSALValue(const aValue: String); virtual;
    function GetDCValue: String; virtual;
    procedure SetDCValue(const aValue: String); virtual;
    function GetCUENTAValue: String; virtual;
    procedure SetCUENTAValue(const aValue: String); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue;
    property TITULAR: String read GetTITULARValue write SetTITULARValue;
    property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue;
    property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue;
    property DC: String read GetDCValue write SetDCValue;
    property CUENTA: String read GetCUENTAValue write SetCUENTAValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IContactosCategorias }
  IContactosCategorias = interface(IDAStronglyTypedDataTable)
  ['{61EA248D-8C8D-427D-85A4-66FDF8049D4F}']
    { Property getters and setters }
    function GetID_CONTACTOValue: Integer;
    procedure SetID_CONTACTOValue(const aValue: Integer);
    function GetID_CATEGORIAValue: Integer;
    procedure SetID_CATEGORIAValue(const aValue: Integer);


    { Properties }
    property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
  end;

  { TContactosCategoriasDataTableRules }
  TContactosCategoriasDataTableRules = class(TDADataTableRules, IContactosCategorias)
  private
  protected
    { Property getters and setters }
    function GetID_CONTACTOValue: Integer; virtual;
    procedure SetID_CONTACTOValue(const aValue: Integer); virtual;
    function GetID_CATEGORIAValue: Integer; virtual;
    procedure SetID_CATEGORIAValue(const aValue: Integer); virtual;

    { Properties }
    property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IClientes }
  IClientes = interface(IDAStronglyTypedDataTable)
  ['{6293075C-67A2-46EA-8279-D0E9A9E22DCC}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CATEGORIAValue: Integer;
    procedure SetID_CATEGORIAValue(const aValue: Integer);
    function GetNIF_CIFValue: String;
    procedure SetNIF_CIFValue(const aValue: String);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetCALLEValue: String;
    procedure SetCALLEValue(const aValue: String);
    function GetPOBLACIONValue: String;
    procedure SetPOBLACIONValue(const aValue: String);
    function GetPROVINCIAValue: String;
    procedure SetPROVINCIAValue(const aValue: String);
    function GetCODIGO_POSTALValue: String;
    procedure SetCODIGO_POSTALValue(const aValue: String);
    function GetTELEFONO_1Value: String;
    procedure SetTELEFONO_1Value(const aValue: String);
    function GetTELEFONO_2Value: String;
    procedure SetTELEFONO_2Value(const aValue: String);
    function GetMOVIL_1Value: String;
    procedure SetMOVIL_1Value(const aValue: String);
    function GetMOVIL_2Value: String;
    procedure SetMOVIL_2Value(const aValue: String);
    function GetFAXValue: String;
    procedure SetFAXValue(const aValue: String);
    function GetEMAIL_1Value: String;
    procedure SetEMAIL_1Value(const aValue: String);
    function GetEMAIL_2Value: String;
    procedure SetEMAIL_2Value(const aValue: String);
    function GetPAGINA_WEBValue: String;
    procedure SetPAGINA_WEBValue(const aValue: String);
    function GetNOTASValue: IROStrings;
    procedure SetNOTASValue(const aValue: IROStrings);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
    function GetUSUARIOValue: String;
    procedure SetUSUARIOValue(const aValue: String);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetID_AGENTEValue: Integer;
    procedure SetID_AGENTEValue(const aValue: Integer);
    function GetGRUPO_CLIENTEValue: String;
    procedure SetGRUPO_CLIENTEValue(const aValue: String);
    function GetNOMBRE_COMERCIALValue: String;
    procedure SetNOMBRE_COMERCIALValue(const aValue: String);
    function GetVENCIMIENTO_FACTURASValue: Integer;
    procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer);
    function GetBLOQUEADOValue: Integer;
    procedure SetBLOQUEADOValue(const aValue: Integer);
    function GetMOTIVO_BLOQUEOValue: String;
    procedure SetMOTIVO_BLOQUEOValue(const aValue: String);
    function GetRECARGO_EQUIVALENCIAValue: Integer;
    procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer);
    function GetREGIMEN_IVAValue: String;
    procedure SetREGIMEN_IVAValue(const aValue: String);
    function GetID_TIPO_IVAValue: Integer;
    procedure SetID_TIPO_IVAValue(const aValue: Integer);
    function GetID_FORMA_PAGOValue: Integer;
    procedure SetID_FORMA_PAGOValue(const aValue: Integer);
    function GetTIENDA_WEBValue: Integer;
    procedure SetTIENDA_WEBValue(const aValue: Integer);
    function GetAGENTEValue: String;
    procedure SetAGENTEValue(const aValue: String);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue;
    property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue;
    property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue;
    property VENCIMIENTO_FACTURAS: Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue;
    property BLOQUEADO: Integer read GetBLOQUEADOValue write SetBLOQUEADOValue;
    property MOTIVO_BLOQUEO: String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue;
    property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue;
    property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
    property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue;
    property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue;
    property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property AGENTE: String read GetAGENTEValue write SetAGENTEValue;
  end;

  { TClientesDataTableRules }
  TClientesDataTableRules = class(TDADataTableRules, IClientes)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CATEGORIAValue: Integer; virtual;
    procedure SetID_CATEGORIAValue(const aValue: Integer); virtual;
    function GetNIF_CIFValue: String; virtual;
    procedure SetNIF_CIFValue(const aValue: String); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetCALLEValue: String; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    function GetPOBLACIONValue: String; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    function GetPROVINCIAValue: String; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    function GetTELEFONO_1Value: String; virtual;
    procedure SetTELEFONO_1Value(const aValue: String); virtual;
    function GetTELEFONO_2Value: String; virtual;
    procedure SetTELEFONO_2Value(const aValue: String); virtual;
    function GetMOVIL_1Value: String; virtual;
    procedure SetMOVIL_1Value(const aValue: String); virtual;
    function GetMOVIL_2Value: String; virtual;
    procedure SetMOVIL_2Value(const aValue: String); virtual;
    function GetFAXValue: String; virtual;
    procedure SetFAXValue(const aValue: String); virtual;
    function GetEMAIL_1Value: String; virtual;
    procedure SetEMAIL_1Value(const aValue: String); virtual;
    function GetEMAIL_2Value: String; virtual;
    procedure SetEMAIL_2Value(const aValue: String); virtual;
    function GetPAGINA_WEBValue: String; virtual;
    procedure SetPAGINA_WEBValue(const aValue: String); virtual;
    function GetNOTASValue: IROStrings; virtual;
    procedure SetNOTASValue(const aValue: IROStrings); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    function GetUSUARIOValue: String; virtual;
    procedure SetUSUARIOValue(const aValue: String); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetID_AGENTEValue: Integer; virtual;
    procedure SetID_AGENTEValue(const aValue: Integer); virtual;
    function GetGRUPO_CLIENTEValue: String; virtual;
    procedure SetGRUPO_CLIENTEValue(const aValue: String); virtual;
    function GetNOMBRE_COMERCIALValue: String; virtual;
    procedure SetNOMBRE_COMERCIALValue(const aValue: String); virtual;
    function GetVENCIMIENTO_FACTURASValue: Integer; virtual;
    procedure SetVENCIMIENTO_FACTURASValue(const aValue: Integer); virtual;
    function GetBLOQUEADOValue: Integer; virtual;
    procedure SetBLOQUEADOValue(const aValue: Integer); virtual;
    function GetMOTIVO_BLOQUEOValue: String; virtual;
    procedure SetMOTIVO_BLOQUEOValue(const aValue: String); virtual;
    function GetRECARGO_EQUIVALENCIAValue: Integer; virtual;
    procedure SetRECARGO_EQUIVALENCIAValue(const aValue: Integer); virtual;
    function GetREGIMEN_IVAValue: String; virtual;
    procedure SetREGIMEN_IVAValue(const aValue: String); virtual;
    function GetID_TIPO_IVAValue: Integer; virtual;
    procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual;
    function GetID_FORMA_PAGOValue: Integer; virtual;
    procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual;
    function GetTIENDA_WEBValue: Integer; virtual;
    procedure SetTIENDA_WEBValue(const aValue: Integer); virtual;
    function GetAGENTEValue: String; virtual;
    procedure SetAGENTEValue(const aValue: String); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue;
    property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue;
    property NOMBRE_COMERCIAL: String read GetNOMBRE_COMERCIALValue write SetNOMBRE_COMERCIALValue;
    property VENCIMIENTO_FACTURAS: Integer read GetVENCIMIENTO_FACTURASValue write SetVENCIMIENTO_FACTURASValue;
    property BLOQUEADO: Integer read GetBLOQUEADOValue write SetBLOQUEADOValue;
    property MOTIVO_BLOQUEO: String read GetMOTIVO_BLOQUEOValue write SetMOTIVO_BLOQUEOValue;
    property RECARGO_EQUIVALENCIA: Integer read GetRECARGO_EQUIVALENCIAValue write SetRECARGO_EQUIVALENCIAValue;
    property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
    property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue;
    property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue;
    property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property AGENTE: String read GetAGENTEValue write SetAGENTEValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IProveedores }
  IProveedores = interface(IDAStronglyTypedDataTable)
  ['{1AE0D68D-1D77-4E50-8952-9495FEC6930A}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CATEGORIAValue: Integer;
    procedure SetID_CATEGORIAValue(const aValue: Integer);
    function GetNIF_CIFValue: String;
    procedure SetNIF_CIFValue(const aValue: String);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetCALLEValue: String;
    procedure SetCALLEValue(const aValue: String);
    function GetPOBLACIONValue: String;
    procedure SetPOBLACIONValue(const aValue: String);
    function GetPROVINCIAValue: String;
    procedure SetPROVINCIAValue(const aValue: String);
    function GetCODIGO_POSTALValue: String;
    procedure SetCODIGO_POSTALValue(const aValue: String);
    function GetTELEFONO_1Value: String;
    procedure SetTELEFONO_1Value(const aValue: String);
    function GetTELEFONO_2Value: String;
    procedure SetTELEFONO_2Value(const aValue: String);
    function GetMOVIL_1Value: String;
    procedure SetMOVIL_1Value(const aValue: String);
    function GetMOVIL_2Value: String;
    procedure SetMOVIL_2Value(const aValue: String);
    function GetFAXValue: String;
    procedure SetFAXValue(const aValue: String);
    function GetEMAIL_1Value: String;
    procedure SetEMAIL_1Value(const aValue: String);
    function GetEMAIL_2Value: String;
    procedure SetEMAIL_2Value(const aValue: String);
    function GetPAGINA_WEBValue: String;
    procedure SetPAGINA_WEBValue(const aValue: String);
    function GetNOTASValue: IROStrings;
    procedure SetNOTASValue(const aValue: IROStrings);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
    function GetUSUARIOValue: String;
    procedure SetUSUARIOValue(const aValue: String);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetREGIMEN_IVAValue: String;
    procedure SetREGIMEN_IVAValue(const aValue: String);
    function GetDESCUENTOValue: Float;
    procedure SetDESCUENTOValue(const aValue: Float);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetID_TIPO_IVAValue: Integer;
    procedure SetID_TIPO_IVAValue(const aValue: Integer);
    function GetID_FORMA_PAGOValue: Integer;
    procedure SetID_FORMA_PAGOValue(const aValue: Integer);
    function GetTIENDA_WEBValue: Integer;
    procedure SetTIENDA_WEBValue(const aValue: Integer);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue;
    property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue;
    property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
  end;

  { TProveedoresDataTableRules }
  TProveedoresDataTableRules = class(TDADataTableRules, IProveedores)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CATEGORIAValue: Integer; virtual;
    procedure SetID_CATEGORIAValue(const aValue: Integer); virtual;
    function GetNIF_CIFValue: String; virtual;
    procedure SetNIF_CIFValue(const aValue: String); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetCALLEValue: String; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    function GetPOBLACIONValue: String; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    function GetPROVINCIAValue: String; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    function GetTELEFONO_1Value: String; virtual;
    procedure SetTELEFONO_1Value(const aValue: String); virtual;
    function GetTELEFONO_2Value: String; virtual;
    procedure SetTELEFONO_2Value(const aValue: String); virtual;
    function GetMOVIL_1Value: String; virtual;
    procedure SetMOVIL_1Value(const aValue: String); virtual;
    function GetMOVIL_2Value: String; virtual;
    procedure SetMOVIL_2Value(const aValue: String); virtual;
    function GetFAXValue: String; virtual;
    procedure SetFAXValue(const aValue: String); virtual;
    function GetEMAIL_1Value: String; virtual;
    procedure SetEMAIL_1Value(const aValue: String); virtual;
    function GetEMAIL_2Value: String; virtual;
    procedure SetEMAIL_2Value(const aValue: String); virtual;
    function GetPAGINA_WEBValue: String; virtual;
    procedure SetPAGINA_WEBValue(const aValue: String); virtual;
    function GetNOTASValue: IROStrings; virtual;
    procedure SetNOTASValue(const aValue: IROStrings); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    function GetUSUARIOValue: String; virtual;
    procedure SetUSUARIOValue(const aValue: String); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetREGIMEN_IVAValue: String; virtual;
    procedure SetREGIMEN_IVAValue(const aValue: String); virtual;
    function GetDESCUENTOValue: Float; virtual;
    procedure SetDESCUENTOValue(const aValue: Float); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetID_TIPO_IVAValue: Integer; virtual;
    procedure SetID_TIPO_IVAValue(const aValue: Integer); virtual;
    function GetID_FORMA_PAGOValue: Integer; virtual;
    procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual;
    function GetTIENDA_WEBValue: Integer; virtual;
    procedure SetTIENDA_WEBValue(const aValue: Integer); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REGIMEN_IVA: String read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue;
    property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue;
    property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IAgentes }
  IAgentes = interface(IDAStronglyTypedDataTable)
  ['{E324A4ED-AD38-446F-8CB0-BF5A578F574F}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CATEGORIAValue: Integer;
    procedure SetID_CATEGORIAValue(const aValue: Integer);
    function GetNIF_CIFValue: String;
    procedure SetNIF_CIFValue(const aValue: String);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetCALLEValue: String;
    procedure SetCALLEValue(const aValue: String);
    function GetPOBLACIONValue: String;
    procedure SetPOBLACIONValue(const aValue: String);
    function GetPROVINCIAValue: String;
    procedure SetPROVINCIAValue(const aValue: String);
    function GetCODIGO_POSTALValue: String;
    procedure SetCODIGO_POSTALValue(const aValue: String);
    function GetTELEFONO_1Value: String;
    procedure SetTELEFONO_1Value(const aValue: String);
    function GetTELEFONO_2Value: String;
    procedure SetTELEFONO_2Value(const aValue: String);
    function GetMOVIL_1Value: String;
    procedure SetMOVIL_1Value(const aValue: String);
    function GetMOVIL_2Value: String;
    procedure SetMOVIL_2Value(const aValue: String);
    function GetFAXValue: String;
    procedure SetFAXValue(const aValue: String);
    function GetEMAIL_1Value: String;
    procedure SetEMAIL_1Value(const aValue: String);
    function GetEMAIL_2Value: String;
    procedure SetEMAIL_2Value(const aValue: String);
    function GetPAGINA_WEBValue: String;
    procedure SetPAGINA_WEBValue(const aValue: String);
    function GetNOTASValue: IROStrings;
    procedure SetNOTASValue(const aValue: IROStrings);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
    function GetUSUARIOValue: String;
    procedure SetUSUARIOValue(const aValue: String);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
  end;

  { TAgentesDataTableRules }
  TAgentesDataTableRules = class(TDADataTableRules, IAgentes)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CATEGORIAValue: Integer; virtual;
    procedure SetID_CATEGORIAValue(const aValue: Integer); virtual;
    function GetNIF_CIFValue: String; virtual;
    procedure SetNIF_CIFValue(const aValue: String); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetCALLEValue: String; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    function GetPOBLACIONValue: String; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    function GetPROVINCIAValue: String; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    function GetTELEFONO_1Value: String; virtual;
    procedure SetTELEFONO_1Value(const aValue: String); virtual;
    function GetTELEFONO_2Value: String; virtual;
    procedure SetTELEFONO_2Value(const aValue: String); virtual;
    function GetMOVIL_1Value: String; virtual;
    procedure SetMOVIL_1Value(const aValue: String); virtual;
    function GetMOVIL_2Value: String; virtual;
    procedure SetMOVIL_2Value(const aValue: String); virtual;
    function GetFAXValue: String; virtual;
    procedure SetFAXValue(const aValue: String); virtual;
    function GetEMAIL_1Value: String; virtual;
    procedure SetEMAIL_1Value(const aValue: String); virtual;
    function GetEMAIL_2Value: String; virtual;
    procedure SetEMAIL_2Value(const aValue: String); virtual;
    function GetPAGINA_WEBValue: String; virtual;
    procedure SetPAGINA_WEBValue(const aValue: String); virtual;
    function GetNOTASValue: IROStrings; virtual;
    procedure SetNOTASValue(const aValue: IROStrings); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    function GetUSUARIOValue: String; virtual;
    procedure SetUSUARIOValue(const aValue: String); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CATEGORIA: Integer read GetID_CATEGORIAValue write SetID_CATEGORIAValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value;
    property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value;
    property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value;
    property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value;
    property FAX: String read GetFAXValue write SetFAXValue;
    property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value;
    property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value;
    property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IDireccionesContacto }
  IDireccionesContacto = interface(IDAStronglyTypedDataTable)
  ['{F075E272-3C20-467F-8F13-A8D6607CDB24}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CONTACTOValue: Integer;
    procedure SetID_CONTACTOValue(const aValue: Integer);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetCALLEValue: String;
    procedure SetCALLEValue(const aValue: String);
    function GetPOBLACIONValue: String;
    procedure SetPOBLACIONValue(const aValue: String);
    function GetPROVINCIAValue: String;
    procedure SetPROVINCIAValue(const aValue: String);
    function GetCODIGO_POSTALValue: String;
    procedure SetCODIGO_POSTALValue(const aValue: String);
    function GetPERSONA_CONTACTOValue: String;
    procedure SetPERSONA_CONTACTOValue(const aValue: String);
    function GetTELEFONOValue: String;
    procedure SetTELEFONOValue(const aValue: String);
    function GetEMAILValue: String;
    procedure SetEMAILValue(const aValue: String);
    function GetNOTASValue: IROStrings;
    procedure SetNOTASValue(const aValue: IROStrings);
    function GetPORTEValue: Float;
    procedure SetPORTEValue(const aValue: Float);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue;
    property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue;
    property EMAIL: String read GetEMAILValue write SetEMAILValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property PORTE: Float read GetPORTEValue write SetPORTEValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
  end;

  { TDireccionesContactoDataTableRules }
  TDireccionesContactoDataTableRules = class(TDADataTableRules, IDireccionesContacto)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CONTACTOValue: Integer; virtual;
    procedure SetID_CONTACTOValue(const aValue: Integer); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetCALLEValue: String; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    function GetPOBLACIONValue: String; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    function GetPROVINCIAValue: String; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    function GetPERSONA_CONTACTOValue: String; virtual;
    procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual;
    function GetTELEFONOValue: String; virtual;
    procedure SetTELEFONOValue(const aValue: String); virtual;
    function GetEMAILValue: String; virtual;
    procedure SetEMAILValue(const aValue: String); virtual;
    function GetNOTASValue: IROStrings; virtual;
    procedure SetNOTASValue(const aValue: IROStrings); virtual;
    function GetPORTEValue: Float; virtual;
    procedure SetPORTEValue(const aValue: Float); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CONTACTO: Integer read GetID_CONTACTOValue write SetID_CONTACTOValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue;
    property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue;
    property EMAIL: String read GetEMAILValue write SetEMAILValue;
    property NOTAS: IROStrings read GetNOTASValue write SetNOTASValue;
    property PORTE: Float read GetPORTEValue write SetPORTEValue;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IAgentesComisiones }
  IAgentesComisiones = interface(IDAStronglyTypedDataTable)
  ['{DDE1EE64-C8C6-46E8-BB2C-2B9E3158C80B}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_AGENTEValue: Integer;
    procedure SetID_AGENTEValue(const aValue: Integer);
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetCOMISIONValue: Float;
    procedure SetCOMISIONValue(const aValue: Float);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;
  end;

  { TAgentesComisionesDataTableRules }
  TAgentesComisionesDataTableRules = class(TDADataTableRules, IAgentesComisiones)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_AGENTEValue: Integer; virtual;
    procedure SetID_AGENTEValue(const aValue: Integer); virtual;
    function GetID_PROVEEDORValue: Integer; virtual;
    procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetCOMISIONValue: Float; virtual;
    procedure SetCOMISIONValue(const aValue: Float); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property COMISION: Float read GetCOMISIONValue write SetCOMISIONValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

  { IClientesDescuentos }
  IClientesDescuentos = interface(IDAStronglyTypedDataTable)
  ['{B7AAE837-19D3-4332-9B95-51D64745AA47}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_CLIENTEValue: Integer;
    procedure SetID_CLIENTEValue(const aValue: Integer);
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetDESCUENTOValue: Float;
    procedure SetDESCUENTOValue(const aValue: Float);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
  end;

  { TClientesDescuentosDataTableRules }
  TClientesDescuentosDataTableRules = class(TDADataTableRules, IClientesDescuentos)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_CLIENTEValue: Integer; virtual;
    procedure SetID_CLIENTEValue(const aValue: Integer); virtual;
    function GetID_PROVEEDORValue: Integer; virtual;
    procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetDESCUENTOValue: Float; virtual;
    procedure SetDESCUENTOValue(const aValue: Float); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;

  public
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

  end;

implementation

uses Variants;

{ TContactosDataTableRules }
constructor TContactosDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TContactosDataTableRules.Destroy;
begin
  inherited;
end;

function TContactosDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ContactosID].AsInteger;
end;

procedure TContactosDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ContactosID].AsInteger := aValue;
end;

function TContactosDataTableRules.GetID_CATEGORIAValue: Integer;
begin
  result := DataTable.Fields[idx_ContactosID_CATEGORIA].AsInteger;
end;

procedure TContactosDataTableRules.SetID_CATEGORIAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ContactosID_CATEGORIA].AsInteger := aValue;
end;

function TContactosDataTableRules.GetNIF_CIFValue: String;
begin
  result := DataTable.Fields[idx_ContactosNIF_CIF].AsString;
end;

procedure TContactosDataTableRules.SetNIF_CIFValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosNIF_CIF].AsString := aValue;
end;

function TContactosDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ContactosNOMBRE].AsString;
end;

procedure TContactosDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosNOMBRE].AsString := aValue;
end;

function TContactosDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_ContactosCALLE].AsString;
end;

procedure TContactosDataTableRules.SetCALLEValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosCALLE].AsString := aValue;
end;

function TContactosDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_ContactosPOBLACION].AsString;
end;

procedure TContactosDataTableRules.SetPOBLACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosPOBLACION].AsString := aValue;
end;

function TContactosDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_ContactosPROVINCIA].AsString;
end;

procedure TContactosDataTableRules.SetPROVINCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosPROVINCIA].AsString := aValue;
end;

function TContactosDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_ContactosCODIGO_POSTAL].AsString;
end;

procedure TContactosDataTableRules.SetCODIGO_POSTALValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosCODIGO_POSTAL].AsString := aValue;
end;

function TContactosDataTableRules.GetTELEFONO_1Value: String;
begin
  result := DataTable.Fields[idx_ContactosTELEFONO_1].AsString;
end;

procedure TContactosDataTableRules.SetTELEFONO_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ContactosTELEFONO_1].AsString := aValue;
end;

function TContactosDataTableRules.GetTELEFONO_2Value: String;
begin
  result := DataTable.Fields[idx_ContactosTELEFONO_2].AsString;
end;

procedure TContactosDataTableRules.SetTELEFONO_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ContactosTELEFONO_2].AsString := aValue;
end;

function TContactosDataTableRules.GetMOVIL_1Value: String;
begin
  result := DataTable.Fields[idx_ContactosMOVIL_1].AsString;
end;

procedure TContactosDataTableRules.SetMOVIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ContactosMOVIL_1].AsString := aValue;
end;

function TContactosDataTableRules.GetMOVIL_2Value: String;
begin
  result := DataTable.Fields[idx_ContactosMOVIL_2].AsString;
end;

procedure TContactosDataTableRules.SetMOVIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ContactosMOVIL_2].AsString := aValue;
end;

function TContactosDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_ContactosFAX].AsString;
end;

procedure TContactosDataTableRules.SetFAXValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosFAX].AsString := aValue;
end;

function TContactosDataTableRules.GetEMAIL_1Value: String;
begin
  result := DataTable.Fields[idx_ContactosEMAIL_1].AsString;
end;

procedure TContactosDataTableRules.SetEMAIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ContactosEMAIL_1].AsString := aValue;
end;

function TContactosDataTableRules.GetEMAIL_2Value: String;
begin
  result := DataTable.Fields[idx_ContactosEMAIL_2].AsString;
end;

procedure TContactosDataTableRules.SetEMAIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ContactosEMAIL_2].AsString := aValue;
end;

function TContactosDataTableRules.GetPAGINA_WEBValue: String;
begin
  result := DataTable.Fields[idx_ContactosPAGINA_WEB].AsString;
end;

procedure TContactosDataTableRules.SetPAGINA_WEBValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosPAGINA_WEB].AsString := aValue;
end;

function TContactosDataTableRules.GetNOTASValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := DataTable.Fields[idx_ContactosNOTAS].AsString;
end;

procedure TContactosDataTableRules.SetNOTASValue(const aValue: IROStrings);
begin
  DataTable.Fields[idx_ContactosNOTAS].AsString := aValue.Text;
end;

function TContactosDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ContactosFECHA_ALTA].AsDateTime;
end;

procedure TContactosDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ContactosFECHA_ALTA].AsDateTime := aValue;
end;

function TContactosDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ContactosFECHA_MODIFICACION].AsDateTime;
end;

procedure TContactosDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ContactosFECHA_MODIFICACION].AsDateTime := aValue;
end;

function TContactosDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ContactosUSUARIO].AsString;
end;

procedure TContactosDataTableRules.SetUSUARIOValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosUSUARIO].AsString := aValue;
end;

function TContactosDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ContactosID_EMPRESA].AsInteger;
end;

procedure TContactosDataTableRules.SetID_EMPRESAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ContactosID_EMPRESA].AsInteger := aValue;
end;

function TContactosDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ContactosREFERENCIA].AsString;
end;

procedure TContactosDataTableRules.SetREFERENCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ContactosREFERENCIA].AsString := aValue;
end;


{ TGruposClienteDataTableRules }
constructor TGruposClienteDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TGruposClienteDataTableRules.Destroy;
begin
  inherited;
end;

function TGruposClienteDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_GruposClienteDESCRIPCION].AsString;
end;

procedure TGruposClienteDataTableRules.SetDESCRIPCIONValue(const aValue: String);
begin
  DataTable.Fields[idx_GruposClienteDESCRIPCION].AsString := aValue;
end;


{ TDatosBancariosDataTableRules }
constructor TDatosBancariosDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TDatosBancariosDataTableRules.Destroy;
begin
  inherited;
end;

function TDatosBancariosDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_DatosBancariosID].AsInteger;
end;

procedure TDatosBancariosDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_DatosBancariosID].AsInteger := aValue;
end;

function TDatosBancariosDataTableRules.GetID_CONTACTOValue: Integer;
begin
  result := DataTable.Fields[idx_DatosBancariosID_CONTACTO].AsInteger;
end;

procedure TDatosBancariosDataTableRules.SetID_CONTACTOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_DatosBancariosID_CONTACTO].AsInteger := aValue;
end;

function TDatosBancariosDataTableRules.GetTITULARValue: String;
begin
  result := DataTable.Fields[idx_DatosBancariosTITULAR].AsString;
end;

procedure TDatosBancariosDataTableRules.SetTITULARValue(const aValue: String);
begin
  DataTable.Fields[idx_DatosBancariosTITULAR].AsString := aValue;
end;

function TDatosBancariosDataTableRules.GetENTIDADValue: String;
begin
  result := DataTable.Fields[idx_DatosBancariosENTIDAD].AsString;
end;

procedure TDatosBancariosDataTableRules.SetENTIDADValue(const aValue: String);
begin
  DataTable.Fields[idx_DatosBancariosENTIDAD].AsString := aValue;
end;

function TDatosBancariosDataTableRules.GetSUCURSALValue: String;
begin
  result := DataTable.Fields[idx_DatosBancariosSUCURSAL].AsString;
end;

procedure TDatosBancariosDataTableRules.SetSUCURSALValue(const aValue: String);
begin
  DataTable.Fields[idx_DatosBancariosSUCURSAL].AsString := aValue;
end;

function TDatosBancariosDataTableRules.GetDCValue: String;
begin
  result := DataTable.Fields[idx_DatosBancariosDC].AsString;
end;

procedure TDatosBancariosDataTableRules.SetDCValue(const aValue: String);
begin
  DataTable.Fields[idx_DatosBancariosDC].AsString := aValue;
end;

function TDatosBancariosDataTableRules.GetCUENTAValue: String;
begin
  result := DataTable.Fields[idx_DatosBancariosCUENTA].AsString;
end;

procedure TDatosBancariosDataTableRules.SetCUENTAValue(const aValue: String);
begin
  DataTable.Fields[idx_DatosBancariosCUENTA].AsString := aValue;
end;


{ TContactosCategoriasDataTableRules }
constructor TContactosCategoriasDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TContactosCategoriasDataTableRules.Destroy;
begin
  inherited;
end;

function TContactosCategoriasDataTableRules.GetID_CONTACTOValue: Integer;
begin
  result := DataTable.Fields[idx_ContactosCategoriasID_CONTACTO].AsInteger;
end;

procedure TContactosCategoriasDataTableRules.SetID_CONTACTOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ContactosCategoriasID_CONTACTO].AsInteger := aValue;
end;

function TContactosCategoriasDataTableRules.GetID_CATEGORIAValue: Integer;
begin
  result := DataTable.Fields[idx_ContactosCategoriasID_CATEGORIA].AsInteger;
end;

procedure TContactosCategoriasDataTableRules.SetID_CATEGORIAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ContactosCategoriasID_CATEGORIA].AsInteger := aValue;
end;


{ TClientesDataTableRules }
constructor TClientesDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TClientesDataTableRules.Destroy;
begin
  inherited;
end;

function TClientesDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID].AsInteger;
end;

procedure TClientesDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesID].AsInteger := aValue;
end;

function TClientesDataTableRules.GetID_CATEGORIAValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID_CATEGORIA].AsInteger;
end;

procedure TClientesDataTableRules.SetID_CATEGORIAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesID_CATEGORIA].AsInteger := aValue;
end;

function TClientesDataTableRules.GetNIF_CIFValue: String;
begin
  result := DataTable.Fields[idx_ClientesNIF_CIF].AsString;
end;

procedure TClientesDataTableRules.SetNIF_CIFValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesNIF_CIF].AsString := aValue;
end;

function TClientesDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ClientesNOMBRE].AsString;
end;

procedure TClientesDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesNOMBRE].AsString := aValue;
end;

function TClientesDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_ClientesCALLE].AsString;
end;

procedure TClientesDataTableRules.SetCALLEValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesCALLE].AsString := aValue;
end;

function TClientesDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_ClientesPOBLACION].AsString;
end;

procedure TClientesDataTableRules.SetPOBLACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesPOBLACION].AsString := aValue;
end;

function TClientesDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_ClientesPROVINCIA].AsString;
end;

procedure TClientesDataTableRules.SetPROVINCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesPROVINCIA].AsString := aValue;
end;

function TClientesDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_ClientesCODIGO_POSTAL].AsString;
end;

procedure TClientesDataTableRules.SetCODIGO_POSTALValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesCODIGO_POSTAL].AsString := aValue;
end;

function TClientesDataTableRules.GetTELEFONO_1Value: String;
begin
  result := DataTable.Fields[idx_ClientesTELEFONO_1].AsString;
end;

procedure TClientesDataTableRules.SetTELEFONO_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ClientesTELEFONO_1].AsString := aValue;
end;

function TClientesDataTableRules.GetTELEFONO_2Value: String;
begin
  result := DataTable.Fields[idx_ClientesTELEFONO_2].AsString;
end;

procedure TClientesDataTableRules.SetTELEFONO_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ClientesTELEFONO_2].AsString := aValue;
end;

function TClientesDataTableRules.GetMOVIL_1Value: String;
begin
  result := DataTable.Fields[idx_ClientesMOVIL_1].AsString;
end;

procedure TClientesDataTableRules.SetMOVIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ClientesMOVIL_1].AsString := aValue;
end;

function TClientesDataTableRules.GetMOVIL_2Value: String;
begin
  result := DataTable.Fields[idx_ClientesMOVIL_2].AsString;
end;

procedure TClientesDataTableRules.SetMOVIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ClientesMOVIL_2].AsString := aValue;
end;

function TClientesDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_ClientesFAX].AsString;
end;

procedure TClientesDataTableRules.SetFAXValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesFAX].AsString := aValue;
end;

function TClientesDataTableRules.GetEMAIL_1Value: String;
begin
  result := DataTable.Fields[idx_ClientesEMAIL_1].AsString;
end;

procedure TClientesDataTableRules.SetEMAIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ClientesEMAIL_1].AsString := aValue;
end;

function TClientesDataTableRules.GetEMAIL_2Value: String;
begin
  result := DataTable.Fields[idx_ClientesEMAIL_2].AsString;
end;

procedure TClientesDataTableRules.SetEMAIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ClientesEMAIL_2].AsString := aValue;
end;

function TClientesDataTableRules.GetPAGINA_WEBValue: String;
begin
  result := DataTable.Fields[idx_ClientesPAGINA_WEB].AsString;
end;

procedure TClientesDataTableRules.SetPAGINA_WEBValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesPAGINA_WEB].AsString := aValue;
end;

function TClientesDataTableRules.GetNOTASValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := DataTable.Fields[idx_ClientesNOTAS].AsString;
end;

procedure TClientesDataTableRules.SetNOTASValue(const aValue: IROStrings);
begin
  DataTable.Fields[idx_ClientesNOTAS].AsString := aValue.Text;
end;

function TClientesDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ClientesFECHA_ALTA].AsDateTime;
end;

procedure TClientesDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ClientesFECHA_ALTA].AsDateTime := aValue;
end;

function TClientesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ClientesFECHA_MODIFICACION].AsDateTime;
end;

procedure TClientesDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ClientesFECHA_MODIFICACION].AsDateTime := aValue;
end;

function TClientesDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ClientesUSUARIO].AsString;
end;

procedure TClientesDataTableRules.SetUSUARIOValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesUSUARIO].AsString := aValue;
end;

function TClientesDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID_EMPRESA].AsInteger;
end;

procedure TClientesDataTableRules.SetID_EMPRESAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesID_EMPRESA].AsInteger := aValue;
end;

function TClientesDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ClientesREFERENCIA].AsString;
end;

procedure TClientesDataTableRules.SetREFERENCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesREFERENCIA].AsString := aValue;
end;

function TClientesDataTableRules.GetID_AGENTEValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID_AGENTE].AsInteger;
end;

procedure TClientesDataTableRules.SetID_AGENTEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesID_AGENTE].AsInteger := aValue;
end;

function TClientesDataTableRules.GetGRUPO_CLIENTEValue: String;
begin
  result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString;
end;

procedure TClientesDataTableRules.SetGRUPO_CLIENTEValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString := aValue;
end;

function TClientesDataTableRules.GetNOMBRE_COMERCIALValue: String;
begin
  result := DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsString;
end;

procedure TClientesDataTableRules.SetNOMBRE_COMERCIALValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesNOMBRE_COMERCIAL].AsString := aValue;
end;

function TClientesDataTableRules.GetVENCIMIENTO_FACTURASValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS].AsInteger;
end;

procedure TClientesDataTableRules.SetVENCIMIENTO_FACTURASValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS].AsInteger := aValue;
end;

function TClientesDataTableRules.GetBLOQUEADOValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesBLOQUEADO].AsInteger;
end;

procedure TClientesDataTableRules.SetBLOQUEADOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesBLOQUEADO].AsInteger := aValue;
end;

function TClientesDataTableRules.GetMOTIVO_BLOQUEOValue: String;
begin
  result := DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString;
end;

procedure TClientesDataTableRules.SetMOTIVO_BLOQUEOValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesMOTIVO_BLOQUEO].AsString := aValue;
end;

function TClientesDataTableRules.GetRECARGO_EQUIVALENCIAValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsInteger;
end;

procedure TClientesDataTableRules.SetRECARGO_EQUIVALENCIAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesRECARGO_EQUIVALENCIA].AsInteger := aValue;
end;

function TClientesDataTableRules.GetREGIMEN_IVAValue: String;
begin
  result := DataTable.Fields[idx_ClientesREGIMEN_IVA].AsString;
end;

procedure TClientesDataTableRules.SetREGIMEN_IVAValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesREGIMEN_IVA].AsString := aValue;
end;

function TClientesDataTableRules.GetID_TIPO_IVAValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID_TIPO_IVA].AsInteger;
end;

procedure TClientesDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesID_TIPO_IVA].AsInteger := aValue;
end;

function TClientesDataTableRules.GetID_FORMA_PAGOValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsInteger;
end;

procedure TClientesDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesID_FORMA_PAGO].AsInteger := aValue;
end;

function TClientesDataTableRules.GetTIENDA_WEBValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesTIENDA_WEB].AsInteger;
end;

procedure TClientesDataTableRules.SetTIENDA_WEBValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesTIENDA_WEB].AsInteger := aValue;
end;

function TClientesDataTableRules.GetAGENTEValue: String;
begin
  result := DataTable.Fields[idx_ClientesAGENTE].AsString;
end;

procedure TClientesDataTableRules.SetAGENTEValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesAGENTE].AsString := aValue;
end;


{ TProveedoresDataTableRules }
constructor TProveedoresDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TProveedoresDataTableRules.Destroy;
begin
  inherited;
end;

function TProveedoresDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresID].AsInteger;
end;

procedure TProveedoresDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ProveedoresID].AsInteger := aValue;
end;

function TProveedoresDataTableRules.GetID_CATEGORIAValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresID_CATEGORIA].AsInteger;
end;

procedure TProveedoresDataTableRules.SetID_CATEGORIAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ProveedoresID_CATEGORIA].AsInteger := aValue;
end;

function TProveedoresDataTableRules.GetNIF_CIFValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresNIF_CIF].AsString;
end;

procedure TProveedoresDataTableRules.SetNIF_CIFValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresNIF_CIF].AsString := aValue;
end;

function TProveedoresDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresNOMBRE].AsString;
end;

procedure TProveedoresDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresNOMBRE].AsString := aValue;
end;

function TProveedoresDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresCALLE].AsString;
end;

procedure TProveedoresDataTableRules.SetCALLEValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresCALLE].AsString := aValue;
end;

function TProveedoresDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresPOBLACION].AsString;
end;

procedure TProveedoresDataTableRules.SetPOBLACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresPOBLACION].AsString := aValue;
end;

function TProveedoresDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresPROVINCIA].AsString;
end;

procedure TProveedoresDataTableRules.SetPROVINCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresPROVINCIA].AsString := aValue;
end;

function TProveedoresDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresCODIGO_POSTAL].AsString;
end;

procedure TProveedoresDataTableRules.SetCODIGO_POSTALValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresCODIGO_POSTAL].AsString := aValue;
end;

function TProveedoresDataTableRules.GetTELEFONO_1Value: String;
begin
  result := DataTable.Fields[idx_ProveedoresTELEFONO_1].AsString;
end;

procedure TProveedoresDataTableRules.SetTELEFONO_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresTELEFONO_1].AsString := aValue;
end;

function TProveedoresDataTableRules.GetTELEFONO_2Value: String;
begin
  result := DataTable.Fields[idx_ProveedoresTELEFONO_2].AsString;
end;

procedure TProveedoresDataTableRules.SetTELEFONO_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresTELEFONO_2].AsString := aValue;
end;

function TProveedoresDataTableRules.GetMOVIL_1Value: String;
begin
  result := DataTable.Fields[idx_ProveedoresMOVIL_1].AsString;
end;

procedure TProveedoresDataTableRules.SetMOVIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresMOVIL_1].AsString := aValue;
end;

function TProveedoresDataTableRules.GetMOVIL_2Value: String;
begin
  result := DataTable.Fields[idx_ProveedoresMOVIL_2].AsString;
end;

procedure TProveedoresDataTableRules.SetMOVIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresMOVIL_2].AsString := aValue;
end;

function TProveedoresDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresFAX].AsString;
end;

procedure TProveedoresDataTableRules.SetFAXValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresFAX].AsString := aValue;
end;

function TProveedoresDataTableRules.GetEMAIL_1Value: String;
begin
  result := DataTable.Fields[idx_ProveedoresEMAIL_1].AsString;
end;

procedure TProveedoresDataTableRules.SetEMAIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresEMAIL_1].AsString := aValue;
end;

function TProveedoresDataTableRules.GetEMAIL_2Value: String;
begin
  result := DataTable.Fields[idx_ProveedoresEMAIL_2].AsString;
end;

procedure TProveedoresDataTableRules.SetEMAIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresEMAIL_2].AsString := aValue;
end;

function TProveedoresDataTableRules.GetPAGINA_WEBValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresPAGINA_WEB].AsString;
end;

procedure TProveedoresDataTableRules.SetPAGINA_WEBValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresPAGINA_WEB].AsString := aValue;
end;

function TProveedoresDataTableRules.GetNOTASValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := DataTable.Fields[idx_ProveedoresNOTAS].AsString;
end;

procedure TProveedoresDataTableRules.SetNOTASValue(const aValue: IROStrings);
begin
  DataTable.Fields[idx_ProveedoresNOTAS].AsString := aValue.Text;
end;

function TProveedoresDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ProveedoresFECHA_ALTA].AsDateTime;
end;

procedure TProveedoresDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ProveedoresFECHA_ALTA].AsDateTime := aValue;
end;

function TProveedoresDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ProveedoresFECHA_MODIFICACION].AsDateTime;
end;

procedure TProveedoresDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ProveedoresFECHA_MODIFICACION].AsDateTime := aValue;
end;

function TProveedoresDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresUSUARIO].AsString;
end;

procedure TProveedoresDataTableRules.SetUSUARIOValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresUSUARIO].AsString := aValue;
end;

function TProveedoresDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresID_EMPRESA].AsInteger;
end;

procedure TProveedoresDataTableRules.SetID_EMPRESAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ProveedoresID_EMPRESA].AsInteger := aValue;
end;

function TProveedoresDataTableRules.GetREGIMEN_IVAValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsString;
end;

procedure TProveedoresDataTableRules.SetREGIMEN_IVAValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsString := aValue;
end;

function TProveedoresDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat;
end;

procedure TProveedoresDataTableRules.SetDESCUENTOValue(const aValue: Float);
begin
  DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue;
end;

function TProveedoresDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresREFERENCIA].AsString;
end;

procedure TProveedoresDataTableRules.SetREFERENCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresREFERENCIA].AsString := aValue;
end;

function TProveedoresDataTableRules.GetID_TIPO_IVAValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsInteger;
end;

procedure TProveedoresDataTableRules.SetID_TIPO_IVAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ProveedoresID_TIPO_IVA].AsInteger := aValue;
end;

function TProveedoresDataTableRules.GetID_FORMA_PAGOValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsInteger;
end;

procedure TProveedoresDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ProveedoresID_FORMA_PAGO].AsInteger := aValue;
end;

function TProveedoresDataTableRules.GetTIENDA_WEBValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger;
end;

procedure TProveedoresDataTableRules.SetTIENDA_WEBValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ProveedoresTIENDA_WEB].AsInteger := aValue;
end;


{ TAgentesDataTableRules }
constructor TAgentesDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TAgentesDataTableRules.Destroy;
begin
  inherited;
end;

function TAgentesDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_AgentesID].AsInteger;
end;

procedure TAgentesDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_AgentesID].AsInteger := aValue;
end;

function TAgentesDataTableRules.GetID_CATEGORIAValue: Integer;
begin
  result := DataTable.Fields[idx_AgentesID_CATEGORIA].AsInteger;
end;

procedure TAgentesDataTableRules.SetID_CATEGORIAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_AgentesID_CATEGORIA].AsInteger := aValue;
end;

function TAgentesDataTableRules.GetNIF_CIFValue: String;
begin
  result := DataTable.Fields[idx_AgentesNIF_CIF].AsString;
end;

procedure TAgentesDataTableRules.SetNIF_CIFValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesNIF_CIF].AsString := aValue;
end;

function TAgentesDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_AgentesNOMBRE].AsString;
end;

procedure TAgentesDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesNOMBRE].AsString := aValue;
end;

function TAgentesDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_AgentesCALLE].AsString;
end;

procedure TAgentesDataTableRules.SetCALLEValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesCALLE].AsString := aValue;
end;

function TAgentesDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_AgentesPOBLACION].AsString;
end;

procedure TAgentesDataTableRules.SetPOBLACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesPOBLACION].AsString := aValue;
end;

function TAgentesDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_AgentesPROVINCIA].AsString;
end;

procedure TAgentesDataTableRules.SetPROVINCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesPROVINCIA].AsString := aValue;
end;

function TAgentesDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_AgentesCODIGO_POSTAL].AsString;
end;

procedure TAgentesDataTableRules.SetCODIGO_POSTALValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesCODIGO_POSTAL].AsString := aValue;
end;

function TAgentesDataTableRules.GetTELEFONO_1Value: String;
begin
  result := DataTable.Fields[idx_AgentesTELEFONO_1].AsString;
end;

procedure TAgentesDataTableRules.SetTELEFONO_1Value(const aValue: String);
begin
  DataTable.Fields[idx_AgentesTELEFONO_1].AsString := aValue;
end;

function TAgentesDataTableRules.GetTELEFONO_2Value: String;
begin
  result := DataTable.Fields[idx_AgentesTELEFONO_2].AsString;
end;

procedure TAgentesDataTableRules.SetTELEFONO_2Value(const aValue: String);
begin
  DataTable.Fields[idx_AgentesTELEFONO_2].AsString := aValue;
end;

function TAgentesDataTableRules.GetMOVIL_1Value: String;
begin
  result := DataTable.Fields[idx_AgentesMOVIL_1].AsString;
end;

procedure TAgentesDataTableRules.SetMOVIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_AgentesMOVIL_1].AsString := aValue;
end;

function TAgentesDataTableRules.GetMOVIL_2Value: String;
begin
  result := DataTable.Fields[idx_AgentesMOVIL_2].AsString;
end;

procedure TAgentesDataTableRules.SetMOVIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_AgentesMOVIL_2].AsString := aValue;
end;

function TAgentesDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_AgentesFAX].AsString;
end;

procedure TAgentesDataTableRules.SetFAXValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesFAX].AsString := aValue;
end;

function TAgentesDataTableRules.GetEMAIL_1Value: String;
begin
  result := DataTable.Fields[idx_AgentesEMAIL_1].AsString;
end;

procedure TAgentesDataTableRules.SetEMAIL_1Value(const aValue: String);
begin
  DataTable.Fields[idx_AgentesEMAIL_1].AsString := aValue;
end;

function TAgentesDataTableRules.GetEMAIL_2Value: String;
begin
  result := DataTable.Fields[idx_AgentesEMAIL_2].AsString;
end;

procedure TAgentesDataTableRules.SetEMAIL_2Value(const aValue: String);
begin
  DataTable.Fields[idx_AgentesEMAIL_2].AsString := aValue;
end;

function TAgentesDataTableRules.GetPAGINA_WEBValue: String;
begin
  result := DataTable.Fields[idx_AgentesPAGINA_WEB].AsString;
end;

procedure TAgentesDataTableRules.SetPAGINA_WEBValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesPAGINA_WEB].AsString := aValue;
end;

function TAgentesDataTableRules.GetNOTASValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := DataTable.Fields[idx_AgentesNOTAS].AsString;
end;

procedure TAgentesDataTableRules.SetNOTASValue(const aValue: IROStrings);
begin
  DataTable.Fields[idx_AgentesNOTAS].AsString := aValue.Text;
end;

function TAgentesDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_AgentesFECHA_ALTA].AsDateTime;
end;

procedure TAgentesDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_AgentesFECHA_ALTA].AsDateTime := aValue;
end;

function TAgentesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_AgentesFECHA_MODIFICACION].AsDateTime;
end;

procedure TAgentesDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_AgentesFECHA_MODIFICACION].AsDateTime := aValue;
end;

function TAgentesDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_AgentesUSUARIO].AsString;
end;

procedure TAgentesDataTableRules.SetUSUARIOValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesUSUARIO].AsString := aValue;
end;

function TAgentesDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_AgentesID_EMPRESA].AsInteger;
end;

procedure TAgentesDataTableRules.SetID_EMPRESAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_AgentesID_EMPRESA].AsInteger := aValue;
end;

function TAgentesDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_AgentesREFERENCIA].AsString;
end;

procedure TAgentesDataTableRules.SetREFERENCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesREFERENCIA].AsString := aValue;
end;


{ TDireccionesContactoDataTableRules }
constructor TDireccionesContactoDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TDireccionesContactoDataTableRules.Destroy;
begin
  inherited;
end;

function TDireccionesContactoDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_DireccionesContactoID].AsInteger;
end;

procedure TDireccionesContactoDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_DireccionesContactoID].AsInteger := aValue;
end;

function TDireccionesContactoDataTableRules.GetID_CONTACTOValue: Integer;
begin
  result := DataTable.Fields[idx_DireccionesContactoID_CONTACTO].AsInteger;
end;

procedure TDireccionesContactoDataTableRules.SetID_CONTACTOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_DireccionesContactoID_CONTACTO].AsInteger := aValue;
end;

function TDireccionesContactoDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoNOMBRE].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoNOMBRE].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoCALLE].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetCALLEValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoCALLE].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoPOBLACION].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetPOBLACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoPOBLACION].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoPROVINCIA].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetPROVINCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoPROVINCIA].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoCODIGO_POSTAL].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetCODIGO_POSTALValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoCODIGO_POSTAL].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetPERSONA_CONTACTOValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoPERSONA_CONTACTO].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoPERSONA_CONTACTO].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetTELEFONOValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoTELEFONO].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetTELEFONOValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoTELEFONO].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetEMAILValue: String;
begin
  result := DataTable.Fields[idx_DireccionesContactoEMAIL].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetEMAILValue(const aValue: String);
begin
  DataTable.Fields[idx_DireccionesContactoEMAIL].AsString := aValue;
end;

function TDireccionesContactoDataTableRules.GetNOTASValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := DataTable.Fields[idx_DireccionesContactoNOTAS].AsString;
end;

procedure TDireccionesContactoDataTableRules.SetNOTASValue(const aValue: IROStrings);
begin
  DataTable.Fields[idx_DireccionesContactoNOTAS].AsString := aValue.Text;
end;

function TDireccionesContactoDataTableRules.GetPORTEValue: Float;
begin
  result := DataTable.Fields[idx_DireccionesContactoPORTE].AsFloat;
end;

procedure TDireccionesContactoDataTableRules.SetPORTEValue(const aValue: Float);
begin
  DataTable.Fields[idx_DireccionesContactoPORTE].AsFloat := aValue;
end;

function TDireccionesContactoDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_DireccionesContactoFECHA_ALTA].AsDateTime;
end;

procedure TDireccionesContactoDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_DireccionesContactoFECHA_ALTA].AsDateTime := aValue;
end;

function TDireccionesContactoDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_DireccionesContactoFECHA_MODIFICACION].AsDateTime;
end;

procedure TDireccionesContactoDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_DireccionesContactoFECHA_MODIFICACION].AsDateTime := aValue;
end;


{ TAgentesComisionesDataTableRules }
constructor TAgentesComisionesDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TAgentesComisionesDataTableRules.Destroy;
begin
  inherited;
end;

function TAgentesComisionesDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_AgentesComisionesID].AsInteger;
end;

procedure TAgentesComisionesDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_AgentesComisionesID].AsInteger := aValue;
end;

function TAgentesComisionesDataTableRules.GetID_AGENTEValue: Integer;
begin
  result := DataTable.Fields[idx_AgentesComisionesID_AGENTE].AsInteger;
end;

procedure TAgentesComisionesDataTableRules.SetID_AGENTEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_AgentesComisionesID_AGENTE].AsInteger := aValue;
end;

function TAgentesComisionesDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_AgentesComisionesID_PROVEEDOR].AsInteger;
end;

procedure TAgentesComisionesDataTableRules.SetID_PROVEEDORValue(const aValue: Integer);
begin
  DataTable.Fields[idx_AgentesComisionesID_PROVEEDOR].AsInteger := aValue;
end;

function TAgentesComisionesDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_AgentesComisionesNOMBRE].AsString;
end;

procedure TAgentesComisionesDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_AgentesComisionesNOMBRE].AsString := aValue;
end;

function TAgentesComisionesDataTableRules.GetCOMISIONValue: Float;
begin
  result := DataTable.Fields[idx_AgentesComisionesCOMISION].AsFloat;
end;

procedure TAgentesComisionesDataTableRules.SetCOMISIONValue(const aValue: Float);
begin
  DataTable.Fields[idx_AgentesComisionesCOMISION].AsFloat := aValue;
end;


{ TClientesDescuentosDataTableRules }
constructor TClientesDescuentosDataTableRules.Create(aDataTable: TDADataTable);
begin
  inherited;
end;

destructor TClientesDescuentosDataTableRules.Destroy;
begin
  inherited;
end;

function TClientesDescuentosDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesDescuentosID].AsInteger;
end;

procedure TClientesDescuentosDataTableRules.SetIDValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesDescuentosID].AsInteger := aValue;
end;

function TClientesDescuentosDataTableRules.GetID_CLIENTEValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesDescuentosID_CLIENTE].AsInteger;
end;

procedure TClientesDescuentosDataTableRules.SetID_CLIENTEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesDescuentosID_CLIENTE].AsInteger := aValue;
end;

function TClientesDescuentosDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesDescuentosID_PROVEEDOR].AsInteger;
end;

procedure TClientesDescuentosDataTableRules.SetID_PROVEEDORValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ClientesDescuentosID_PROVEEDOR].AsInteger := aValue;
end;

function TClientesDescuentosDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ClientesDescuentosNOMBRE].AsString;
end;

procedure TClientesDescuentosDataTableRules.SetNOMBREValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesDescuentosNOMBRE].AsString := aValue;
end;

function TClientesDescuentosDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsFloat;
end;

procedure TClientesDescuentosDataTableRules.SetDESCUENTOValue(const aValue: Float);
begin
  DataTable.Fields[idx_ClientesDescuentosDESCUENTO].AsFloat := aValue;
end;


initialization
  RegisterDataTableRules(RID_Contactos, TContactosDataTableRules);
  RegisterDataTableRules(RID_GruposCliente, TGruposClienteDataTableRules);
  RegisterDataTableRules(RID_DatosBancarios, TDatosBancariosDataTableRules);
  RegisterDataTableRules(RID_ContactosCategorias, TContactosCategoriasDataTableRules);
  RegisterDataTableRules(RID_Clientes, TClientesDataTableRules);
  RegisterDataTableRules(RID_Proveedores, TProveedoresDataTableRules);
  RegisterDataTableRules(RID_Agentes, TAgentesDataTableRules);
  RegisterDataTableRules(RID_DireccionesContacto, TDireccionesContactoDataTableRules);
  RegisterDataTableRules(RID_AgentesComisiones, TAgentesComisionesDataTableRules);
  RegisterDataTableRules(RID_ClientesDescuentos, TClientesDescuentosDataTableRules);

end.
