{ =============================================================================== Copyright (©) 2007. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: Versión actual: 1.0.0 Fecha versión actual: =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit uBizRecibosProveedor; interface uses uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosProveedorClient_Intf, uBizPagosProveedor, uBizContactos; const BIZ_CLIENT_IBIZRECIBOSPROVEEDOR = 'Client.IBizRecibosProveedor'; CTE_PENDIENTE = 'PENDIENTE'; CTE_PAGADO = 'PAGADO'; CTE_DEVUELTO = 'DEVUELTO'; type IBizRecibosProveedor = interface(IRecibosProveedor) ['{FEE753DF-0471-4754-A86C-58BF615929CF}'] function EsNuevo : Boolean; // No se puede cambiar el Proveedor por que depende de la factura function GetProveedor : IBizProveedor; property Proveedor : IBizProveedor read GetProveedor; // Esta propidad es para que el controlador pueda acceder directamente // a la propiedad Proveedor procedure _SetProveedor(AValue : IBizProveedor); function _GetProveedor : IBizProveedor; property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; procedure SetPagos(AValue : IBizPagosProveedor); function GetPagos : IBizPagosProveedor; property Pagos : IBizPagosProveedor read GetPagos write SetPagos; end; TBizRecibosProveedor = class(TRecibosProveedorDataTableRules, IBizRecibosProveedor, ISeleccionable) protected FPagos : IBizPagosProveedor; FPagosLink : TDADataSource; FProveedor : IBizProveedor; FSeleccionableInterface : ISeleccionable; // No se puede cambiar el Proveedor por que depende de la factura function GetProveedor : IBizProveedor; property Proveedor : IBizProveedor read GetProveedor; // Esta propidad es para que el controlador pueda acceder directamente // a la propiedad Proveedor procedure _SetProveedor(AValue : IBizProveedor); function _GetProveedor : IBizProveedor; property _Proveedor : IBizProveedor read _GetProveedor write _SetProveedor; procedure SetPagos(AValue : IBizPagosProveedor); function GetPagos : IBizPagosProveedor; procedure OnNewRecord(Sender: TDADataTable); override; public property Pagos : IBizPagosProveedor read GetPagos write SetPagos; property SeleccionableInterface : ISeleccionable read FSeleccionableInterface write FSeleccionableInterface implements ISeleccionable; procedure IniciarValoresIBizRecibosProveedorNuevo; function EsNuevo : Boolean; constructor Create(aDataTable: TDADataTable); override; destructor Destroy; override; end; implementation { TBizRecibosProveedor } uses SysUtils, uDataTableUtils, schContactosClient_Intf; function TBizRecibosProveedor.GetProveedor: IBizProveedor; begin Result := FProveedor; end; function TBizRecibosProveedor.GetPagos: IBizPagosProveedor; begin Result := FPagos; end; procedure TBizRecibosProveedor.SetPagos(AValue: IBizPagosProveedor); begin FPagos := AValue; EnlazarMaestroDetalle(FPagosLink, FPagos); end; function TBizRecibosProveedor._GetProveedor: IBizProveedor; begin Result := FProveedor; end; procedure TBizRecibosProveedor._SetProveedor(AValue: IBizProveedor); begin FProveedor := AValue; end; constructor TBizRecibosProveedor.Create(aDataTable: TDADataTable); begin inherited; FProveedor := Nil; FPagosLink := TDADataSource.Create(NIL); FPagosLink.DataTable := aDataTable; FSeleccionableInterface := TSeleccionable.Create(aDataTable); end; destructor TBizRecibosProveedor.Destroy; begin FPagos := NIL; FreeAndNIL(FPagosLink); FSeleccionableInterface := NIL; inherited; end; function TBizRecibosProveedor.EsNuevo: Boolean; begin Result := (ID < 0); end; procedure TBizRecibosProveedor.IniciarValoresIBizRecibosProveedorNuevo; begin FECHA_EMISION := Date; IMPORTE := 0; OTROS_GASTOS := 0; end; procedure TBizRecibosProveedor.OnNewRecord(Sender: TDADataTable); begin inherited; ID := GetRecNo; // -1, -2, -3... IniciarValoresIBizRecibosProveedorNuevo; end; initialization RegisterDataTableRules(BIZ_CLIENT_IBIZRECIBOSPROVEEDOR, TBizRecibosProveedor); finalization end.