unit uDataModuleFacturasProveedor; interface uses {vcl:} SysUtils, Classes, DB, DBClient, {RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable, uDADesigntimeCall, uBizFacturasProveedor; type TdmFacturasProveedor = class(TDAClientDataModule) RORemoteService: TRORemoteService; tbl_FacturasProveedor: TDACDSDataTable; ds_FacturasProveedor: TDADataSource; DADesigntimeCall1: TDADesigntimeCall; tbl_ListaAnosFacturas: TDACDSDataTable; ds_ListaAnosFacturas: TDADataSource; procedure DAClientDataModuleCreate(Sender: TObject); private { Private declarations } public function GetNextAutoinc : integer; function GetItem: IBizFacturasProveedor; function GetItems: IBizFacturasProveedor; function PuedoEliminarFactura (CodigoFactura : Integer) : Boolean; function DarListaAnosFacturas: TStringList; procedure FiltrarAno(AFacturas: IBizFacturasProveedor; AWhereDataTable: String; const Ano: String); end; var dmFacturasProveedor: TdmFacturasProveedor; implementation {$R *.DFM} uses Forms, Controls, cxControls, uDataTableUtils, uBizContacto, uDataModuleContactos, uDataModuleBase, uDAInterfaces, FactuGES_Intf, uEditorPreview, uROTypes, schFacturasProveedorClient_Intf; { TDAClientDataModule1 } function TdmFacturasProveedor.GetItems: IBizFacturasProveedor; var dtCabecera: TDACDSDataTable; ACursor: TCursor; begin ACursor := Screen.Cursor; Screen.Cursor := crHourGlass; try dtCabecera := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_FacturasProveedor, dtCabecera); with dtCabecera do begin BusinessRulesID := BIZ_FACTURASPROVEEDOR; FieldByName(fld_FacturasProveedorDESCUENTO).BusinessRulesID := 'Client.Field.Descuento'; FieldByName(fld_FacturasProveedorIVA).BusinessRulesID := 'Client.Field.IVA'; FieldByName(fld_FacturasProveedorBASEIMPONIBLE).BusinessRulesID := 'Client.Field.BaseImponible'; end; Result := (dtCabecera as IBizFacturasProveedor); finally Screen.Cursor := ACursor; end; end; procedure TdmFacturasProveedor.DAClientDataModuleCreate(Sender: TObject); begin RORemoteService.Channel := dmBase.Channel; RORemoteService.Message := dmBase.Message; Adapter := dmBase.Adapter; end; function TdmFacturasProveedor.GetItem: IBizFacturasProveedor; var dtCabecera: TDACDSDataTable; dtDetalles: TDACDSDataTable; ACursor: TCursor; begin { ACursor := Screen.Cursor; Screen.Cursor := crHourGlass; try dtCabecera := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_AlbaranCliente, dtCabecera); with dtCabecera do begin BusinessRulesID := BIZ_ALBARANCLIENTE; FieldByName(fld_AlbaranClienteDESCUENTO).BusinessRulesID := 'Client.Field.Descuento'; FieldByName(fld_AlbaranClienteIVA).BusinessRulesID := 'Client.Field.IVA'; end; dtDetalles := TDACDSDataTable.Create(NIL); CloneDataTable(tbl_DetallesAlbaranProveedor, dtDetalles); with dtDetalles do begin BusinessRulesID := BIZ_DETALLESALBARANCLIENTE; DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; FieldByName(fld_DetallesAlbaranClienteCANTIDAD).BusinessRulesID := 'Client.Field.Cantidad'; FieldByName(fld_DetallesAlbaranClienteIMPORTEUNIDAD).BusinessRulesID := 'Client.Field.ImporteUnidad'; FieldByName(fld_DetallesAlbaranClienteTIPO).BusinessRulesID := 'Client.Field.TipoDetalle'; end; with (dtAlbaranes as IBizAlbaranesCliente) do begin Detalles := (dtDetalles as IBizDetallesAlbaranCliente); end; Result := (dtAlbaranes as IBizAlbaranesCliente); finally Screen.Cursor := ACursor; end;} end; function TdmFacturasProveedor.GetNextAutoinc: integer; begin Result := (RORemoteService as IsrvFacturasProveedor).GetNextAutoinc; end; function TdmFacturasProveedor.PuedoEliminarFactura(CodigoFactura: Integer): Boolean; begin Result := (RORemoteService as IsrvFacturasProveedor).PuedoEliminarFactura(CodigoFactura); end; function TdmFacturasProveedor.DarListaAnosFacturas: TStringList; var AListaAnos: TStringList; begin AListaAnos := TStringList.Create; ShowHourglassCursor; try with tbl_ListaAnosFacturas 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; procedure TdmFacturasProveedor.FiltrarAno(AFacturas: IBizFacturasProveedor; AWhereDataTable: String; const Ano: String); var FechaIni: String; FechaFin: String; begin AFacturas.DataTable.Where.Clear; AFacturas.DataTable.Where.AddText(AWhereDataTable); if (Ano <> 'Todos') then begin // Filtrar los presupuestos actuales por aņos FechaIni := '01.01.' + Ano; FechaFin := '31.12.' + Ano; with AFacturas.DataTable.Where do begin if NotEmpty then AddOperator(opAND); AddCondition(fld_FacturasProveedorFECHAFACTURA, cMajorOrEqual, FechaIni); AddOperator(opAND); AddCondition(fld_FacturasProveedorFECHAFACTURA, cLessOrEqual, FechaFin); end; end; end; initialization dmFacturasProveedor := TdmFacturasProveedor.Create(nil); finalization FreeAndNil(dmFacturasProveedor); end.