unit schArticulosClient_Intf;

interface

uses
  Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, 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_ExisteImagen = '{17B1E5DC-0839-4F73-A6CE-1E961327B343}';
  RID_Articulos = '{2149AC69-F867-42DA-8AED-68F469111FD5}';
  RID_ArticulosParaCliente = '{E4F0E298-DAFE-4330-B4DD-3C04505B273A}';

  { Data table names }
  nme_ExisteImagen = 'ExisteImagen';
  nme_Articulos = 'Articulos';
  nme_ArticulosParaCliente = 'ArticulosParaCliente';

  { ExisteImagen fields }
  fld_ExisteImagenID = 'ID';

  { ExisteImagen field indexes }
  idx_ExisteImagenID = 0;

  { Articulos fields }
  fld_ArticulosID = 'ID';
  fld_ArticulosID_EMPRESA = 'ID_EMPRESA';
  fld_ArticulosREFERENCIA = 'REFERENCIA';
  fld_ArticulosDESCRIPCION = 'DESCRIPCION';
  fld_ArticulosFAMILIA = 'FAMILIA';
  fld_ArticulosIMAGEN = 'IMAGEN';
  fld_ArticulosCOMISIONABLE = 'COMISIONABLE';
  fld_ArticulosFECHA_ALTA = 'FECHA_ALTA';
  fld_ArticulosFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ArticulosUSUARIO = 'USUARIO';
  fld_ArticulosREFERENCIA_PROV = 'REFERENCIA_PROV';
  fld_ArticulosPRECIO_COSTE = 'PRECIO_COSTE';
  fld_ArticulosPRECIO_PORTE = 'PRECIO_PORTE';
  fld_ArticulosDESCUENTO = 'DESCUENTO';
  fld_ArticulosPRECIO_NETO = 'PRECIO_NETO';
  fld_ArticulosPRECIO_PVP = 'PRECIO_PVP';
  fld_ArticulosINVENTARIABLE = 'INVENTARIABLE';
  fld_ArticulosID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ArticulosNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
  fld_ArticulosELIMINADO = 'ELIMINADO';

  { Articulos field indexes }
  idx_ArticulosID = 0;
  idx_ArticulosID_EMPRESA = 1;
  idx_ArticulosREFERENCIA = 2;
  idx_ArticulosDESCRIPCION = 3;
  idx_ArticulosFAMILIA = 4;
  idx_ArticulosIMAGEN = 5;
  idx_ArticulosCOMISIONABLE = 6;
  idx_ArticulosFECHA_ALTA = 7;
  idx_ArticulosFECHA_MODIFICACION = 8;
  idx_ArticulosUSUARIO = 9;
  idx_ArticulosREFERENCIA_PROV = 10;
  idx_ArticulosPRECIO_COSTE = 11;
  idx_ArticulosPRECIO_PORTE = 12;
  idx_ArticulosDESCUENTO = 13;
  idx_ArticulosPRECIO_NETO = 14;
  idx_ArticulosPRECIO_PVP = 15;
  idx_ArticulosINVENTARIABLE = 16;
  idx_ArticulosID_PROVEEDOR = 17;
  idx_ArticulosNOMBRE_PROVEEDOR = 18;
  idx_ArticulosELIMINADO = 19;

  { ArticulosParaCliente fields }
  fld_ArticulosParaClienteID = 'ID';
  fld_ArticulosParaClienteID_EMPRESA = 'ID_EMPRESA';
  fld_ArticulosParaClienteREFERENCIA = 'REFERENCIA';
  fld_ArticulosParaClienteDESCRIPCION = 'DESCRIPCION';
  fld_ArticulosParaClienteFAMILIA = 'FAMILIA';
  fld_ArticulosParaClienteIMAGEN = 'IMAGEN';
  fld_ArticulosParaClienteCOMISIONABLE = 'COMISIONABLE';
  fld_ArticulosParaClienteFECHA_ALTA = 'FECHA_ALTA';
  fld_ArticulosParaClienteFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ArticulosParaClienteUSUARIO = 'USUARIO';
  fld_ArticulosParaClienteREFERENCIA_PROV = 'REFERENCIA_PROV';
  fld_ArticulosParaClientePRECIO_COSTE = 'PRECIO_COSTE';
  fld_ArticulosParaClientePRECIO_PORTE = 'PRECIO_PORTE';
  fld_ArticulosParaClienteDESCUENTO = 'DESCUENTO';
  fld_ArticulosParaClientePRECIO_NETO = 'PRECIO_NETO';
  fld_ArticulosParaClientePRECIO_PVP = 'PRECIO_PVP';
  fld_ArticulosParaClienteINVENTARIABLE = 'INVENTARIABLE';
  fld_ArticulosParaClienteID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ArticulosParaClienteNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
  fld_ArticulosParaClienteELIMINADO = 'ELIMINADO';

  { ArticulosParaCliente field indexes }
  idx_ArticulosParaClienteID = 0;
  idx_ArticulosParaClienteID_EMPRESA = 1;
  idx_ArticulosParaClienteREFERENCIA = 2;
  idx_ArticulosParaClienteDESCRIPCION = 3;
  idx_ArticulosParaClienteFAMILIA = 4;
  idx_ArticulosParaClienteIMAGEN = 5;
  idx_ArticulosParaClienteCOMISIONABLE = 6;
  idx_ArticulosParaClienteFECHA_ALTA = 7;
  idx_ArticulosParaClienteFECHA_MODIFICACION = 8;
  idx_ArticulosParaClienteUSUARIO = 9;
  idx_ArticulosParaClienteREFERENCIA_PROV = 10;
  idx_ArticulosParaClientePRECIO_COSTE = 11;
  idx_ArticulosParaClientePRECIO_PORTE = 12;
  idx_ArticulosParaClienteDESCUENTO = 13;
  idx_ArticulosParaClientePRECIO_NETO = 14;
  idx_ArticulosParaClientePRECIO_PVP = 15;
  idx_ArticulosParaClienteINVENTARIABLE = 16;
  idx_ArticulosParaClienteID_PROVEEDOR = 17;
  idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 18;
  idx_ArticulosParaClienteELIMINADO = 19;

type
  { IExisteImagen }
  IExisteImagen = interface(IDAStronglyTypedDataTable)
  ['{060DC060-1362-46EB-83A8-00224E4BA4DC}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
  end;

  { TExisteImagenDataTableRules }
  TExisteImagenDataTableRules = class(TIntfObjectDADataTableRules, IExisteImagen)
  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;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;

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

  end;

  { IArticulos }
  IArticulos = interface(IDAStronglyTypedDataTable)
  ['{FAB0E582-EA62-4762-84D7-79E31C26F996}']
    { 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 GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetREFERENCIAIsNull: Boolean;
    procedure SetREFERENCIAIsNull(const aValue: Boolean);
    function GetDESCRIPCIONValue: String;
    procedure SetDESCRIPCIONValue(const aValue: String);
    function GetDESCRIPCIONIsNull: Boolean;
    procedure SetDESCRIPCIONIsNull(const aValue: Boolean);
    function GetFAMILIAValue: String;
    procedure SetFAMILIAValue(const aValue: String);
    function GetFAMILIAIsNull: Boolean;
    procedure SetFAMILIAIsNull(const aValue: Boolean);
    function GetIMAGENValue: IROStream;
    function GetIMAGENIsNull: Boolean;
    procedure SetIMAGENIsNull(const aValue: Boolean);
    function GetCOMISIONABLEValue: Integer;
    procedure SetCOMISIONABLEValue(const aValue: Integer);
    function GetCOMISIONABLEIsNull: Boolean;
    procedure SetCOMISIONABLEIsNull(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 GetREFERENCIA_PROVValue: String;
    procedure SetREFERENCIA_PROVValue(const aValue: String);
    function GetREFERENCIA_PROVIsNull: Boolean;
    procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean);
    function GetPRECIO_COSTEValue: Currency;
    procedure SetPRECIO_COSTEValue(const aValue: Currency);
    function GetPRECIO_COSTEIsNull: Boolean;
    procedure SetPRECIO_COSTEIsNull(const aValue: Boolean);
    function GetPRECIO_PORTEValue: Currency;
    procedure SetPRECIO_PORTEValue(const aValue: Currency);
    function GetPRECIO_PORTEIsNull: Boolean;
    procedure SetPRECIO_PORTEIsNull(const aValue: Boolean);
    function GetDESCUENTOValue: Float;
    procedure SetDESCUENTOValue(const aValue: Float);
    function GetDESCUENTOIsNull: Boolean;
    procedure SetDESCUENTOIsNull(const aValue: Boolean);
    function GetPRECIO_NETOValue: Currency;
    procedure SetPRECIO_NETOValue(const aValue: Currency);
    function GetPRECIO_NETOIsNull: Boolean;
    procedure SetPRECIO_NETOIsNull(const aValue: Boolean);
    function GetPRECIO_PVPValue: Currency;
    procedure SetPRECIO_PVPValue(const aValue: Currency);
    function GetPRECIO_PVPIsNull: Boolean;
    procedure SetPRECIO_PVPIsNull(const aValue: Boolean);
    function GetINVENTARIABLEValue: SmallInt;
    procedure SetINVENTARIABLEValue(const aValue: SmallInt);
    function GetINVENTARIABLEIsNull: Boolean;
    procedure SetINVENTARIABLEIsNull(const aValue: Boolean);
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetID_PROVEEDORIsNull: Boolean;
    procedure SetID_PROVEEDORIsNull(const aValue: Boolean);
    function GetNOMBRE_PROVEEDORValue: String;
    procedure SetNOMBRE_PROVEEDORValue(const aValue: String);
    function GetNOMBRE_PROVEEDORIsNull: Boolean;
    procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean);
    function GetELIMINADOValue: SmallInt;
    procedure SetELIMINADOValue(const aValue: SmallInt);
    function GetELIMINADOIsNull: Boolean;
    procedure SetELIMINADOIsNull(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 REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
    property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue;
    property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull;
    property IMAGEN: IROStream read GetIMAGENValue;
    property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull;
    property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue;
    property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull;
    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 REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue;
    property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull;
    property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue;
    property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull;
    property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue;
    property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
    property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue;
    property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull;
    property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue;
    property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull;
    property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue;
    property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue;
    property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
    property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
    property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
  end;

  { TArticulosDataTableRules }
  TArticulosDataTableRules = class(TIntfObjectDADataTableRules, IArticulos)
  private
    f_IMAGEN: IROStream;
    procedure IMAGEN_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 GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetREFERENCIAIsNull: Boolean; virtual;
    procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual;
    function GetDESCRIPCIONValue: String; virtual;
    procedure SetDESCRIPCIONValue(const aValue: String); virtual;
    function GetDESCRIPCIONIsNull: Boolean; virtual;
    procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual;
    function GetFAMILIAValue: String; virtual;
    procedure SetFAMILIAValue(const aValue: String); virtual;
    function GetFAMILIAIsNull: Boolean; virtual;
    procedure SetFAMILIAIsNull(const aValue: Boolean); virtual;
    function GetIMAGENValue: IROStream; virtual;
    function GetIMAGENIsNull: Boolean; virtual;
    procedure SetIMAGENIsNull(const aValue: Boolean); virtual;
    function GetCOMISIONABLEValue: Integer; virtual;
    procedure SetCOMISIONABLEValue(const aValue: Integer); virtual;
    function GetCOMISIONABLEIsNull: Boolean; virtual;
    procedure SetCOMISIONABLEIsNull(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 GetREFERENCIA_PROVValue: String; virtual;
    procedure SetREFERENCIA_PROVValue(const aValue: String); virtual;
    function GetREFERENCIA_PROVIsNull: Boolean; virtual;
    procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_COSTEValue: Currency; virtual;
    procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual;
    function GetPRECIO_COSTEIsNull: Boolean; virtual;
    procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PORTEValue: Currency; virtual;
    procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual;
    function GetPRECIO_PORTEIsNull: Boolean; virtual;
    procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual;
    function GetDESCUENTOValue: Float; virtual;
    procedure SetDESCUENTOValue(const aValue: Float); virtual;
    function GetDESCUENTOIsNull: Boolean; virtual;
    procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_NETOValue: Currency; virtual;
    procedure SetPRECIO_NETOValue(const aValue: Currency); virtual;
    function GetPRECIO_NETOIsNull: Boolean; virtual;
    procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVPValue: Currency; virtual;
    procedure SetPRECIO_PVPValue(const aValue: Currency); virtual;
    function GetPRECIO_PVPIsNull: Boolean; virtual;
    procedure SetPRECIO_PVPIsNull(const aValue: Boolean); virtual;
    function GetINVENTARIABLEValue: SmallInt; virtual;
    procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual;
    function GetINVENTARIABLEIsNull: Boolean; virtual;
    procedure SetINVENTARIABLEIsNull(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 GetNOMBRE_PROVEEDORValue: String; virtual;
    procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual;
    function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual;
    procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual;
    function GetELIMINADOValue: SmallInt; virtual;
    procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
    function GetELIMINADOIsNull: Boolean; virtual;
    procedure SetELIMINADOIsNull(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 REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
    property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue;
    property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull;
    property IMAGEN: IROStream read GetIMAGENValue;
    property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull;
    property COMISIONABLE: Integer read GetCOMISIONABLEValue write SetCOMISIONABLEValue;
    property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull;
    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 REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue;
    property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull;
    property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue;
    property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull;
    property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue;
    property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
    property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue;
    property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull;
    property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue;
    property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull;
    property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue;
    property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue;
    property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
    property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
    property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;

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

  end;

  { IArticulosParaCliente }
  IArticulosParaCliente = interface(IDAStronglyTypedDataTable)
  ['{A54CB1AD-9DB8-4427-BDC3-A3B9B14280E8}']
    { 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 GetREFERENCIAValue: String;
    procedure SetREFERENCIAValue(const aValue: String);
    function GetREFERENCIAIsNull: Boolean;
    procedure SetREFERENCIAIsNull(const aValue: Boolean);
    function GetDESCRIPCIONValue: String;
    procedure SetDESCRIPCIONValue(const aValue: String);
    function GetDESCRIPCIONIsNull: Boolean;
    procedure SetDESCRIPCIONIsNull(const aValue: Boolean);
    function GetFAMILIAValue: String;
    procedure SetFAMILIAValue(const aValue: String);
    function GetFAMILIAIsNull: Boolean;
    procedure SetFAMILIAIsNull(const aValue: Boolean);
    function GetIMAGENValue: IROStream;
    function GetIMAGENIsNull: Boolean;
    procedure SetIMAGENIsNull(const aValue: Boolean);
    function GetCOMISIONABLEValue: SmallInt;
    procedure SetCOMISIONABLEValue(const aValue: SmallInt);
    function GetCOMISIONABLEIsNull: Boolean;
    procedure SetCOMISIONABLEIsNull(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 GetREFERENCIA_PROVValue: String;
    procedure SetREFERENCIA_PROVValue(const aValue: String);
    function GetREFERENCIA_PROVIsNull: Boolean;
    procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean);
    function GetPRECIO_COSTEValue: Currency;
    procedure SetPRECIO_COSTEValue(const aValue: Currency);
    function GetPRECIO_COSTEIsNull: Boolean;
    procedure SetPRECIO_COSTEIsNull(const aValue: Boolean);
    function GetPRECIO_PORTEValue: Currency;
    procedure SetPRECIO_PORTEValue(const aValue: Currency);
    function GetPRECIO_PORTEIsNull: Boolean;
    procedure SetPRECIO_PORTEIsNull(const aValue: Boolean);
    function GetDESCUENTOValue: Float;
    procedure SetDESCUENTOValue(const aValue: Float);
    function GetDESCUENTOIsNull: Boolean;
    procedure SetDESCUENTOIsNull(const aValue: Boolean);
    function GetPRECIO_NETOValue: Currency;
    procedure SetPRECIO_NETOValue(const aValue: Currency);
    function GetPRECIO_NETOIsNull: Boolean;
    procedure SetPRECIO_NETOIsNull(const aValue: Boolean);
    function GetPRECIO_PVPValue: Currency;
    procedure SetPRECIO_PVPValue(const aValue: Currency);
    function GetPRECIO_PVPIsNull: Boolean;
    procedure SetPRECIO_PVPIsNull(const aValue: Boolean);
    function GetINVENTARIABLEValue: SmallInt;
    procedure SetINVENTARIABLEValue(const aValue: SmallInt);
    function GetINVENTARIABLEIsNull: Boolean;
    procedure SetINVENTARIABLEIsNull(const aValue: Boolean);
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetID_PROVEEDORIsNull: Boolean;
    procedure SetID_PROVEEDORIsNull(const aValue: Boolean);
    function GetNOMBRE_PROVEEDORValue: String;
    procedure SetNOMBRE_PROVEEDORValue(const aValue: String);
    function GetNOMBRE_PROVEEDORIsNull: Boolean;
    procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean);
    function GetELIMINADOValue: SmallInt;
    procedure SetELIMINADOValue(const aValue: SmallInt);
    function GetELIMINADOIsNull: Boolean;
    procedure SetELIMINADOIsNull(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 REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
    property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue;
    property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull;
    property IMAGEN: IROStream read GetIMAGENValue;
    property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull;
    property COMISIONABLE: SmallInt read GetCOMISIONABLEValue write SetCOMISIONABLEValue;
    property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull;
    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 REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue;
    property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull;
    property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue;
    property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull;
    property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue;
    property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
    property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue;
    property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull;
    property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue;
    property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull;
    property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue;
    property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue;
    property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
    property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
    property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
  end;

  { TArticulosParaClienteDataTableRules }
  TArticulosParaClienteDataTableRules = class(TIntfObjectDADataTableRules, IArticulosParaCliente)
  private
    f_IMAGEN: IROStream;
    procedure IMAGEN_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 GetREFERENCIAValue: String; virtual;
    procedure SetREFERENCIAValue(const aValue: String); virtual;
    function GetREFERENCIAIsNull: Boolean; virtual;
    procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual;
    function GetDESCRIPCIONValue: String; virtual;
    procedure SetDESCRIPCIONValue(const aValue: String); virtual;
    function GetDESCRIPCIONIsNull: Boolean; virtual;
    procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual;
    function GetFAMILIAValue: String; virtual;
    procedure SetFAMILIAValue(const aValue: String); virtual;
    function GetFAMILIAIsNull: Boolean; virtual;
    procedure SetFAMILIAIsNull(const aValue: Boolean); virtual;
    function GetIMAGENValue: IROStream; virtual;
    function GetIMAGENIsNull: Boolean; virtual;
    procedure SetIMAGENIsNull(const aValue: Boolean); virtual;
    function GetCOMISIONABLEValue: SmallInt; virtual;
    procedure SetCOMISIONABLEValue(const aValue: SmallInt); virtual;
    function GetCOMISIONABLEIsNull: Boolean; virtual;
    procedure SetCOMISIONABLEIsNull(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 GetREFERENCIA_PROVValue: String; virtual;
    procedure SetREFERENCIA_PROVValue(const aValue: String); virtual;
    function GetREFERENCIA_PROVIsNull: Boolean; virtual;
    procedure SetREFERENCIA_PROVIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_COSTEValue: Currency; virtual;
    procedure SetPRECIO_COSTEValue(const aValue: Currency); virtual;
    function GetPRECIO_COSTEIsNull: Boolean; virtual;
    procedure SetPRECIO_COSTEIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PORTEValue: Currency; virtual;
    procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual;
    function GetPRECIO_PORTEIsNull: Boolean; virtual;
    procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual;
    function GetDESCUENTOValue: Float; virtual;
    procedure SetDESCUENTOValue(const aValue: Float); virtual;
    function GetDESCUENTOIsNull: Boolean; virtual;
    procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_NETOValue: Currency; virtual;
    procedure SetPRECIO_NETOValue(const aValue: Currency); virtual;
    function GetPRECIO_NETOIsNull: Boolean; virtual;
    procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVPValue: Currency; virtual;
    procedure SetPRECIO_PVPValue(const aValue: Currency); virtual;
    function GetPRECIO_PVPIsNull: Boolean; virtual;
    procedure SetPRECIO_PVPIsNull(const aValue: Boolean); virtual;
    function GetINVENTARIABLEValue: SmallInt; virtual;
    procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual;
    function GetINVENTARIABLEIsNull: Boolean; virtual;
    procedure SetINVENTARIABLEIsNull(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 GetNOMBRE_PROVEEDORValue: String; virtual;
    procedure SetNOMBRE_PROVEEDORValue(const aValue: String); virtual;
    function GetNOMBRE_PROVEEDORIsNull: Boolean; virtual;
    procedure SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean); virtual;
    function GetELIMINADOValue: SmallInt; virtual;
    procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
    function GetELIMINADOIsNull: Boolean; virtual;
    procedure SetELIMINADOIsNull(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 REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue;
    property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
    property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue;
    property FAMILIAIsNull: Boolean read GetFAMILIAIsNull write SetFAMILIAIsNull;
    property IMAGEN: IROStream read GetIMAGENValue;
    property IMAGENIsNull: Boolean read GetIMAGENIsNull write SetIMAGENIsNull;
    property COMISIONABLE: SmallInt read GetCOMISIONABLEValue write SetCOMISIONABLEValue;
    property COMISIONABLEIsNull: Boolean read GetCOMISIONABLEIsNull write SetCOMISIONABLEIsNull;
    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 REFERENCIA_PROV: String read GetREFERENCIA_PROVValue write SetREFERENCIA_PROVValue;
    property REFERENCIA_PROVIsNull: Boolean read GetREFERENCIA_PROVIsNull write SetREFERENCIA_PROVIsNull;
    property PRECIO_COSTE: Currency read GetPRECIO_COSTEValue write SetPRECIO_COSTEValue;
    property PRECIO_COSTEIsNull: Boolean read GetPRECIO_COSTEIsNull write SetPRECIO_COSTEIsNull;
    property PRECIO_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue;
    property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull;
    property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
    property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull;
    property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue;
    property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull;
    property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue;
    property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull;
    property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue;
    property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE_PROVEEDOR: String read GetNOMBRE_PROVEEDORValue write SetNOMBRE_PROVEEDORValue;
    property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
    property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
    property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;

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

  end;

implementation

uses Variants, uROBinaryHelpers;

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

destructor TExisteImagenDataTableRules.Destroy;
begin
  inherited;
end;

function TExisteImagenDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ExisteImagenID].AsInteger;
end;

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

function TExisteImagenDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ExisteImagenID].IsNull;
end;

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


{ TArticulosDataTableRules }
constructor TArticulosDataTableRules.Create(aDataTable: TDADataTable);
var
  ROStream: TROStream;
begin
  inherited;

  ROStream := TROStream.Create;
  ROStream.OnChange := IMAGEN_OnChange;
  f_IMAGEN := ROStream;
end;

destructor TArticulosDataTableRules.Destroy;
begin
  inherited;
end;

procedure TArticulosDataTableRules.IMAGEN_OnChange(Sender: TObject);
begin
  if DataTable.Editing then DataTable.Fields[idx_ArticulosIMAGEN].LoadFromStream(TROStream(Sender));
end;

function TArticulosDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosID].AsInteger;
end;

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

function TArticulosDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosID].IsNull;
end;

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

function TArticulosDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosID_EMPRESA].AsInteger;
end;

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

function TArticulosDataTableRules.GetID_EMPRESAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosID_EMPRESA].IsNull;
end;

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

function TArticulosDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosREFERENCIA].AsString;
end;

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

function TArticulosDataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosREFERENCIA].IsNull;
end;

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

function TArticulosDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_ArticulosDESCRIPCION].AsString;
end;

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

function TArticulosDataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosDESCRIPCION].IsNull;
end;

procedure TArticulosDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosDESCRIPCION].AsVariant := Null;
end;

function TArticulosDataTableRules.GetFAMILIAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosFAMILIA].AsString;
end;

procedure TArticulosDataTableRules.SetFAMILIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosFAMILIA].AsString := aValue;
end;

function TArticulosDataTableRules.GetFAMILIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosFAMILIA].IsNull;
end;

procedure TArticulosDataTableRules.SetFAMILIAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosFAMILIA].AsVariant := Null;
end;

function TArticulosDataTableRules.GetIMAGENValue: IROStream;
begin
  result := f_IMAGEN;
  result.Position := 0;
  if not Result.InUpdateMode then begin
    DataTable.Fields[idx_ArticulosIMAGEN].SaveToStream(result);
    result.Position := 0;
  end;
end;

function TArticulosDataTableRules.GetIMAGENIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosIMAGEN].IsNull;
end;

procedure TArticulosDataTableRules.SetIMAGENIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosIMAGEN].AsVariant := Null;
end;

function TArticulosDataTableRules.GetCOMISIONABLEValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosCOMISIONABLE].AsInteger;
end;

procedure TArticulosDataTableRules.SetCOMISIONABLEValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ArticulosCOMISIONABLE].AsInteger := aValue;
end;

function TArticulosDataTableRules.GetCOMISIONABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosCOMISIONABLE].IsNull;
end;

procedure TArticulosDataTableRules.SetCOMISIONABLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosCOMISIONABLE].AsVariant := Null;
end;

function TArticulosDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ArticulosFECHA_ALTA].AsDateTime;
end;

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

function TArticulosDataTableRules.GetFECHA_ALTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosFECHA_ALTA].IsNull;
end;

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

function TArticulosDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ArticulosFECHA_MODIFICACION].AsDateTime;
end;

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

function TArticulosDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosFECHA_MODIFICACION].IsNull;
end;

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

function TArticulosDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ArticulosUSUARIO].AsString;
end;

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

function TArticulosDataTableRules.GetUSUARIOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosUSUARIO].IsNull;
end;

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

function TArticulosDataTableRules.GetREFERENCIA_PROVValue: String;
begin
  result := DataTable.Fields[idx_ArticulosREFERENCIA_PROV].AsString;
end;

procedure TArticulosDataTableRules.SetREFERENCIA_PROVValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosREFERENCIA_PROV].AsString := aValue;
end;

function TArticulosDataTableRules.GetREFERENCIA_PROVIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosREFERENCIA_PROV].IsNull;
end;

procedure TArticulosDataTableRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosREFERENCIA_PROV].AsVariant := Null;
end;

function TArticulosDataTableRules.GetPRECIO_COSTEValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsCurrency;
end;

procedure TArticulosDataTableRules.SetPRECIO_COSTEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsCurrency := aValue;
end;

function TArticulosDataTableRules.GetPRECIO_COSTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_COSTE].IsNull;
end;

procedure TArticulosDataTableRules.SetPRECIO_COSTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosPRECIO_COSTE].AsVariant := Null;
end;

function TArticulosDataTableRules.GetPRECIO_PORTEValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsCurrency;
end;

procedure TArticulosDataTableRules.SetPRECIO_PORTEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsCurrency := aValue;
end;

function TArticulosDataTableRules.GetPRECIO_PORTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_PORTE].IsNull;
end;

procedure TArticulosDataTableRules.SetPRECIO_PORTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosPRECIO_PORTE].AsVariant := Null;
end;

function TArticulosDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_ArticulosDESCUENTO].AsFloat;
end;

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

function TArticulosDataTableRules.GetDESCUENTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosDESCUENTO].IsNull;
end;

procedure TArticulosDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosDESCUENTO].AsVariant := Null;
end;

function TArticulosDataTableRules.GetPRECIO_NETOValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_NETO].AsCurrency;
end;

procedure TArticulosDataTableRules.SetPRECIO_NETOValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosPRECIO_NETO].AsCurrency := aValue;
end;

function TArticulosDataTableRules.GetPRECIO_NETOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_NETO].IsNull;
end;

procedure TArticulosDataTableRules.SetPRECIO_NETOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosPRECIO_NETO].AsVariant := Null;
end;

function TArticulosDataTableRules.GetPRECIO_PVPValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_PVP].AsCurrency;
end;

procedure TArticulosDataTableRules.SetPRECIO_PVPValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosPRECIO_PVP].AsCurrency := aValue;
end;

function TArticulosDataTableRules.GetPRECIO_PVPIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosPRECIO_PVP].IsNull;
end;

procedure TArticulosDataTableRules.SetPRECIO_PVPIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosPRECIO_PVP].AsVariant := Null;
end;

function TArticulosDataTableRules.GetINVENTARIABLEValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosINVENTARIABLE].AsSmallInt;
end;

procedure TArticulosDataTableRules.SetINVENTARIABLEValue(const aValue: SmallInt);
begin
  DataTable.Fields[idx_ArticulosINVENTARIABLE].AsSmallInt := aValue;
end;

function TArticulosDataTableRules.GetINVENTARIABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosINVENTARIABLE].IsNull;
end;

procedure TArticulosDataTableRules.SetINVENTARIABLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosINVENTARIABLE].AsVariant := Null;
end;

function TArticulosDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosID_PROVEEDOR].AsInteger;
end;

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

function TArticulosDataTableRules.GetID_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosID_PROVEEDOR].IsNull;
end;

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

function TArticulosDataTableRules.GetNOMBRE_PROVEEDORValue: String;
begin
  result := DataTable.Fields[idx_ArticulosNOMBRE_PROVEEDOR].AsString;
end;

procedure TArticulosDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosNOMBRE_PROVEEDOR].AsString := aValue;
end;

function TArticulosDataTableRules.GetNOMBRE_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosNOMBRE_PROVEEDOR].IsNull;
end;

procedure TArticulosDataTableRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosNOMBRE_PROVEEDOR].AsVariant := Null;
end;

function TArticulosDataTableRules.GetELIMINADOValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosELIMINADO].AsSmallInt;
end;

procedure TArticulosDataTableRules.SetELIMINADOValue(const aValue: SmallInt);
begin
  DataTable.Fields[idx_ArticulosELIMINADO].AsSmallInt := aValue;
end;

function TArticulosDataTableRules.GetELIMINADOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosELIMINADO].IsNull;
end;

procedure TArticulosDataTableRules.SetELIMINADOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosELIMINADO].AsVariant := Null;
end;


{ TArticulosParaClienteDataTableRules }
constructor TArticulosParaClienteDataTableRules.Create(aDataTable: TDADataTable);
var
  ROStream: TROStream;
begin
  inherited;

  ROStream := TROStream.Create;
  ROStream.OnChange := IMAGEN_OnChange;
  f_IMAGEN := ROStream;
end;

destructor TArticulosParaClienteDataTableRules.Destroy;
begin
  inherited;
end;

procedure TArticulosParaClienteDataTableRules.IMAGEN_OnChange(Sender: TObject);
begin
  if DataTable.Editing then DataTable.Fields[idx_ArticulosParaClienteIMAGEN].LoadFromStream(TROStream(Sender));
end;

function TArticulosParaClienteDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteID].AsInteger;
end;

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

function TArticulosParaClienteDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteID].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteID_EMPRESA].AsInteger;
end;

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

function TArticulosParaClienteDataTableRules.GetID_EMPRESAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteID_EMPRESA].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteREFERENCIA].AsString;
end;

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

function TArticulosParaClienteDataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteREFERENCIA].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteDESCRIPCION].AsString;
end;

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

function TArticulosParaClienteDataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteDESCRIPCION].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteDESCRIPCION].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetFAMILIAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteFAMILIA].AsString;
end;

procedure TArticulosParaClienteDataTableRules.SetFAMILIAValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosParaClienteFAMILIA].AsString := aValue;
end;

function TArticulosParaClienteDataTableRules.GetFAMILIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteFAMILIA].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetFAMILIAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteFAMILIA].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetIMAGENValue: IROStream;
begin
  result := f_IMAGEN;
  result.Position := 0;
  if not Result.InUpdateMode then begin
    DataTable.Fields[idx_ArticulosParaClienteIMAGEN].SaveToStream(result);
    result.Position := 0;
  end;
end;

function TArticulosParaClienteDataTableRules.GetIMAGENIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteIMAGEN].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetIMAGENIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteIMAGEN].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetCOMISIONABLEValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteCOMISIONABLE].AsSmallInt;
end;

procedure TArticulosParaClienteDataTableRules.SetCOMISIONABLEValue(const aValue: SmallInt);
begin
  DataTable.Fields[idx_ArticulosParaClienteCOMISIONABLE].AsSmallInt := aValue;
end;

function TArticulosParaClienteDataTableRules.GetCOMISIONABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteCOMISIONABLE].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetCOMISIONABLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteCOMISIONABLE].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteFECHA_ALTA].AsDateTime;
end;

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

function TArticulosParaClienteDataTableRules.GetFECHA_ALTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteFECHA_ALTA].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteFECHA_MODIFICACION].AsDateTime;
end;

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

function TArticulosParaClienteDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteFECHA_MODIFICACION].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteUSUARIO].AsString;
end;

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

function TArticulosParaClienteDataTableRules.GetUSUARIOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteUSUARIO].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetREFERENCIA_PROVValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteREFERENCIA_PROV].AsString;
end;

procedure TArticulosParaClienteDataTableRules.SetREFERENCIA_PROVValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosParaClienteREFERENCIA_PROV].AsString := aValue;
end;

function TArticulosParaClienteDataTableRules.GetREFERENCIA_PROVIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteREFERENCIA_PROV].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetREFERENCIA_PROVIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteREFERENCIA_PROV].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_COSTEValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_COSTE].AsCurrency;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_COSTEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaClientePRECIO_COSTE].AsCurrency := aValue;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_COSTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_COSTE].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_COSTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClientePRECIO_COSTE].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_PORTEValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PORTE].AsCurrency;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_PORTEValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaClientePRECIO_PORTE].AsCurrency := aValue;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_PORTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PORTE].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_PORTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClientePRECIO_PORTE].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteDESCUENTO].AsFloat;
end;

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

function TArticulosParaClienteDataTableRules.GetDESCUENTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteDESCUENTO].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteDESCUENTO].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_NETOValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].AsCurrency;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_NETOValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].AsCurrency := aValue;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_NETOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_NETOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_PVPValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].AsCurrency;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_PVPValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].AsCurrency := aValue;
end;

function TArticulosParaClienteDataTableRules.GetPRECIO_PVPIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetPRECIO_PVPIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetINVENTARIABLEValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].AsSmallInt;
end;

procedure TArticulosParaClienteDataTableRules.SetINVENTARIABLEValue(const aValue: SmallInt);
begin
  DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].AsSmallInt := aValue;
end;

function TArticulosParaClienteDataTableRules.GetINVENTARIABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetINVENTARIABLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteID_PROVEEDOR].AsInteger;
end;

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

function TArticulosParaClienteDataTableRules.GetID_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteID_PROVEEDOR].IsNull;
end;

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

function TArticulosParaClienteDataTableRules.GetNOMBRE_PROVEEDORValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteNOMBRE_PROVEEDOR].AsString;
end;

procedure TArticulosParaClienteDataTableRules.SetNOMBRE_PROVEEDORValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosParaClienteNOMBRE_PROVEEDOR].AsString := aValue;
end;

function TArticulosParaClienteDataTableRules.GetNOMBRE_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteNOMBRE_PROVEEDOR].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetNOMBRE_PROVEEDORIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteNOMBRE_PROVEEDOR].AsVariant := Null;
end;

function TArticulosParaClienteDataTableRules.GetELIMINADOValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteELIMINADO].AsSmallInt;
end;

procedure TArticulosParaClienteDataTableRules.SetELIMINADOValue(const aValue: SmallInt);
begin
  DataTable.Fields[idx_ArticulosParaClienteELIMINADO].AsSmallInt := aValue;
end;

function TArticulosParaClienteDataTableRules.GetELIMINADOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteELIMINADO].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetELIMINADOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteELIMINADO].AsVariant := Null;
end;


initialization
  RegisterDataTableRules(RID_ExisteImagen, TExisteImagenDataTableRules);
  RegisterDataTableRules(RID_Articulos, TArticulosDataTableRules);
  RegisterDataTableRules(RID_ArticulosParaCliente, TArticulosParaClienteDataTableRules);

end.
