{ =============================================================================== 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 uDataModuleRecibosProveedor; interface uses SysUtils, Classes, DB, uDADataTable, uDABINAdapter, uDAScriptingProvider, uROWinInetHttpChannel, uROTypes, uRORemoteService, uROClient, uROBinMessage, uDADesigntimeCall, uDataModuleBase, uIDataModuleRecibosProveedor, uIDataModuleRecibosProveedorReport, uBizRecibosProveedor, uBizPagosProveedor, uBizRecibosProvCompensados, uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable; type TDataModuleRecibosProveedor = class(TDataModuleBase, IDataModuleRecibosProveedor, IDataModuleRecibosProveedorReport) RORemoteService: TRORemoteService; Bin2DataStreamer: TDABin2DataStreamer; rda_RecibosProveedor: TDARemoteDataAdapter; tbl_PagosProveedor: TDAMemDataTable; ds_PagosProveedor: TDADataSource; tbl_RecibosCompensadosProv: TDAMemDataTable; ds_RecibosCompensadosProv: TDADataSource; tbl_RecibosProveedor: TDAMemDataTable; ds_RecibosProveedor: TDADataSource; tbl_ListaAnosRecibos: TDAMemDataTable; ds_ListaAnosRecibos: TDADataSource; procedure DAClientDataModuleCreate(Sender: TObject); protected function _GetPagos: IBizPagosProveedor; function _GetRecibosCompensados : IBizRecibosCompensadosProv; public function GetAnosItems : TStringList; function GetItems: IBizRecibosProveedor; function GetItem(const ID : Integer) : IBizRecibosProveedor; function NewItem : IBizRecibosProveedor; function GetReport(const ID: Integer): Binary; end; implementation {$R *.DFM} uses FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, schRecibosProveedorClient_Intf; { TDataModuleRecibosProveedor } function TDataModuleRecibosProveedor.GetReport(const ID: Integer): Binary; begin // Result := (RORemoteService as IsrvRecibosProveedor).GenerateReport(ID); end; procedure TDataModuleRecibosProveedor.DAClientDataModuleCreate(Sender: TObject); begin RORemoteService.Channel := dmConexion.Channel; RORemoteService.Message := dmConexion.Message; end; function TDataModuleRecibosProveedor._GetPagos: IBizPagosProveedor; var APagos : TDAMemDataTable; begin ShowHourglassCursor; try APagos := CloneDataTable(tbl_PagosProveedor); with APagos do begin BusinessRulesID := BIZ_CLIENT_IBIZPAGOSPROVEEDOR; DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; end; Result := (APagos as IBizPagosProveedor); finally HideHourglassCursor; end; end; function TDataModuleRecibosProveedor._GetRecibosCompensados: IBizRecibosCompensadosProv; var ARecibosCompensados : TDAMemDataTable; begin ShowHourglassCursor; try ARecibosCompensados := CloneDataTable(tbl_RecibosCompensadosProv); with ARecibosCompensados do begin BusinessRulesID := BIZ_CLIENT_RECIBOS_COMPENSADOSPROV; DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; end; Result := (ARecibosCompensados as IBizRecibosCompensadosProv); finally HideHourglassCursor; end; end; function TDataModuleRecibosProveedor.GetItems: IBizRecibosProveedor; var AIBizRecibosProveedor : TDAMemDataTable; begin ShowHourglassCursor; try AIBizRecibosProveedor := CloneDataTable(tbl_RecibosProveedor); AIBizRecibosProveedor.BusinessRulesID := BIZ_CLIENT_IBizRecibosProveedor; with TBizRecibosProveedor(AIBizRecibosProveedor.BusinessEventsObj) do Pagos := _GetPagos; with TBizRecibosProveedor(AIBizRecibosProveedor.BusinessEventsObj) do RecibosCompensados := _GetRecibosCompensados; Result := (AIBizRecibosProveedor as IBizRecibosProveedor); finally HideHourglassCursor; end; end; function TDataModuleRecibosProveedor.NewItem: IBizRecibosProveedor; begin Result := GetItem(ID_NULO) end; function TDataModuleRecibosProveedor.GetAnosItems: TStringList; var AListaAnos: TStringList; begin AListaAnos := TStringList.Create; ShowHourglassCursor; try with tbl_ListaAnosRecibos do begin Open; First; while not eof do begin AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString])); Next; end; Close; end; Result := AListaAnos; finally HideHourglassCursor; end; end; function TDataModuleRecibosProveedor.GetItem(const ID: Integer): IBizRecibosProveedor; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetItems; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID), NewConstant(ID, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; finally HideHourglassCursor; end; end; end.