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_ProveedoresConArticulos = '{0BB606FA-1CFB-47DC-A712-FACB3ABFDDC5}';
  RID_Articulos_Proveedores = '{4411A1EA-4941-41EF-808B-18520989BF07}';
  RID_Articulos_ParaVariosProveedores = '{E109AA7E-AC29-4F16-B29C-8C96E378E001}';
  RID_ArticulosParaCompra = '{EF0E4414-E2EF-487E-866D-FAB3C9963281}';
  RID_ArticulosParaCliente = '{021CF61C-CF96-4831-B59A-7EB1D5445E61}';
  RID_Articulos = '{D83B7008-C443-4357-9458-6C71AB3AFBDC}';

  { Data table names }
  nme_ProveedoresConArticulos = 'ProveedoresConArticulos';
  nme_Articulos_Proveedores = 'Articulos_Proveedores';
  nme_Articulos_ParaVariosProveedores = 'Articulos_ParaVariosProveedores';
  nme_ArticulosParaCompra = 'ArticulosParaCompra';
  nme_ArticulosParaCliente = 'ArticulosParaCliente';
  nme_Articulos = 'Articulos';

  { ProveedoresConArticulos fields }
  fld_ProveedoresConArticulosID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ProveedoresConArticulosNOMBRE = 'NOMBRE';

  { ProveedoresConArticulos field indexes }
  idx_ProveedoresConArticulosID_PROVEEDOR = 0;
  idx_ProveedoresConArticulosNOMBRE = 1;

  { Articulos_Proveedores fields }
  fld_Articulos_ProveedoresID = 'ID';
  fld_Articulos_ProveedoresID_ARTICULO = 'ID_ARTICULO';
  fld_Articulos_ProveedoresID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_Articulos_ProveedoresREFERENCIA_PROV = 'REFERENCIA_PROV';
  fld_Articulos_ProveedoresPRECIO_COSTE = 'PRECIO_COSTE';
  fld_Articulos_ProveedoresDESCUENTO = 'DESCUENTO';
  fld_Articulos_ProveedoresPRECIO_NETO = 'PRECIO_NETO';
  fld_Articulos_ProveedoresPRECIO_PORTE = 'PRECIO_PORTE';
  fld_Articulos_ProveedoresPRECIO_PVP_VENTA = 'PRECIO_PVP_VENTA';
  fld_Articulos_ProveedoresPRECIO_PVP_TOTAL = 'PRECIO_PVP_TOTAL';

  { Articulos_Proveedores field indexes }
  idx_Articulos_ProveedoresID = 0;
  idx_Articulos_ProveedoresID_ARTICULO = 1;
  idx_Articulos_ProveedoresID_PROVEEDOR = 2;
  idx_Articulos_ProveedoresREFERENCIA_PROV = 3;
  idx_Articulos_ProveedoresPRECIO_COSTE = 4;
  idx_Articulos_ProveedoresDESCUENTO = 5;
  idx_Articulos_ProveedoresPRECIO_NETO = 6;
  idx_Articulos_ProveedoresPRECIO_PORTE = 7;
  idx_Articulos_ProveedoresPRECIO_PVP_VENTA = 8;
  idx_Articulos_ProveedoresPRECIO_PVP_TOTAL = 9;

  { Articulos_ParaVariosProveedores fields }
  fld_Articulos_ParaVariosProveedoresID = 'ID';
  fld_Articulos_ParaVariosProveedoresID_EMPRESA = 'ID_EMPRESA';
  fld_Articulos_ParaVariosProveedoresREFERENCIA = 'REFERENCIA';
  fld_Articulos_ParaVariosProveedoresDESCRIPCION = 'DESCRIPCION';
  fld_Articulos_ParaVariosProveedoresUNIDAD_MEDIDA = 'UNIDAD_MEDIDA';
  fld_Articulos_ParaVariosProveedoresFAMILIA = 'FAMILIA';
  fld_Articulos_ParaVariosProveedoresIMAGEN = 'IMAGEN';
  fld_Articulos_ParaVariosProveedoresCOMISIONABLE = 'COMISIONABLE';
  fld_Articulos_ParaVariosProveedoresFECHA_ALTA = 'FECHA_ALTA';
  fld_Articulos_ParaVariosProveedoresFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_Articulos_ParaVariosProveedoresUSUARIO = 'USUARIO';
  fld_Articulos_ParaVariosProveedoresREFERENCIA_PROV = 'REFERENCIA_PROV';
  fld_Articulos_ParaVariosProveedoresPRECIO_COSTE = 'PRECIO_COSTE';
  fld_Articulos_ParaVariosProveedoresPRECIO_PORTE = 'PRECIO_PORTE';
  fld_Articulos_ParaVariosProveedoresDESCUENTO = 'DESCUENTO';
  fld_Articulos_ParaVariosProveedoresPRECIO_NETO = 'PRECIO_NETO';
  fld_Articulos_ParaVariosProveedoresINVENTARIABLE = 'INVENTARIABLE';
  fld_Articulos_ParaVariosProveedoresELIMINADO = 'ELIMINADO';
  fld_Articulos_ParaVariosProveedoresFABRICANTE = 'FABRICANTE';
  fld_Articulos_ParaVariosProveedoresREFERENCIA_FABR = 'REFERENCIA_FABR';
  fld_Articulos_ParaVariosProveedoresTIENDA_WEB = 'TIENDA_WEB';
  fld_Articulos_ParaVariosProveedoresPARAM_MARGEN = 'PARAM_MARGEN';
  fld_Articulos_ParaVariosProveedoresPRECIO_PVP_VENTA = 'PRECIO_PVP_VENTA';
  fld_Articulos_ParaVariosProveedoresTIEMPO = 'TIEMPO';
  fld_Articulos_ParaVariosProveedoresPARAM_TIEMPO = 'PARAM_TIEMPO';
  fld_Articulos_ParaVariosProveedoresMANO_OBRA = 'MANO_OBRA';
  fld_Articulos_ParaVariosProveedoresPRECIO_PVP_TOTAL = 'PRECIO_PVP_TOTAL';

  { Articulos_ParaVariosProveedores field indexes }
  idx_Articulos_ParaVariosProveedoresID = 0;
  idx_Articulos_ParaVariosProveedoresID_EMPRESA = 1;
  idx_Articulos_ParaVariosProveedoresREFERENCIA = 2;
  idx_Articulos_ParaVariosProveedoresDESCRIPCION = 3;
  idx_Articulos_ParaVariosProveedoresUNIDAD_MEDIDA = 4;
  idx_Articulos_ParaVariosProveedoresFAMILIA = 5;
  idx_Articulos_ParaVariosProveedoresIMAGEN = 6;
  idx_Articulos_ParaVariosProveedoresCOMISIONABLE = 7;
  idx_Articulos_ParaVariosProveedoresFECHA_ALTA = 8;
  idx_Articulos_ParaVariosProveedoresFECHA_MODIFICACION = 9;
  idx_Articulos_ParaVariosProveedoresUSUARIO = 10;
  idx_Articulos_ParaVariosProveedoresREFERENCIA_PROV = 11;
  idx_Articulos_ParaVariosProveedoresPRECIO_COSTE = 12;
  idx_Articulos_ParaVariosProveedoresPRECIO_PORTE = 13;
  idx_Articulos_ParaVariosProveedoresDESCUENTO = 14;
  idx_Articulos_ParaVariosProveedoresPRECIO_NETO = 15;
  idx_Articulos_ParaVariosProveedoresINVENTARIABLE = 16;
  idx_Articulos_ParaVariosProveedoresELIMINADO = 17;
  idx_Articulos_ParaVariosProveedoresFABRICANTE = 18;
  idx_Articulos_ParaVariosProveedoresREFERENCIA_FABR = 19;
  idx_Articulos_ParaVariosProveedoresTIENDA_WEB = 20;
  idx_Articulos_ParaVariosProveedoresPARAM_MARGEN = 21;
  idx_Articulos_ParaVariosProveedoresPRECIO_PVP_VENTA = 22;
  idx_Articulos_ParaVariosProveedoresTIEMPO = 23;
  idx_Articulos_ParaVariosProveedoresPARAM_TIEMPO = 24;
  idx_Articulos_ParaVariosProveedoresMANO_OBRA = 25;
  idx_Articulos_ParaVariosProveedoresPRECIO_PVP_TOTAL = 26;

  { ArticulosParaCompra fields }
  fld_ArticulosParaCompraID = 'ID';
  fld_ArticulosParaCompraID_EMPRESA = 'ID_EMPRESA';
  fld_ArticulosParaCompraREFERENCIA = 'REFERENCIA';
  fld_ArticulosParaCompraDESCRIPCION = 'DESCRIPCION';
  fld_ArticulosParaCompraUNIDAD_MEDIDA = 'UNIDAD_MEDIDA';
  fld_ArticulosParaCompraFAMILIA = 'FAMILIA';
  fld_ArticulosParaCompraIMAGEN = 'IMAGEN';
  fld_ArticulosParaCompraCOMISIONABLE = 'COMISIONABLE';
  fld_ArticulosParaCompraFECHA_ALTA = 'FECHA_ALTA';
  fld_ArticulosParaCompraFECHA_MODIFICACION = 'FECHA_MODIFICACION';
  fld_ArticulosParaCompraUSUARIO = 'USUARIO';
  fld_ArticulosParaCompraREFERENCIA_PROV = 'REFERENCIA_PROV';
  fld_ArticulosParaCompraPRECIO_COSTE = 'PRECIO_COSTE';
  fld_ArticulosParaCompraPRECIO_PORTE = 'PRECIO_PORTE';
  fld_ArticulosParaCompraDESCUENTO = 'DESCUENTO';
  fld_ArticulosParaCompraPRECIO_NETO = 'PRECIO_NETO';
  fld_ArticulosParaCompraINVENTARIABLE = 'INVENTARIABLE';
  fld_ArticulosParaCompraID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ArticulosParaCompraNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
  fld_ArticulosParaCompraELIMINADO = 'ELIMINADO';
  fld_ArticulosParaCompraFABRICANTE = 'FABRICANTE';
  fld_ArticulosParaCompraREFERENCIA_FABR = 'REFERENCIA_FABR';
  fld_ArticulosParaCompraPARAM_MARGEN = 'PARAM_MARGEN';
  fld_ArticulosParaCompraPRECIO_PVP_VENTA = 'PRECIO_PVP_VENTA';
  fld_ArticulosParaCompraTIEMPO = 'TIEMPO';
  fld_ArticulosParaCompraPARAM_TIEMPO = 'PARAM_TIEMPO';
  fld_ArticulosParaCompraMANO_OBRA = 'MANO_OBRA';
  fld_ArticulosParaCompraPRECIO_PVP_TOTAL = 'PRECIO_PVP_TOTAL';
  fld_ArticulosParaCompraID_ARTICULO = 'ID_ARTICULO';

  { ArticulosParaCompra field indexes }
  idx_ArticulosParaCompraID = 0;
  idx_ArticulosParaCompraID_EMPRESA = 1;
  idx_ArticulosParaCompraREFERENCIA = 2;
  idx_ArticulosParaCompraDESCRIPCION = 3;
  idx_ArticulosParaCompraUNIDAD_MEDIDA = 4;
  idx_ArticulosParaCompraFAMILIA = 5;
  idx_ArticulosParaCompraIMAGEN = 6;
  idx_ArticulosParaCompraCOMISIONABLE = 7;
  idx_ArticulosParaCompraFECHA_ALTA = 8;
  idx_ArticulosParaCompraFECHA_MODIFICACION = 9;
  idx_ArticulosParaCompraUSUARIO = 10;
  idx_ArticulosParaCompraREFERENCIA_PROV = 11;
  idx_ArticulosParaCompraPRECIO_COSTE = 12;
  idx_ArticulosParaCompraPRECIO_PORTE = 13;
  idx_ArticulosParaCompraDESCUENTO = 14;
  idx_ArticulosParaCompraPRECIO_NETO = 15;
  idx_ArticulosParaCompraINVENTARIABLE = 16;
  idx_ArticulosParaCompraID_PROVEEDOR = 17;
  idx_ArticulosParaCompraNOMBRE_PROVEEDOR = 18;
  idx_ArticulosParaCompraELIMINADO = 19;
  idx_ArticulosParaCompraFABRICANTE = 20;
  idx_ArticulosParaCompraREFERENCIA_FABR = 21;
  idx_ArticulosParaCompraPARAM_MARGEN = 22;
  idx_ArticulosParaCompraPRECIO_PVP_VENTA = 23;
  idx_ArticulosParaCompraTIEMPO = 24;
  idx_ArticulosParaCompraPARAM_TIEMPO = 25;
  idx_ArticulosParaCompraMANO_OBRA = 26;
  idx_ArticulosParaCompraPRECIO_PVP_TOTAL = 27;
  idx_ArticulosParaCompraID_ARTICULO = 28;

  { 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_ArticulosParaClienteINVENTARIABLE = 'INVENTARIABLE';
  fld_ArticulosParaClienteID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ArticulosParaClienteNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
  fld_ArticulosParaClienteELIMINADO = 'ELIMINADO';
  fld_ArticulosParaClienteTIENDA_WEB = 'TIENDA_WEB';

  { 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_ArticulosParaClienteINVENTARIABLE = 15;
  idx_ArticulosParaClienteID_PROVEEDOR = 16;
  idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 17;
  idx_ArticulosParaClienteELIMINADO = 18;
  idx_ArticulosParaClienteTIENDA_WEB = 19;

  { 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_ArticulosINVENTARIABLE = 'INVENTARIABLE';
  fld_ArticulosID_PROVEEDOR = 'ID_PROVEEDOR';
  fld_ArticulosNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
  fld_ArticulosELIMINADO = 'ELIMINADO';
  fld_ArticulosTIENDA_WEB = 'TIENDA_WEB';

  { 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_ArticulosINVENTARIABLE = 15;
  idx_ArticulosID_PROVEEDOR = 16;
  idx_ArticulosNOMBRE_PROVEEDOR = 17;
  idx_ArticulosELIMINADO = 18;
  idx_ArticulosTIENDA_WEB = 19;

type
  { IProveedoresConArticulos }
  IProveedoresConArticulos = interface(IDAStronglyTypedDataTable)
  ['{5A4C141A-D774-4996-9FFE-ED336B4BA5B3}']
    { Property getters and setters }
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetID_PROVEEDORIsNull: Boolean;
    procedure SetID_PROVEEDORIsNull(const aValue: Boolean);
    function GetNOMBREValue: String;
    procedure SetNOMBREValue(const aValue: String);
    function GetNOMBREIsNull: Boolean;
    procedure SetNOMBREIsNull(const aValue: Boolean);


    { Properties }
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;
  end;

  { TProveedoresConArticulosDataTableRules }
  TProveedoresConArticulosDataTableRules = class(TIntfObjectDADataTableRules, IProveedoresConArticulos)
  private
  protected
    { Property getters and setters }
    function GetID_PROVEEDORValue: Integer; virtual;
    procedure SetID_PROVEEDORValue(const aValue: Integer); virtual;
    function GetID_PROVEEDORIsNull: Boolean; virtual;
    procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual;
    function GetNOMBREValue: String; virtual;
    procedure SetNOMBREValue(const aValue: String); virtual;
    function GetNOMBREIsNull: Boolean; virtual;
    procedure SetNOMBREIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    property NOMBRE: String read GetNOMBREValue write SetNOMBREValue;
    property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull;

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

  end;

  { IArticulos_Proveedores }
  IArticulos_Proveedores = interface(IDAStronglyTypedDataTable)
  ['{207A4E73-3708-4C1F-9075-D0C64F754C70}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);
    function GetID_ARTICULOValue: Integer;
    procedure SetID_ARTICULOValue(const aValue: Integer);
    function GetID_ARTICULOIsNull: Boolean;
    procedure SetID_ARTICULOIsNull(const aValue: Boolean);
    function GetID_PROVEEDORValue: Integer;
    procedure SetID_PROVEEDORValue(const aValue: Integer);
    function GetID_PROVEEDORIsNull: Boolean;
    procedure SetID_PROVEEDORIsNull(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 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_PORTEValue: Currency;
    procedure SetPRECIO_PORTEValue(const aValue: Currency);
    function GetPRECIO_PORTEIsNull: Boolean;
    procedure SetPRECIO_PORTEIsNull(const aValue: Boolean);
    function GetPRECIO_PVP_VENTAValue: Currency;
    procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency);
    function GetPRECIO_PVP_VENTAIsNull: Boolean;
    procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean);
    function GetPRECIO_PVP_TOTALValue: Currency;
    procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency);
    function GetPRECIO_PVP_TOTALIsNull: Boolean;
    procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
    property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    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 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_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue;
    property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull;
    property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue;
    property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull;
    property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue;
    property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull;
  end;

  { TArticulos_ProveedoresDataTableRules }
  TArticulos_ProveedoresDataTableRules = class(TIntfObjectDADataTableRules, IArticulos_Proveedores)
  private
  protected
    { Property getters and setters }
    function GetIDValue: Integer; virtual;
    procedure SetIDValue(const aValue: Integer); virtual;
    function GetIDIsNull: Boolean; virtual;
    procedure SetIDIsNull(const aValue: Boolean); virtual;
    function GetID_ARTICULOValue: Integer; virtual;
    procedure SetID_ARTICULOValue(const aValue: Integer); virtual;
    function GetID_ARTICULOIsNull: Boolean; virtual;
    procedure SetID_ARTICULOIsNull(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 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 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_PORTEValue: Currency; virtual;
    procedure SetPRECIO_PORTEValue(const aValue: Currency); virtual;
    function GetPRECIO_PORTEIsNull: Boolean; virtual;
    procedure SetPRECIO_PORTEIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVP_VENTAValue: Currency; virtual;
    procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual;
    function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual;
    procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVP_TOTALValue: Currency; virtual;
    procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual;
    function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual;
    procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
    property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;
    property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue;
    property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull;
    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 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_PORTE: Currency read GetPRECIO_PORTEValue write SetPRECIO_PORTEValue;
    property PRECIO_PORTEIsNull: Boolean read GetPRECIO_PORTEIsNull write SetPRECIO_PORTEIsNull;
    property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue;
    property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull;
    property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue;
    property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull;

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

  end;

  { IArticulos_ParaVariosProveedores }
  IArticulos_ParaVariosProveedores = interface(IDAStronglyTypedDataTable)
  ['{1E88E36B-26F7-4F85-B9FC-EF7AD928DA83}']
    { 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 GetUNIDAD_MEDIDAValue: String;
    procedure SetUNIDAD_MEDIDAValue(const aValue: String);
    function GetUNIDAD_MEDIDAIsNull: Boolean;
    procedure SetUNIDAD_MEDIDAIsNull(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 GetINVENTARIABLEValue: SmallInt;
    procedure SetINVENTARIABLEValue(const aValue: SmallInt);
    function GetINVENTARIABLEIsNull: Boolean;
    procedure SetINVENTARIABLEIsNull(const aValue: Boolean);
    function GetELIMINADOValue: SmallInt;
    procedure SetELIMINADOValue(const aValue: SmallInt);
    function GetELIMINADOIsNull: Boolean;
    procedure SetELIMINADOIsNull(const aValue: Boolean);
    function GetFABRICANTEValue: String;
    procedure SetFABRICANTEValue(const aValue: String);
    function GetFABRICANTEIsNull: Boolean;
    procedure SetFABRICANTEIsNull(const aValue: Boolean);
    function GetREFERENCIA_FABRValue: String;
    procedure SetREFERENCIA_FABRValue(const aValue: String);
    function GetREFERENCIA_FABRIsNull: Boolean;
    procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean);
    function GetTIENDA_WEBValue: String;
    procedure SetTIENDA_WEBValue(const aValue: String);
    function GetTIENDA_WEBIsNull: Boolean;
    procedure SetTIENDA_WEBIsNull(const aValue: Boolean);
    function GetPARAM_MARGENValue: Float;
    procedure SetPARAM_MARGENValue(const aValue: Float);
    function GetPARAM_MARGENIsNull: Boolean;
    procedure SetPARAM_MARGENIsNull(const aValue: Boolean);
    function GetPRECIO_PVP_VENTAValue: Currency;
    procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency);
    function GetPRECIO_PVP_VENTAIsNull: Boolean;
    procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean);
    function GetTIEMPOValue: Integer;
    procedure SetTIEMPOValue(const aValue: Integer);
    function GetTIEMPOIsNull: Boolean;
    procedure SetTIEMPOIsNull(const aValue: Boolean);
    function GetPARAM_TIEMPOValue: Float;
    procedure SetPARAM_TIEMPOValue(const aValue: Float);
    function GetPARAM_TIEMPOIsNull: Boolean;
    procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean);
    function GetMANO_OBRAValue: Currency;
    procedure SetMANO_OBRAValue(const aValue: Currency);
    function GetMANO_OBRAIsNull: Boolean;
    procedure SetMANO_OBRAIsNull(const aValue: Boolean);
    function GetPRECIO_PVP_TOTALValue: Currency;
    procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency);
    function GetPRECIO_PVP_TOTALIsNull: Boolean;
    procedure SetPRECIO_PVP_TOTALIsNull(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 UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
    property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
    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 INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue;
    property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull;
    property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
    property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
    property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
    property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
    property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue;
    property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull;
    property TIENDA_WEB: String read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull;
    property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue;
    property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull;
    property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue;
    property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull;
    property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue;
    property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull;
    property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue;
    property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull;
    property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue;
    property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull;
    property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue;
    property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull;
  end;

  { TArticulos_ParaVariosProveedoresDataTableRules }
  TArticulos_ParaVariosProveedoresDataTableRules = class(TIntfObjectDADataTableRules, IArticulos_ParaVariosProveedores)
  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 GetUNIDAD_MEDIDAValue: String; virtual;
    procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual;
    function GetUNIDAD_MEDIDAIsNull: Boolean; virtual;
    procedure SetUNIDAD_MEDIDAIsNull(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 GetINVENTARIABLEValue: SmallInt; virtual;
    procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual;
    function GetINVENTARIABLEIsNull: Boolean; virtual;
    procedure SetINVENTARIABLEIsNull(const aValue: Boolean); virtual;
    function GetELIMINADOValue: SmallInt; virtual;
    procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
    function GetELIMINADOIsNull: Boolean; virtual;
    procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
    function GetFABRICANTEValue: String; virtual;
    procedure SetFABRICANTEValue(const aValue: String); virtual;
    function GetFABRICANTEIsNull: Boolean; virtual;
    procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual;
    function GetREFERENCIA_FABRValue: String; virtual;
    procedure SetREFERENCIA_FABRValue(const aValue: String); virtual;
    function GetREFERENCIA_FABRIsNull: Boolean; virtual;
    procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual;
    function GetTIENDA_WEBValue: String; virtual;
    procedure SetTIENDA_WEBValue(const aValue: String); virtual;
    function GetTIENDA_WEBIsNull: Boolean; virtual;
    procedure SetTIENDA_WEBIsNull(const aValue: Boolean); virtual;
    function GetPARAM_MARGENValue: Float; virtual;
    procedure SetPARAM_MARGENValue(const aValue: Float); virtual;
    function GetPARAM_MARGENIsNull: Boolean; virtual;
    procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVP_VENTAValue: Currency; virtual;
    procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual;
    function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual;
    procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual;
    function GetTIEMPOValue: Integer; virtual;
    procedure SetTIEMPOValue(const aValue: Integer); virtual;
    function GetTIEMPOIsNull: Boolean; virtual;
    procedure SetTIEMPOIsNull(const aValue: Boolean); virtual;
    function GetPARAM_TIEMPOValue: Float; virtual;
    procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual;
    function GetPARAM_TIEMPOIsNull: Boolean; virtual;
    procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual;
    function GetMANO_OBRAValue: Currency; virtual;
    procedure SetMANO_OBRAValue(const aValue: Currency); virtual;
    function GetMANO_OBRAIsNull: Boolean; virtual;
    procedure SetMANO_OBRAIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVP_TOTALValue: Currency; virtual;
    procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual;
    function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual;
    procedure SetPRECIO_PVP_TOTALIsNull(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 UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
    property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
    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 INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue;
    property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull;
    property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
    property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
    property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
    property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
    property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue;
    property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull;
    property TIENDA_WEB: String read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull;
    property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue;
    property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull;
    property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue;
    property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull;
    property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue;
    property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull;
    property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue;
    property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull;
    property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue;
    property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull;
    property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue;
    property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull;

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

  end;

  {
  ¡¡¡¡ Esta tabla debe tener los mismos campos y orden de campos que 'Artículos' !!!!
  }
  { IArticulosParaCompra }
  IArticulosParaCompra = interface(IDAStronglyTypedDataTable)
  ['{E628F912-DAD9-43C4-A1C6-23C0B0894DAC}']
    { 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 GetUNIDAD_MEDIDAValue: String;
    procedure SetUNIDAD_MEDIDAValue(const aValue: String);
    function GetUNIDAD_MEDIDAIsNull: Boolean;
    procedure SetUNIDAD_MEDIDAIsNull(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 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);
    function GetFABRICANTEValue: String;
    procedure SetFABRICANTEValue(const aValue: String);
    function GetFABRICANTEIsNull: Boolean;
    procedure SetFABRICANTEIsNull(const aValue: Boolean);
    function GetREFERENCIA_FABRValue: String;
    procedure SetREFERENCIA_FABRValue(const aValue: String);
    function GetREFERENCIA_FABRIsNull: Boolean;
    procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean);
    function GetPARAM_MARGENValue: Float;
    procedure SetPARAM_MARGENValue(const aValue: Float);
    function GetPARAM_MARGENIsNull: Boolean;
    procedure SetPARAM_MARGENIsNull(const aValue: Boolean);
    function GetPRECIO_PVP_VENTAValue: Currency;
    procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency);
    function GetPRECIO_PVP_VENTAIsNull: Boolean;
    procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean);
    function GetTIEMPOValue: Integer;
    procedure SetTIEMPOValue(const aValue: Integer);
    function GetTIEMPOIsNull: Boolean;
    procedure SetTIEMPOIsNull(const aValue: Boolean);
    function GetPARAM_TIEMPOValue: Float;
    procedure SetPARAM_TIEMPOValue(const aValue: Float);
    function GetPARAM_TIEMPOIsNull: Boolean;
    procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean);
    function GetMANO_OBRAValue: Currency;
    procedure SetMANO_OBRAValue(const aValue: Currency);
    function GetMANO_OBRAIsNull: Boolean;
    procedure SetMANO_OBRAIsNull(const aValue: Boolean);
    function GetPRECIO_PVP_TOTALValue: Currency;
    procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency);
    function GetPRECIO_PVP_TOTALIsNull: Boolean;
    procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean);
    function GetID_ARTICULOValue: Integer;
    procedure SetID_ARTICULOValue(const aValue: Integer);
    function GetID_ARTICULOIsNull: Boolean;
    procedure SetID_ARTICULOIsNull(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 UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
    property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
    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 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;
    property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
    property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
    property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue;
    property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull;
    property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue;
    property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull;
    property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue;
    property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull;
    property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue;
    property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull;
    property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue;
    property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull;
    property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue;
    property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull;
    property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue;
    property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull;
    property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
    property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;
  end;

  { TArticulosParaCompraDataTableRules }
  TArticulosParaCompraDataTableRules = class(TIntfObjectDADataTableRules, IArticulosParaCompra)
  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 GetUNIDAD_MEDIDAValue: String; virtual;
    procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual;
    function GetUNIDAD_MEDIDAIsNull: Boolean; virtual;
    procedure SetUNIDAD_MEDIDAIsNull(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 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;
    function GetFABRICANTEValue: String; virtual;
    procedure SetFABRICANTEValue(const aValue: String); virtual;
    function GetFABRICANTEIsNull: Boolean; virtual;
    procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual;
    function GetREFERENCIA_FABRValue: String; virtual;
    procedure SetREFERENCIA_FABRValue(const aValue: String); virtual;
    function GetREFERENCIA_FABRIsNull: Boolean; virtual;
    procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual;
    function GetPARAM_MARGENValue: Float; virtual;
    procedure SetPARAM_MARGENValue(const aValue: Float); virtual;
    function GetPARAM_MARGENIsNull: Boolean; virtual;
    procedure SetPARAM_MARGENIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVP_VENTAValue: Currency; virtual;
    procedure SetPRECIO_PVP_VENTAValue(const aValue: Currency); virtual;
    function GetPRECIO_PVP_VENTAIsNull: Boolean; virtual;
    procedure SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean); virtual;
    function GetTIEMPOValue: Integer; virtual;
    procedure SetTIEMPOValue(const aValue: Integer); virtual;
    function GetTIEMPOIsNull: Boolean; virtual;
    procedure SetTIEMPOIsNull(const aValue: Boolean); virtual;
    function GetPARAM_TIEMPOValue: Float; virtual;
    procedure SetPARAM_TIEMPOValue(const aValue: Float); virtual;
    function GetPARAM_TIEMPOIsNull: Boolean; virtual;
    procedure SetPARAM_TIEMPOIsNull(const aValue: Boolean); virtual;
    function GetMANO_OBRAValue: Currency; virtual;
    procedure SetMANO_OBRAValue(const aValue: Currency); virtual;
    function GetMANO_OBRAIsNull: Boolean; virtual;
    procedure SetMANO_OBRAIsNull(const aValue: Boolean); virtual;
    function GetPRECIO_PVP_TOTALValue: Currency; virtual;
    procedure SetPRECIO_PVP_TOTALValue(const aValue: Currency); virtual;
    function GetPRECIO_PVP_TOTALIsNull: Boolean; virtual;
    procedure SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean); virtual;
    function GetID_ARTICULOValue: Integer; virtual;
    procedure SetID_ARTICULOValue(const aValue: Integer); virtual;
    function GetID_ARTICULOIsNull: Boolean; virtual;
    procedure SetID_ARTICULOIsNull(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 UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
    property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
    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 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;
    property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
    property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
    property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue;
    property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull;
    property PARAM_MARGEN: Float read GetPARAM_MARGENValue write SetPARAM_MARGENValue;
    property PARAM_MARGENIsNull: Boolean read GetPARAM_MARGENIsNull write SetPARAM_MARGENIsNull;
    property PRECIO_PVP_VENTA: Currency read GetPRECIO_PVP_VENTAValue write SetPRECIO_PVP_VENTAValue;
    property PRECIO_PVP_VENTAIsNull: Boolean read GetPRECIO_PVP_VENTAIsNull write SetPRECIO_PVP_VENTAIsNull;
    property TIEMPO: Integer read GetTIEMPOValue write SetTIEMPOValue;
    property TIEMPOIsNull: Boolean read GetTIEMPOIsNull write SetTIEMPOIsNull;
    property PARAM_TIEMPO: Float read GetPARAM_TIEMPOValue write SetPARAM_TIEMPOValue;
    property PARAM_TIEMPOIsNull: Boolean read GetPARAM_TIEMPOIsNull write SetPARAM_TIEMPOIsNull;
    property MANO_OBRA: Currency read GetMANO_OBRAValue write SetMANO_OBRAValue;
    property MANO_OBRAIsNull: Boolean read GetMANO_OBRAIsNull write SetMANO_OBRAIsNull;
    property PRECIO_PVP_TOTAL: Currency read GetPRECIO_PVP_TOTALValue write SetPRECIO_PVP_TOTALValue;
    property PRECIO_PVP_TOTALIsNull: Boolean read GetPRECIO_PVP_TOTALIsNull write SetPRECIO_PVP_TOTALIsNull;
    property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue;
    property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull;

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

  end;

  { IArticulosParaCliente }
  IArticulosParaCliente = interface(IDAStronglyTypedDataTable)
  ['{86AE95E8-0F31-4DCA-8B6B-4AE75C1E25FE}']
    { 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 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);
    function GetTIENDA_WEBValue: SmallInt;
    procedure SetTIENDA_WEBValue(const aValue: SmallInt);
    function GetTIENDA_WEBIsNull: Boolean;
    procedure SetTIENDA_WEBIsNull(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 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;
    property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull;
  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 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;
    function GetTIENDA_WEBValue: SmallInt; virtual;
    procedure SetTIENDA_WEBValue(const aValue: SmallInt); virtual;
    function GetTIENDA_WEBIsNull: Boolean; virtual;
    procedure SetTIENDA_WEBIsNull(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 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;
    property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull;

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

  end;

  { IArticulos }
  IArticulos = interface(IDAStronglyTypedDataTable)
  ['{4BC982D0-D8CB-432D-93D9-94ACA53AD0E0}']
    { 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 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);
    function GetTIENDA_WEBValue: SmallInt;
    procedure SetTIENDA_WEBValue(const aValue: SmallInt);
    function GetTIENDA_WEBIsNull: Boolean;
    procedure SetTIENDA_WEBIsNull(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 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;
    property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull;
  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 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;
    function GetTIENDA_WEBValue: SmallInt; virtual;
    procedure SetTIENDA_WEBValue(const aValue: SmallInt); virtual;
    function GetTIENDA_WEBIsNull: Boolean; virtual;
    procedure SetTIENDA_WEBIsNull(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 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;
    property TIENDA_WEB: SmallInt read GetTIENDA_WEBValue write SetTIENDA_WEBValue;
    property TIENDA_WEBIsNull: Boolean read GetTIENDA_WEBIsNull write SetTIENDA_WEBIsNull;

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

  end;

implementation

uses Variants, uROBinaryHelpers;

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

destructor TProveedoresConArticulosDataTableRules.Destroy;
begin
  inherited;
end;

function TProveedoresConArticulosDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ProveedoresConArticulosID_PROVEEDOR].AsInteger;
end;

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

function TProveedoresConArticulosDataTableRules.GetID_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ProveedoresConArticulosID_PROVEEDOR].IsNull;
end;

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

function TProveedoresConArticulosDataTableRules.GetNOMBREValue: String;
begin
  result := DataTable.Fields[idx_ProveedoresConArticulosNOMBRE].AsString;
end;

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

function TProveedoresConArticulosDataTableRules.GetNOMBREIsNull: boolean;
begin
  result := DataTable.Fields[idx_ProveedoresConArticulosNOMBRE].IsNull;
end;

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


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

destructor TArticulos_ProveedoresDataTableRules.Destroy;
begin
  inherited;
end;

function TArticulos_ProveedoresDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresID].AsInteger;
end;

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

function TArticulos_ProveedoresDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresID].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetID_ARTICULOValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].AsInteger;
end;

procedure TArticulos_ProveedoresDataTableRules.SetID_ARTICULOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].AsInteger := aValue;
end;

function TArticulos_ProveedoresDataTableRules.GetID_ARTICULOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].IsNull;
end;

procedure TArticulos_ProveedoresDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ProveedoresID_ARTICULO].AsVariant := Null;
end;

function TArticulos_ProveedoresDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresID_PROVEEDOR].AsInteger;
end;

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

function TArticulos_ProveedoresDataTableRules.GetID_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresID_PROVEEDOR].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetREFERENCIA_PROVValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresREFERENCIA_PROV].AsString;
end;

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

function TArticulos_ProveedoresDataTableRules.GetREFERENCIA_PROVIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresREFERENCIA_PROV].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_COSTEValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_COSTE].AsCurrency;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_COSTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_COSTE].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresDESCUENTO].AsFloat;
end;

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

function TArticulos_ProveedoresDataTableRules.GetDESCUENTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresDESCUENTO].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_NETOValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_NETO].AsCurrency;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_NETOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_NETO].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_PORTEValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PORTE].AsCurrency;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_PORTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PORTE].IsNull;
end;

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

function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_VENTAValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].AsCurrency;
end;

procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].AsCurrency := aValue;
end;

function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_VENTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].IsNull;
end;

procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_VENTA].AsVariant := Null;
end;

function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_TOTALValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].AsCurrency;
end;

procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].AsCurrency := aValue;
end;

function TArticulos_ProveedoresDataTableRules.GetPRECIO_PVP_TOTALIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].IsNull;
end;

procedure TArticulos_ProveedoresDataTableRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ProveedoresPRECIO_PVP_TOTAL].AsVariant := Null;
end;


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

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

destructor TArticulos_ParaVariosProveedoresDataTableRules.Destroy;
begin
  inherited;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresID].AsInteger;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresID].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresID_EMPRESA].AsInteger;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetID_EMPRESAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresID_EMPRESA].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA].AsString;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresDESCRIPCION].AsString;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresDESCRIPCION].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetUNIDAD_MEDIDAValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresUNIDAD_MEDIDA].AsString;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresUNIDAD_MEDIDA].AsString := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresUNIDAD_MEDIDA].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresUNIDAD_MEDIDA].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetFAMILIAValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFAMILIA].AsString;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetFAMILIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFAMILIA].IsNull;
end;

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

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetIMAGENIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresIMAGEN].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetCOMISIONABLEValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresCOMISIONABLE].AsInteger;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetCOMISIONABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresCOMISIONABLE].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFECHA_ALTA].AsDateTime;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetFECHA_ALTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFECHA_ALTA].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFECHA_MODIFICACION].AsDateTime;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFECHA_MODIFICACION].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresUSUARIO].AsString;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetUSUARIOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresUSUARIO].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetREFERENCIA_PROVValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA_PROV].AsString;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetREFERENCIA_PROVIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA_PROV].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_COSTEValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_COSTE].AsCurrency;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_COSTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_COSTE].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_PORTEValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PORTE].AsCurrency;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_PORTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PORTE].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresDESCUENTO].AsFloat;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetDESCUENTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresDESCUENTO].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_NETOValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_NETO].AsCurrency;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_NETOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_NETO].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetINVENTARIABLEValue: SmallInt;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresINVENTARIABLE].AsSmallInt;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetINVENTARIABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresINVENTARIABLE].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetELIMINADOValue: SmallInt;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresELIMINADO].AsSmallInt;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetELIMINADOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresELIMINADO].IsNull;
end;

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

function TArticulos_ParaVariosProveedoresDataTableRules.GetFABRICANTEValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFABRICANTE].AsString;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetFABRICANTEValue(const aValue: String);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresFABRICANTE].AsString := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetFABRICANTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresFABRICANTE].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresFABRICANTE].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetREFERENCIA_FABRValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA_FABR].AsString;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetREFERENCIA_FABRValue(const aValue: String);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA_FABR].AsString := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetREFERENCIA_FABRIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA_FABR].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresREFERENCIA_FABR].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetTIENDA_WEBValue: String;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIENDA_WEB].AsString;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetTIENDA_WEBValue(const aValue: String);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIENDA_WEB].AsString := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetTIENDA_WEBIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIENDA_WEB].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetTIENDA_WEBIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIENDA_WEB].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPARAM_MARGENValue: Float;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_MARGEN].AsFloat;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPARAM_MARGENValue(const aValue: Float);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_MARGEN].AsFloat := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPARAM_MARGENIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_MARGEN].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPARAM_MARGENIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_MARGEN].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_PVP_VENTAValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_VENTA].AsCurrency;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_VENTA].AsCurrency := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_PVP_VENTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_VENTA].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_VENTA].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetTIEMPOValue: Integer;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIEMPO].AsInteger;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetTIEMPOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIEMPO].AsInteger := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetTIEMPOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIEMPO].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetTIEMPOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresTIEMPO].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPARAM_TIEMPOValue: Float;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_TIEMPO].AsFloat;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPARAM_TIEMPOValue(const aValue: Float);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_TIEMPO].AsFloat := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPARAM_TIEMPOIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_TIEMPO].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresPARAM_TIEMPO].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetMANO_OBRAValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresMANO_OBRA].AsCurrency;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetMANO_OBRAValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresMANO_OBRA].AsCurrency := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetMANO_OBRAIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresMANO_OBRA].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetMANO_OBRAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresMANO_OBRA].AsVariant := Null;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_PVP_TOTALValue: Currency;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_TOTAL].AsCurrency;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency);
begin
  DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_TOTAL].AsCurrency := aValue;
end;

function TArticulos_ParaVariosProveedoresDataTableRules.GetPRECIO_PVP_TOTALIsNull: boolean;
begin
  result := DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_TOTAL].IsNull;
end;

procedure TArticulos_ParaVariosProveedoresDataTableRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_Articulos_ParaVariosProveedoresPRECIO_PVP_TOTAL].AsVariant := Null;
end;


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

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

destructor TArticulosParaCompraDataTableRules.Destroy;
begin
  inherited;
end;

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

function TArticulosParaCompraDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID].AsInteger;
end;

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

function TArticulosParaCompraDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetID_EMPRESAValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID_EMPRESA].AsInteger;
end;

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

function TArticulosParaCompraDataTableRules.GetID_EMPRESAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID_EMPRESA].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA].AsString;
end;

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

function TArticulosParaCompraDataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraDESCRIPCION].AsString;
end;

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

function TArticulosParaCompraDataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraDESCRIPCION].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetUNIDAD_MEDIDAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].AsString;
end;

procedure TArticulosParaCompraDataTableRules.SetUNIDAD_MEDIDAValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].AsString := aValue;
end;

function TArticulosParaCompraDataTableRules.GetUNIDAD_MEDIDAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetUNIDAD_MEDIDAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraUNIDAD_MEDIDA].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetFAMILIAValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFAMILIA].AsString;
end;

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

function TArticulosParaCompraDataTableRules.GetFAMILIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFAMILIA].IsNull;
end;

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

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

function TArticulosParaCompraDataTableRules.GetIMAGENIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraIMAGEN].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetCOMISIONABLEValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraCOMISIONABLE].AsInteger;
end;

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

function TArticulosParaCompraDataTableRules.GetCOMISIONABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraCOMISIONABLE].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetFECHA_ALTAValue: DateTime;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFECHA_ALTA].AsDateTime;
end;

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

function TArticulosParaCompraDataTableRules.GetFECHA_ALTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFECHA_ALTA].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetFECHA_MODIFICACIONValue: DateTime;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFECHA_MODIFICACION].AsDateTime;
end;

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

function TArticulosParaCompraDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFECHA_MODIFICACION].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetUSUARIOValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraUSUARIO].AsString;
end;

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

function TArticulosParaCompraDataTableRules.GetUSUARIOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraUSUARIO].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetREFERENCIA_PROVValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_PROV].AsString;
end;

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

function TArticulosParaCompraDataTableRules.GetREFERENCIA_PROVIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_PROV].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetPRECIO_COSTEValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_COSTE].AsCurrency;
end;

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

function TArticulosParaCompraDataTableRules.GetPRECIO_COSTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_COSTE].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetPRECIO_PORTEValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PORTE].AsCurrency;
end;

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

function TArticulosParaCompraDataTableRules.GetPRECIO_PORTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PORTE].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetDESCUENTOValue: Float;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraDESCUENTO].AsFloat;
end;

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

function TArticulosParaCompraDataTableRules.GetDESCUENTOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraDESCUENTO].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetPRECIO_NETOValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_NETO].AsCurrency;
end;

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

function TArticulosParaCompraDataTableRules.GetPRECIO_NETOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_NETO].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetINVENTARIABLEValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraINVENTARIABLE].AsSmallInt;
end;

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

function TArticulosParaCompraDataTableRules.GetINVENTARIABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraINVENTARIABLE].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetID_PROVEEDORValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID_PROVEEDOR].AsInteger;
end;

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

function TArticulosParaCompraDataTableRules.GetID_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID_PROVEEDOR].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetNOMBRE_PROVEEDORValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraNOMBRE_PROVEEDOR].AsString;
end;

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

function TArticulosParaCompraDataTableRules.GetNOMBRE_PROVEEDORIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraNOMBRE_PROVEEDOR].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetELIMINADOValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraELIMINADO].AsSmallInt;
end;

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

function TArticulosParaCompraDataTableRules.GetELIMINADOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraELIMINADO].IsNull;
end;

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

function TArticulosParaCompraDataTableRules.GetFABRICANTEValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].AsString;
end;

procedure TArticulosParaCompraDataTableRules.SetFABRICANTEValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].AsString := aValue;
end;

function TArticulosParaCompraDataTableRules.GetFABRICANTEIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraFABRICANTE].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetREFERENCIA_FABRValue: String;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].AsString;
end;

procedure TArticulosParaCompraDataTableRules.SetREFERENCIA_FABRValue(const aValue: String);
begin
  DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].AsString := aValue;
end;

function TArticulosParaCompraDataTableRules.GetREFERENCIA_FABRIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetREFERENCIA_FABRIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraREFERENCIA_FABR].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetPARAM_MARGENValue: Float;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].AsFloat;
end;

procedure TArticulosParaCompraDataTableRules.SetPARAM_MARGENValue(const aValue: Float);
begin
  DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].AsFloat := aValue;
end;

function TArticulosParaCompraDataTableRules.GetPARAM_MARGENIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetPARAM_MARGENIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraPARAM_MARGEN].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_VENTAValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].AsCurrency;
end;

procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_VENTAValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].AsCurrency := aValue;
end;

function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_VENTAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_VENTAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_VENTA].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetTIEMPOValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraTIEMPO].AsInteger;
end;

procedure TArticulosParaCompraDataTableRules.SetTIEMPOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ArticulosParaCompraTIEMPO].AsInteger := aValue;
end;

function TArticulosParaCompraDataTableRules.GetTIEMPOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraTIEMPO].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetTIEMPOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraTIEMPO].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetPARAM_TIEMPOValue: Float;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].AsFloat;
end;

procedure TArticulosParaCompraDataTableRules.SetPARAM_TIEMPOValue(const aValue: Float);
begin
  DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].AsFloat := aValue;
end;

function TArticulosParaCompraDataTableRules.GetPARAM_TIEMPOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetPARAM_TIEMPOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraPARAM_TIEMPO].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetMANO_OBRAValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].AsCurrency;
end;

procedure TArticulosParaCompraDataTableRules.SetMANO_OBRAValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].AsCurrency := aValue;
end;

function TArticulosParaCompraDataTableRules.GetMANO_OBRAIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetMANO_OBRAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraMANO_OBRA].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_TOTALValue: Currency;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].AsCurrency;
end;

procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_TOTALValue(const aValue: Currency);
begin
  DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].AsCurrency := aValue;
end;

function TArticulosParaCompraDataTableRules.GetPRECIO_PVP_TOTALIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetPRECIO_PVP_TOTALIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraPRECIO_PVP_TOTAL].AsVariant := Null;
end;

function TArticulosParaCompraDataTableRules.GetID_ARTICULOValue: Integer;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].AsInteger;
end;

procedure TArticulosParaCompraDataTableRules.SetID_ARTICULOValue(const aValue: Integer);
begin
  DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].AsInteger := aValue;
end;

function TArticulosParaCompraDataTableRules.GetID_ARTICULOIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].IsNull;
end;

procedure TArticulosParaCompraDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaCompraID_ARTICULO].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.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;

function TArticulosParaClienteDataTableRules.GetTIENDA_WEBValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteTIENDA_WEB].AsSmallInt;
end;

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

function TArticulosParaClienteDataTableRules.GetTIENDA_WEBIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosParaClienteTIENDA_WEB].IsNull;
end;

procedure TArticulosParaClienteDataTableRules.SetTIENDA_WEBIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_ArticulosParaClienteTIENDA_WEB].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.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;

function TArticulosDataTableRules.GetTIENDA_WEBValue: SmallInt;
begin
  result := DataTable.Fields[idx_ArticulosTIENDA_WEB].AsSmallInt;
end;

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

function TArticulosDataTableRules.GetTIENDA_WEBIsNull: boolean;
begin
  result := DataTable.Fields[idx_ArticulosTIENDA_WEB].IsNull;
end;

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


initialization
  RegisterDataTableRules(RID_ProveedoresConArticulos, TProveedoresConArticulosDataTableRules);
  RegisterDataTableRules(RID_Articulos_Proveedores, TArticulos_ProveedoresDataTableRules);
  RegisterDataTableRules(RID_Articulos_ParaVariosProveedores, TArticulos_ParaVariosProveedoresDataTableRules);
  RegisterDataTableRules(RID_ArticulosParaCompra, TArticulosParaCompraDataTableRules);
  RegisterDataTableRules(RID_ArticulosParaCliente, TArticulosParaClienteDataTableRules);
  RegisterDataTableRules(RID_Articulos, TArticulosDataTableRules);

end.
