unit schTiposIVAClient_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_TiposIVA = '{700B374C-AA68-4A5B-9ACA-A0704A82A98D}';

  { Data table names }
  nme_TiposIVA = 'TiposIVA';

  { TiposIVA fields }
  fld_TiposIVAID = 'ID';
  fld_TiposIVAREFERENCIA = 'REFERENCIA';
  fld_TiposIVADESCRIPCION = 'DESCRIPCION';
  fld_TiposIVAIVA = 'IVA';
  fld_TiposIVARE = 'RE';

  { TiposIVA field indexes }
  idx_TiposIVAID = 0;
  idx_TiposIVAREFERENCIA = 1;
  idx_TiposIVADESCRIPCION = 2;
  idx_TiposIVAIVA = 3;
  idx_TiposIVARE = 4;

type
  { ITiposIVA }
  ITiposIVA = interface(IDAStronglyTypedDataTable)
  ['{342A3165-77DD-40FB-8154-0D79346AC9D1}']
    { Property getters and setters }
    function GetIDValue: Integer;
    procedure SetIDValue(const aValue: Integer);
    function GetIDIsNull: Boolean;
    procedure SetIDIsNull(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 GetIVAValue: Float;
    procedure SetIVAValue(const aValue: Float);
    function GetIVAIsNull: Boolean;
    procedure SetIVAIsNull(const aValue: Boolean);
    function GetREValue: Float;
    procedure SetREValue(const aValue: Float);
    function GetREIsNull: Boolean;
    procedure SetREIsNull(const aValue: Boolean);


    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    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 IVA: Float read GetIVAValue write SetIVAValue;
    property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull;
    property RE: Float read GetREValue write SetREValue;
    property REIsNull: Boolean read GetREIsNull write SetREIsNull;
  end;

  { TTiposIVADataTableRules }
  TTiposIVADataTableRules = class(TIntfObjectDADataTableRules, ITiposIVA)
  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 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 GetIVAValue: Float; virtual;
    procedure SetIVAValue(const aValue: Float); virtual;
    function GetIVAIsNull: Boolean; virtual;
    procedure SetIVAIsNull(const aValue: Boolean); virtual;
    function GetREValue: Float; virtual;
    procedure SetREValue(const aValue: Float); virtual;
    function GetREIsNull: Boolean; virtual;
    procedure SetREIsNull(const aValue: Boolean); virtual;

    { Properties }
    property ID: Integer read GetIDValue write SetIDValue;
    property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull;
    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 IVA: Float read GetIVAValue write SetIVAValue;
    property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull;
    property RE: Float read GetREValue write SetREValue;
    property REIsNull: Boolean read GetREIsNull write SetREIsNull;

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

  end;

implementation

uses Variants, uROBinaryHelpers;

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

destructor TTiposIVADataTableRules.Destroy;
begin
  inherited;
end;

function TTiposIVADataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_TiposIVAID].AsInteger;
end;

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

function TTiposIVADataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposIVAID].IsNull;
end;

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

function TTiposIVADataTableRules.GetREFERENCIAValue: String;
begin
  result := DataTable.Fields[idx_TiposIVAREFERENCIA].AsString;
end;

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

function TTiposIVADataTableRules.GetREFERENCIAIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposIVAREFERENCIA].IsNull;
end;

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

function TTiposIVADataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_TiposIVADESCRIPCION].AsString;
end;

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

function TTiposIVADataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposIVADESCRIPCION].IsNull;
end;

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

function TTiposIVADataTableRules.GetIVAValue: Float;
begin
  result := DataTable.Fields[idx_TiposIVAIVA].AsFloat;
end;

procedure TTiposIVADataTableRules.SetIVAValue(const aValue: Float);
begin
  DataTable.Fields[idx_TiposIVAIVA].AsFloat := aValue;
end;

function TTiposIVADataTableRules.GetIVAIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposIVAIVA].IsNull;
end;

procedure TTiposIVADataTableRules.SetIVAIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_TiposIVAIVA].AsVariant := Null;
end;

function TTiposIVADataTableRules.GetREValue: Float;
begin
  result := DataTable.Fields[idx_TiposIVARE].AsFloat;
end;

procedure TTiposIVADataTableRules.SetREValue(const aValue: Float);
begin
  DataTable.Fields[idx_TiposIVARE].AsFloat := aValue;
end;

function TTiposIVADataTableRules.GetREIsNull: boolean;
begin
  result := DataTable.Fields[idx_TiposIVARE].IsNull;
end;

procedure TTiposIVADataTableRules.SetREIsNull(const aValue: Boolean);
begin
  if aValue then
    DataTable.Fields[idx_TiposIVARE].AsVariant := Null;
end;


initialization
  RegisterDataTableRules(RID_TiposIVA, TTiposIVADataTableRules);

end.
