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.