unit schTiposVentaClient_Intf;

interface

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

const
  { Data table rules ids
       Feel free to change them to something more human readable
       but make sure they are unique in the context of your application }
  RID_TiposVenta = '{DE49579B-AC5A-44C9-9C04-B59C78623378}';

  { Data table names }
  nme_TiposVenta = 'TiposVenta';

  { TiposVenta fields }
  fld_TiposVentaID = 'ID';
  fld_TiposVentaDESCRIPCION = 'DESCRIPCION';
  fld_TiposVentaCODIGO_CONTABLE = 'CODIGO_CONTABLE';

  { TiposVenta field indexes }
  idx_TiposVentaID = 0;
  idx_TiposVentaDESCRIPCION = 1;
  idx_TiposVentaCODIGO_CONTABLE = 2;

type
  { ITiposVenta }
  ITiposVenta = interface(IDAStronglyTypedDataTable)
  ['{AEA6CA6A-2A69-4A3A-B3FE-40D955421E16}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(const aValue: Boolean);
    function GetDESCRIPCIONValue: String;
    procedure SetDESCRIPCIONValue(const aValue: String);
    function GetDESCRIPCIONIsNull: Boolean;
    procedure SetDESCRIPCIONIsNull(const aValue: Boolean);
    function GetCODIGO_CONTABLEValue: String;
    procedure SetCODIGO_CONTABLEValue(const aValue: String);
    function GetCODIGO_CONTABLEIsNull: Boolean;
    procedure SetCODIGO_CONTABLEIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
    property CODIGO_CONTABLE: String read GetCODIGO_CONTABLEValue write SetCODIGO_CONTABLEValue;
    property CODIGO_CONTABLEIsNull: Boolean read GetCODIGO_CONTABLEIsNull write SetCODIGO_CONTABLEIsNull;
  end;

  { TTiposVentaDataTableRules }
  TTiposVentaDataTableRules = class(TIntfObjectDADataTableRules, ITiposVenta)
  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 GetDESCRIPCIONValue: String; virtual;
    procedure SetDESCRIPCIONValue(const aValue: String); virtual;
    function GetDESCRIPCIONIsNull: Boolean; virtual;
    procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual;
    function GetCODIGO_CONTABLEValue: String; virtual;
    procedure SetCODIGO_CONTABLEValue(const aValue: String); virtual;
    function GetCODIGO_CONTABLEIsNull: Boolean; virtual;
    procedure SetCODIGO_CONTABLEIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
    property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
    property CODIGO_CONTABLE: String read GetCODIGO_CONTABLEValue write SetCODIGO_CONTABLEValue;
    property CODIGO_CONTABLEIsNull: Boolean read GetCODIGO_CONTABLEIsNull write SetCODIGO_CONTABLEIsNull;

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

  end;

implementation

uses Variants, uROBinaryHelpers;

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

destructor TTiposVentaDataTableRules.Destroy;
begin
  inherited;
end;

function TTiposVentaDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_TiposVentaID].AsInteger;
end;

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

function TTiposVentaDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposVentaID].IsNull;
end;

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

function TTiposVentaDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_TiposVentaDESCRIPCION].AsString;
end;

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

function TTiposVentaDataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposVentaDESCRIPCION].IsNull;
end;

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

function TTiposVentaDataTableRules.GetCODIGO_CONTABLEValue: String;
begin
  result := DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].AsString;
end;

procedure TTiposVentaDataTableRules.SetCODIGO_CONTABLEValue(const aValue: String);
begin
  DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].AsString := aValue;
end;

function TTiposVentaDataTableRules.GetCODIGO_CONTABLEIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].IsNull;
end;

procedure TTiposVentaDataTableRules.SetCODIGO_CONTABLEIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].AsVariant := Null;
end;


initialization
  RegisterDataTableRules(RID_TiposVenta, TTiposVentaDataTableRules);

end.
