unit schObrasClient_Intf;

interface

uses
  Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf;

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_Obras = '{7118A0A9-F2B1-4187-B7F7-CA2E8F81221D}';
  RID_ObrasEjecucionesPresupuestos = '{6FE092E2-89E9-4D38-A6DB-8CECEC3B5563}';
  RID_ObrasEjecucionesPedidosProveedor = '{4E7A0323-7B92-45E5-9CD8-35C8D09F09DD}';
  RID_ObrasEjecuciones = '{2FAE1229-5737-4C12-B79A-15BBB0B6A5CB}';

  { Data table names }
  nme_Obras = 'Obras';
  nme_ObrasEjecucionesPresupuestos = 'ObrasEjecucionesPresupuestos';
  nme_ObrasEjecucionesPedidosProveedor = 'ObrasEjecucionesPedidosProveedor';
  nme_ObrasEjecuciones = 'ObrasEjecuciones';

  { Obras fields }
  fld_ObrasID = 'ID';
  fld_ObrasID_EMPRESA = 'ID_EMPRESA';
  fld_ObrasNOMBRE = 'NOMBRE';
  fld_ObrasCALLE = 'CALLE';
  fld_ObrasPROVINCIA = 'PROVINCIA';
  fld_ObrasPOBLACION = 'POBLACION';
  fld_ObrasCODIGO_POSTAL = 'CODIGO_POSTAL';
  fld_ObrasTELEFONO = 'TELEFONO';
  fld_ObrasMOVIL = 'MOVIL';
  fld_ObrasFAX = 'FAX';
  fld_ObrasPERSONA_CONTACTO = 'PERSONA_CONTACTO';
  fld_ObrasOBSERVACIONES = 'OBSERVACIONES';
  fld_ObrasID_CLIENTE = 'ID_CLIENTE';
  fld_ObrasNOMBRE_CLIENTE = 'NOMBRE_CLIENTE';
  fld_ObrasFECHA_ALTA = 'FECHA_ALTA';
  fld_ObrasFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ObrasUSUARIO = 'USUARIO';
  fld_ObrasID_EJECUCION = 'ID_EJECUCION';

  { Obras field indexes }
  idx_ObrasID = 0;
  idx_ObrasID_EMPRESA = 1;
  idx_ObrasNOMBRE = 2;
  idx_ObrasCALLE = 3;
  idx_ObrasPROVINCIA = 4;
  idx_ObrasPOBLACION = 5;
  idx_ObrasCODIGO_POSTAL = 6;
  idx_ObrasTELEFONO = 7;
  idx_ObrasMOVIL = 8;
  idx_ObrasFAX = 9;
  idx_ObrasPERSONA_CONTACTO = 10;
  idx_ObrasOBSERVACIONES = 11;
  idx_ObrasID_CLIENTE = 12;
  idx_ObrasNOMBRE_CLIENTE = 13;
  idx_ObrasFECHA_ALTA = 14;
  idx_ObrasFECHA_MODIFICACION = 15;
  idx_ObrasUSUARIO = 16;
  idx_ObrasID_EJECUCION = 17;

  { ObrasEjecucionesPresupuestos fields }
  fld_ObrasEjecucionesPresupuestosID = 'ID';
  fld_ObrasEjecucionesPresupuestosID_EJECUCION = 'ID_EJECUCION';
  fld_ObrasEjecucionesPresupuestosID_PRESUPUESTO = 'ID_PRESUPUESTO';
  fld_ObrasEjecucionesPresupuestosREFERENCIA = 'REFERENCIA';
  fld_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO = 'FECHA_PRESUPUESTO';
  fld_ObrasEjecucionesPresupuestosSITUACION = 'SITUACION';
  fld_ObrasEjecucionesPresupuestosBASE_IMPONIBLE = 'BASE_IMPONIBLE';
  fld_ObrasEjecucionesPresupuestosNOMBRE = 'NOMBRE';

  { ObrasEjecucionesPresupuestos field indexes }
  idx_ObrasEjecucionesPresupuestosID = 0;
  idx_ObrasEjecucionesPresupuestosID_EJECUCION = 1;
  idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO = 2;
  idx_ObrasEjecucionesPresupuestosREFERENCIA = 3;
  idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO = 4;
  idx_ObrasEjecucionesPresupuestosSITUACION = 5;
  idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE = 6;
  idx_ObrasEjecucionesPresupuestosNOMBRE = 7;

  { ObrasEjecucionesPedidosProveedor fields }
  fld_ObrasEjecucionesPedidosProveedorID = 'ID';
  fld_ObrasEjecucionesPedidosProveedorID_EJECUCION = 'ID_EJECUCION';
  fld_ObrasEjecucionesPedidosProveedorID_PEDIDO = 'ID_PEDIDO';
  fld_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO = 'ID_PRESUPUESTO';
  fld_ObrasEjecucionesPedidosProveedorSITUACION = 'SITUACION';
  fld_ObrasEjecucionesPedidosProveedorID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ObrasEjecucionesPedidosProveedorNOMBRE = 'NOMBRE';
  fld_ObrasEjecucionesPedidosProveedorREFERENCIA = 'REFERENCIA';
  fld_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO = 'FECHA_PEDIDO';
  fld_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA = 'FECHA_ENTREGA';
  fld_ObrasEjecucionesPedidosProveedorID_ALMACEN = 'ID_ALMACEN';
  fld_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN = 'NOMBRE_ALMACEN';
  fld_ObrasEjecucionesPedidosProveedorID_OBRA = 'ID_OBRA';
  fld_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA = 'NOMBRE_OBRA';
  fld_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE = 'BASE_IMPONIBLE';

  { ObrasEjecucionesPedidosProveedor field indexes }
  idx_ObrasEjecucionesPedidosProveedorID = 0;
  idx_ObrasEjecucionesPedidosProveedorID_EJECUCION = 1;
  idx_ObrasEjecucionesPedidosProveedorID_PEDIDO = 2;
  idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO = 3;
  idx_ObrasEjecucionesPedidosProveedorSITUACION = 4;
  idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR = 5;
  idx_ObrasEjecucionesPedidosProveedorNOMBRE = 6;
  idx_ObrasEjecucionesPedidosProveedorREFERENCIA = 7;
  idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO = 8;
  idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA = 9;
  idx_ObrasEjecucionesPedidosProveedorID_ALMACEN = 10;
  idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN = 11;
  idx_ObrasEjecucionesPedidosProveedorID_OBRA = 12;
  idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA = 13;
  idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE = 14;

  { ObrasEjecuciones fields }
  fld_ObrasEjecucionesID = 'ID';
  fld_ObrasEjecucionesID_OBRA = 'ID_OBRA';
  fld_ObrasEjecucionesFECHA_INICIO = 'FECHA_INICIO';
  fld_ObrasEjecucionesFECHA_FIN = 'FECHA_FIN';
  fld_ObrasEjecucionesID_SUBCONTRATA = 'ID_SUBCONTRATA';
  fld_ObrasEjecucionesNOMBRE = 'NOMBRE';
  fld_ObrasEjecucionesIMPORTE_GASTOS = 'IMPORTE_GASTOS';
  fld_ObrasEjecucionesIMPORTE_INGRESOS = 'IMPORTE_INGRESOS';
  fld_ObrasEjecucionesIMPORTE_TOTAL = 'IMPORTE_TOTAL';
  fld_ObrasEjecucionesOBSERVACIONES = 'OBSERVACIONES';
  fld_ObrasEjecucionesFECHA_ALTA = 'FECHA_ALTA';
  fld_ObrasEjecucionesFECHA_MODIFICACION = 'FECHA_MODIFICACION';

  { ObrasEjecuciones field indexes }
  idx_ObrasEjecucionesID = 0;
  idx_ObrasEjecucionesID_OBRA = 1;
  idx_ObrasEjecucionesFECHA_INICIO = 2;
  idx_ObrasEjecucionesFECHA_FIN = 3;
  idx_ObrasEjecucionesID_SUBCONTRATA = 4;
  idx_ObrasEjecucionesNOMBRE = 5;
  idx_ObrasEjecucionesIMPORTE_GASTOS = 6;
  idx_ObrasEjecucionesIMPORTE_INGRESOS = 7;
  idx_ObrasEjecucionesIMPORTE_TOTAL = 8;
  idx_ObrasEjecucionesOBSERVACIONES = 9;
  idx_ObrasEjecucionesFECHA_ALTA = 10;
  idx_ObrasEjecucionesFECHA_MODIFICACION = 11;

type
  { IObras }
  IObras = interface(IDAStronglyTypedDataTable)
  ['{B1CC897D-B52E-4FBA-9CB9-E8C221F8EB19}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);
    function GetID_EMPRESAValue: Integer;
    procedure SetID_EMPRESAValue(const aValue: Integer);
    function GetID_EMPRESAIsNull: Boolean;
    procedure SetID_EMPRESAIsNull(const aValue: Boolean);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetNOMBREIsNull: Boolean;
    procedure SetNOMBREIsNull(const aValue: Boolean);
    function GetCALLEValue: String;
    procedure SetCALLEValue(const aValue: String);
    function GetCALLEIsNull: Boolean;
    procedure SetCALLEIsNull(const aValue: Boolean);
    function GetPROVINCIAValue: String;
    procedure SetPROVINCIAValue(const aValue: String);
    function GetPROVINCIAIsNull: Boolean;
    procedure SetPROVINCIAIsNull(const aValue: Boolean);
    function GetPOBLACIONValue: String;
    procedure SetPOBLACIONValue(const aValue: String);
    function GetPOBLACIONIsNull: Boolean;
    procedure SetPOBLACIONIsNull(const aValue: Boolean);
    function GetCODIGO_POSTALValue: String;
    procedure SetCODIGO_POSTALValue(const aValue: String);
    function GetCODIGO_POSTALIsNull: Boolean;
    procedure SetCODIGO_POSTALIsNull(const aValue: Boolean);
    function GetTELEFONOValue: String;
    procedure SetTELEFONOValue(const aValue: String);
    function GetTELEFONOIsNull: Boolean;
    procedure SetTELEFONOIsNull(const aValue: Boolean);
    function GetMOVILValue: String;
    procedure SetMOVILValue(const aValue: String);
    function GetMOVILIsNull: Boolean;
    procedure SetMOVILIsNull(const aValue: Boolean);
    function GetFAXValue: String;
    procedure SetFAXValue(const aValue: String);
    function GetFAXIsNull: Boolean;
    procedure SetFAXIsNull(const aValue: Boolean);
    function GetPERSONA_CONTACTOValue: String;
    procedure SetPERSONA_CONTACTOValue(const aValue: String);
    function GetPERSONA_CONTACTOIsNull: Boolean;
    procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean);
    function GetOBSERVACIONESValue: IROStrings;
    function GetOBSERVACIONESIsNull: Boolean;
    procedure SetOBSERVACIONESIsNull(const aValue: Boolean);
    function GetID_CLIENTEValue: Integer;
    procedure SetID_CLIENTEValue(const aValue: Integer);
    function GetID_CLIENTEIsNull: Boolean;
    procedure SetID_CLIENTEIsNull(const aValue: Boolean);
    function GetNOMBRE_CLIENTEValue: String;
    procedure SetNOMBRE_CLIENTEValue(const aValue: String);
    function GetNOMBRE_CLIENTEIsNull: Boolean;
    procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_ALTAIsNull: Boolean;
    procedure SetFECHA_ALTAIsNull(const aValue: Boolean);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONIsNull: Boolean;
    procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);
    function GetUSUARIOValue: String;
    procedure SetUSUARIOValue(const aValue: String);
    function GetUSUARIOIsNull: Boolean;
    procedure SetUSUARIOIsNull(const aValue: Boolean);
    function GetID_EJECUCIONValue: Integer;
    procedure SetID_EJECUCIONValue(const aValue: Integer);
    function GetID_EJECUCIONIsNull: Boolean;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull;
    property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue;
    property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull;
    property MOVIL: String read GetMOVILValue write SetMOVILValue;
    property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull;
    property FAX: String read GetFAXValue write SetFAXValue;
    property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull;
    property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue;
    property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull;
    property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue;
    property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull;
    property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue;
    property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull;
    property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;
  end;

  { TObrasDataTableRules }
  TObrasDataTableRules = class(TIntfObjectDADataTableRules, IObras)
  private
    f_OBSERVACIONES: IROStrings;
    procedure OBSERVACIONES_OnChange(Sender: TObject);
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetIDIsNull: Boolean; virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    function GetID_EMPRESAIsNull: Boolean; virtual;
    procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;
    function GetCALLEValue: String; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    function GetCALLEIsNull: Boolean; virtual;
    procedure SetCALLEIsNull(const aValue: Boolean); virtual;
    function GetPROVINCIAValue: String; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    function GetPROVINCIAIsNull: Boolean; virtual;
    procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual;
    function GetPOBLACIONValue: String; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    function GetPOBLACIONIsNull: Boolean; virtual;
    procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    function GetCODIGO_POSTALIsNull: Boolean; virtual;
    procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual;
    function GetTELEFONOValue: String; virtual;
    procedure SetTELEFONOValue(const aValue: String); virtual;
    function GetTELEFONOIsNull: Boolean; virtual;
    procedure SetTELEFONOIsNull(const aValue: Boolean); virtual;
    function GetMOVILValue: String; virtual;
    procedure SetMOVILValue(const aValue: String); virtual;
    function GetMOVILIsNull: Boolean; virtual;
    procedure SetMOVILIsNull(const aValue: Boolean); virtual;
    function GetFAXValue: String; virtual;
    procedure SetFAXValue(const aValue: String); virtual;
    function GetFAXIsNull: Boolean; virtual;
    procedure SetFAXIsNull(const aValue: Boolean); virtual;
    function GetPERSONA_CONTACTOValue: String; virtual;
    procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual;
    function GetPERSONA_CONTACTOIsNull: Boolean; virtual;
    procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual;
    function GetOBSERVACIONESValue: IROStrings; virtual;
    function GetOBSERVACIONESIsNull: Boolean; virtual;
    procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual;
    function GetID_CLIENTEValue: Integer; virtual;
    procedure SetID_CLIENTEValue(const aValue: Integer); virtual;
    function GetID_CLIENTEIsNull: Boolean; virtual;
    procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual;
    function GetNOMBRE_CLIENTEValue: String; virtual;
    procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual;
    function GetNOMBRE_CLIENTEIsNull: Boolean; virtual;
    procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_ALTAIsNull: Boolean; virtual;
    procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONIsNull: Boolean; virtual;
    procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual;
    function GetUSUARIOValue: String; virtual;
    procedure SetUSUARIOValue(const aValue: String); virtual;
    function GetUSUARIOIsNull: Boolean; virtual;
    procedure SetUSUARIOIsNull(const aValue: Boolean); virtual;
    function GetID_EJECUCIONValue: Integer; virtual;
    procedure SetID_EJECUCIONValue(const aValue: Integer); virtual;
    function GetID_EJECUCIONIsNull: Boolean; virtual;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property CALLE: String read GetCALLEValue write SetCALLEValue;
    property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull;
    property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue;
    property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull;
    property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue;
    property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull;
    property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull;
    property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue;
    property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull;
    property MOVIL: String read GetMOVILValue write SetMOVILValue;
    property MOVILIsNull: Boolean read GetMOVILIsNull write SetMOVILIsNull;
    property FAX: String read GetFAXValue write SetFAXValue;
    property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull;
    property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue;
    property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull;
    property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue;
    property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull;
    property ID_CLIENTE: Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_CLIENTEIsNull: Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull;
    property NOMBRE_CLIENTE: String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue;
    property NOMBRE_CLIENTEIsNull: Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
    property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue;
    property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull;
    property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;

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

  end;

  { IObrasEjecucionesPresupuestos }
  IObrasEjecucionesPresupuestos = interface(IDAStronglyTypedDataTable)
  ['{83FE8907-FB93-4956-A325-5FCB67B22F87}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);
    function GetID_EJECUCIONValue: Integer;
    procedure SetID_EJECUCIONValue(const aValue: Integer);
    function GetID_EJECUCIONIsNull: Boolean;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean);
    function GetID_PRESUPUESTOValue: Integer;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer);
    function GetID_PRESUPUESTOIsNull: Boolean;
    procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetREFERENCIAIsNull: Boolean;
    procedure SetREFERENCIAIsNull(const aValue: Boolean);
    function GetFECHA_PRESUPUESTOValue: DateTime;
    procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime);
    function GetFECHA_PRESUPUESTOIsNull: Boolean;
    procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean);
    function GetSITUACIONValue: String;
    procedure SetSITUACIONValue(const aValue: String);
    function GetSITUACIONIsNull: Boolean;
    procedure SetSITUACIONIsNull(const aValue: Boolean);
    function GetBASE_IMPONIBLEValue: Currency;
    procedure SetBASE_IMPONIBLEValue(const aValue: Currency);
    function GetBASE_IMPONIBLEIsNull: Boolean;
    procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetNOMBREIsNull: Boolean;
    procedure SetNOMBREIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property FECHA_PRESUPUESTO: DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue;
    property FECHA_PRESUPUESTOIsNull: Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull;
    property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue;
    property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
  end;

  { TObrasEjecucionesPresupuestosDataTableRules }
  TObrasEjecucionesPresupuestosDataTableRules = class(TIntfObjectDADataTableRules, IObrasEjecucionesPresupuestos)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetIDIsNull: Boolean; virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_EJECUCIONValue: Integer; virtual;
    procedure SetID_EJECUCIONValue(const aValue: Integer); virtual;
    function GetID_EJECUCIONIsNull: Boolean; virtual;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual;
    function GetID_PRESUPUESTOValue: Integer; virtual;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual;
    function GetID_PRESUPUESTOIsNull: Boolean; virtual;
    procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetREFERENCIAIsNull: Boolean; virtual;
    procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_PRESUPUESTOValue: DateTime; virtual;
    procedure SetFECHA_PRESUPUESTOValue(const aValue: DateTime); virtual;
    function GetFECHA_PRESUPUESTOIsNull: Boolean; virtual;
    procedure SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean); virtual;
    function GetSITUACIONValue: String; virtual;
    procedure SetSITUACIONValue(const aValue: String); virtual;
    function GetSITUACIONIsNull: Boolean; virtual;
    procedure SetSITUACIONIsNull(const aValue: Boolean); virtual;
    function GetBASE_IMPONIBLEValue: Currency; virtual;
    procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual;
    function GetBASE_IMPONIBLEIsNull: Boolean; virtual;
    procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property FECHA_PRESUPUESTO: DateTime read GetFECHA_PRESUPUESTOValue write SetFECHA_PRESUPUESTOValue;
    property FECHA_PRESUPUESTOIsNull: Boolean read GetFECHA_PRESUPUESTOIsNull write SetFECHA_PRESUPUESTOIsNull;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull;
    property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue;
    property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;

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

  end;

  { IObrasEjecucionesPedidosProveedor }
  IObrasEjecucionesPedidosProveedor = interface(IDAStronglyTypedDataTable)
  ['{8DA89E39-2A6C-4F96-9D65-894A6F2BA2A4}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);
    function GetID_EJECUCIONValue: Integer;
    procedure SetID_EJECUCIONValue(const aValue: Integer);
    function GetID_EJECUCIONIsNull: Boolean;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean);
    function GetID_PEDIDOValue: Integer;
    procedure SetID_PEDIDOValue(const aValue: Integer);
    function GetID_PEDIDOIsNull: Boolean;
    procedure SetID_PEDIDOIsNull(const aValue: Boolean);
    function GetID_PRESUPUESTOValue: Integer;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer);
    function GetID_PRESUPUESTOIsNull: Boolean;
    procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean);
    function GetSITUACIONValue: String;
    procedure SetSITUACIONValue(const aValue: String);
    function GetSITUACIONIsNull: Boolean;
    procedure SetSITUACIONIsNull(const aValue: Boolean);
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetID_PROVEEDORIsNull: Boolean;
    procedure SetID_PROVEEDORIsNull(const aValue: Boolean);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetNOMBREIsNull: Boolean;
    procedure SetNOMBREIsNull(const aValue: Boolean);
    function GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetREFERENCIAIsNull: Boolean;
    procedure SetREFERENCIAIsNull(const aValue: Boolean);
    function GetFECHA_PEDIDOValue: DateTime;
    procedure SetFECHA_PEDIDOValue(const aValue: DateTime);
    function GetFECHA_PEDIDOIsNull: Boolean;
    procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean);
    function GetFECHA_ENTREGAValue: DateTime;
    procedure SetFECHA_ENTREGAValue(const aValue: DateTime);
    function GetFECHA_ENTREGAIsNull: Boolean;
    procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean);
    function GetID_ALMACENValue: Integer;
    procedure SetID_ALMACENValue(const aValue: Integer);
    function GetID_ALMACENIsNull: Boolean;
    procedure SetID_ALMACENIsNull(const aValue: Boolean);
    function GetNOMBRE_ALMACENValue: String;
    procedure SetNOMBRE_ALMACENValue(const aValue: String);
    function GetNOMBRE_ALMACENIsNull: Boolean;
    procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean);
    function GetID_OBRAValue: Integer;
    procedure SetID_OBRAValue(const aValue: Integer);
    function GetID_OBRAIsNull: Boolean;
    procedure SetID_OBRAIsNull(const aValue: Boolean);
    function GetNOMBRE_OBRAValue: String;
    procedure SetNOMBRE_OBRAValue(const aValue: String);
    function GetNOMBRE_OBRAIsNull: Boolean;
    procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean);
    function GetBASE_IMPONIBLEValue: Currency;
    procedure SetBASE_IMPONIBLEValue(const aValue: Currency);
    function GetBASE_IMPONIBLEIsNull: Boolean;
    procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;
    property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
    property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue;
    property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull;
    property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue;
    property FECHA_ENTREGAIsNull: Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull;
    property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue;
    property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull;
    property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue;
    property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull;
    property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue;
    property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull;
    property NOMBRE_OBRA: String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue;
    property NOMBRE_OBRAIsNull: Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull;
    property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue;
    property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull;
  end;

  { TObrasEjecucionesPedidosProveedorDataTableRules }
  TObrasEjecucionesPedidosProveedorDataTableRules = class(TIntfObjectDADataTableRules, IObrasEjecucionesPedidosProveedor)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetIDIsNull: Boolean; virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_EJECUCIONValue: Integer; virtual;
    procedure SetID_EJECUCIONValue(const aValue: Integer); virtual;
    function GetID_EJECUCIONIsNull: Boolean; virtual;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual;
    function GetID_PEDIDOValue: Integer; virtual;
    procedure SetID_PEDIDOValue(const aValue: Integer); virtual;
    function GetID_PEDIDOIsNull: Boolean; virtual;
    procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual;
    function GetID_PRESUPUESTOValue: Integer; virtual;
    procedure SetID_PRESUPUESTOValue(const aValue: Integer); virtual;
    function GetID_PRESUPUESTOIsNull: Boolean; virtual;
    procedure SetID_PRESUPUESTOIsNull(const aValue: Boolean); virtual;
    function GetSITUACIONValue: String; virtual;
    procedure SetSITUACIONValue(const aValue: String); virtual;
    function GetSITUACIONIsNull: Boolean; virtual;
    procedure SetSITUACIONIsNull(const aValue: Boolean); virtual;
    function GetID_PROVEEDORValue: Integer; virtual;
    procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
    function GetID_PROVEEDORIsNull: Boolean; virtual;
    procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;
    function GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetREFERENCIAIsNull: Boolean; virtual;
    procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_PEDIDOValue: DateTime; virtual;
    procedure SetFECHA_PEDIDOValue(const aValue: DateTime); virtual;
    function GetFECHA_PEDIDOIsNull: Boolean; virtual;
    procedure SetFECHA_PEDIDOIsNull(const aValue: Boolean); virtual;
    function GetFECHA_ENTREGAValue: DateTime; virtual;
    procedure SetFECHA_ENTREGAValue(const aValue: DateTime); virtual;
    function GetFECHA_ENTREGAIsNull: Boolean; virtual;
    procedure SetFECHA_ENTREGAIsNull(const aValue: Boolean); virtual;
    function GetID_ALMACENValue: Integer; virtual;
    procedure SetID_ALMACENValue(const aValue: Integer); virtual;
    function GetID_ALMACENIsNull: Boolean; virtual;
    procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual;
    function GetNOMBRE_ALMACENValue: String; virtual;
    procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual;
    function GetNOMBRE_ALMACENIsNull: Boolean; virtual;
    procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual;
    function GetID_OBRAValue: Integer; virtual;
    procedure SetID_OBRAValue(const aValue: Integer); virtual;
    function GetID_OBRAIsNull: Boolean; virtual;
    procedure SetID_OBRAIsNull(const aValue: Boolean); virtual;
    function GetNOMBRE_OBRAValue: String; virtual;
    procedure SetNOMBRE_OBRAValue(const aValue: String); virtual;
    function GetNOMBRE_OBRAIsNull: Boolean; virtual;
    procedure SetNOMBRE_OBRAIsNull(const aValue: Boolean); virtual;
    function GetBASE_IMPONIBLEValue: Currency; virtual;
    procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual;
    function GetBASE_IMPONIBLEIsNull: Boolean; virtual;
    procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_EJECUCION: Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull: Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;
    property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue;
    property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull;
    property ID_PRESUPUESTO: Integer read GetID_PRESUPUESTOValue write SetID_PRESUPUESTOValue;
    property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull;
    property SITUACION: String read GetSITUACIONValue write SetSITUACIONValue;
    property SITUACIONIsNull: Boolean read GetSITUACIONIsNull write SetSITUACIONIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property FECHA_PEDIDO: DateTime read GetFECHA_PEDIDOValue write SetFECHA_PEDIDOValue;
    property FECHA_PEDIDOIsNull: Boolean read GetFECHA_PEDIDOIsNull write SetFECHA_PEDIDOIsNull;
    property FECHA_ENTREGA: DateTime read GetFECHA_ENTREGAValue write SetFECHA_ENTREGAValue;
    property FECHA_ENTREGAIsNull: Boolean read GetFECHA_ENTREGAIsNull write SetFECHA_ENTREGAIsNull;
    property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue;
    property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull;
    property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue;
    property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull;
    property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue;
    property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull;
    property NOMBRE_OBRA: String read GetNOMBRE_OBRAValue write SetNOMBRE_OBRAValue;
    property NOMBRE_OBRAIsNull: Boolean read GetNOMBRE_OBRAIsNull write SetNOMBRE_OBRAIsNull;
    property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue;
    property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull;

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

  end;

  { IObrasEjecuciones }
  IObrasEjecuciones = interface(IDAStronglyTypedDataTable)
  ['{B9C7F494-93F0-46C9-B23E-9E65F615F4A4}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);
    function GetID_OBRAValue: Integer;
    procedure SetID_OBRAValue(const aValue: Integer);
    function GetID_OBRAIsNull: Boolean;
    procedure SetID_OBRAIsNull(const aValue: Boolean);
    function GetFECHA_INICIOValue: DateTime;
    procedure SetFECHA_INICIOValue(const aValue: DateTime);
    function GetFECHA_INICIOIsNull: Boolean;
    procedure SetFECHA_INICIOIsNull(const aValue: Boolean);
    function GetFECHA_FINValue: DateTime;
    procedure SetFECHA_FINValue(const aValue: DateTime);
    function GetFECHA_FINIsNull: Boolean;
    procedure SetFECHA_FINIsNull(const aValue: Boolean);
    function GetID_SUBCONTRATAValue: Integer;
    procedure SetID_SUBCONTRATAValue(const aValue: Integer);
    function GetID_SUBCONTRATAIsNull: Boolean;
    procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetNOMBREIsNull: Boolean;
    procedure SetNOMBREIsNull(const aValue: Boolean);
    function GetIMPORTE_GASTOSValue: Currency;
    procedure SetIMPORTE_GASTOSValue(const aValue: Currency);
    function GetIMPORTE_GASTOSIsNull: Boolean;
    procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean);
    function GetIMPORTE_INGRESOSValue: Currency;
    procedure SetIMPORTE_INGRESOSValue(const aValue: Currency);
    function GetIMPORTE_INGRESOSIsNull: Boolean;
    procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean);
    function GetIMPORTE_TOTALValue: Currency;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency);
    function GetIMPORTE_TOTALIsNull: Boolean;
    procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean);
    function GetOBSERVACIONESValue: IROStrings;
    function GetOBSERVACIONESIsNull: Boolean;
    procedure SetOBSERVACIONESIsNull(const aValue: Boolean);
    function GetFECHA_ALTAValue: DateTime;
    procedure SetFECHA_ALTAValue(const aValue: DateTime);
    function GetFECHA_ALTAIsNull: Boolean;
    procedure SetFECHA_ALTAIsNull(const aValue: Boolean);
    function GetFECHA_MODIFICACIONValue: DateTime;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
    function GetFECHA_MODIFICACIONIsNull: Boolean;
    procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue;
    property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull;
    property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_INICIOIsNull: Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull;
    property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    property FECHA_FINIsNull: Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull;
    property ID_SUBCONTRATA: Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue;
    property ID_SUBCONTRATAIsNull: Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property IMPORTE_GASTOS: Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue;
    property IMPORTE_GASTOSIsNull: Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull;
    property IMPORTE_INGRESOS: Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue;
    property IMPORTE_INGRESOSIsNull: Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull;
    property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
    property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue;
    property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
  end;

  { TObrasEjecucionesDataTableRules }
  TObrasEjecucionesDataTableRules = class(TIntfObjectDADataTableRules, IObrasEjecuciones)
  private
    f_OBSERVACIONES: IROStrings;
    procedure OBSERVACIONES_OnChange(Sender: TObject);
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetIDIsNull: Boolean; virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_OBRAValue: Integer; virtual;
    procedure SetID_OBRAValue(const aValue: Integer); virtual;
    function GetID_OBRAIsNull: Boolean; virtual;
    procedure SetID_OBRAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_INICIOValue: DateTime; virtual;
    procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual;
    function GetFECHA_INICIOIsNull: Boolean; virtual;
    procedure SetFECHA_INICIOIsNull(const aValue: Boolean); virtual;
    function GetFECHA_FINValue: DateTime; virtual;
    procedure SetFECHA_FINValue(const aValue: DateTime); virtual;
    function GetFECHA_FINIsNull: Boolean; virtual;
    procedure SetFECHA_FINIsNull(const aValue: Boolean); virtual;
    function GetID_SUBCONTRATAValue: Integer; virtual;
    procedure SetID_SUBCONTRATAValue(const aValue: Integer); virtual;
    function GetID_SUBCONTRATAIsNull: Boolean; virtual;
    procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;
    function GetIMPORTE_GASTOSValue: Currency; virtual;
    procedure SetIMPORTE_GASTOSValue(const aValue: Currency); virtual;
    function GetIMPORTE_GASTOSIsNull: Boolean; virtual;
    procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean); virtual;
    function GetIMPORTE_INGRESOSValue: Currency; virtual;
    procedure SetIMPORTE_INGRESOSValue(const aValue: Currency); virtual;
    function GetIMPORTE_INGRESOSIsNull: Boolean; virtual;
    procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); virtual;
    function GetIMPORTE_TOTALValue: Currency; virtual;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
    function GetIMPORTE_TOTALIsNull: Boolean; virtual;
    procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual;
    function GetOBSERVACIONESValue: IROStrings; virtual;
    function GetOBSERVACIONESIsNull: Boolean; virtual;
    procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    function GetFECHA_ALTAIsNull: Boolean; virtual;
    procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    function GetFECHA_MODIFICACIONIsNull: Boolean; virtual;
    procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_OBRA: Integer read GetID_OBRAValue write SetID_OBRAValue;
    property ID_OBRAIsNull: Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull;
    property FECHA_INICIO: DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_INICIOIsNull: Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull;
    property FECHA_FIN: DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    property FECHA_FINIsNull: Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull;
    property ID_SUBCONTRATA: Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue;
    property ID_SUBCONTRATAIsNull: Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property IMPORTE_GASTOS: Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue;
    property IMPORTE_GASTOSIsNull: Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull;
    property IMPORTE_INGRESOS: Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue;
    property IMPORTE_INGRESOSIsNull: Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull;
    property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
    property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue;
    property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull;
    property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
    property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;

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

  end;

implementation

uses Variants, uROBinaryHelpers;

{ TObrasDataTableRules }
constructor TObrasDataTableRules.Create(aDataTable: TDADataTable);
var
  StrList: TStringList;
begin
  inherited;

  StrList := TStringList.Create;
  StrList.OnChange := OBSERVACIONES_OnChange;
  f_OBSERVACIONES := NewROStrings(StrList,True);
end;

destructor TObrasDataTableRules.Destroy;
begin
  inherited;
end;

procedure TObrasDataTableRules.OBSERVACIONES_OnChange(Sender: TObject);
begin
  if DataTable.Editing then DataTable.Fields[idx_ObrasOBSERVACIONES].AsVariant := TStringList(Sender).Text;
end;

function TObrasDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasID].AsInteger;
end;

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

function TObrasDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasID].IsNull;
end;

procedure TObrasDataTableRules.SetIDIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasID].AsVariant := Null;
end;

function TObrasDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasID_EMPRESA].AsInteger;
end;

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

function TObrasDataTableRules.GetID_EMPRESAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasID_EMPRESA].IsNull;
end;

procedure TObrasDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasID_EMPRESA].AsVariant := Null;
end;

function TObrasDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ObrasNOMBRE].AsString;
end;

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

function TObrasDataTableRules.GetNOMBREIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasNOMBRE].IsNull;
end;

procedure TObrasDataTableRules.SetNOMBREIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasNOMBRE].AsVariant := Null;
end;

function TObrasDataTableRules.GetCALLEValue: String;
begin
  result := DataTable.Fields[idx_ObrasCALLE].AsString;
end;

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

function TObrasDataTableRules.GetCALLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasCALLE].IsNull;
end;

procedure TObrasDataTableRules.SetCALLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasCALLE].AsVariant := Null;
end;

function TObrasDataTableRules.GetPROVINCIAValue: String;
begin
  result := DataTable.Fields[idx_ObrasPROVINCIA].AsString;
end;

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

function TObrasDataTableRules.GetPROVINCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasPROVINCIA].IsNull;
end;

procedure TObrasDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasPROVINCIA].AsVariant := Null;
end;

function TObrasDataTableRules.GetPOBLACIONValue: String;
begin
  result := DataTable.Fields[idx_ObrasPOBLACION].AsString;
end;

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

function TObrasDataTableRules.GetPOBLACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasPOBLACION].IsNull;
end;

procedure TObrasDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasPOBLACION].AsVariant := Null;
end;

function TObrasDataTableRules.GetCODIGO_POSTALValue: String;
begin
  result := DataTable.Fields[idx_ObrasCODIGO_POSTAL].AsString;
end;

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

function TObrasDataTableRules.GetCODIGO_POSTALIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasCODIGO_POSTAL].IsNull;
end;

procedure TObrasDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasCODIGO_POSTAL].AsVariant := Null;
end;

function TObrasDataTableRules.GetTELEFONOValue: String;
begin
  result := DataTable.Fields[idx_ObrasTELEFONO].AsString;
end;

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

function TObrasDataTableRules.GetTELEFONOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasTELEFONO].IsNull;
end;

procedure TObrasDataTableRules.SetTELEFONOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasTELEFONO].AsVariant := Null;
end;

function TObrasDataTableRules.GetMOVILValue: String;
begin
  result := DataTable.Fields[idx_ObrasMOVIL].AsString;
end;

procedure TObrasDataTableRules.SetMOVILValue(const aValue: String);
begin
  DataTable.Fields[idx_ObrasMOVIL].AsString := aValue;
end;

function TObrasDataTableRules.GetMOVILIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasMOVIL].IsNull;
end;

procedure TObrasDataTableRules.SetMOVILIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasMOVIL].AsVariant := Null;
end;

function TObrasDataTableRules.GetFAXValue: String;
begin
  result := DataTable.Fields[idx_ObrasFAX].AsString;
end;

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

function TObrasDataTableRules.GetFAXIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasFAX].IsNull;
end;

procedure TObrasDataTableRules.SetFAXIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasFAX].AsVariant := Null;
end;

function TObrasDataTableRules.GetPERSONA_CONTACTOValue: String;
begin
  result := DataTable.Fields[idx_ObrasPERSONA_CONTACTO].AsString;
end;

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

function TObrasDataTableRules.GetPERSONA_CONTACTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasPERSONA_CONTACTO].IsNull;
end;

procedure TObrasDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasPERSONA_CONTACTO].AsVariant := Null;
end;

function TObrasDataTableRules.GetOBSERVACIONESValue: IROStrings;
begin
  result := f_OBSERVACIONES;
  result.Text := DataTable.Fields[idx_ObrasOBSERVACIONES].AsString;
end;

function TObrasDataTableRules.GetOBSERVACIONESIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasOBSERVACIONES].IsNull;
end;

procedure TObrasDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasOBSERVACIONES].AsVariant := Null;
end;

function TObrasDataTableRules.GetID_CLIENTEValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasID_CLIENTE].AsInteger;
end;

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

function TObrasDataTableRules.GetID_CLIENTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasID_CLIENTE].IsNull;
end;

procedure TObrasDataTableRules.SetID_CLIENTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasID_CLIENTE].AsVariant := Null;
end;

function TObrasDataTableRules.GetNOMBRE_CLIENTEValue: String;
begin
  result := DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].AsString;
end;

procedure TObrasDataTableRules.SetNOMBRE_CLIENTEValue(const aValue: String);
begin
  DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].AsString := aValue;
end;

function TObrasDataTableRules.GetNOMBRE_CLIENTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].IsNull;
end;

procedure TObrasDataTableRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasNOMBRE_CLIENTE].AsVariant := Null;
end;

function TObrasDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasFECHA_ALTA].AsDateTime;
end;

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

function TObrasDataTableRules.GetFECHA_ALTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasFECHA_ALTA].IsNull;
end;

procedure TObrasDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasFECHA_ALTA].AsVariant := Null;
end;

function TObrasDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasFECHA_MODIFICACION].AsDateTime;
end;

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

function TObrasDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasFECHA_MODIFICACION].IsNull;
end;

procedure TObrasDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasFECHA_MODIFICACION].AsVariant := Null;
end;

function TObrasDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ObrasUSUARIO].AsString;
end;

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

function TObrasDataTableRules.GetUSUARIOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasUSUARIO].IsNull;
end;

procedure TObrasDataTableRules.SetUSUARIOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasUSUARIO].AsVariant := Null;
end;

function TObrasDataTableRules.GetID_EJECUCIONValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasID_EJECUCION].AsInteger;
end;

procedure TObrasDataTableRules.SetID_EJECUCIONValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasID_EJECUCION].AsInteger := aValue;
end;

function TObrasDataTableRules.GetID_EJECUCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasID_EJECUCION].IsNull;
end;

procedure TObrasDataTableRules.SetID_EJECUCIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasID_EJECUCION].AsVariant := Null;
end;


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

destructor TObrasEjecucionesPresupuestosDataTableRules.Destroy;
begin
  inherited;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].AsInteger;
end;

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

function TObrasEjecucionesPresupuestosDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetIDIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosID].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetID_EJECUCIONValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].AsInteger;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_EJECUCIONValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].AsInteger := aValue;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetID_EJECUCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_EJECUCIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_EJECUCION].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetID_PRESUPUESTOValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].AsInteger;
end;

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

function TObrasEjecucionesPresupuestosDataTableRules.GetID_PRESUPUESTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosID_PRESUPUESTO].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].AsString;
end;

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

function TObrasEjecucionesPresupuestosDataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosREFERENCIA].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetFECHA_PRESUPUESTOValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].AsDateTime;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetFECHA_PRESUPUESTOValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].AsDateTime := aValue;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetFECHA_PRESUPUESTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetFECHA_PRESUPUESTOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosFECHA_PRESUPUESTO].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetSITUACIONValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].AsString;
end;

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

function TObrasEjecucionesPresupuestosDataTableRules.GetSITUACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetSITUACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosSITUACION].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetBASE_IMPONIBLEValue: Currency;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].AsCurrency;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].AsCurrency := aValue;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetBASE_IMPONIBLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosBASE_IMPONIBLE].AsVariant := Null;
end;

function TObrasEjecucionesPresupuestosDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].AsString;
end;

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

function TObrasEjecucionesPresupuestosDataTableRules.GetNOMBREIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].IsNull;
end;

procedure TObrasEjecucionesPresupuestosDataTableRules.SetNOMBREIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPresupuestosNOMBRE].AsVariant := Null;
end;


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

destructor TObrasEjecucionesPedidosProveedorDataTableRules.Destroy;
begin
  inherited;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].AsInteger;
end;

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

function TObrasEjecucionesPedidosProveedorDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetIDIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_EJECUCIONValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].AsInteger;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_EJECUCIONValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].AsInteger := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_EJECUCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_EJECUCIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_EJECUCION].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PEDIDOValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].AsInteger;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PEDIDOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].AsInteger := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PEDIDOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PEDIDO].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PRESUPUESTOValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].AsInteger;
end;

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

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PRESUPUESTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PRESUPUESTOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PRESUPUESTO].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetSITUACIONValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].AsString;
end;

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

function TObrasEjecucionesPedidosProveedorDataTableRules.GetSITUACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetSITUACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorSITUACION].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].AsInteger;
end;

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

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_PROVEEDOR].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].AsString;
end;

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

function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBREIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].AsString;
end;

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

function TObrasEjecucionesPedidosProveedorDataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorREFERENCIA].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_PEDIDOValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].AsDateTime;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_PEDIDOValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].AsDateTime := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_PEDIDOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_PEDIDOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_PEDIDO].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_ENTREGAValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].AsDateTime;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_ENTREGAValue(const aValue: DateTime);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].AsDateTime := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetFECHA_ENTREGAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetFECHA_ENTREGAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorFECHA_ENTREGA].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_ALMACENValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].AsInteger;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_ALMACENValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].AsInteger := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_ALMACENIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_ALMACEN].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_ALMACENValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].AsString;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].AsString := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_ALMACENIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_ALMACEN].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_OBRAValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].AsInteger;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_OBRAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].AsInteger := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetID_OBRAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetID_OBRAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorID_OBRA].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_OBRAValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].AsString;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_OBRAValue(const aValue: String);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].AsString := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetNOMBRE_OBRAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetNOMBRE_OBRAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorNOMBRE_OBRA].AsVariant := Null;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetBASE_IMPONIBLEValue: Currency;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].AsCurrency;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].AsCurrency := aValue;
end;

function TObrasEjecucionesPedidosProveedorDataTableRules.GetBASE_IMPONIBLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].IsNull;
end;

procedure TObrasEjecucionesPedidosProveedorDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesPedidosProveedorBASE_IMPONIBLE].AsVariant := Null;
end;


{ TObrasEjecucionesDataTableRules }
constructor TObrasEjecucionesDataTableRules.Create(aDataTable: TDADataTable);
var
  StrList: TStringList;
begin
  inherited;

  StrList := TStringList.Create;
  StrList.OnChange := OBSERVACIONES_OnChange;
  f_OBSERVACIONES := NewROStrings(StrList,True);
end;

destructor TObrasEjecucionesDataTableRules.Destroy;
begin
  inherited;
end;

procedure TObrasEjecucionesDataTableRules.OBSERVACIONES_OnChange(Sender: TObject);
begin
  if DataTable.Editing then DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].AsVariant := TStringList(Sender).Text;
end;

function TObrasEjecucionesDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesID].AsInteger;
end;

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

function TObrasEjecucionesDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesID].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetIDIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesID].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetID_OBRAValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesID_OBRA].AsInteger;
end;

procedure TObrasEjecucionesDataTableRules.SetID_OBRAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesID_OBRA].AsInteger := aValue;
end;

function TObrasEjecucionesDataTableRules.GetID_OBRAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesID_OBRA].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetID_OBRAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesID_OBRA].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetFECHA_INICIOValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].AsDateTime;
end;

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

function TObrasEjecucionesDataTableRules.GetFECHA_INICIOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetFECHA_INICIOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesFECHA_INICIO].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetFECHA_FINValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].AsDateTime;
end;

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

function TObrasEjecucionesDataTableRules.GetFECHA_FINIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetFECHA_FINIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesFECHA_FIN].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetID_SUBCONTRATAValue: Integer;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].AsInteger;
end;

procedure TObrasEjecucionesDataTableRules.SetID_SUBCONTRATAValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].AsInteger := aValue;
end;

function TObrasEjecucionesDataTableRules.GetID_SUBCONTRATAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetID_SUBCONTRATAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesID_SUBCONTRATA].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesNOMBRE].AsString;
end;

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

function TObrasEjecucionesDataTableRules.GetNOMBREIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesNOMBRE].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetNOMBREIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesNOMBRE].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetIMPORTE_GASTOSValue: Currency;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].AsCurrency;
end;

procedure TObrasEjecucionesDataTableRules.SetIMPORTE_GASTOSValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].AsCurrency := aValue;
end;

function TObrasEjecucionesDataTableRules.GetIMPORTE_GASTOSIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetIMPORTE_GASTOSIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesIMPORTE_GASTOS].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetIMPORTE_INGRESOSValue: Currency;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].AsCurrency;
end;

procedure TObrasEjecucionesDataTableRules.SetIMPORTE_INGRESOSValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].AsCurrency := aValue;
end;

function TObrasEjecucionesDataTableRules.GetIMPORTE_INGRESOSIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetIMPORTE_INGRESOSIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesIMPORTE_INGRESOS].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetIMPORTE_TOTALValue: Currency;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].AsCurrency;
end;

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

function TObrasEjecucionesDataTableRules.GetIMPORTE_TOTALIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesIMPORTE_TOTAL].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetOBSERVACIONESValue: IROStrings;
begin
  result := f_OBSERVACIONES;
  result.Text := DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].AsString;
end;

function TObrasEjecucionesDataTableRules.GetOBSERVACIONESIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesOBSERVACIONES].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].AsDateTime;
end;

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

function TObrasEjecucionesDataTableRules.GetFECHA_ALTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesFECHA_ALTA].AsVariant := Null;
end;

function TObrasEjecucionesDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].AsDateTime;
end;

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

function TObrasEjecucionesDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].IsNull;
end;

procedure TObrasEjecucionesDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ObrasEjecucionesFECHA_MODIFICACION].AsVariant := Null;
end;


initialization
  RegisterDataTableRules(RID_Obras, TObrasDataTableRules);
  RegisterDataTableRules(RID_ObrasEjecucionesPresupuestos, TObrasEjecucionesPresupuestosDataTableRules);
  RegisterDataTableRules(RID_ObrasEjecucionesPedidosProveedor, TObrasEjecucionesPedidosProveedorDataTableRules);
  RegisterDataTableRules(RID_ObrasEjecuciones, TObrasEjecucionesDataTableRules);

end.
