unit schObrasServer_Intf;

interface

uses
  Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schObrasClient_Intf;

const
  { Delta 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_ObrasDelta = '{62D8C337-5D07-492B-AD3A-C6DC6A6D18F4}';
  RID_ObrasEjecucionesDelta = '{5B90BE2C-85C5-49E0-893E-103FA6FD4816}';

type
  { IObrasDelta }
  IObrasDelta = interface(IObras)
  ['{62D8C337-5D07-492B-AD3A-C6DC6A6D18F4}']
    { Property getters and setters }
    function GetOldIDValue : Integer;
    function GetOldID_EMPRESAValue : Integer;
    function GetOldNOMBREValue : String;
    function GetOldCALLEValue : String;
    function GetOldPROVINCIAValue : String;
    function GetOldPOBLACIONValue : String;
    function GetOldCODIGO_POSTALValue : String;
    function GetOldTELEFONOValue : String;
    function GetOldMOVILValue : String;
    function GetOldFAXValue : String;
    function GetOldPERSONA_CONTACTOValue : String;
    function GetOldOBSERVACIONESValue : IROStrings;
    function GetOldID_CLIENTEValue : Integer;
    function GetOldNOMBRE_CLIENTEValue : String;
    function GetOldFECHA_ALTAValue : DateTime;
    function GetOldFECHA_MODIFICACIONValue : DateTime;
    function GetOldUSUARIOValue : String;
    function GetOldID_EJECUCIONValue : Integer;

    { Properties }
    property OldID : Integer read GetOldIDValue;
    property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue;
    property OldNOMBRE : String read GetOldNOMBREValue;
    property OldCALLE : String read GetOldCALLEValue;
    property OldPROVINCIA : String read GetOldPROVINCIAValue;
    property OldPOBLACION : String read GetOldPOBLACIONValue;
    property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue;
    property OldTELEFONO : String read GetOldTELEFONOValue;
    property OldMOVIL : String read GetOldMOVILValue;
    property OldFAX : String read GetOldFAXValue;
    property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue;
    property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
    property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue;
    property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue;
    property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue;
    property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue;
    property OldUSUARIO : String read GetOldUSUARIOValue;
    property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue;
  end;

  { TObrasBusinessProcessorRules }
  TObrasBusinessProcessorRules = class(TDABusinessProcessorRules, IObras, IObrasDelta)
  private
    f_OBSERVACIONES: IROStrings;
    procedure OBSERVACIONES_OnChange(Sender: TObject);
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    function GetIDIsNull: Boolean; virtual;
    function GetOldIDValue: Integer; virtual;
    function GetOldIDIsNull: Boolean; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_EMPRESAValue: Integer; virtual;
    function GetID_EMPRESAIsNull: Boolean; virtual;
    function GetOldID_EMPRESAValue: Integer; virtual;
    function GetOldID_EMPRESAIsNull: Boolean; virtual;
    procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
    procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    function GetOldNOMBREValue: String; virtual;
    function GetOldNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;
    function GetCALLEValue: String; virtual;
    function GetCALLEIsNull: Boolean; virtual;
    function GetOldCALLEValue: String; virtual;
    function GetOldCALLEIsNull: Boolean; virtual;
    procedure SetCALLEValue(const aValue: String); virtual;
    procedure SetCALLEIsNull(const aValue: Boolean); virtual;
    function GetPROVINCIAValue: String; virtual;
    function GetPROVINCIAIsNull: Boolean; virtual;
    function GetOldPROVINCIAValue: String; virtual;
    function GetOldPROVINCIAIsNull: Boolean; virtual;
    procedure SetPROVINCIAValue(const aValue: String); virtual;
    procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual;
    function GetPOBLACIONValue: String; virtual;
    function GetPOBLACIONIsNull: Boolean; virtual;
    function GetOldPOBLACIONValue: String; virtual;
    function GetOldPOBLACIONIsNull: Boolean; virtual;
    procedure SetPOBLACIONValue(const aValue: String); virtual;
    procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual;
    function GetCODIGO_POSTALValue: String; virtual;
    function GetCODIGO_POSTALIsNull: Boolean; virtual;
    function GetOldCODIGO_POSTALValue: String; virtual;
    function GetOldCODIGO_POSTALIsNull: Boolean; virtual;
    procedure SetCODIGO_POSTALValue(const aValue: String); virtual;
    procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual;
    function GetTELEFONOValue: String; virtual;
    function GetTELEFONOIsNull: Boolean; virtual;
    function GetOldTELEFONOValue: String; virtual;
    function GetOldTELEFONOIsNull: Boolean; virtual;
    procedure SetTELEFONOValue(const aValue: String); virtual;
    procedure SetTELEFONOIsNull(const aValue: Boolean); virtual;
    function GetMOVILValue: String; virtual;
    function GetMOVILIsNull: Boolean; virtual;
    function GetOldMOVILValue: String; virtual;
    function GetOldMOVILIsNull: Boolean; virtual;
    procedure SetMOVILValue(const aValue: String); virtual;
    procedure SetMOVILIsNull(const aValue: Boolean); virtual;
    function GetFAXValue: String; virtual;
    function GetFAXIsNull: Boolean; virtual;
    function GetOldFAXValue: String; virtual;
    function GetOldFAXIsNull: Boolean; virtual;
    procedure SetFAXValue(const aValue: String); virtual;
    procedure SetFAXIsNull(const aValue: Boolean); virtual;
    function GetPERSONA_CONTACTOValue: String; virtual;
    function GetPERSONA_CONTACTOIsNull: Boolean; virtual;
    function GetOldPERSONA_CONTACTOValue: String; virtual;
    function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual;
    procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual;
    procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual;
    function GetOBSERVACIONESValue: IROStrings; virtual;
    function GetOBSERVACIONESIsNull: Boolean; virtual;
    function GetOldOBSERVACIONESValue: IROStrings; virtual;
    function GetOldOBSERVACIONESIsNull: Boolean; virtual;
    procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual;
    function GetID_CLIENTEValue: Integer; virtual;
    function GetID_CLIENTEIsNull: Boolean; virtual;
    function GetOldID_CLIENTEValue: Integer; virtual;
    function GetOldID_CLIENTEIsNull: Boolean; virtual;
    procedure SetID_CLIENTEValue(const aValue: Integer); virtual;
    procedure SetID_CLIENTEIsNull(const aValue: Boolean); virtual;
    function GetNOMBRE_CLIENTEValue: String; virtual;
    function GetNOMBRE_CLIENTEIsNull: Boolean; virtual;
    function GetOldNOMBRE_CLIENTEValue: String; virtual;
    function GetOldNOMBRE_CLIENTEIsNull: Boolean; virtual;
    procedure SetNOMBRE_CLIENTEValue(const aValue: String); virtual;
    procedure SetNOMBRE_CLIENTEIsNull(const aValue: Boolean); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    function GetFECHA_ALTAIsNull: Boolean; virtual;
    function GetOldFECHA_ALTAValue: DateTime; virtual;
    function GetOldFECHA_ALTAIsNull: Boolean; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    function GetFECHA_MODIFICACIONIsNull: Boolean; virtual;
    function GetOldFECHA_MODIFICACIONValue: DateTime; virtual;
    function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual;
    function GetUSUARIOValue: String; virtual;
    function GetUSUARIOIsNull: Boolean; virtual;
    function GetOldUSUARIOValue: String; virtual;
    function GetOldUSUARIOIsNull: Boolean; virtual;
    procedure SetUSUARIOValue(const aValue: String); virtual;
    procedure SetUSUARIOIsNull(const aValue: Boolean); virtual;
    function GetID_EJECUCIONValue: Integer; virtual;
    function GetID_EJECUCIONIsNull: Boolean; virtual;
    function GetOldID_EJECUCIONValue: Integer; virtual;
    function GetOldID_EJECUCIONIsNull: Boolean; virtual;
    procedure SetID_EJECUCIONValue(const aValue: Integer); virtual;
    procedure SetID_EJECUCIONIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID : Integer read GetIDValue write SetIDValue;
    property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull;
    property OldID : Integer read GetOldIDValue;
    property OldIDIsNull : Boolean read GetOldIDIsNull;
    property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
    property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull;
    property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue;
    property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull;
    property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property OldNOMBRE : String read GetOldNOMBREValue;
    property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull;
    property CALLE : String read GetCALLEValue write SetCALLEValue;
    property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull;
    property OldCALLE : String read GetOldCALLEValue;
    property OldCALLEIsNull : Boolean read GetOldCALLEIsNull;
    property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue;
    property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull;
    property OldPROVINCIA : String read GetOldPROVINCIAValue;
    property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull;
    property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue;
    property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull;
    property OldPOBLACION : String read GetOldPOBLACIONValue;
    property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull;
    property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue;
    property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull;
    property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue;
    property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull;
    property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue;
    property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull;
    property OldTELEFONO : String read GetOldTELEFONOValue;
    property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull;
    property MOVIL : String read GetMOVILValue write SetMOVILValue;
    property MOVILIsNull : Boolean read GetMOVILIsNull write SetMOVILIsNull;
    property OldMOVIL : String read GetOldMOVILValue;
    property OldMOVILIsNull : Boolean read GetOldMOVILIsNull;
    property FAX : String read GetFAXValue write SetFAXValue;
    property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull;
    property OldFAX : String read GetOldFAXValue;
    property OldFAXIsNull : Boolean read GetOldFAXIsNull;
    property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue;
    property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull;
    property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue;
    property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull;
    property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue;
    property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull;
    property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
    property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull;
    property ID_CLIENTE : Integer read GetID_CLIENTEValue write SetID_CLIENTEValue;
    property ID_CLIENTEIsNull : Boolean read GetID_CLIENTEIsNull write SetID_CLIENTEIsNull;
    property OldID_CLIENTE : Integer read GetOldID_CLIENTEValue;
    property OldID_CLIENTEIsNull : Boolean read GetOldID_CLIENTEIsNull;
    property NOMBRE_CLIENTE : String read GetNOMBRE_CLIENTEValue write SetNOMBRE_CLIENTEValue;
    property NOMBRE_CLIENTEIsNull : Boolean read GetNOMBRE_CLIENTEIsNull write SetNOMBRE_CLIENTEIsNull;
    property OldNOMBRE_CLIENTE : String read GetOldNOMBRE_CLIENTEValue;
    property OldNOMBRE_CLIENTEIsNull : Boolean read GetOldNOMBRE_CLIENTEIsNull;
    property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
    property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue;
    property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull;
    property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
    property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue;
    property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull;
    property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue;
    property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull;
    property OldUSUARIO : String read GetOldUSUARIOValue;
    property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull;
    property ID_EJECUCION : Integer read GetID_EJECUCIONValue write SetID_EJECUCIONValue;
    property ID_EJECUCIONIsNull : Boolean read GetID_EJECUCIONIsNull write SetID_EJECUCIONIsNull;
    property OldID_EJECUCION : Integer read GetOldID_EJECUCIONValue;
    property OldID_EJECUCIONIsNull : Boolean read GetOldID_EJECUCIONIsNull;

  public
    constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
    destructor Destroy; override;

  end;

  { IObrasEjecucionesDelta }
  IObrasEjecucionesDelta = interface(IObrasEjecuciones)
  ['{5B90BE2C-85C5-49E0-893E-103FA6FD4816}']
    { Property getters and setters }
    function GetOldIDValue : Integer;
    function GetOldID_OBRAValue : Integer;
    function GetOldFECHA_INICIOValue : DateTime;
    function GetOldFECHA_FINValue : DateTime;
    function GetOldID_SUBCONTRATAValue : Integer;
    function GetOldNOMBREValue : String;
    function GetOldIMPORTE_GASTOSValue : Currency;
    function GetOldIMPORTE_INGRESOSValue : Currency;
    function GetOldIMPORTE_TOTALValue : Currency;
    function GetOldOBSERVACIONESValue : IROStrings;
    function GetOldFECHA_ALTAValue : DateTime;
    function GetOldFECHA_MODIFICACIONValue : DateTime;

    { Properties }
    property OldID : Integer read GetOldIDValue;
    property OldID_OBRA : Integer read GetOldID_OBRAValue;
    property OldFECHA_INICIO : DateTime read GetOldFECHA_INICIOValue;
    property OldFECHA_FIN : DateTime read GetOldFECHA_FINValue;
    property OldID_SUBCONTRATA : Integer read GetOldID_SUBCONTRATAValue;
    property OldNOMBRE : String read GetOldNOMBREValue;
    property OldIMPORTE_GASTOS : Currency read GetOldIMPORTE_GASTOSValue;
    property OldIMPORTE_INGRESOS : Currency read GetOldIMPORTE_INGRESOSValue;
    property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue;
    property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
    property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue;
    property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue;
  end;

  { TObrasEjecucionesBusinessProcessorRules }
  TObrasEjecucionesBusinessProcessorRules = class(TDABusinessProcessorRules, IObrasEjecuciones, IObrasEjecucionesDelta)
  private
    f_OBSERVACIONES: IROStrings;
    procedure OBSERVACIONES_OnChange(Sender: TObject);
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    function GetIDIsNull: Boolean; virtual;
    function GetOldIDValue: Integer; virtual;
    function GetOldIDIsNull: Boolean; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_OBRAValue: Integer; virtual;
    function GetID_OBRAIsNull: Boolean; virtual;
    function GetOldID_OBRAValue: Integer; virtual;
    function GetOldID_OBRAIsNull: Boolean; virtual;
    procedure SetID_OBRAValue(const aValue: Integer); virtual;
    procedure SetID_OBRAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_INICIOValue: DateTime; virtual;
    function GetFECHA_INICIOIsNull: Boolean; virtual;
    function GetOldFECHA_INICIOValue: DateTime; virtual;
    function GetOldFECHA_INICIOIsNull: Boolean; virtual;
    procedure SetFECHA_INICIOValue(const aValue: DateTime); virtual;
    procedure SetFECHA_INICIOIsNull(const aValue: Boolean); virtual;
    function GetFECHA_FINValue: DateTime; virtual;
    function GetFECHA_FINIsNull: Boolean; virtual;
    function GetOldFECHA_FINValue: DateTime; virtual;
    function GetOldFECHA_FINIsNull: Boolean; virtual;
    procedure SetFECHA_FINValue(const aValue: DateTime); virtual;
    procedure SetFECHA_FINIsNull(const aValue: Boolean); virtual;
    function GetID_SUBCONTRATAValue: Integer; virtual;
    function GetID_SUBCONTRATAIsNull: Boolean; virtual;
    function GetOldID_SUBCONTRATAValue: Integer; virtual;
    function GetOldID_SUBCONTRATAIsNull: Boolean; virtual;
    procedure SetID_SUBCONTRATAValue(const aValue: Integer); virtual;
    procedure SetID_SUBCONTRATAIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    function GetOldNOMBREValue: String; virtual;
    function GetOldNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;
    function GetIMPORTE_GASTOSValue: Currency; virtual;
    function GetIMPORTE_GASTOSIsNull: Boolean; virtual;
    function GetOldIMPORTE_GASTOSValue: Currency; virtual;
    function GetOldIMPORTE_GASTOSIsNull: Boolean; virtual;
    procedure SetIMPORTE_GASTOSValue(const aValue: Currency); virtual;
    procedure SetIMPORTE_GASTOSIsNull(const aValue: Boolean); virtual;
    function GetIMPORTE_INGRESOSValue: Currency; virtual;
    function GetIMPORTE_INGRESOSIsNull: Boolean; virtual;
    function GetOldIMPORTE_INGRESOSValue: Currency; virtual;
    function GetOldIMPORTE_INGRESOSIsNull: Boolean; virtual;
    procedure SetIMPORTE_INGRESOSValue(const aValue: Currency); virtual;
    procedure SetIMPORTE_INGRESOSIsNull(const aValue: Boolean); virtual;
    function GetIMPORTE_TOTALValue: Currency; virtual;
    function GetIMPORTE_TOTALIsNull: Boolean; virtual;
    function GetOldIMPORTE_TOTALValue: Currency; virtual;
    function GetOldIMPORTE_TOTALIsNull: Boolean; virtual;
    procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual;
    procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual;
    function GetOBSERVACIONESValue: IROStrings; virtual;
    function GetOBSERVACIONESIsNull: Boolean; virtual;
    function GetOldOBSERVACIONESValue: IROStrings; virtual;
    function GetOldOBSERVACIONESIsNull: Boolean; virtual;
    procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual;
    function GetFECHA_ALTAValue: DateTime; virtual;
    function GetFECHA_ALTAIsNull: Boolean; virtual;
    function GetOldFECHA_ALTAValue: DateTime; virtual;
    function GetOldFECHA_ALTAIsNull: Boolean; virtual;
    procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual;
    procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual;
    function GetFECHA_MODIFICACIONValue: DateTime; virtual;
    function GetFECHA_MODIFICACIONIsNull: Boolean; virtual;
    function GetOldFECHA_MODIFICACIONValue: DateTime; virtual;
    function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual;
    procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
    procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID : Integer read GetIDValue write SetIDValue;
    property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull;
    property OldID : Integer read GetOldIDValue;
    property OldIDIsNull : Boolean read GetOldIDIsNull;
    property ID_OBRA : Integer read GetID_OBRAValue write SetID_OBRAValue;
    property ID_OBRAIsNull : Boolean read GetID_OBRAIsNull write SetID_OBRAIsNull;
    property OldID_OBRA : Integer read GetOldID_OBRAValue;
    property OldID_OBRAIsNull : Boolean read GetOldID_OBRAIsNull;
    property FECHA_INICIO : DateTime read GetFECHA_INICIOValue write SetFECHA_INICIOValue;
    property FECHA_INICIOIsNull : Boolean read GetFECHA_INICIOIsNull write SetFECHA_INICIOIsNull;
    property OldFECHA_INICIO : DateTime read GetOldFECHA_INICIOValue;
    property OldFECHA_INICIOIsNull : Boolean read GetOldFECHA_INICIOIsNull;
    property FECHA_FIN : DateTime read GetFECHA_FINValue write SetFECHA_FINValue;
    property FECHA_FINIsNull : Boolean read GetFECHA_FINIsNull write SetFECHA_FINIsNull;
    property OldFECHA_FIN : DateTime read GetOldFECHA_FINValue;
    property OldFECHA_FINIsNull : Boolean read GetOldFECHA_FINIsNull;
    property ID_SUBCONTRATA : Integer read GetID_SUBCONTRATAValue write SetID_SUBCONTRATAValue;
    property ID_SUBCONTRATAIsNull : Boolean read GetID_SUBCONTRATAIsNull write SetID_SUBCONTRATAIsNull;
    property OldID_SUBCONTRATA : Integer read GetOldID_SUBCONTRATAValue;
    property OldID_SUBCONTRATAIsNull : Boolean read GetOldID_SUBCONTRATAIsNull;
    property NOMBRE : String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
    property OldNOMBRE : String read GetOldNOMBREValue;
    property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull;
    property IMPORTE_GASTOS : Currency read GetIMPORTE_GASTOSValue write SetIMPORTE_GASTOSValue;
    property IMPORTE_GASTOSIsNull : Boolean read GetIMPORTE_GASTOSIsNull write SetIMPORTE_GASTOSIsNull;
    property OldIMPORTE_GASTOS : Currency read GetOldIMPORTE_GASTOSValue;
    property OldIMPORTE_GASTOSIsNull : Boolean read GetOldIMPORTE_GASTOSIsNull;
    property IMPORTE_INGRESOS : Currency read GetIMPORTE_INGRESOSValue write SetIMPORTE_INGRESOSValue;
    property IMPORTE_INGRESOSIsNull : Boolean read GetIMPORTE_INGRESOSIsNull write SetIMPORTE_INGRESOSIsNull;
    property OldIMPORTE_INGRESOS : Currency read GetOldIMPORTE_INGRESOSValue;
    property OldIMPORTE_INGRESOSIsNull : Boolean read GetOldIMPORTE_INGRESOSIsNull;
    property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue;
    property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull;
    property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue;
    property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull;
    property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue;
    property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull;
    property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue;
    property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull;
    property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue;
    property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
    property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue;
    property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull;
    property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
    property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
    property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue;
    property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull;

  public
    constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
    destructor Destroy; override;

  end;

implementation

uses
  Variants, uROBinaryHelpers, uDAInterfaces;

{ TObrasBusinessProcessorRules }
constructor TObrasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
var
  StrList: TStringList;
begin
  inherited;

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

destructor TObrasBusinessProcessorRules.Destroy;
begin
  inherited;
end;

procedure TObrasBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES] := TStringList(Sender).Text;
end;

function TObrasBusinessProcessorRules.GetIDValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID];
end;

function TObrasBusinessProcessorRules.GetIDIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID]);
end;

function TObrasBusinessProcessorRules.GetOldIDValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID];
end;

function TObrasBusinessProcessorRules.GetOldIDIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID]);
end;

procedure TObrasBusinessProcessorRules.SetIDValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID] := Null;
end;

function TObrasBusinessProcessorRules.GetID_EMPRESAValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA];
end;

function TObrasBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA]);
end;

function TObrasBusinessProcessorRules.GetOldID_EMPRESAValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EMPRESA];
end;

function TObrasBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EMPRESA]);
end;

procedure TObrasBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EMPRESA] := Null;
end;

function TObrasBusinessProcessorRules.GetNOMBREValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE];
end;

function TObrasBusinessProcessorRules.GetNOMBREIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE]);
end;

function TObrasBusinessProcessorRules.GetOldNOMBREValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE];
end;

function TObrasBusinessProcessorRules.GetOldNOMBREIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE]);
end;

procedure TObrasBusinessProcessorRules.SetNOMBREValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE] := Null;
end;

function TObrasBusinessProcessorRules.GetCALLEValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE];
end;

function TObrasBusinessProcessorRules.GetCALLEIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE]);
end;

function TObrasBusinessProcessorRules.GetOldCALLEValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCALLE];
end;

function TObrasBusinessProcessorRules.GetOldCALLEIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCALLE]);
end;

procedure TObrasBusinessProcessorRules.SetCALLEValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCALLE] := Null;
end;

function TObrasBusinessProcessorRules.GetPROVINCIAValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA];
end;

function TObrasBusinessProcessorRules.GetPROVINCIAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA]);
end;

function TObrasBusinessProcessorRules.GetOldPROVINCIAValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPROVINCIA];
end;

function TObrasBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPROVINCIA]);
end;

procedure TObrasBusinessProcessorRules.SetPROVINCIAValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPROVINCIA] := Null;
end;

function TObrasBusinessProcessorRules.GetPOBLACIONValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION];
end;

function TObrasBusinessProcessorRules.GetPOBLACIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION]);
end;

function TObrasBusinessProcessorRules.GetOldPOBLACIONValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPOBLACION];
end;

function TObrasBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPOBLACION]);
end;

procedure TObrasBusinessProcessorRules.SetPOBLACIONValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPOBLACION] := Null;
end;

function TObrasBusinessProcessorRules.GetCODIGO_POSTALValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL];
end;

function TObrasBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL]);
end;

function TObrasBusinessProcessorRules.GetOldCODIGO_POSTALValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCODIGO_POSTAL];
end;

function TObrasBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasCODIGO_POSTAL]);
end;

procedure TObrasBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasCODIGO_POSTAL] := Null;
end;

function TObrasBusinessProcessorRules.GetTELEFONOValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO];
end;

function TObrasBusinessProcessorRules.GetTELEFONOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO]);
end;

function TObrasBusinessProcessorRules.GetOldTELEFONOValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasTELEFONO];
end;

function TObrasBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasTELEFONO]);
end;

procedure TObrasBusinessProcessorRules.SetTELEFONOValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasTELEFONO] := Null;
end;

function TObrasBusinessProcessorRules.GetMOVILValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL];
end;

function TObrasBusinessProcessorRules.GetMOVILIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL]);
end;

function TObrasBusinessProcessorRules.GetOldMOVILValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasMOVIL];
end;

function TObrasBusinessProcessorRules.GetOldMOVILIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasMOVIL]);
end;

procedure TObrasBusinessProcessorRules.SetMOVILValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetMOVILIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasMOVIL] := Null;
end;

function TObrasBusinessProcessorRules.GetFAXValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX];
end;

function TObrasBusinessProcessorRules.GetFAXIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX]);
end;

function TObrasBusinessProcessorRules.GetOldFAXValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFAX];
end;

function TObrasBusinessProcessorRules.GetOldFAXIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFAX]);
end;

procedure TObrasBusinessProcessorRules.SetFAXValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFAX] := Null;
end;

function TObrasBusinessProcessorRules.GetPERSONA_CONTACTOValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO];
end;

function TObrasBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO]);
end;

function TObrasBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPERSONA_CONTACTO];
end;

function TObrasBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasPERSONA_CONTACTO]);
end;

procedure TObrasBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasPERSONA_CONTACTO] := Null;
end;

function TObrasBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
begin
  result := f_OBSERVACIONES;
  result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES];
end;

function TObrasBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES]);
end;

function TObrasBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasOBSERVACIONES];
end;

function TObrasBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasOBSERVACIONES]);
end;

procedure TObrasBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasOBSERVACIONES] := Null;
end;

function TObrasBusinessProcessorRules.GetID_CLIENTEValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE];
end;

function TObrasBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE]);
end;

function TObrasBusinessProcessorRules.GetOldID_CLIENTEValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_CLIENTE];
end;

function TObrasBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_CLIENTE]);
end;

procedure TObrasBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetID_CLIENTEIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_CLIENTE] := Null;
end;

function TObrasBusinessProcessorRules.GetNOMBRE_CLIENTEValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE];
end;

function TObrasBusinessProcessorRules.GetNOMBRE_CLIENTEIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE]);
end;

function TObrasBusinessProcessorRules.GetOldNOMBRE_CLIENTEValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE_CLIENTE];
end;

function TObrasBusinessProcessorRules.GetOldNOMBRE_CLIENTEIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasNOMBRE_CLIENTE]);
end;

procedure TObrasBusinessProcessorRules.SetNOMBRE_CLIENTEValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetNOMBRE_CLIENTEIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasNOMBRE_CLIENTE] := Null;
end;

function TObrasBusinessProcessorRules.GetFECHA_ALTAValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA];
end;

function TObrasBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA]);
end;

function TObrasBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_ALTA];
end;

function TObrasBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_ALTA]);
end;

procedure TObrasBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_ALTA] := Null;
end;

function TObrasBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION];
end;

function TObrasBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION]);
end;

function TObrasBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_MODIFICACION];
end;

function TObrasBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasFECHA_MODIFICACION]);
end;

procedure TObrasBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasFECHA_MODIFICACION] := Null;
end;

function TObrasBusinessProcessorRules.GetUSUARIOValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO];
end;

function TObrasBusinessProcessorRules.GetUSUARIOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO]);
end;

function TObrasBusinessProcessorRules.GetOldUSUARIOValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasUSUARIO];
end;

function TObrasBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasUSUARIO]);
end;

procedure TObrasBusinessProcessorRules.SetUSUARIOValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasUSUARIO] := Null;
end;

function TObrasBusinessProcessorRules.GetID_EJECUCIONValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION];
end;

function TObrasBusinessProcessorRules.GetID_EJECUCIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION]);
end;

function TObrasBusinessProcessorRules.GetOldID_EJECUCIONValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EJECUCION];
end;

function TObrasBusinessProcessorRules.GetOldID_EJECUCIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasID_EJECUCION]);
end;

procedure TObrasBusinessProcessorRules.SetID_EJECUCIONValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION] := aValue;
end;

procedure TObrasBusinessProcessorRules.SetID_EJECUCIONIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasID_EJECUCION] := Null;
end;


{ TObrasEjecucionesBusinessProcessorRules }
constructor TObrasEjecucionesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
var
  StrList: TStringList;
begin
  inherited;

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

destructor TObrasEjecucionesBusinessProcessorRules.Destroy;
begin
  inherited;
end;

procedure TObrasEjecucionesBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES] := TStringList(Sender).Text;
end;

function TObrasEjecucionesBusinessProcessorRules.GetIDValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID];
end;

function TObrasEjecucionesBusinessProcessorRules.GetIDIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIDValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIDIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIDValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetID_OBRAValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA];
end;

function TObrasEjecucionesBusinessProcessorRules.GetID_OBRAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldID_OBRAValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_OBRA];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldID_OBRAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_OBRA]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetID_OBRAValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetID_OBRAIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_OBRA] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_INICIOValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO];
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_INICIOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_INICIOValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_INICIO];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_INICIOIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_INICIO]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_INICIOValue(const aValue: DateTime);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_INICIOIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_INICIO] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_FINValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN];
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_FINIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_FINValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_FIN];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_FINIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_FIN]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_FINValue(const aValue: DateTime);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_FINIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_FIN] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetID_SUBCONTRATAValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA];
end;

function TObrasEjecucionesBusinessProcessorRules.GetID_SUBCONTRATAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldID_SUBCONTRATAValue: Integer;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_SUBCONTRATA];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldID_SUBCONTRATAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesID_SUBCONTRATA]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetID_SUBCONTRATAValue(const aValue: Integer);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetID_SUBCONTRATAIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesID_SUBCONTRATA] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetNOMBREValue: String;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE];
end;

function TObrasEjecucionesBusinessProcessorRules.GetNOMBREIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldNOMBREValue: String;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesNOMBRE];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldNOMBREIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesNOMBRE]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetNOMBREValue(const aValue: String);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesNOMBRE] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_GASTOSValue: Currency;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS];
end;

function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_GASTOSIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_GASTOSValue: Currency;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_GASTOSIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_GASTOSValue(const aValue: Currency);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_GASTOSIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_GASTOS] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_INGRESOSValue: Currency;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS];
end;

function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_INGRESOSIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_INGRESOSValue: Currency;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_INGRESOSIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_INGRESOSValue(const aValue: Currency);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_INGRESOSIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_INGRESOS] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL];
end;

function TObrasEjecucionesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesIMPORTE_TOTAL] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings;
begin
  result := f_OBSERVACIONES;
  result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings;
begin
  result := NewROStrings();
  result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesOBSERVACIONES];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesOBSERVACIONES]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesOBSERVACIONES] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_ALTAValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA];
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_ALTA];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_ALTA]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_ALTA] := Null;
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION];
end;

function TObrasEjecucionesBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]);
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime;
begin
  result := BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION];
end;

function TObrasEjecucionesBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean;
begin
  result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION]);
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime);
begin
  BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION] := aValue;
end;

procedure TObrasEjecucionesBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);
begin
  if aValue then
    BusinessProcessor.CurrentChange.NewValueByName[fld_ObrasEjecucionesFECHA_MODIFICACION] := Null;
end;


initialization
  RegisterBusinessProcessorRules(RID_ObrasDelta, TObrasBusinessProcessorRules);
  RegisterBusinessProcessorRules(RID_ObrasEjecucionesDelta, TObrasEjecucionesBusinessProcessorRules);

end.
