{ =============================================================================== 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, uBizRecibosProvCompensados, 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; function GetRecibosCompensados: IBizRecibosCompensadosProv; procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosProv); property RecibosCompensados: IBizRecibosCompensadosProv read GetRecibosCompensados write SetRecibosCompensados; end; TBizRecibosProveedor = class(TRecibosProveedorDataTableRules, IBizRecibosProveedor, ISeleccionable) protected FPagos : IBizPagosProveedor; FPagosLink : TDADataSource; FRecibosCompensados: IBizRecibosCompensadosProv; FRecibosCompensadosLink : 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; function GetRecibosCompensados: IBizRecibosCompensadosProv; procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosProv); procedure SetID_REMESAValue(const aValue: Integer); override; public property RecibosCompensados: IBizRecibosCompensadosProv read GetRecibosCompensados write SetRecibosCompensados; 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.GetRecibosCompensados: IBizRecibosCompensadosProv; begin Result := FRecibosCompensados; end; function TBizRecibosProveedor.GetPagos: IBizPagosProveedor; begin Result := FPagos; end; procedure TBizRecibosProveedor.SetID_REMESAValue(const aValue: Integer); begin if (aValue = 0) then SetFieldNull(DataTable, fld_RecibosProveedorID_REMESA) else inherited; end; procedure TBizRecibosProveedor.SetPagos(AValue: IBizPagosProveedor); begin FPagos := AValue; EnlazarMaestroDetalle(FPagosLink, FPagos); end; procedure TBizRecibosProveedor.SetRecibosCompensados(const Value: IBizRecibosCompensadosProv); begin FRecibosCompensados := Value; EnlazarMaestroDetalle(FRecibosCompensadosLink, FRecibosCompensados); if Assigned(FRecibosCompensados) then if not FRecibosCompensados.DataTable.Active then FRecibosCompensados.DataTable.Active := True; 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; FPagos := Nil; FRecibosCompensados := Nil; FPagosLink := TDADataSource.Create(NIL); FPagosLink.DataTable := aDataTable; FRecibosCompensadosLink := TDADataSource.Create(NIL); FRecibosCompensadosLink.DataTable := aDataTable; FSeleccionableInterface := TSeleccionable.Create(aDataTable); end; destructor TBizRecibosProveedor.Destroy; begin FPagos := NIL; FRecibosCompensados := Nil; FreeAndNIL(FPagosLink); FreeAndNIL(FRecibosCompensadosLink); 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; IniciarValoresIBizRecibosProveedorNuevo; end; initialization RegisterDataTableRules(BIZ_CLIENT_IBIZRECIBOSPROVEEDOR, TBizRecibosProveedor); finalization end.