{ =============================================================================== 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 uBizRecibosCliente; interface uses uDAInterfaces, uDADataTable, uDBSelectionListUtils, schRecibosClienteClient_Intf, uBizPagosCliente, uBizRecibosCliCompensados, uBizContactos; const BIZ_CLIENT_IBIZRECIBOSCLIENTE = 'Client.IBizRecibosCliente'; CTE_PENDIENTE = 'PENDIENTE'; CTE_COBRADO = 'COBRADO'; CTE_DEVUELTO = 'DEVUELTO'; type IBizRecibosCliente = interface(IRecibosCliente) ['{93758493-260C-450D-9018-E5339C2E09B2}'] function EsNuevo : Boolean; // No se puede cambiar el cliente por que depende de la factura function GetCliente : IBizCliente; property Cliente : IBizCliente read GetCliente; // Esta propidad es para que el controlador pueda acceder directamente // a la propiedad Cliente procedure _SetCliente(AValue : IBizCliente); function _GetCliente : IBizCliente; property _Cliente : IBizCliente read _GetCliente write _SetCliente; procedure SetPagos(AValue : IBizPagosCliente); function GetPagos : IBizPagosCliente; property Pagos : IBizPagosCliente read GetPagos write SetPagos; function GetRecibosCompensados: IBizRecibosCompensadosCli; procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosCli); property RecibosCompensados: IBizRecibosCompensadosCli read GetRecibosCompensados write SetRecibosCompensados; end; TBizRecibosCliente = class(TRecibosClienteDataTableRules, IBizRecibosCliente, ISeleccionable) protected FPagos : IBizPagosCliente; FPagosLink : TDADataSource; FRecibosCompensados: IBizRecibosCompensadosCli; FRecibosCompensadosLink : TDADataSource; FCliente : IBizCliente; FSeleccionableInterface : ISeleccionable; // No se puede cambiar el cliente por que depende de la factura function GetCliente : IBizCliente; property Cliente : IBizCliente read GetCliente; // Esta propidad es para que el controlador pueda acceder directamente // a la propiedad Cliente procedure _SetCliente(AValue : IBizCliente); function _GetCliente : IBizCliente; property _Cliente : IBizCliente read _GetCliente write _SetCliente; procedure SetPagos(AValue : IBizPagosCliente); function GetPagos : IBizPagosCliente; function GetRecibosCompensados: IBizRecibosCompensadosCli; procedure SetRecibosCompensados(const Value: IBizRecibosCompensadosCli); procedure OnNewRecord(Sender: TDADataTable); override; function GetSITUACIONValue: String; override; procedure SetID_REMESAValue(const aValue: Integer); override; public property RecibosCompensados: IBizRecibosCompensadosCli read GetRecibosCompensados write SetRecibosCompensados; property Pagos : IBizPagosCliente read GetPagos write SetPagos; property SeleccionableInterface : ISeleccionable read FSeleccionableInterface write FSeleccionableInterface implements ISeleccionable; procedure IniciarValoresIBizRecibosClienteNuevo; function EsNuevo : Boolean; constructor Create(aDataTable: TDADataTable); override; destructor Destroy; override; end; implementation { TBizRecibosCliente } uses SysUtils, uDataTableUtils, schContactosClient_Intf; function TBizRecibosCliente.GetCliente: IBizCliente; begin Result := FCliente; end; function TBizRecibosCliente.GetPagos: IBizPagosCliente; begin Result := FPagos; end; function TBizRecibosCliente.GetRecibosCompensados: IBizRecibosCompensadosCli; begin Result := FRecibosCompensados; end; function TBizRecibosCliente.GetSITUACIONValue: String; begin result := Trim(DataTable.Fields[idx_RecibosClienteSITUACION].AsString); end; procedure TBizRecibosCliente.SetID_REMESAValue(const aValue: Integer); begin if (aValue = 0) then SetFieldNull(DataTable, fld_RecibosClienteID_REMESA) else inherited; end; procedure TBizRecibosCliente.SetPagos(AValue: IBizPagosCliente); begin FPagos := AValue; EnlazarMaestroDetalle(FPagosLink, FPagos); end; procedure TBizRecibosCliente.SetRecibosCompensados(const Value: IBizRecibosCompensadosCli); begin FRecibosCompensados := Value; EnlazarMaestroDetalle(FRecibosCompensadosLink, FRecibosCompensados); end; function TBizRecibosCliente._GetCliente: IBizCliente; begin Result := FCliente; end; procedure TBizRecibosCliente._SetCliente(AValue: IBizCliente); begin FCliente := AValue; end; constructor TBizRecibosCliente.Create(aDataTable: TDADataTable); begin inherited; FCliente := 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 TBizRecibosCliente.Destroy; begin FPagos := NIL; FRecibosCompensados := Nil; FreeAndNIL(FPagosLink); FreeAndNIL(FRecibosCompensadosLink); FSeleccionableInterface := NIL; inherited; end; function TBizRecibosCliente.EsNuevo: Boolean; begin Result := (ID < 0); end; procedure TBizRecibosCliente.IniciarValoresIBizRecibosClienteNuevo; begin FECHA_EMISION := Date; IMPORTE := 0; OTROS_GASTOS := 0; end; procedure TBizRecibosCliente.OnNewRecord(Sender: TDADataTable); begin inherited; IniciarValoresIBizRecibosClienteNuevo; end; initialization RegisterDataTableRules(BIZ_CLIENT_IBIZRECIBOSCLIENTE, TBizRecibosCliente); finalization end.