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 = '{DFD4FE9F-C1DB-4078-8C3E-8C3534B397B6}';
  RID_DatosBancarios = '{67A127E1-1892-4E4B-B187-56C98BD5B0EF}';
  RID_ContactosCategorias = '{BFE7BC33-0900-4F37-9442-CB9E1AC2D9B1}';
  RID_Vendedores = '{BDCE41F5-4BF4-46DC-B0AC-982F826E26C6}';
  RID_Clientes = '{5C3515D0-658D-44DE-A62B-4EFD7B67B4F6}';
  RID_Proveedores = '{7CC1E026-2D2E-47E7-858F-5D60C8258349}';

  { Data table names }
  nme_Contactos = 'Contactos';
  nme_DatosBancarios = 'DatosBancarios';
  nme_ContactosCategorias = 'ContactosCategorias';
  nme_Vendedores = 'Vendedores';
  nme_Clientes = 'Clientes';
  nme_Proveedores = 'Proveedores';

  { 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';

  { 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;

  { 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;

  { Vendedores fields }
  fld_VendedoresID = 'ID';
  fld_VendedoresID_CATEGORIA = 'ID_CATEGORIA';
  fld_VendedoresNIF_CIF = 'NIF_CIF';
  fld_VendedoresNOMBRE = 'NOMBRE';
  fld_VendedoresCALLE = 'CALLE';
  fld_VendedoresPOBLACION = 'POBLACION';
  fld_VendedoresPROVINCIA = 'PROVINCIA';
  fld_VendedoresCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_VendedoresTELEFONO_1 = 'TELEFONO_1';
  fld_VendedoresTELEFONO_2 = 'TELEFONO_2';
  fld_VendedoresMOVIL_1 = 'MOVIL_1';
  fld_VendedoresMOVIL_2 = 'MOVIL_2';
  fld_VendedoresFAX = 'FAX';
  fld_VendedoresEMAIL_1 = 'EMAIL_1';
  fld_VendedoresEMAIL_2 = 'EMAIL_2';
  fld_VendedoresPAGINA_WEB = 'PAGINA_WEB';
  fld_VendedoresNOTAS = 'NOTAS';
  fld_VendedoresFECHA_ALTA = 'FECHA_ALTA';
  fld_VendedoresFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_VendedoresUSUARIO = 'USUARIO';
  fld_VendedoresID_EMPRESA = 'ID_EMPRESA';
  fld_VendedoresPORCENTAJE_COMISION = 'PORCENTAJE_COMISION';

  { Vendedores field indexes }
  idx_VendedoresID = 0;
  idx_VendedoresID_CATEGORIA = 1;
  idx_VendedoresNIF_CIF = 2;
  idx_VendedoresNOMBRE = 3;
  idx_VendedoresCALLE = 4;
  idx_VendedoresPOBLACION = 5;
  idx_VendedoresPROVINCIA = 6;
  idx_VendedoresCODIGO_POSTAL = 7;
  idx_VendedoresTELEFONO_1 = 8;
  idx_VendedoresTELEFONO_2 = 9;
  idx_VendedoresMOVIL_1 = 10;
  idx_VendedoresMOVIL_2 = 11;
  idx_VendedoresFAX = 12;
  idx_VendedoresEMAIL_1 = 13;
  idx_VendedoresEMAIL_2 = 14;
  idx_VendedoresPAGINA_WEB = 15;
  idx_VendedoresNOTAS = 16;
  idx_VendedoresFECHA_ALTA = 17;
  idx_VendedoresFECHA_MODIFICACION = 18;
  idx_VendedoresUSUARIO = 19;
  idx_VendedoresID_EMPRESA = 20;
  idx_VendedoresPORCENTAJE_COMISION = 21;

  { 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_ClientesID_VENDEDOR = 'ID_VENDEDOR';
  fld_ClientesPROCEDENCIA = 'PROCEDENCIA';

  { 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_ClientesID_VENDEDOR = 21;
  idx_ClientesPROCEDENCIA = 22;

  { 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_ProveedoresDISTRIBUYE = 'DISTRIBUYE';
  fld_ProveedoresDESCUENTO = 'DESCUENTO';

  { 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_ProveedoresDISTRIBUYE = 21;
  idx_ProveedoresDESCUENTO = 22;

type
  { IContactos }
  IContactos = interface(IDAStronglyTypedDataTable)
  ['{10146FF6-A5D1-4C19-922B-3C0DC34CF234}']
    { 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);


    { 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;
  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;

    { 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;

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

  end;

  { IDatosBancarios }
  IDatosBancarios = interface(IDAStronglyTypedDataTable)
  ['{926FB083-D232-4C87-8F16-06CD182EA8D4}']
    { 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)
  ['{F0A6C960-7D2B-4852-84BF-091A141B5632}']
    { 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;

  { IVendedores }
  IVendedores = interface(IDAStronglyTypedDataTable)
  ['{C44F83CD-0D22-4298-AF2C-3714DD271491}']
    { 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 GetPORCENTAJE_COMISIONValue: Float;
    procedure SetPORCENTAJE_COMISIONValue(const aValue: Float);


    { 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 PORCENTAJE_COMISION: Float read GetPORCENTAJE_COMISIONValue write SetPORCENTAJE_COMISIONValue;
  end;

  { TVendedoresDataTableRules }
  TVendedoresDataTableRules = class(TDADataTableRules, IVendedores)
  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 GetPORCENTAJE_COMISIONValue: Float; virtual;
    procedure SetPORCENTAJE_COMISIONValue(const aValue: Float); 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 PORCENTAJE_COMISION: Float read GetPORCENTAJE_COMISIONValue write SetPORCENTAJE_COMISIONValue;

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

  end;

  { IClientes }
  IClientes = interface(IDAStronglyTypedDataTable)
  ['{25EDA2F0-B14B-49E4-BDE8-6BCBBDFAFDB8}']
    { 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 GetID_VENDEDORValue: Integer;
    procedure SetID_VENDEDORValue(const aValue: Integer);
    function GetPROCEDENCIAValue: String;
    procedure SetPROCEDENCIAValue(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 ID_VENDEDOR: Integer read GetID_VENDEDORValue write SetID_VENDEDORValue;
    property PROCEDENCIA: String read GetPROCEDENCIAValue write SetPROCEDENCIAValue;
  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 GetID_VENDEDORValue: Integer; virtual;
    procedure SetID_VENDEDORValue(const aValue: Integer); virtual;
    function GetPROCEDENCIAValue: String; virtual;
    procedure SetPROCEDENCIAValue(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 ID_VENDEDOR: Integer read GetID_VENDEDORValue write SetID_VENDEDORValue;
    property PROCEDENCIA: String read GetPROCEDENCIAValue write SetPROCEDENCIAValue;

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

  end;

  { IProveedores }
  IProveedores = interface(IDAStronglyTypedDataTable)
  ['{22F4819C-B2F9-4582-B63B-EA6989BE7E61}']
    { 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 GetDISTRIBUYEValue: String;
    procedure SetDISTRIBUYEValue(const aValue: String);
    function GetDESCUENTOValue: Float;
    procedure SetDESCUENTOValue(const aValue: Float);


    { 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 DISTRIBUYE: String read GetDISTRIBUYEValue write SetDISTRIBUYEValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
  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 GetDISTRIBUYEValue: String; virtual;
    procedure SetDISTRIBUYEValue(const aValue: String); virtual;
    function GetDESCUENTOValue: Float; virtual;
    procedure SetDESCUENTOValue(const aValue: Float); 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 DISTRIBUYE: String read GetDISTRIBUYEValue write SetDISTRIBUYEValue;
    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;


{ 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;


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

destructor TVendedoresDataTableRules.Destroy;
begin
  inherited;
end;

function TVendedoresDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_VendedoresID].AsInteger;
end;

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

function TVendedoresDataTableRules.GetID_CATEGORIAValue: Integer;
begin
  result := DataTable.Fields[idx_VendedoresID_CATEGORIA].AsInteger;
end;

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

function TVendedoresDataTableRules.GetNIF_CIFValue: String;
begin
  result := DataTable.Fields[idx_VendedoresNIF_CIF].AsString;
end;

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

function TVendedoresDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_VendedoresNOMBRE].AsString;
end;

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

function TVendedoresDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_VendedoresCALLE].AsString;
end;

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

function TVendedoresDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_VendedoresPOBLACION].AsString;
end;

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

function TVendedoresDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_VendedoresPROVINCIA].AsString;
end;

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

function TVendedoresDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_VendedoresCODIGO_POSTAL].AsString;
end;

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

function TVendedoresDataTableRules.GetTELEFONO_1Value: String;
begin
  result := DataTable.Fields[idx_VendedoresTELEFONO_1].AsString;
end;

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

function TVendedoresDataTableRules.GetTELEFONO_2Value: String;
begin
  result := DataTable.Fields[idx_VendedoresTELEFONO_2].AsString;
end;

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

function TVendedoresDataTableRules.GetMOVIL_1Value: String;
begin
  result := DataTable.Fields[idx_VendedoresMOVIL_1].AsString;
end;

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

function TVendedoresDataTableRules.GetMOVIL_2Value: String;
begin
  result := DataTable.Fields[idx_VendedoresMOVIL_2].AsString;
end;

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

function TVendedoresDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_VendedoresFAX].AsString;
end;

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

function TVendedoresDataTableRules.GetEMAIL_1Value: String;
begin
  result := DataTable.Fields[idx_VendedoresEMAIL_1].AsString;
end;

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

function TVendedoresDataTableRules.GetEMAIL_2Value: String;
begin
  result := DataTable.Fields[idx_VendedoresEMAIL_2].AsString;
end;

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

function TVendedoresDataTableRules.GetPAGINA_WEBValue: String;
begin
  result := DataTable.Fields[idx_VendedoresPAGINA_WEB].AsString;
end;

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

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

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

function TVendedoresDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_VendedoresFECHA_ALTA].AsDateTime;
end;

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

function TVendedoresDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_VendedoresFECHA_MODIFICACION].AsDateTime;
end;

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

function TVendedoresDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_VendedoresUSUARIO].AsString;
end;

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

function TVendedoresDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_VendedoresID_EMPRESA].AsInteger;
end;

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

function TVendedoresDataTableRules.GetPORCENTAJE_COMISIONValue: Float;
begin
  result := DataTable.Fields[idx_VendedoresPORCENTAJE_COMISION].AsFloat;
end;

procedure TVendedoresDataTableRules.SetPORCENTAJE_COMISIONValue(const aValue: Float);
begin
  DataTable.Fields[idx_VendedoresPORCENTAJE_COMISION].AsFloat := 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.GetID_VENDEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ClientesID_VENDEDOR].AsInteger;
end;

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

function TClientesDataTableRules.GetPROCEDENCIAValue: String;
begin
  result := DataTable.Fields[idx_ClientesPROCEDENCIA].AsString;
end;

procedure TClientesDataTableRules.SetPROCEDENCIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ClientesPROCEDENCIA].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.GetDISTRIBUYEValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresDISTRIBUYE].AsString;
end;

procedure TProveedoresDataTableRules.SetDISTRIBUYEValue(const aValue: String);
begin
  DataTable.Fields[idx_ProveedoresDISTRIBUYE].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;


initialization
  RegisterDataTableRules(RID_Contactos, TContactosDataTableRules);
  RegisterDataTableRules(RID_DatosBancarios, TDatosBancariosDataTableRules);
  RegisterDataTableRules(RID_ContactosCategorias, TContactosCategoriasDataTableRules);
  RegisterDataTableRules(RID_Vendedores, TVendedoresDataTableRules);
  RegisterDataTableRules(RID_Clientes, TClientesDataTableRules);
  RegisterDataTableRules(RID_Proveedores, TProveedoresDataTableRules);

end.
