unit schMontajesClient_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_Montajes = '{68FA1578-2C0C-4DAC-9F57-6F13870B94F3}';
  RID_Montajes_Refresh = '{0D7DF284-F754-4A84-8A17-BF78BCF61D8D}';
  RID_Montajes_Detalles = '{B3763872-4BC3-4885-8F27-5F6C10DC3620}';
  RID_Montajes_Gastos = '{C9D5C5D6-A55D-4160-BEFA-576E83354C07}';

  { Data table names }
  nme_Montajes = 'Montajes';
  nme_Montajes_Refresh = 'Montajes_Refresh';
  nme_Montajes_Detalles = 'Montajes_Detalles';
  nme_Montajes_Gastos = 'Montajes_Gastos';

  { Montajes fields }
  fld_MontajesID = 'ID';
  fld_MontajesID_EMPRESA = 'ID_EMPRESA';
  fld_MontajesID_CLIENTE = 'ID_CLIENTE';
  fld_MontajesID_PRESUPUESTO = 'ID_PRESUPUESTO';
  fld_MontajesREFERENCIA = 'REFERENCIA';
  fld_MontajesSITUACION = 'SITUACION';
  fld_MontajesFECHA_INICIO = 'FECHA_INICIO';
  fld_MontajesFECHA_FIN = 'FECHA_FIN';
  fld_MontajesFECHA_ALTA = 'FECHA_ALTA';
  fld_MontajesFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_MontajesUSUARIO = 'USUARIO';
  fld_MontajesIMPORTE_TOTAL = 'IMPORTE_TOTAL';
  fld_MontajesNOMBRE = 'NOMBRE';

  { Montajes field indexes }
  idx_MontajesID = 0;
  idx_MontajesID_EMPRESA = 1;
  idx_MontajesID_CLIENTE = 2;
  idx_MontajesID_PRESUPUESTO = 3;
  idx_MontajesREFERENCIA = 4;
  idx_MontajesSITUACION = 5;
  idx_MontajesFECHA_INICIO = 6;
  idx_MontajesFECHA_FIN = 7;
  idx_MontajesFECHA_ALTA = 8;
  idx_MontajesFECHA_MODIFICACION = 9;
  idx_MontajesUSUARIO = 10;
  idx_MontajesIMPORTE_TOTAL = 11;
  idx_MontajesNOMBRE = 12;

  { Montajes_Refresh fields }
  fld_Montajes_RefreshID = 'ID';
  fld_Montajes_RefreshID_EMPRESA = 'ID_EMPRESA';
  fld_Montajes_RefreshID_CLIENTE = 'ID_CLIENTE';
  fld_Montajes_RefreshID_PRESUPUESTO = 'ID_PRESUPUESTO';
  fld_Montajes_RefreshREFERENCIA = 'REFERENCIA';
  fld_Montajes_RefreshSITUACION = 'SITUACION';
  fld_Montajes_RefreshFECHA_INICIO = 'FECHA_INICIO';
  fld_Montajes_RefreshFECHA_FIN = 'FECHA_FIN';
  fld_Montajes_RefreshFECHA_ALTA = 'FECHA_ALTA';
  fld_Montajes_RefreshFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_Montajes_RefreshUSUARIO = 'USUARIO';
  fld_Montajes_RefreshIMPORTE_TOTAL = 'IMPORTE_TOTAL';
  fld_Montajes_RefreshNOMBRE = 'NOMBRE';

  { Montajes_Refresh field indexes }
  idx_Montajes_RefreshID = 0;
  idx_Montajes_RefreshID_EMPRESA = 1;
  idx_Montajes_RefreshID_CLIENTE = 2;
  idx_Montajes_RefreshID_PRESUPUESTO = 3;
  idx_Montajes_RefreshREFERENCIA = 4;
  idx_Montajes_RefreshSITUACION = 5;
  idx_Montajes_RefreshFECHA_INICIO = 6;
  idx_Montajes_RefreshFECHA_FIN = 7;
  idx_Montajes_RefreshFECHA_ALTA = 8;
  idx_Montajes_RefreshFECHA_MODIFICACION = 9;
  idx_Montajes_RefreshUSUARIO = 10;
  idx_Montajes_RefreshIMPORTE_TOTAL = 11;
  idx_Montajes_RefreshNOMBRE = 12;

  { Montajes_Detalles fields }
  fld_Montajes_DetallesID = 'ID';
  fld_Montajes_DetallesID_MONTAJE = 'ID_MONTAJE';
  fld_Montajes_DetallesPOSICION = 'POSICION';
  fld_Montajes_DetallesTIPO_DETALLE = 'TIPO_DETALLE';
  fld_Montajes_DetallesCONCEPTO = 'CONCEPTO';
  fld_Montajes_DetallesCANTIDAD = 'CANTIDAD';
  fld_Montajes_DetallesPUNTOS = 'PUNTOS';
  fld_Montajes_DetallesIMPORTE_PUNTOS = 'IMPORTE_PUNTOS';
  fld_Montajes_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD';
  fld_Montajes_DetallesDESCUENTO = 'DESCUENTO';
  fld_Montajes_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL';
  fld_Montajes_DetallesVISIBLE = 'VISIBLE';

  { Montajes_Detalles field indexes }
  idx_Montajes_DetallesID = 0;
  idx_Montajes_DetallesID_MONTAJE = 1;
  idx_Montajes_DetallesPOSICION = 2;
  idx_Montajes_DetallesTIPO_DETALLE = 3;
  idx_Montajes_DetallesCONCEPTO = 4;
  idx_Montajes_DetallesCANTIDAD = 5;
  idx_Montajes_DetallesPUNTOS = 6;
  idx_Montajes_DetallesIMPORTE_PUNTOS = 7;
  idx_Montajes_DetallesIMPORTE_UNIDAD = 8;
  idx_Montajes_DetallesDESCUENTO = 9;
  idx_Montajes_DetallesIMPORTE_TOTAL = 10;
  idx_Montajes_DetallesVISIBLE = 11;

  { Montajes_Gastos fields }
  fld_Montajes_GastosID = 'ID';
  fld_Montajes_GastosID_MONTAJE = 'ID_MONTAJE';
  fld_Montajes_GastosFECHA_GASTO = 'FECHA_GASTO';
  fld_Montajes_GastosDESCRIPCION = 'DESCRIPCION';
  fld_Montajes_GastosIMPORTE = 'IMPORTE';

  { Montajes_Gastos field indexes }
  idx_Montajes_GastosID = 0;
  idx_Montajes_GastosID_MONTAJE = 1;
  idx_Montajes_GastosFECHA_GASTO = 2;
  idx_Montajes_GastosDESCRIPCION = 3;
  idx_Montajes_GastosIMPORTE = 4;

type
  { IMontajes }
  IMontajes = interface(IDAStronglyTypedDataTable)
  ['{10BFD8F0-C2EB-4E95-A7E3-CB77CF9859C4}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetID_CLIENTEValue: Integer;
    procedure SetID_CLIENTEValue(const aValue: Integer);
    function GetID_PRESUPUESTOValue: Integer;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetSITUACIONValue: String;
    procedure SetSITUACIONValue(const aValue: String);
    function GetFECHA_INICIOValue: DateTime;
    procedure SetFECHA_INICIOValue(const aValue: DateTime);
    function GetFECHA_FINValue: DateTime;
    procedure SetFECHA_FINValue(const aValue: DateTime);
    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 GetIMPORTE_TOTALValue: Currency;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    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 IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
  end;

  { TMontajesDataTableRules }
  TMontajesDataTableRules = class(TDADataTableRules, IMontajes)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetID_CLIENTEValue: Integer; virtual;
    procedure SetID_CLIENTEValue(const aValue: Integer); virtual;
    function GetID_PRESUPUESTOValue: Integer; virtual;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetSITUACIONValue: String; virtual;
    procedure SetSITUACIONValue(const aValue: String); virtual;
    function GetFECHA_INICIOValue: DateTime; virtual;
    procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual;
    function GetFECHA_FINValue: DateTime; virtual;
    procedure SetFECHA_FINValue(const aValue: DateTime); 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 GetIMPORTE_TOTALValue: Currency; virtual;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    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 IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;

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

  end;

  { IMontajes_Refresh }
  IMontajes_Refresh = interface(IDAStronglyTypedDataTable)
  ['{4C2B5E89-0522-4F91-863C-C1719E12E869}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetID_CLIENTEValue: Integer;
    procedure SetID_CLIENTEValue(const aValue: Integer);
    function GetID_PRESUPUESTOValue: Integer;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetSITUACIONValue: String;
    procedure SetSITUACIONValue(const aValue: String);
    function GetFECHA_INICIOValue: DateTime;
    procedure SetFECHA_INICIOValue(const aValue: DateTime);
    function GetFECHA_FINValue: DateTime;
    procedure SetFECHA_FINValue(const aValue: DateTime);
    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 GetIMPORTE_TOTALValue: Float;
    procedure SetIMPORTE_TOTALValue(const aValue: Float);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    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 IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
  end;

  { TMontajes_RefreshDataTableRules }
  TMontajes_RefreshDataTableRules = class(TDADataTableRules, IMontajes_Refresh)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetID_CLIENTEValue: Integer; virtual;
    procedure SetID_CLIENTEValue(const aValue: Integer); virtual;
    function GetID_PRESUPUESTOValue: Integer; virtual;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetSITUACIONValue: String; virtual;
    procedure SetSITUACIONValue(const aValue: String); virtual;
    function GetFECHA_INICIOValue: DateTime; virtual;
    procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual;
    function GetFECHA_FINValue: DateTime; virtual;
    procedure SetFECHA_FINValue(const aValue: DateTime); 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 GetIMPORTE_TOTALValue: Float; virtual;
    procedure SetIMPORTE_TOTALValue(const aValue: Float); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    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 IMPORTE_TOTAL: Float read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;

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

  end;

  { IMontajes_Detalles }
  IMontajes_Detalles = interface(IDAStronglyTypedDataTable)
  ['{1FD84D0C-181C-44EC-84DC-FA6AECBD131D}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_MONTAJEValue: Integer;
    procedure SetID_MONTAJEValue(const aValue: Integer);
    function GetPOSICIONValue: Integer;
    procedure SetPOSICIONValue(const aValue: Integer);
    function GetTIPO_DETALLEValue: String;
    procedure SetTIPO_DETALLEValue(const aValue: String);
    function GetCONCEPTOValue: String;
    procedure SetCONCEPTOValue(const aValue: String);
    function GetCANTIDADValue: Integer;
    procedure SetCANTIDADValue(const aValue: Integer);
    function GetPUNTOSValue: Integer;
    procedure SetPUNTOSValue(const aValue: Integer);
    function GetIMPORTE_PUNTOSValue: Currency;
    procedure SetIMPORTE_PUNTOSValue(const aValue: Currency);
    function GetIMPORTE_UNIDADValue: Currency;
    procedure SetIMPORTE_UNIDADValue(const aValue: Currency);
    function GetDESCUENTOValue: Float;
    procedure SetDESCUENTOValue(const aValue: Float);
    function GetIMPORTE_TOTALValue: Currency;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency);
    function GetVISIBLEValue: Integer;
    procedure SetVISIBLEValue(const aValue: Integer);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_MONTAJE: Integer read GetID_MONTAJEValue write SetID_MONTAJEValue;
    property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
    property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue;
    property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue;
    property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
    property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
    property IMPORTE_PUNTOS: Currency read GetIMPORTE_PUNTOSValue write SetIMPORTE_PUNTOSValue;
    property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue;
  end;

  { TMontajes_DetallesDataTableRules }
  TMontajes_DetallesDataTableRules = class(TDADataTableRules, IMontajes_Detalles)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_MONTAJEValue: Integer; virtual;
    procedure SetID_MONTAJEValue(const aValue: Integer); virtual;
    function GetPOSICIONValue: Integer; virtual;
    procedure SetPOSICIONValue(const aValue: Integer); virtual;
    function GetTIPO_DETALLEValue: String; virtual;
    procedure SetTIPO_DETALLEValue(const aValue: String); virtual;
    function GetCONCEPTOValue: String; virtual;
    procedure SetCONCEPTOValue(const aValue: String); virtual;
    function GetCANTIDADValue: Integer; virtual;
    procedure SetCANTIDADValue(const aValue: Integer); virtual;
    function GetPUNTOSValue: Integer; virtual;
    procedure SetPUNTOSValue(const aValue: Integer); virtual;
    function GetIMPORTE_PUNTOSValue: Currency; virtual;
    procedure SetIMPORTE_PUNTOSValue(const aValue: Currency); virtual;
    function GetIMPORTE_UNIDADValue: Currency; virtual;
    procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual;
    function GetDESCUENTOValue: Float; virtual;
    procedure SetDESCUENTOValue(const aValue: Float); virtual;
    function GetIMPORTE_TOTALValue: Currency; virtual;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
    function GetVISIBLEValue: Integer; virtual;
    procedure SetVISIBLEValue(const aValue: Integer); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_MONTAJE: Integer read GetID_MONTAJEValue write SetID_MONTAJEValue;
    property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue;
    property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue;
    property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue;
    property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue;
    property PUNTOS: Integer read GetPUNTOSValue write SetPUNTOSValue;
    property IMPORTE_PUNTOS: Currency read GetIMPORTE_PUNTOSValue write SetIMPORTE_PUNTOSValue;
    property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue;

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

  end;

  { IMontajes_Gastos }
  IMontajes_Gastos = interface(IDAStronglyTypedDataTable)
  ['{AF8A6CCA-5235-483E-B936-E2A288D48331}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetID_MONTAJEValue: Integer;
    procedure SetID_MONTAJEValue(const aValue: Integer);
    function GetFECHA_GASTOValue: DateTime;
    procedure SetFECHA_GASTOValue(const aValue: DateTime);
    function GetDESCRIPCIONValue: String;
    procedure SetDESCRIPCIONValue(const aValue: String);
    function GetIMPORTEValue: Currency;
    procedure SetIMPORTEValue(const aValue: Currency);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_MONTAJE: Integer read GetID_MONTAJEValue write SetID_MONTAJEValue;
    property FECHA_GASTO: DateTime read GetFECHA_GASTOValue write SetFECHA_GASTOValue;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;
  end;

  { TMontajes_GastosDataTableRules }
  TMontajes_GastosDataTableRules = class(TDADataTableRules, IMontajes_Gastos)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetID_MONTAJEValue: Integer; virtual;
    procedure SetID_MONTAJEValue(const aValue: Integer); virtual;
    function GetFECHA_GASTOValue: DateTime; virtual;
    procedure SetFECHA_GASTOValue(const aValue: DateTime); virtual;
    function GetDESCRIPCIONValue: String; virtual;
    procedure SetDESCRIPCIONValue(const aValue: String); virtual;
    function GetIMPORTEValue: Currency; virtual;
    procedure SetIMPORTEValue(const aValue: Currency); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property ID_MONTAJE: Integer read GetID_MONTAJEValue write SetID_MONTAJEValue;
    property FECHA_GASTO: DateTime read GetFECHA_GASTOValue write SetFECHA_GASTOValue;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property IMPORTE: Currency read GetIMPORTEValue write SetIMPORTEValue;

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

  end;

implementation

uses Variants;

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

destructor TMontajesDataTableRules.Destroy;
begin
  inherited;
end;

function TMontajesDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_MontajesID].AsInteger;
end;

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

function TMontajesDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_MontajesID_EMPRESA].AsInteger;
end;

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

function TMontajesDataTableRules.GetID_CLIENTEValue: Integer;
begin
  result := DataTable.Fields[idx_MontajesID_CLIENTE].AsInteger;
end;

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

function TMontajesDataTableRules.GetID_PRESUPUESTOValue: Integer;
begin
  result := DataTable.Fields[idx_MontajesID_PRESUPUESTO].AsInteger;
end;

procedure TMontajesDataTableRules.SetID_PRESUPUESTOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_MontajesID_PRESUPUESTO].AsInteger := aValue;
end;

function TMontajesDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_MontajesREFERENCIA].AsString;
end;

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

function TMontajesDataTableRules.GetSITUACIONValue: String;
begin
  result := DataTable.Fields[idx_MontajesSITUACION].AsString;
end;

procedure TMontajesDataTableRules.SetSITUACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_MontajesSITUACION].AsString := aValue;
end;

function TMontajesDataTableRules.GetFECHA_INICIOValue: DateTime;
begin
  result := DataTable.Fields[idx_MontajesFECHA_INICIO].AsDateTime;
end;

procedure TMontajesDataTableRules.SetFECHA_INICIOValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_MontajesFECHA_INICIO].AsDateTime := aValue;
end;

function TMontajesDataTableRules.GetFECHA_FINValue: DateTime;
begin
  result := DataTable.Fields[idx_MontajesFECHA_FIN].AsDateTime;
end;

procedure TMontajesDataTableRules.SetFECHA_FINValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_MontajesFECHA_FIN].AsDateTime := aValue;
end;

function TMontajesDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_MontajesFECHA_ALTA].AsDateTime;
end;

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

function TMontajesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_MontajesFECHA_MODIFICACION].AsDateTime;
end;

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

function TMontajesDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_MontajesUSUARIO].AsString;
end;

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

function TMontajesDataTableRules.GetIMPORTE_TOTALValue: Currency;
begin
  result := DataTable.Fields[idx_MontajesIMPORTE_TOTAL].AsCurrency;
end;

procedure TMontajesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency);
begin
  DataTable.Fields[idx_MontajesIMPORTE_TOTAL].AsCurrency := aValue;
end;

function TMontajesDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_MontajesNOMBRE].AsString;
end;

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


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

destructor TMontajes_RefreshDataTableRules.Destroy;
begin
  inherited;
end;

function TMontajes_RefreshDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_RefreshID].AsInteger;
end;

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

function TMontajes_RefreshDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_RefreshID_EMPRESA].AsInteger;
end;

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

function TMontajes_RefreshDataTableRules.GetID_CLIENTEValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_RefreshID_CLIENTE].AsInteger;
end;

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

function TMontajes_RefreshDataTableRules.GetID_PRESUPUESTOValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_RefreshID_PRESUPUESTO].AsInteger;
end;

procedure TMontajes_RefreshDataTableRules.SetID_PRESUPUESTOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_RefreshID_PRESUPUESTO].AsInteger := aValue;
end;

function TMontajes_RefreshDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_Montajes_RefreshREFERENCIA].AsString;
end;

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

function TMontajes_RefreshDataTableRules.GetSITUACIONValue: String;
begin
  result := DataTable.Fields[idx_Montajes_RefreshSITUACION].AsString;
end;

procedure TMontajes_RefreshDataTableRules.SetSITUACIONValue(const aValue: String);
begin
  DataTable.Fields[idx_Montajes_RefreshSITUACION].AsString := aValue;
end;

function TMontajes_RefreshDataTableRules.GetFECHA_INICIOValue: DateTime;
begin
  result := DataTable.Fields[idx_Montajes_RefreshFECHA_INICIO].AsDateTime;
end;

procedure TMontajes_RefreshDataTableRules.SetFECHA_INICIOValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_Montajes_RefreshFECHA_INICIO].AsDateTime := aValue;
end;

function TMontajes_RefreshDataTableRules.GetFECHA_FINValue: DateTime;
begin
  result := DataTable.Fields[idx_Montajes_RefreshFECHA_FIN].AsDateTime;
end;

procedure TMontajes_RefreshDataTableRules.SetFECHA_FINValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_Montajes_RefreshFECHA_FIN].AsDateTime := aValue;
end;

function TMontajes_RefreshDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_Montajes_RefreshFECHA_ALTA].AsDateTime;
end;

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

function TMontajes_RefreshDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_Montajes_RefreshFECHA_MODIFICACION].AsDateTime;
end;

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

function TMontajes_RefreshDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_Montajes_RefreshUSUARIO].AsString;
end;

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

function TMontajes_RefreshDataTableRules.GetIMPORTE_TOTALValue: Float;
begin
  result := DataTable.Fields[idx_Montajes_RefreshIMPORTE_TOTAL].AsFloat;
end;

procedure TMontajes_RefreshDataTableRules.SetIMPORTE_TOTALValue(const aValue: Float);
begin
  DataTable.Fields[idx_Montajes_RefreshIMPORTE_TOTAL].AsFloat := aValue;
end;

function TMontajes_RefreshDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_Montajes_RefreshNOMBRE].AsString;
end;

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


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

destructor TMontajes_DetallesDataTableRules.Destroy;
begin
  inherited;
end;

function TMontajes_DetallesDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_DetallesID].AsInteger;
end;

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

function TMontajes_DetallesDataTableRules.GetID_MONTAJEValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_DetallesID_MONTAJE].AsInteger;
end;

procedure TMontajes_DetallesDataTableRules.SetID_MONTAJEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_DetallesID_MONTAJE].AsInteger := aValue;
end;

function TMontajes_DetallesDataTableRules.GetPOSICIONValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_DetallesPOSICION].AsInteger;
end;

procedure TMontajes_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_DetallesPOSICION].AsInteger := aValue;
end;

function TMontajes_DetallesDataTableRules.GetTIPO_DETALLEValue: String;
begin
  result := DataTable.Fields[idx_Montajes_DetallesTIPO_DETALLE].AsString;
end;

procedure TMontajes_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String);
begin
  DataTable.Fields[idx_Montajes_DetallesTIPO_DETALLE].AsString := aValue;
end;

function TMontajes_DetallesDataTableRules.GetCONCEPTOValue: String;
begin
  result := DataTable.Fields[idx_Montajes_DetallesCONCEPTO].AsString;
end;

procedure TMontajes_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String);
begin
  DataTable.Fields[idx_Montajes_DetallesCONCEPTO].AsString := aValue;
end;

function TMontajes_DetallesDataTableRules.GetCANTIDADValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_DetallesCANTIDAD].AsInteger;
end;

procedure TMontajes_DetallesDataTableRules.SetCANTIDADValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_DetallesCANTIDAD].AsInteger := aValue;
end;

function TMontajes_DetallesDataTableRules.GetPUNTOSValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_DetallesPUNTOS].AsInteger;
end;

procedure TMontajes_DetallesDataTableRules.SetPUNTOSValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_DetallesPUNTOS].AsInteger := aValue;
end;

function TMontajes_DetallesDataTableRules.GetIMPORTE_PUNTOSValue: Currency;
begin
  result := DataTable.Fields[idx_Montajes_DetallesIMPORTE_PUNTOS].AsCurrency;
end;

procedure TMontajes_DetallesDataTableRules.SetIMPORTE_PUNTOSValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Montajes_DetallesIMPORTE_PUNTOS].AsCurrency := aValue;
end;

function TMontajes_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency;
begin
  result := DataTable.Fields[idx_Montajes_DetallesIMPORTE_UNIDAD].AsCurrency;
end;

procedure TMontajes_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Montajes_DetallesIMPORTE_UNIDAD].AsCurrency := aValue;
end;

function TMontajes_DetallesDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_Montajes_DetallesDESCUENTO].AsFloat;
end;

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

function TMontajes_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency;
begin
  result := DataTable.Fields[idx_Montajes_DetallesIMPORTE_TOTAL].AsCurrency;
end;

procedure TMontajes_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Montajes_DetallesIMPORTE_TOTAL].AsCurrency := aValue;
end;

function TMontajes_DetallesDataTableRules.GetVISIBLEValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_DetallesVISIBLE].AsInteger;
end;

procedure TMontajes_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_DetallesVISIBLE].AsInteger := aValue;
end;


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

destructor TMontajes_GastosDataTableRules.Destroy;
begin
  inherited;
end;

function TMontajes_GastosDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_GastosID].AsInteger;
end;

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

function TMontajes_GastosDataTableRules.GetID_MONTAJEValue: Integer;
begin
  result := DataTable.Fields[idx_Montajes_GastosID_MONTAJE].AsInteger;
end;

procedure TMontajes_GastosDataTableRules.SetID_MONTAJEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Montajes_GastosID_MONTAJE].AsInteger := aValue;
end;

function TMontajes_GastosDataTableRules.GetFECHA_GASTOValue: DateTime;
begin
  result := DataTable.Fields[idx_Montajes_GastosFECHA_GASTO].AsDateTime;
end;

procedure TMontajes_GastosDataTableRules.SetFECHA_GASTOValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_Montajes_GastosFECHA_GASTO].AsDateTime := aValue;
end;

function TMontajes_GastosDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_Montajes_GastosDESCRIPCION].AsString;
end;

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

function TMontajes_GastosDataTableRules.GetIMPORTEValue: Currency;
begin
  result := DataTable.Fields[idx_Montajes_GastosIMPORTE].AsCurrency;
end;

procedure TMontajes_GastosDataTableRules.SetIMPORTEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Montajes_GastosIMPORTE].AsCurrency := aValue;
end;


initialization
  RegisterDataTableRules(RID_Montajes, TMontajesDataTableRules);
  RegisterDataTableRules(RID_Montajes_Refresh, TMontajes_RefreshDataTableRules);
  RegisterDataTableRules(RID_Montajes_Detalles, TMontajes_DetallesDataTableRules);
  RegisterDataTableRules(RID_Montajes_Gastos, TMontajes_GastosDataTableRules);

end.
