AbetoDesign_FactuGES2/Source/Modulos/Contabilidad/Model/uBizAsientos.pas

95 lines
2.0 KiB
ObjectPascal

unit uBizAsientos;
interface
uses
uDAInterfaces, uDADataTable, schContabilidadClient_Intf, uBizApuntes;
const
BIZ_CLIENT_Asiento = 'Client.Asiento';
type
IBizAsiento = interface(IAsientos)
['{F79E3238-1E0D-4FB6-9AF7-E5703619B067}']
function GetApuntes: IBizApunte;
procedure SetApuntes(Value: IBizApunte);
property Apuntes: IBizApunte read GetApuntes write SetApuntes;
function EsNuevo : Boolean;
end;
TBizAsiento = class(TAsientosDataTableRules, IBizAsiento)
protected
FApuntes : IBizApunte;
FApuntesLink : TDADataSource;
function GetApuntes: IBizApunte;
procedure SetApuntes(Value: IBizApunte);
procedure OnNewRecord(Sender: TDADataTable); override;
public
property Apuntes: IBizApunte read GetApuntes write SetApuntes;
procedure IniciarValoresAsientoNueva;
function EsNuevo : Boolean;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
implementation
{ TBizAsiento }
uses
SysUtils, uDataTableUtils, uFactuGES_App;
constructor TBizAsiento.Create(aDataTable: TDADataTable);
begin
inherited;
FApuntes := Nil;
FApuntesLink := TDADataSource.Create(NIL);
FApuntesLink.DataTable := aDataTable;
end;
destructor TBizAsiento.Destroy;
begin
FApuntes := NIL;
FApuntesLink.Free;
inherited;
end;
function TBizAsiento.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
function TBizAsiento.GetApuntes: IBizApunte;
begin
Result := FApuntes;
end;
procedure TBizAsiento.IniciarValoresAsientoNueva;
begin
FECHA_ASIENTO := Date;
end;
procedure TBizAsiento.OnNewRecord(Sender: TDADataTable);
begin
inherited;
IniciarValoresAsientoNueva;
end;
procedure TBizAsiento.SetApuntes(Value: IBizApunte);
begin
FApuntes := Value;
EnlazarMaestroDetalle(FApuntesLink, FApuntes);
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_Asiento, TBizAsiento);
finalization
end.