unit schEmpresasClient_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_Empresas = '{BDF28B13-CFBB-4369-8E15-17616D58186C}';

  { Data table names }
  nme_Empresas = 'Empresas';

  { Empresas fields }
  fld_EmpresasID = 'ID';
  fld_EmpresasNIF_CIF = 'NIF_CIF';
  fld_EmpresasNOMBRE = 'NOMBRE';
  fld_EmpresasRAZON_SOCIAL = 'RAZON_SOCIAL';
  fld_EmpresasCALLE = 'CALLE';
  fld_EmpresasPOBLACION = 'POBLACION';
  fld_EmpresasPROVINCIA = 'PROVINCIA';
  fld_EmpresasCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_EmpresasTELEFONO_1 = 'TELEFONO_1';
  fld_EmpresasTELEFONO_2 = 'TELEFONO_2';
  fld_EmpresasMOVIL_1 = 'MOVIL_1';
  fld_EmpresasMOVIL_2 = 'MOVIL_2';
  fld_EmpresasFAX = 'FAX';
  fld_EmpresasEMAIL_1 = 'EMAIL_1';
  fld_EmpresasEMAIL_2 = 'EMAIL_2';
  fld_EmpresasPAGINA_WEB = 'PAGINA_WEB';
  fld_EmpresasNOTAS = 'NOTAS';
  fld_EmpresasFECHA_ALTA = 'FECHA_ALTA';
  fld_EmpresasFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_EmpresasUSUARIO = 'USUARIO';
  fld_EmpresasLOGOTIPO = 'LOGOTIPO';
  fld_EmpresasREGISTRO_MERCANTIL = 'REGISTRO_MERCANTIL';
  fld_EmpresasIVA = 'IVA';

  { Empresas field indexes }
  idx_EmpresasID = 0;
  idx_EmpresasNIF_CIF = 1;
  idx_EmpresasNOMBRE = 2;
  idx_EmpresasRAZON_SOCIAL = 3;
  idx_EmpresasCALLE = 4;
  idx_EmpresasPOBLACION = 5;
  idx_EmpresasPROVINCIA = 6;
  idx_EmpresasCODIGO_POSTAL = 7;
  idx_EmpresasTELEFONO_1 = 8;
  idx_EmpresasTELEFONO_2 = 9;
  idx_EmpresasMOVIL_1 = 10;
  idx_EmpresasMOVIL_2 = 11;
  idx_EmpresasFAX = 12;
  idx_EmpresasEMAIL_1 = 13;
  idx_EmpresasEMAIL_2 = 14;
  idx_EmpresasPAGINA_WEB = 15;
  idx_EmpresasNOTAS = 16;
  idx_EmpresasFECHA_ALTA = 17;
  idx_EmpresasFECHA_MODIFICACION = 18;
  idx_EmpresasUSUARIO = 19;
  idx_EmpresasLOGOTIPO = 20;
  idx_EmpresasREGISTRO_MERCANTIL = 21;
  idx_EmpresasIVA = 22;

type
  { IEmpresas }
  IEmpresas = interface(IDAStronglyTypedDataTable)
  ['{7D4AEDCA-7FEC-40EB-8292-4BCDED9D1F98}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetNIF_CIFValue: String;
    procedure SetNIF_CIFValue(const aValue: String);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetRAZON_SOCIALValue: String;
    procedure SetRAZON_SOCIALValue(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 GetLOGOTIPOValue: IROStream;
    procedure SetLOGOTIPOValue(const aValue: IROStream);
    function GetREGISTRO_MERCANTILValue: String;
    procedure SetREGISTRO_MERCANTILValue(const aValue: String);
    function GetIVAValue: Float;
    procedure SetIVAValue(const aValue: Float);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue;
    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 LOGOTIPO: IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue;
    property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue;
    property IVA: Float read GetIVAValue write SetIVAValue;
  end;

  { TEmpresasDataTableRules }
  TEmpresasDataTableRules = class(TDADataTableRules, IEmpresas)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(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 GetRAZON_SOCIALValue: String; virtual;
    procedure SetRAZON_SOCIALValue(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 GetLOGOTIPOValue: IROStream; virtual;
    procedure SetLOGOTIPOValue(const aValue: IROStream); virtual;
    function GetREGISTRO_MERCANTILValue: String; virtual;
    procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual;
    function GetIVAValue: Float; virtual;
    procedure SetIVAValue(const aValue: Float); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue;
    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 LOGOTIPO: IROStream read GetLOGOTIPOValue write SetLOGOTIPOValue;
    property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue;
    property IVA: Float read GetIVAValue write SetIVAValue;

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

  end;

implementation

uses Variants;

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

destructor TEmpresasDataTableRules.Destroy;
begin
  inherited;
end;

function TEmpresasDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_EmpresasID].AsInteger;
end;

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

function TEmpresasDataTableRules.GetNIF_CIFValue: String;
begin
  result := DataTable.Fields[idx_EmpresasNIF_CIF].AsString;
end;

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

function TEmpresasDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_EmpresasNOMBRE].AsString;
end;

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

function TEmpresasDataTableRules.GetRAZON_SOCIALValue: String;
begin
  result := DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsString;
end;

procedure TEmpresasDataTableRules.SetRAZON_SOCIALValue(const aValue: String);
begin
  DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsString := aValue;
end;

function TEmpresasDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_EmpresasCALLE].AsString;
end;

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

function TEmpresasDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_EmpresasPOBLACION].AsString;
end;

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

function TEmpresasDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_EmpresasPROVINCIA].AsString;
end;

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

function TEmpresasDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsString;
end;

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

function TEmpresasDataTableRules.GetTELEFONO_1Value: String;
begin
  result := DataTable.Fields[idx_EmpresasTELEFONO_1].AsString;
end;

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

function TEmpresasDataTableRules.GetTELEFONO_2Value: String;
begin
  result := DataTable.Fields[idx_EmpresasTELEFONO_2].AsString;
end;

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

function TEmpresasDataTableRules.GetMOVIL_1Value: String;
begin
  result := DataTable.Fields[idx_EmpresasMOVIL_1].AsString;
end;

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

function TEmpresasDataTableRules.GetMOVIL_2Value: String;
begin
  result := DataTable.Fields[idx_EmpresasMOVIL_2].AsString;
end;

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

function TEmpresasDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_EmpresasFAX].AsString;
end;

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

function TEmpresasDataTableRules.GetEMAIL_1Value: String;
begin
  result := DataTable.Fields[idx_EmpresasEMAIL_1].AsString;
end;

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

function TEmpresasDataTableRules.GetEMAIL_2Value: String;
begin
  result := DataTable.Fields[idx_EmpresasEMAIL_2].AsString;
end;

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

function TEmpresasDataTableRules.GetPAGINA_WEBValue: String;
begin
  result := DataTable.Fields[idx_EmpresasPAGINA_WEB].AsString;
end;

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

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

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

function TEmpresasDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_EmpresasFECHA_ALTA].AsDateTime;
end;

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

function TEmpresasDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsDateTime;
end;

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

function TEmpresasDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_EmpresasUSUARIO].AsString;
end;

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

function TEmpresasDataTableRules.GetLOGOTIPOValue: IROStream;
begin
  result := NewROStream();
  DataTable.Fields[idx_EmpresasLOGOTIPO].SaveToStream(result);
end;

procedure TEmpresasDataTableRules.SetLOGOTIPOValue(const aValue: IROStream);
begin
  DataTable.Fields[idx_EmpresasLOGOTIPO].LoadFromStream(aValue);
end;

function TEmpresasDataTableRules.GetREGISTRO_MERCANTILValue: String;
begin
  result := DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsString;
end;

procedure TEmpresasDataTableRules.SetREGISTRO_MERCANTILValue(const aValue: String);
begin
  DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsString := aValue;
end;

function TEmpresasDataTableRules.GetIVAValue: Float;
begin
  result := DataTable.Fields[idx_EmpresasIVA].AsFloat;
end;

procedure TEmpresasDataTableRules.SetIVAValue(const aValue: Float);
begin
  DataTable.Fields[idx_EmpresasIVA].AsFloat := aValue;
end;


initialization
  RegisterDataTableRules(RID_Empresas, TEmpresasDataTableRules);

end.
