unit schUnidadesMedidaClient_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_UnidadesMedida = '{6C423586-F446-4984-BC7A-C5B4E036C9DC}';

  { Data table names }
  nme_UnidadesMedida = 'UnidadesMedida';

  { UnidadesMedida fields }
  fld_UnidadesMedidaID = 'ID';
  fld_UnidadesMedidaDESCRIPCION = 'DESCRIPCION';

  { UnidadesMedida field indexes }
  idx_UnidadesMedidaID = 0;
  idx_UnidadesMedidaDESCRIPCION = 1;

type
  { IUnidadesMedida }
  IUnidadesMedida = interface(IDAStronglyTypedDataTable)
  ['{3F35C0B0-C4B4-419E-930A-2A9B26E37C88}']
    { 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);


    { 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;
  end;

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

    { 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;

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

  end;

implementation

uses Variants, uROBinaryHelpers;

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

destructor TUnidadesMedidaDataTableRules.Destroy;
begin
  inherited;
end;

function TUnidadesMedidaDataTableRules.GetIDValue: Integer;
begin
  result := DataTable.Fields[idx_UnidadesMedidaID].AsInteger;
end;

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

function TUnidadesMedidaDataTableRules.GetIDIsNull: boolean;
begin
  result := DataTable.Fields[idx_UnidadesMedidaID].IsNull;
end;

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

function TUnidadesMedidaDataTableRules.GetDESCRIPCIONValue: String;
begin
  result := DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsString;
end;

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

function TUnidadesMedidaDataTableRules.GetDESCRIPCIONIsNull: boolean;
begin
  result := DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].IsNull;
end;

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


initialization
  RegisterDataTableRules(RID_UnidadesMedida, TUnidadesMedidaDataTableRules);

end.
