diff --git a/Resources/Firmas Tecsitel/sello-tecsitel-firma-carlos-20200212.jpg b/Resources/Firmas Tecsitel/sello-tecsitel-firma-carlos-20200212.jpg new file mode 100644 index 00000000..6cee1dc7 Binary files /dev/null and b/Resources/Firmas Tecsitel/sello-tecsitel-firma-carlos-20200212.jpg differ diff --git a/Resources/Firmas Tecsitel/sello-tecsitel-firma-carlos.jpg b/Resources/Firmas Tecsitel/sello-tecsitel-firma-carlos.jpg new file mode 100644 index 00000000..c8cb6335 Binary files /dev/null and b/Resources/Firmas Tecsitel/sello-tecsitel-firma-carlos.jpg differ diff --git a/Resources/Firmas Tecsitel/sello-tecsitel-firma-jose-luis.jpg b/Resources/Firmas Tecsitel/sello-tecsitel-firma-jose-luis.jpg new file mode 100644 index 00000000..32aa5f93 Binary files /dev/null and b/Resources/Firmas Tecsitel/sello-tecsitel-firma-jose-luis.jpg differ diff --git a/Resources/Firmas Tecsitel/sello-tecsitel-firma-joseluis-20200212.jpg b/Resources/Firmas Tecsitel/sello-tecsitel-firma-joseluis-20200212.jpg new file mode 100644 index 00000000..b542e633 Binary files /dev/null and b/Resources/Firmas Tecsitel/sello-tecsitel-firma-joseluis-20200212.jpg differ diff --git a/Resources/Firmas Tecsitel/sello-tecsitel-firma-oscar-20200212.jpg b/Resources/Firmas Tecsitel/sello-tecsitel-firma-oscar-20200212.jpg new file mode 100644 index 00000000..4b0d815a Binary files /dev/null and b/Resources/Firmas Tecsitel/sello-tecsitel-firma-oscar-20200212.jpg differ diff --git a/Resources/Firmas Tecsitel/sello-tecsitel-firma-oscar.jpg b/Resources/Firmas Tecsitel/sello-tecsitel-firma-oscar.jpg new file mode 100644 index 00000000..a620059a Binary files /dev/null and b/Resources/Firmas Tecsitel/sello-tecsitel-firma-oscar.jpg differ diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index c88bd574..92f2a92e 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -54,58 +54,58 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
TForm diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index a791d05b..e549283c 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -53,7 +53,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2200FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.0.0FactuGESFactuGES2.2.0.0FactuGES.dprFalse +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2320FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.2.0FactuGESFactuGES2.3.2.0FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index 1ad64e7a..8f451864 100644 --- a/Source/Cliente/FactuGES.rc +++ b/Source/Cliente/FactuGES.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo tecsitel\Resources\Iconos\Factuges.ico" 1 VERSIONINFO -FILEVERSION 2,2,0,0 -PRODUCTVERSION 2,2,0,0 +FILEVERSION 2,3,2,0 +PRODUCTVERSION 2,3,2,0 FILEFLAGSMASK 0x3FL FILEFLAGS 0x00L FILEOS 0x40004L @@ -13,10 +13,10 @@ BEGIN BLOCK "0C0A04E4" BEGIN VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "2.2.0.0\0" + VALUE "FileVersion", "2.3.2.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductName", "FactuGES\0" - VALUE "ProductVersion", "2.2.0.0\0" + VALUE "ProductVersion", "2.3.2.0\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 874ce33d..9365e34d 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/Informes/1/AlbaranCliente.rdx b/Source/Informes/1/AlbaranCliente.rdx index d5049f02..fccb0fea 100644 Binary files a/Source/Informes/1/AlbaranCliente.rdx and b/Source/Informes/1/AlbaranCliente.rdx differ diff --git a/Source/Informes/1/AlbaranProveedor.rdx b/Source/Informes/1/AlbaranProveedor.rdx index d307e279..e6cfafe6 100644 Binary files a/Source/Informes/1/AlbaranProveedor.rdx and b/Source/Informes/1/AlbaranProveedor.rdx differ diff --git a/Source/Informes/1/FacturaCliente.rdx b/Source/Informes/1/FacturaCliente.rdx index 63dc3b56..571c5640 100644 Binary files a/Source/Informes/1/FacturaCliente.rdx and b/Source/Informes/1/FacturaCliente.rdx differ diff --git a/Source/Informes/1/InfAlbaranCliente.fr3 b/Source/Informes/1/InfAlbaranCliente.fr3 index fcbd774b..bbe91dc7 100644 --- a/Source/Informes/1/InfAlbaranCliente.fr3 +++ b/Source/Informes/1/InfAlbaranCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -13,7 +13,7 @@ - + diff --git a/Source/Informes/1/InfAlbaranProveedor.fr3 b/Source/Informes/1/InfAlbaranProveedor.fr3 index 8579aa91..b88699b5 100644 --- a/Source/Informes/1/InfAlbaranProveedor.fr3 +++ b/Source/Informes/1/InfAlbaranProveedor.fr3 @@ -1,18 +1,18 @@ - + - - + + - + - - + + diff --git a/Source/Informes/1/InfFacturaCliente.fr3 b/Source/Informes/1/InfFacturaCliente.fr3 index a1490c81..649760e3 100644 --- a/Source/Informes/1/InfFacturaCliente.fr3 +++ b/Source/Informes/1/InfFacturaCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -13,7 +13,7 @@ - + @@ -33,7 +33,7 @@ - + @@ -69,7 +69,7 @@ - + diff --git a/Source/Informes/1/InfPedidoProveedor.fr3 b/Source/Informes/1/InfPedidoProveedor.fr3 index 7be3a90f..6c053896 100644 --- a/Source/Informes/1/InfPedidoProveedor.fr3 +++ b/Source/Informes/1/InfPedidoProveedor.fr3 @@ -1,18 +1,18 @@ - + - - + + - + - + @@ -36,15 +36,14 @@ - + - - + + - diff --git a/Source/Informes/1/InfPresupuestoCliente.fr3 b/Source/Informes/1/InfPresupuestoCliente.fr3 index 134cd107..07c19ff2 100644 --- a/Source/Informes/1/InfPresupuestoCliente.fr3 +++ b/Source/Informes/1/InfPresupuestoCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -16,7 +16,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -87,15 +87,16 @@ - - - + + + + - - + + - + diff --git a/Source/Informes/1/InfReciboCliente.fr3 b/Source/Informes/1/InfReciboCliente.fr3 index e057e08c..98747903 100644 --- a/Source/Informes/1/InfReciboCliente.fr3 +++ b/Source/Informes/1/InfReciboCliente.fr3 @@ -1,10 +1,10 @@ - + - - + + @@ -30,7 +30,7 @@ - + @@ -53,7 +53,7 @@ - + diff --git a/Source/Informes/1/InformeIVAClientes.fr3 b/Source/Informes/1/InformeIVAClientes.fr3 index ed6e1d4b..69c5069d 100644 --- a/Source/Informes/1/InformeIVAClientes.fr3 +++ b/Source/Informes/1/InformeIVAClientes.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeIVAClientesDesglosado.fr3 b/Source/Informes/1/InformeIVAClientesDesglosado.fr3 index d9ce5d52..4703822c 100644 --- a/Source/Informes/1/InformeIVAClientesDesglosado.fr3 +++ b/Source/Informes/1/InformeIVAClientesDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeIVAComparativo.fr3 b/Source/Informes/1/InformeIVAComparativo.fr3 index daf96956..e0bf0e2c 100644 --- a/Source/Informes/1/InformeIVAComparativo.fr3 +++ b/Source/Informes/1/InformeIVAComparativo.fr3 @@ -1,5 +1,5 @@ - + @@ -7,7 +7,7 @@ - + diff --git a/Source/Informes/1/InformeIVAProveedores.fr3 b/Source/Informes/1/InformeIVAProveedores.fr3 index 9e674c9a..ef41a47a 100644 --- a/Source/Informes/1/InformeIVAProveedores.fr3 +++ b/Source/Informes/1/InformeIVAProveedores.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 b/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 index 4543a8b3..1625831f 100644 --- a/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 +++ b/Source/Informes/1/InformeIVAProveedoresDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3 b/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3 index 1a373987..9fcf0702 100644 --- a/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3 +++ b/Source/Informes/1/InformeListadoBeneficiosGrafComp.fr3 @@ -1,8 +1,8 @@ - + - + @@ -19,15 +19,15 @@ - - + + - + - + diff --git a/Source/Informes/1/InformeListadoFacturasCliente.fr3 b/Source/Informes/1/InformeListadoFacturasCliente.fr3 index bce51664..0448060f 100644 --- a/Source/Informes/1/InformeListadoFacturasCliente.fr3 +++ b/Source/Informes/1/InformeListadoFacturasCliente.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 index f44a54d7..ff3caeda 100644 --- a/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoFacturasClienteDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3 b/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3 index 1114e00b..0f788aff 100644 --- a/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3 +++ b/Source/Informes/1/InformeListadoFacturasClienteGrafComp.fr3 @@ -1,5 +1,5 @@ - + @@ -15,7 +15,7 @@ - + diff --git a/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 b/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 index dc6adc2f..1dfc5074 100644 --- a/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 +++ b/Source/Informes/1/InformeListadoFacturasClientePendientes.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 index 452bcb0c..94ddda19 100644 --- a/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoFacturasClientePendientesDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasProveedor.fr3 b/Source/Informes/1/InformeListadoFacturasProveedor.fr3 index c6705d6d..48a0fca7 100644 --- a/Source/Informes/1/InformeListadoFacturasProveedor.fr3 +++ b/Source/Informes/1/InformeListadoFacturasProveedor.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 index 324082b0..9047ea51 100644 --- a/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoFacturasProveedorDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 index afd65875..0707eb2d 100644 --- a/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 +++ b/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 @@ -1,64 +1,65 @@ - + - - - - - - + + + + + + - - + + - + - + + - + - - + + - - - - + + + + - - - - - + + + + + - - - - - - + + + + + + - + - + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 index c5044d06..b57ff3f8 100644 --- a/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 +++ b/Source/Informes/1/InformeListadoFacturasProveedorPendientes.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 index fe699ba9..fea42b1c 100644 --- a/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoFacturasProveedorPendientesDesglosado.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoPedidos.fr3 b/Source/Informes/1/InformeListadoPedidos.fr3 index 08fbbbe4..bfde0ac2 100644 --- a/Source/Informes/1/InformeListadoPedidos.fr3 +++ b/Source/Informes/1/InformeListadoPedidos.fr3 @@ -1,10 +1,10 @@ - + - + @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 b/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 index ec10bf89..d59c6701 100644 --- a/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoPedidosDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + @@ -22,7 +22,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/Source/Informes/1/InformeListadoPresupuestos.fr3 b/Source/Informes/1/InformeListadoPresupuestos.fr3 index 66b39cff..eca4b7f2 100644 --- a/Source/Informes/1/InformeListadoPresupuestos.fr3 +++ b/Source/Informes/1/InformeListadoPresupuestos.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3 b/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3 index ccbef800..90e0c2b2 100644 --- a/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3 +++ b/Source/Informes/1/InformeListadoPresupuestosClienteGrafComp.fr3 @@ -1,5 +1,5 @@ - + @@ -20,7 +20,7 @@ - + diff --git a/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 b/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 index b9bdd420..6ffeea7a 100644 --- a/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoPresupuestosDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 b/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 index 7a891484..e9c67f58 100644 --- a/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 +++ b/Source/Informes/1/InformeListadoRecibosCliPendientes.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 index 1e2d7a72..e8d1c187 100644 --- a/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoRecibosCliPendientesDesglosado.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosCliente.fr3 b/Source/Informes/1/InformeListadoRecibosCliente.fr3 index 6f22be7f..745f0c16 100644 --- a/Source/Informes/1/InformeListadoRecibosCliente.fr3 +++ b/Source/Informes/1/InformeListadoRecibosCliente.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 index 58ded061..dab7ccc8 100644 --- a/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoRecibosClienteDesglosado.fr3 @@ -1,11 +1,11 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 b/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 index 208d40b2..39d6e5de 100644 --- a/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 +++ b/Source/Informes/1/InformeListadoRecibosProvPendientes.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 index 8a65498b..1ce98eb9 100644 --- a/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoRecibosProvPendientesDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosProveedor.fr3 b/Source/Informes/1/InformeListadoRecibosProveedor.fr3 index c32d5783..11b6bc8f 100644 --- a/Source/Informes/1/InformeListadoRecibosProveedor.fr3 +++ b/Source/Informes/1/InformeListadoRecibosProveedor.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 b/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 index 39b7c1b4..8afbb681 100644 --- a/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 +++ b/Source/Informes/1/InformeListadoRecibosProveedorDesglosado.fr3 @@ -1,10 +1,10 @@ - + - + diff --git a/Source/Informes/1/PedidoProveedor.rdx b/Source/Informes/1/PedidoProveedor.rdx index bc9ee595..a8de517e 100644 Binary files a/Source/Informes/1/PedidoProveedor.rdx and b/Source/Informes/1/PedidoProveedor.rdx differ diff --git a/Source/Informes/1/Presupuesto.rdx b/Source/Informes/1/Presupuesto.rdx index 8342f399..a2f8c4bb 100644 Binary files a/Source/Informes/1/Presupuesto.rdx and b/Source/Informes/1/Presupuesto.rdx differ diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index 722629a3..01a1c649 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -2367,6 +2367,790 @@ object RptFacturasCliente: TRptFacturasCliente Name = 'CUOTA_DEDUCIBLE' DataType = datCurrency end> + end + item + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'select VALOR, DESCRIPCION,'#10'periodo_ingresos1.ANO as Ano1, period' + + 'o_ingresos1.IMPORTE_TOTAL as INGRESOS_ANO1,'#10'periodo_gastos1.ANO ' + + 'as Ano1, periodo_gastos1.IMPORTE_TOTAL as GASTOS_ANO1,'#10'(coalesce' + + '(periodo_ingresos1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.' + + 'IMPORTE_TOTAL, 0)) as BENEFICIO_ANO1,'#10'case'#10'when (periodo_ingreso' + + 's1.IMPORTE_TOTAL = 0) then (100 - ((coalesce(periodo_ingresos1.I' + + 'MPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, 0))*1' + + '00))'#10'else ((((coalesce(periodo_ingresos1.IMPORTE_TOTAL, 0) - coa' + + 'lesce(periodo_gastos1.IMPORTE_TOTAL, 0))*100)/periodo_ingresos1.' + + 'IMPORTE_TOTAL))'#10'end as Porcentaje_Beneficios_Ano1,'#10#10'periodo_ingr' + + 'esos2.ANO as Ano2, periodo_ingresos2.IMPORTE_TOTAL as INGRESOS_A' + + 'NO2,'#10'periodo_gastos2.ANO as Ano2, periodo_gastos2.IMPORTE_TOTAL ' + + 'as GASTOS_ANO2,'#10'(coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - ' + + 'coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)) as BENEFICIO_ANO2,'#10'c' + + 'ase'#10'when (periodo_ingresos2.IMPORTE_TOTAL = 0) then (100 - ((coa' + + 'lesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gas' + + 'tos2.IMPORTE_TOTAL, 0))*100))'#10'else ((((coalesce(periodo_ingresos' + + '2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)' + + ')*100)/periodo_ingresos2.IMPORTE_TOTAL))'#10'end as Porcentaje_Benef' + + 'icios_Ano2,'#10#10'(periodo_ingresos1.IMPORTE_TOTAL - periodo_ingresos' + + '2.IMPORTE_TOTAL) as Diferencia_Ingresos,'#10'case'#10'when (periodo_ingr' + + 'esos2.IMPORTE_TOTAL = 0) then (100 - ((periodo_ingresos1.IMPORTE' + + '_TOTAL - periodo_ingresos2.IMPORTE_TOTAL)*100))'#10'else (((periodo_' + + 'ingresos1.IMPORTE_TOTAL - periodo_ingresos2.IMPORTE_TOTAL)*100)/' + + 'periodo_ingresos2.IMPORTE_TOTAL)'#10'end as Porcentaje_Aumento_Ingre' + + 'sos,'#10#10'(periodo_gastos1.IMPORTE_TOTAL - periodo_gastos2.IMPORTE_T' + + 'OTAL) as Diferencia_Gastos,'#10'case'#10'when (periodo_gastos2.IMPORTE_T' + + 'OTAL = 0) then (100 - ((periodo_gastos1.IMPORTE_TOTAL - periodo_' + + 'gastos2.IMPORTE_TOTAL)*100))'#10'else (((periodo_gastos1.IMPORTE_TOT' + + 'AL - periodo_gastos2.IMPORTE_TOTAL)*100)/periodo_gastos2.IMPORTE' + + '_TOTAL)'#10'end as Porcentaje_Aumento_Gastos,'#10#10'case when periodo_ing' + + 'resos2.ANO is null then 0'#10'else'#10'((coalesce(periodo_ingresos1.IMPO' + + 'RTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, 0)) - (c' + + 'oalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_g' + + 'astos2.IMPORTE_TOTAL, 0)))'#10'end as Diferencia_Beneficios,'#10#10'case w' + + 'hen periodo_ingresos2.ANO is null then 0'#10'else'#10'case'#10'when ((coales' + + 'ce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos' + + '2.IMPORTE_TOTAL, 0)) = 0) then (100 - (((coalesce(periodo_ingres' + + 'os1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, ' + + '0)) - (coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(p' + + 'eriodo_gastos2.IMPORTE_TOTAL, 0)))*100))'#10'else (((((coalesce(peri' + + 'odo_ingresos1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPOR' + + 'TE_TOTAL, 0)) - (coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - ' + + 'coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)))*100) / (coalesce(pe' + + 'riodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos2.IMP' + + 'ORTE_TOTAL, 0))))'#10'end'#10'end as Porcentaje_Aumento_Beneficios'#10#10'FROM' + + #10'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, comp1.ANO, MES' + + ' as NFILA, SUM(comp1.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF' + + '_FAC_CLIENTE comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and (ANO = :A' + + 'NO1)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_ingresos1 on ' + + '(VALOR = periodo_ingresos1.NFILA)'#10#10'left join'#10'(select comp2.ID_EM' + + 'PRESA, comp2.ANO, MES as NFILA, SUM(comp2.BASE_IMPONIBLE) as IMP' + + 'ORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp2'#10'where ID_EMPRESA = :ID' + + '_EMPRESA1'#10'and (ANO = :ANO1)'#10'and (comp2.ID_TIPO_FACTURA = :ID_TIP' + + 'O_GASTO)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_gastos1 o' + + 'n (VALOR = periodo_gastos1.NFILA)'#10#10'left join'#10'(select comp3.ID_EM' + + 'PRESA, comp3.ANO, MES as NFILA, SUM(comp3.BASE_IMPONIBLE) as IMP' + + 'ORTE_TOTAL'#10'from V_INF_FAC_CLIENTE comp3'#10'where ID_EMPRESA = :ID_E' + + 'MPRESA2'#10'and (ANO = :ANO2)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) ' + + 'periodo_ingresos2 on (VALOR = periodo_ingresos2.NFILA)'#10#10'left joi' + + 'n'#10'(select comp4.ID_EMPRESA, comp4.ANO, MES as NFILA, SUM(comp4.B' + + 'ASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp4'#10'w' + + 'here ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'and (comp4.ID_T' + + 'IPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'order by 1 desc,2 a' + + 'sc) periodo_gastos2 on (VALOR = periodo_gastos2.NFILA)'#10#10#10'where p' + + 'eriodo= '#39'MENSUAL'#39#10'order by valor asc'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ANO1' + TableField = 'ANO1' + end + item + DatasetField = 'ANO2' + TableField = 'ANO2' + end + item + DatasetField = 'INGRESOS_ANO1' + TableField = 'INGRESOS_ANO1' + end + item + DatasetField = 'ANO11' + TableField = 'ANO11' + end + item + DatasetField = 'GASTOS_ANO1' + TableField = 'GASTOS_ANO1' + end + item + DatasetField = 'BENEFICIO_ANO1' + TableField = 'BENEFICIO_ANO1' + end + item + DatasetField = 'INGRESOS_ANO2' + TableField = 'INGRESOS_ANO2' + end + item + DatasetField = 'ANO21' + TableField = 'ANO21' + end + item + DatasetField = 'GASTOS_ANO2' + TableField = 'GASTOS_ANO2' + end + item + DatasetField = 'BENEFICIO_ANO2' + TableField = 'BENEFICIO_ANO2' + end + item + DatasetField = 'DIFERENCIA_INGRESOS' + TableField = 'DIFERENCIA_INGRESOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_INGRESOS' + TableField = 'PORCENTAJE_AUMENTO_INGRESOS' + end + item + DatasetField = 'DIFERENCIA_GASTOS' + TableField = 'DIFERENCIA_GASTOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_GASTOS' + TableField = 'PORCENTAJE_AUMENTO_GASTOS' + end + item + DatasetField = 'DIFERENCIA_BENEFICIOS' + TableField = 'DIFERENCIA_BENEFICIOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_BENEFICIOS' + TableField = 'PORCENTAJE_AUMENTO_BENEFICIOS' + end + item + DatasetField = 'PORCENTAJE_BENEFICIOS_ANO1' + TableField = 'PORCENTAJE_BENEFICIOS_ANO1' + end + item + DatasetField = 'PORCENTAJE_BENEFICIOS_ANO2' + TableField = 'PORCENTAJE_BENEFICIOS_ANO2' + end> + end> + Name = 'InformeListadoBeneficiosGrafCompMensualTipoGasto' + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO11' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO1' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO1' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO2' + DataType = datCurrency + end + item + Name = 'ANO21' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO2' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO2' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO2' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_INGRESOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_INGRESOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_GASTOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_GASTOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_BENEFICIOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_BENEFICIOS' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'select VALOR, DESCRIPCION,'#10'periodo_ingresos1.ANO as Ano1, period' + + 'o_ingresos1.IMPORTE_TOTAL as INGRESOS_ANO1,'#10'periodo_gastos1.ANO ' + + 'as Ano1, periodo_gastos1.IMPORTE_TOTAL as GASTOS_ANO1,'#10'(coalesce' + + '(periodo_ingresos1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.' + + 'IMPORTE_TOTAL, 0)) as BENEFICIO_ANO1,'#10'case'#10'when (periodo_ingreso' + + 's1.IMPORTE_TOTAL = 0) then (100 - ((coalesce(periodo_ingresos1.I' + + 'MPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, 0))*1' + + '00))'#10'else ((((coalesce(periodo_ingresos1.IMPORTE_TOTAL, 0) - coa' + + 'lesce(periodo_gastos1.IMPORTE_TOTAL, 0))*100)/periodo_ingresos1.' + + 'IMPORTE_TOTAL))'#10'end as Porcentaje_Beneficios_Ano1,'#10#10'periodo_ingr' + + 'esos2.ANO as Ano2, periodo_ingresos2.IMPORTE_TOTAL as INGRESOS_A' + + 'NO2,'#10'periodo_gastos2.ANO as Ano2, periodo_gastos2.IMPORTE_TOTAL ' + + 'as GASTOS_ANO2,'#10'(coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - ' + + 'coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)) as BENEFICIO_ANO2,'#10'c' + + 'ase'#10'when (periodo_ingresos2.IMPORTE_TOTAL = 0) then (100 - ((coa' + + 'lesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gas' + + 'tos2.IMPORTE_TOTAL, 0))*100))'#10'else ((((coalesce(periodo_ingresos' + + '2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)' + + ')*100)/periodo_ingresos2.IMPORTE_TOTAL))'#10'end as Porcentaje_Benef' + + 'icios_Ano2,'#10#10'(periodo_ingresos1.IMPORTE_TOTAL - periodo_ingresos' + + '2.IMPORTE_TOTAL) as Diferencia_Ingresos,'#10'case'#10'when (periodo_ingr' + + 'esos2.IMPORTE_TOTAL = 0) then (100 - ((periodo_ingresos1.IMPORTE' + + '_TOTAL - periodo_ingresos2.IMPORTE_TOTAL)*100))'#10'else (((periodo_' + + 'ingresos1.IMPORTE_TOTAL - periodo_ingresos2.IMPORTE_TOTAL)*100)/' + + 'periodo_ingresos2.IMPORTE_TOTAL)'#10'end as Porcentaje_Aumento_Ingre' + + 'sos,'#10#10'(periodo_gastos1.IMPORTE_TOTAL - periodo_gastos2.IMPORTE_T' + + 'OTAL) as Diferencia_Gastos,'#10'case'#10'when (periodo_gastos2.IMPORTE_T' + + 'OTAL = 0) then (100 - ((periodo_gastos1.IMPORTE_TOTAL - periodo_' + + 'gastos2.IMPORTE_TOTAL)*100))'#10'else (((periodo_gastos1.IMPORTE_TOT' + + 'AL - periodo_gastos2.IMPORTE_TOTAL)*100)/periodo_gastos2.IMPORTE' + + '_TOTAL)'#10'end as Porcentaje_Aumento_Gastos,'#10#10'case when periodo_ing' + + 'resos2.ANO is null then 0'#10'else'#10'((coalesce(periodo_ingresos1.IMPO' + + 'RTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, 0)) - (c' + + 'oalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_g' + + 'astos2.IMPORTE_TOTAL, 0)))'#10'end as Diferencia_Beneficios,'#10#10'case w' + + 'hen periodo_ingresos2.ANO is null then 0'#10'else'#10'case'#10'when ((coales' + + 'ce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos' + + '2.IMPORTE_TOTAL, 0)) = 0) then (100 - (((coalesce(periodo_ingres' + + 'os1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, ' + + '0)) - (coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(p' + + 'eriodo_gastos2.IMPORTE_TOTAL, 0)))*100))'#10'else (((((coalesce(peri' + + 'odo_ingresos1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPOR' + + 'TE_TOTAL, 0)) - (coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - ' + + 'coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)))*100) / (coalesce(pe' + + 'riodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos2.IMP' + + 'ORTE_TOTAL, 0))))'#10'end'#10'end as Porcentaje_Aumento_Beneficios'#10#10#10'FRO' + + 'M'#10'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, comp1.ANO, SE' + + 'MESTRE as NFILA, SUM(comp1.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from' + + ' V_INF_FAC_CLIENTE comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and (AN' + + 'O = :ANO1)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_ingreso' + + 's1 on (VALOR = periodo_ingresos1.NFILA)'#10#10'left join'#10'(select comp2' + + '.ID_EMPRESA, comp2.ANO, SEMESTRE as NFILA, SUM(comp2.BASE_IMPONI' + + 'BLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp2'#10'where ID_EM' + + 'PRESA = :ID_EMPRESA1'#10'and (ANO = :ANO1)'#10'and (comp2.ID_TIPO_FACTUR' + + 'A = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) period' + + 'o_gastos1 on (VALOR = periodo_gastos1.NFILA)'#10#10'left join'#10'(select ' + + 'comp3.ID_EMPRESA, comp3.ANO, SEMESTRE as NFILA, SUM(comp3.BASE_I' + + 'MPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_CLIENTE comp3'#10'where ID' + + '_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'group by 1,2,3'#10'order b' + + 'y 1 desc,2 asc) periodo_ingresos2 on (VALOR = periodo_ingresos2.' + + 'NFILA)'#10#10'left join'#10'(select comp4.ID_EMPRESA, comp4.ANO, SEMESTRE ' + + 'as NFILA, SUM(comp4.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_' + + 'FAC_PROVEEDOR comp4'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :' + + 'ANO2)'#10'and (comp4.ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,' + + '3'#10'order by 1 desc,2 asc) periodo_gastos2 on (VALOR = periodo_gas' + + 'tos2.NFILA)'#10#10#10'where periodo= '#39'SEMESTRAL'#39#10'order by valor asc'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ANO1' + TableField = 'ANO1' + end + item + DatasetField = 'ANO2' + TableField = 'ANO2' + end + item + DatasetField = 'INGRESOS_ANO1' + TableField = 'INGRESOS_ANO1' + end + item + DatasetField = 'ANO11' + TableField = 'ANO11' + end + item + DatasetField = 'GASTOS_ANO1' + TableField = 'GASTOS_ANO1' + end + item + DatasetField = 'BENEFICIO_ANO1' + TableField = 'BENEFICIO_ANO1' + end + item + DatasetField = 'INGRESOS_ANO2' + TableField = 'INGRESOS_ANO2' + end + item + DatasetField = 'ANO21' + TableField = 'ANO21' + end + item + DatasetField = 'GASTOS_ANO2' + TableField = 'GASTOS_ANO2' + end + item + DatasetField = 'BENEFICIO_ANO2' + TableField = 'BENEFICIO_ANO2' + end + item + DatasetField = 'DIFERENCIA_INGRESOS' + TableField = 'DIFERENCIA_INGRESOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_INGRESOS' + TableField = 'PORCENTAJE_AUMENTO_INGRESOS' + end + item + DatasetField = 'DIFERENCIA_GASTOS' + TableField = 'DIFERENCIA_GASTOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_GASTOS' + TableField = 'PORCENTAJE_AUMENTO_GASTOS' + end + item + DatasetField = 'DIFERENCIA_BENEFICIOS' + TableField = 'DIFERENCIA_BENEFICIOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_BENEFICIOS' + TableField = 'PORCENTAJE_AUMENTO_BENEFICIOS' + end + item + DatasetField = 'PORCENTAJE_BENEFICIOS_ANO1' + TableField = 'PORCENTAJE_BENEFICIOS_ANO1' + end + item + DatasetField = 'PORCENTAJE_BENEFICIOS_ANO2' + TableField = 'PORCENTAJE_BENEFICIOS_ANO2' + end> + end> + Name = 'InformeListadoBeneficiosGrafCompSemestralTipoGasto' + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO11' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO1' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO1' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO2' + DataType = datCurrency + end + item + Name = 'ANO21' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO2' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO2' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO2' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_INGRESOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_INGRESOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_GASTOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_GASTOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_BENEFICIOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_BENEFICIOS' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'select VALOR, DESCRIPCION,'#10'periodo_ingresos1.ANO as Ano1, period' + + 'o_ingresos1.IMPORTE_TOTAL as INGRESOS_ANO1,'#10'periodo_gastos1.ANO ' + + 'as Ano1, periodo_gastos1.IMPORTE_TOTAL as GASTOS_ANO1,'#10'(coalesce' + + '(periodo_ingresos1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.' + + 'IMPORTE_TOTAL, 0)) as BENEFICIO_ANO1,'#10'case'#10'when (periodo_ingreso' + + 's1.IMPORTE_TOTAL = 0) then (100 - ((coalesce(periodo_ingresos1.I' + + 'MPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, 0))*1' + + '00))'#10'else ((((coalesce(periodo_ingresos1.IMPORTE_TOTAL, 0) - coa' + + 'lesce(periodo_gastos1.IMPORTE_TOTAL, 0))*100)/periodo_ingresos1.' + + 'IMPORTE_TOTAL))'#10'end as Porcentaje_Beneficios_Ano1,'#10#10'periodo_ingr' + + 'esos2.ANO as Ano2, periodo_ingresos2.IMPORTE_TOTAL as INGRESOS_A' + + 'NO2,'#10'periodo_gastos2.ANO as Ano2, periodo_gastos2.IMPORTE_TOTAL ' + + 'as GASTOS_ANO2,'#10'(coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - ' + + 'coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)) as BENEFICIO_ANO2,'#10'c' + + 'ase'#10'when (periodo_ingresos2.IMPORTE_TOTAL = 0) then (100 - ((coa' + + 'lesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gas' + + 'tos2.IMPORTE_TOTAL, 0))*100))'#10'else ((((coalesce(periodo_ingresos' + + '2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)' + + ')*100)/periodo_ingresos2.IMPORTE_TOTAL))'#10'end as Porcentaje_Benef' + + 'icios_Ano2,'#10#10'(periodo_ingresos1.IMPORTE_TOTAL - periodo_ingresos' + + '2.IMPORTE_TOTAL) as Diferencia_Ingresos,'#10'case'#10'when (periodo_ingr' + + 'esos2.IMPORTE_TOTAL = 0) then (100 - ((periodo_ingresos1.IMPORTE' + + '_TOTAL - periodo_ingresos2.IMPORTE_TOTAL)*100))'#10'else (((periodo_' + + 'ingresos1.IMPORTE_TOTAL - periodo_ingresos2.IMPORTE_TOTAL)*100)/' + + 'periodo_ingresos2.IMPORTE_TOTAL)'#10'end as Porcentaje_Aumento_Ingre' + + 'sos,'#10#10'(periodo_gastos1.IMPORTE_TOTAL - periodo_gastos2.IMPORTE_T' + + 'OTAL) as Diferencia_Gastos,'#10'case'#10'when (periodo_gastos2.IMPORTE_T' + + 'OTAL = 0) then (100 - ((periodo_gastos1.IMPORTE_TOTAL - periodo_' + + 'gastos2.IMPORTE_TOTAL)*100))'#10'else (((periodo_gastos1.IMPORTE_TOT' + + 'AL - periodo_gastos2.IMPORTE_TOTAL)*100)/periodo_gastos2.IMPORTE' + + '_TOTAL)'#10'end as Porcentaje_Aumento_Gastos,'#10#10'case when periodo_ing' + + 'resos2.ANO is null then 0'#10'else'#10'((coalesce(periodo_ingresos1.IMPO' + + 'RTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, 0)) - (c' + + 'oalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_g' + + 'astos2.IMPORTE_TOTAL, 0)))'#10'end as Diferencia_Beneficios,'#10#10'case w' + + 'hen periodo_ingresos2.ANO is null then 0'#10'else'#10'case'#10'when ((coales' + + 'ce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos' + + '2.IMPORTE_TOTAL, 0)) = 0) then (100 - (((coalesce(periodo_ingres' + + 'os1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPORTE_TOTAL, ' + + '0)) - (coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(p' + + 'eriodo_gastos2.IMPORTE_TOTAL, 0)))*100))'#10'else (((((coalesce(peri' + + 'odo_ingresos1.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos1.IMPOR' + + 'TE_TOTAL, 0)) - (coalesce(periodo_ingresos2.IMPORTE_TOTAL, 0) - ' + + 'coalesce(periodo_gastos2.IMPORTE_TOTAL, 0)))*100) / (coalesce(pe' + + 'riodo_ingresos2.IMPORTE_TOTAL, 0) - coalesce(periodo_gastos2.IMP' + + 'ORTE_TOTAL, 0))))'#10'end'#10'end as Porcentaje_Aumento_Beneficios'#10#10#10'FRO' + + 'M'#10'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, comp1.ANO, TR' + + 'IMESTRE as NFILA, SUM(comp1.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'fro' + + 'm V_INF_FAC_CLIENTE comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and (A' + + 'NO = :ANO1)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_ingres' + + 'os1 on (VALOR = periodo_ingresos1.NFILA)'#10#10'left join'#10'(select comp' + + '2.ID_EMPRESA, comp2.ANO, TRIMESTRE as NFILA, SUM(comp2.BASE_IMPO' + + 'NIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp2'#10'where ID_' + + 'EMPRESA = :ID_EMPRESA1'#10'and (ANO = :ANO1)'#10'and (comp2.ID_TIPO_FACT' + + 'URA = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) peri' + + 'odo_gastos1 on (VALOR = periodo_gastos1.NFILA)'#10#10'left join'#10'(selec' + + 't comp3.ID_EMPRESA, comp3.ANO, TRIMESTRE as NFILA, SUM(comp3.BAS' + + 'E_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_CLIENTE comp3'#10'where' + + ' ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'group by 1,2,3'#10'orde' + + 'r by 1 desc,2 asc) periodo_ingresos2 on (VALOR = periodo_ingreso' + + 's2.NFILA)'#10#10'left join'#10'(select comp4.ID_EMPRESA, comp4.ANO, TRIMES' + + 'TRE as NFILA, SUM(comp4.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_' + + 'INF_FAC_PROVEEDOR comp4'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO' + + ' = :ANO2)'#10'and (comp4.ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by ' + + '1,2,3'#10'order by 1 desc,2 asc) periodo_gastos2 on (VALOR = periodo' + + '_gastos2.NFILA)'#10#10#10'where periodo= '#39'TRIMESTRAL'#39#10'order by valor asc' + + #10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ANO1' + TableField = 'ANO1' + end + item + DatasetField = 'ANO2' + TableField = 'ANO2' + end + item + DatasetField = 'INGRESOS_ANO1' + TableField = 'INGRESOS_ANO1' + end + item + DatasetField = 'ANO11' + TableField = 'ANO11' + end + item + DatasetField = 'GASTOS_ANO1' + TableField = 'GASTOS_ANO1' + end + item + DatasetField = 'BENEFICIO_ANO1' + TableField = 'BENEFICIO_ANO1' + end + item + DatasetField = 'INGRESOS_ANO2' + TableField = 'INGRESOS_ANO2' + end + item + DatasetField = 'ANO21' + TableField = 'ANO21' + end + item + DatasetField = 'GASTOS_ANO2' + TableField = 'GASTOS_ANO2' + end + item + DatasetField = 'BENEFICIO_ANO2' + TableField = 'BENEFICIO_ANO2' + end + item + DatasetField = 'DIFERENCIA_INGRESOS' + TableField = 'DIFERENCIA_INGRESOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_INGRESOS' + TableField = 'PORCENTAJE_AUMENTO_INGRESOS' + end + item + DatasetField = 'DIFERENCIA_GASTOS' + TableField = 'DIFERENCIA_GASTOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_GASTOS' + TableField = 'PORCENTAJE_AUMENTO_GASTOS' + end + item + DatasetField = 'DIFERENCIA_BENEFICIOS' + TableField = 'DIFERENCIA_BENEFICIOS' + end + item + DatasetField = 'PORCENTAJE_AUMENTO_BENEFICIOS' + TableField = 'PORCENTAJE_AUMENTO_BENEFICIOS' + end + item + DatasetField = 'PORCENTAJE_BENEFICIOS_ANO1' + TableField = 'PORCENTAJE_BENEFICIOS_ANO1' + end + item + DatasetField = 'PORCENTAJE_BENEFICIOS_ANO2' + TableField = 'PORCENTAJE_BENEFICIOS_ANO2' + end> + end> + Name = 'InformeListadoBeneficiosGrafCompTrimestralTipoGasto' + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO11' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO1' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO1' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO2' + DataType = datCurrency + end + item + Name = 'ANO21' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO2' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO2' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO2' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_INGRESOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_INGRESOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_GASTOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_GASTOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_BENEFICIOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_BENEFICIOS' + DataType = datCurrency + end> end> JoinDataTables = <> UnionDataTables = <> @@ -4443,4 +5227,349 @@ object RptFacturasCliente: TRptFacturasCliente Left = 432 Top = 776 end + object tbl_InformeListadoBeneficiosGrafCompSemestralTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO11' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO1' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO1' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO2' + DataType = datCurrency + end + item + Name = 'ANO21' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO2' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO2' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO2' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_INGRESOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_INGRESOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_GASTOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_GASTOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_BENEFICIOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_BENEFICIOS' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoBeneficiosGrafCompSemestralTipoGasto' + IndexDefs = <> + Left = 824 + Top = 672 + end + object tbl_InformeListadoBeneficiosGrafCompTrimestralTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO11' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO1' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO1' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO2' + DataType = datCurrency + end + item + Name = 'ANO21' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO2' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO2' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO2' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_INGRESOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_INGRESOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_GASTOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_GASTOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_BENEFICIOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_BENEFICIOS' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoBeneficiosGrafCompTrimestralTipoGasto' + IndexDefs = <> + Left = 824 + Top = 728 + end + object tbl_InformeListadoBeneficiosGrafCompMensualTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO11' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO1' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO1' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO1' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'INGRESOS_ANO2' + DataType = datCurrency + end + item + Name = 'ANO21' + DataType = datSmallInt + end + item + Name = 'GASTOS_ANO2' + DataType = datCurrency + end + item + Name = 'BENEFICIO_ANO2' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_BENEFICIOS_ANO2' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_INGRESOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_INGRESOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_GASTOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_GASTOS' + DataType = datCurrency + end + item + Name = 'DIFERENCIA_BENEFICIOS' + DataType = datCurrency + end + item + Name = 'PORCENTAJE_AUMENTO_BENEFICIOS' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoBeneficiosGrafCompMensualTipoGasto' + IndexDefs = <> + Left = 824 + Top = 784 + end end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index 30648ca6..7f7529f5 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -8,7 +8,8 @@ uses uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, - uDAMemDataTable, FactuGES_Intf, frxExportPDF, uDABin2DataStreamer; + uDAMemDataTable, FactuGES_Intf, frxExportPDF, uDABin2DataStreamer, + DataAbstract4_Intf; type TRptFacturasCliente = class(TDataModule) @@ -110,6 +111,9 @@ type DADSInformeIVAComparativoFacturasPro: TDADataSource; tbl_InformeIVAComparativoFacturasPro: TDAMemDataTable; schReport: TDASchema; + tbl_InformeListadoBeneficiosGrafCompSemestralTipoGasto: TDAMemDataTable; + tbl_InformeListadoBeneficiosGrafCompTrimestralTipoGasto: TDAMemDataTable; + tbl_InformeListadoBeneficiosGrafCompMensualTipoGasto: TDAMemDataTable; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); private @@ -127,7 +131,9 @@ type FImporteMinimo: Currency; FDesglosado : Boolean; FTopN: Integer; - + FListaIDTiposdeGasto: TIntegerArray; + FListaNombreTiposGasto: StringArray; + //Genera cada una de las facturas a imprimir procedure _GenerarFactura(const ID: Integer; const VerSello: Boolean = True; const VerCopia: Boolean = True); @@ -145,7 +151,7 @@ type function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeFacturasGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; const TopN: Integer): Binary; - function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary; + function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function GenerarInformeIVAComparativo(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant): Binary; end; @@ -155,7 +161,7 @@ implementation uses uSistemaFunc, StrUtils, uDataModuleServer, schFacturasClienteClient_Intf, - uROServer, DataAbstract4_Intf, srvGestorInformes_Impl; + uROServer, srvGestorInformes_Impl; const rptFacturaCliente = 'InfFacturaCliente.fr3'; @@ -234,10 +240,12 @@ begin end; end; -function TRptFacturasCliente.GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; const Serie: Variant): Binary; +function TRptFacturasCliente.GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; +const Serie: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var AStream: TMemoryStream; AInforme: Variant; + ACadena: TStringList; begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" @@ -250,14 +258,39 @@ begin FAno2 := Ano2; FIntervalo := Intervalo; - //Preparamos la tabla correspondiente y la abrimos para el informe - if (FIntervalo = CTE_MENSUAL) then - PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompMensual) - else if (FIntervalo = CTE_TRIMESTRAL) then - PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompTrimestral) - else - PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompSemestral); + if Assigned(FListaIDTiposdeGasto) then + FListaIDTiposdeGasto.Free; + FListaIDTiposdeGasto := ListaIDTiposGasto; + if Assigned(FListaNombreTiposGasto) then + FreeAndNil(FListaNombreTiposGasto); + FListaNombreTiposGasto := ListaNombreTiposGasto; + + //Cargamos las tablas con parametro ID_TIPO_GASTO + if (FListaIDTiposdeGasto.Count = 1) then + begin + //Preparamos la tabla correspondiente y la abrimos para el informe + if (FIntervalo = CTE_MENSUAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompMensualTipoGasto) + else if (FIntervalo = CTE_TRIMESTRAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompTrimestralTipoGasto) + else + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompSemestralTipoGasto); + + DASInformeListadoFacturasGrafComp.DataTable.ParamByName('ID_TIPO_GASTO').AsInteger := FListaIDTiposdeGasto.Items[0]; + end + else + begin + //Preparamos la tabla correspondiente y la abrimos para el informe + if (FIntervalo = CTE_MENSUAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompMensual) + else if (FIntervalo = CTE_TRIMESTRAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompTrimestral) + else + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompSemestral); + end; + + DASInformeListadoFacturasGrafComp.DataTable.Active := True; Result := Binary.Create; AInforme := DarRutaFichero(DarRutaInformes, rptInformeListadoBeneficiosGrafComp, IntTostr(FIdEmpresa)); @@ -267,6 +300,15 @@ begin frxReport.LoadFromFile(AInforme, True); // IniciarParametrosInforme; + ACadena := TStringList.Create; + ACadena.Add('Todos los tipos de gasto'); + if Assigned(FListaIDTiposdeGasto) and (FListaIDTiposdeGasto.Count > 0) then + begin + ACadena.Clear; + ACadena.Add('Solo tipo de gasto ' + FListaNombreTiposGasto.Items[0]); + end; + + frxReport.Variables.Variables['TextoParametros']:= ACadena.Text; frxReport.Variables.Variables['Ano1']:= Ano1; frxReport.Variables.Variables['Ano2']:= Ano2; frxReport.Variables.Variables['Serie']:= Serie; @@ -276,6 +318,7 @@ begin finally AStream.Free; FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + FreeAndNil(ACadena); end; end; @@ -694,7 +737,6 @@ begin ATabla.ParamByName('ID_EMPRESA2').AsInteger := FIdEmpresa; ATabla.ParamByName('ANO1').AsVariant := FAno1; ATabla.ParamByName('ANO2').AsVariant := FAno2; - ATabla.Active := True; end; procedure TRptFacturasCliente.PrepararTablaResumenInforme(ATabla: IDADataset); diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk index 610c3f4c..a15337ae 100644 Binary files a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk and b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj index 1bfaa291..2def5395 100644 --- a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj +++ b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj @@ -64,6 +64,7 @@ + diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res index 1641339f..8b251f31 100644 Binary files a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res and b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res differ diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas index 0e8306c7..3fea84da 100644 --- a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -54,9 +54,11 @@ type function DarListaAnosFacturas: TStringList; procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); + function darTiposFacturaProveedor: IBizTiposFacturaProveedor; function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; function AsignarVencimiento(AFacturas: IBizFacturaProveedor): TStringList; + function AsignarTipoGasto(AFacturas: IBizFacturaProveedor): TStringList; end; TFacturasProveedorController = class(TControllerBase, IFacturasProveedorController) @@ -124,9 +126,11 @@ type function DarListaAnosFacturas: TStringList; procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); + function darTiposFacturaProveedor: IBizTiposFacturaProveedor; function AsignarCuentaBancaria(AFacturas: IBizFacturaProveedor): TStringList; function AsignarVencimiento(AFacturas: IBizFacturaProveedor): TStringList; + function AsignarTipoGasto(AFacturas: IBizFacturaProveedor): TStringList; end; implementation @@ -142,7 +146,7 @@ uses uRecibosProveedorController, uBizRecibosProveedor, uNumUtils, uFacturasProveedorReportController, DateUtils, Forms, Dialogs, uFormasPagoController, uBizFormasPago, uStringsUtils, - uIEditorElegirDomiciliacion, uIEditorElegirFechaVencimiento, + uIEditorElegirDomiciliacion, uIEditorElegirFechaVencimiento, uIEditorElegirTipoGasto, cxEdit; @@ -305,6 +309,45 @@ begin end; end; +function TFacturasProveedorController.AsignarTipoGasto(AFacturas: IBizFacturaProveedor): TStringList; +//Devolver la lista de facturas que no han podido ser modificadas referencia=nombreproveedor +var + AEditor : IEditorElegirTipoGasto; + ATipoGasto: Integer; + +begin + Result := TStringList.Create; + + if Assigned(AFacturas) then + begin + CreateEditor('EditorElegirTipoGasto', IEditorElegirTipoGasto, AEditor); + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + ATipoGasto := AEditor.TipodeGasto; + finally + AEditor.Release; + AEditor := NIL; + end; + + with AFacturas.DataTable do + begin + First; + while not EOF do + begin + if (AFacturas.ID_TIPO_FACTURA <> ATipoGasto) then + begin + Edit; + AFacturas.ID_TIPO_FACTURA := ATipoGasto; + Post; + end; + Next; + end; + ApplyUpdates; + end; + end; +end; + function TFacturasProveedorController.AsignarVencimiento(AFacturas: IBizFacturaProveedor): TStringList; //Devolver la lista de facturas que no han podido ser modificadas referencia=nombreproveedor var @@ -494,6 +537,11 @@ begin Result := FDataModule.GetAnosItems; end; +function TFacturasProveedorController.darTiposFacturaProveedor: IBizTiposFacturaProveedor; +begin + Result := FDataModule.darTiposFacturaProveedor; +end; + procedure TFacturasProveedorController.DescartarCambios(AFactura: IBizFacturaProveedor); begin if not Assigned(AFactura) then diff --git a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm index 4eb1bfc1..926bcc06 100644 --- a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm +++ b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm @@ -1,6 +1,6 @@ inherited DataModuleFacturasProveedor: TDataModuleFacturasProveedor OnCreate = DAClientDataModuleCreate - Height = 318 + Height = 454 Width = 518 object RORemoteService: TRORemoteService Message = dmConexion.ROMessage @@ -273,6 +273,15 @@ inherited DataModuleFacturasProveedor: TDataModuleFacturasProveedor item Name = 'FACTURA_WEB' DataType = datSmallInt + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + end + item + Name = 'GASTO_FACTURA' + DataType = datString + Size = 2000 end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] @@ -516,4 +525,30 @@ inherited DataModuleFacturasProveedor: TDataModuleFacturasProveedor Left = 208 Top = 160 end + object ds_TiposFacturaProveedor: TDADataSource + DataSet = tbl_TiposFacturaProveedor.Dataset + DataTable = tbl_TiposFacturaProveedor + Left = 72 + Top = 216 + end + object tbl_TiposFacturaProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 2000 + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_FacturasProveedor + LogicalName = 'TiposFacturaProveedor' + IndexDefs = <> + Left = 72 + Top = 264 + end end diff --git a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas index 3362ed36..c59d7e0f 100644 --- a/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas @@ -25,6 +25,8 @@ type ds_FacturasProveedor_Pedidos: TDADataSource; tbl_ListaAnosFacturas: TDAMemDataTable; ds_ListaAnosFacturas: TDADataSource; + ds_TiposFacturaProveedor: TDADataSource; + tbl_TiposFacturaProveedor: TDAMemDataTable; procedure DAClientDataModuleCreate(Sender: TObject); private function _GetDetalles : IBizDetallesFacturaProveedor; @@ -33,6 +35,7 @@ type function GetItems : IBizFacturaProveedor; function GetItem(const ID : Integer) : IBizFacturaProveedor; function NewItem : IBizFacturaProveedor; + function darTiposFacturaProveedor : IBizTiposFacturaProveedor; // Report function GetReport(const AFacturaID: String): Binary; @@ -102,6 +105,20 @@ begin end; end; +function TDataModuleFacturasProveedor.darTiposFacturaProveedor: IBizTiposFacturaProveedor; +var + ATipos : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ATipos := CloneDataTable(tbl_TiposFacturaProveedor); + ATipos.BusinessRulesID := BIZ_CLIENT_TIPOS_FACTURA_PROVEEDOR; + Result := (ATipos as IBizTiposFacturaProveedor); + finally + HideHourglassCursor; + end; +end; + function TDataModuleFacturasProveedor.GetAnosItems: TStringList; var AListaAnos: TStringList; diff --git a/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj index a350fc48..7cf941db 100644 --- a/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj +++ b/Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj @@ -131,15 +131,6 @@ - - - - - - - - - @@ -149,6 +140,15 @@ + + + + + + + + + @@ -312,13 +312,13 @@ - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas index bf21f571..487abe51 100644 --- a/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas @@ -13,6 +13,7 @@ type function GetItems: IBizFacturaProveedor; function GetItem(const ID : Integer) : IBizFacturaProveedor; function NewItem : IBizFacturaProveedor; + function darTiposFacturaProveedor : IBizTiposFacturaProveedor; end; implementation diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas index d537a980..36567a1f 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas @@ -9,13 +9,15 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ListaAnosFacturas = '{B4BDA784-E7CD-4E5D-AD82-CA1AD2FA210E}'; - RID_FacturasProveedor = '{88C6D669-25A9-4965-ADC8-DD1920257A84}'; - RID_FacturasProveedor_Detalles = '{858A5CAE-E03F-4CAB-8AAF-D03986B66CD3}'; - RID_FacturasProveedor_Pedidos = '{3B26DC10-C424-4261-8421-52BDE6ECDF82}'; + RID_ListaAnosFacturas = '{C658E9F4-FBA4-41A1-BED6-48877E65A655}'; + RID_TiposFacturaProveedor = '{8CCF560A-60F5-4A99-9550-2E850599ACEE}'; + RID_FacturasProveedor = '{3359F0D6-D054-434E-B975-8F45A24E1BEE}'; + RID_FacturasProveedor_Detalles = '{26E6A51E-3426-49D3-83DD-3C815C15441D}'; + RID_FacturasProveedor_Pedidos = '{96119A69-D5BF-4255-93F2-726A658369D6}'; { Data table names } nme_ListaAnosFacturas = 'ListaAnosFacturas'; + nme_TiposFacturaProveedor = 'TiposFacturaProveedor'; nme_FacturasProveedor = 'FacturasProveedor'; nme_FacturasProveedor_Detalles = 'FacturasProveedor_Detalles'; nme_FacturasProveedor_Pedidos = 'FacturasProveedor_Pedidos'; @@ -26,6 +28,14 @@ const { ListaAnosFacturas field indexes } idx_ListaAnosFacturasANO = 0; + { TiposFacturaProveedor fields } + fld_TiposFacturaProveedorID = 'ID'; + fld_TiposFacturaProveedorDESCRIPCION = 'DESCRIPCION'; + + { TiposFacturaProveedor field indexes } + idx_TiposFacturaProveedorID = 0; + idx_TiposFacturaProveedorDESCRIPCION = 1; + { FacturasProveedor fields } fld_FacturasProveedorID = 'ID'; fld_FacturasProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -66,6 +76,8 @@ const fld_FacturasProveedorID_PEDIDO = 'ID_PEDIDO'; fld_FacturasProveedorREFERENCIA_PEDIDO = 'REFERENCIA_PEDIDO'; fld_FacturasProveedorFACTURA_WEB = 'FACTURA_WEB'; + fld_FacturasProveedorID_TIPO_FACTURA = 'ID_TIPO_FACTURA'; + fld_FacturasProveedorGASTO_FACTURA = 'GASTO_FACTURA'; { FacturasProveedor field indexes } idx_FacturasProveedorID = 0; @@ -107,6 +119,8 @@ const idx_FacturasProveedorID_PEDIDO = 36; idx_FacturasProveedorREFERENCIA_PEDIDO = 37; idx_FacturasProveedorFACTURA_WEB = 38; + idx_FacturasProveedorID_TIPO_FACTURA = 39; + idx_FacturasProveedorGASTO_FACTURA = 40; { FacturasProveedor_Detalles fields } fld_FacturasProveedor_DetallesID_TIPO_IVA = 'ID_TIPO_IVA'; @@ -171,7 +185,7 @@ const type { IListaAnosFacturas } IListaAnosFacturas = interface(IDAStronglyTypedDataTable) - ['{05484AA0-6BB3-4627-AACC-ACA197D91A7A}'] + ['{3A6537F5-9F02-4F34-AF69-4177A3BE5307}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -204,9 +218,56 @@ type end; + { ITiposFacturaProveedor } + ITiposFacturaProveedor = interface(IDAStronglyTypedDataTable) + ['{563B959F-593F-455A-86CE-8F84B71242A0}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TTiposFacturaProveedorDataTableRules } + TTiposFacturaProveedorDataTableRules = class(TIntfObjectDADataTableRules, ITiposFacturaProveedor) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + { IFacturasProveedor } IFacturasProveedor = interface(IDAStronglyTypedDataTable) - ['{AD3265C8-FA1C-4EF5-AE75-30202C4F636C}'] + ['{F16B7B17-828D-4E04-8227-F7B796C34113}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -363,6 +424,14 @@ type procedure SetFACTURA_WEBValue(const aValue: SmallInt); function GetFACTURA_WEBIsNull: Boolean; procedure SetFACTURA_WEBIsNull(const aValue: Boolean); + function GetID_TIPO_FACTURAValue: Integer; + procedure SetID_TIPO_FACTURAValue(const aValue: Integer); + function GetID_TIPO_FACTURAIsNull: Boolean; + procedure SetID_TIPO_FACTURAIsNull(const aValue: Boolean); + function GetGASTO_FACTURAValue: String; + procedure SetGASTO_FACTURAValue(const aValue: String); + function GetGASTO_FACTURAIsNull: Boolean; + procedure SetGASTO_FACTURAIsNull(const aValue: Boolean); { Properties } @@ -444,6 +513,10 @@ type property REFERENCIA_PEDIDOIsNull: Boolean read GetREFERENCIA_PEDIDOIsNull write SetREFERENCIA_PEDIDOIsNull; property FACTURA_WEB: SmallInt read GetFACTURA_WEBValue write SetFACTURA_WEBValue; property FACTURA_WEBIsNull: Boolean read GetFACTURA_WEBIsNull write SetFACTURA_WEBIsNull; + property ID_TIPO_FACTURA: Integer read GetID_TIPO_FACTURAValue write SetID_TIPO_FACTURAValue; + property ID_TIPO_FACTURAIsNull: Boolean read GetID_TIPO_FACTURAIsNull write SetID_TIPO_FACTURAIsNull; + property GASTO_FACTURA: String read GetGASTO_FACTURAValue write SetGASTO_FACTURAValue; + property GASTO_FACTURAIsNull: Boolean read GetGASTO_FACTURAIsNull write SetGASTO_FACTURAIsNull; end; { TFacturasProveedorDataTableRules } @@ -608,6 +681,14 @@ type procedure SetFACTURA_WEBValue(const aValue: SmallInt); virtual; function GetFACTURA_WEBIsNull: Boolean; virtual; procedure SetFACTURA_WEBIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_FACTURAValue: Integer; virtual; + procedure SetID_TIPO_FACTURAValue(const aValue: Integer); virtual; + function GetID_TIPO_FACTURAIsNull: Boolean; virtual; + procedure SetID_TIPO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetGASTO_FACTURAValue: String; virtual; + procedure SetGASTO_FACTURAValue(const aValue: String); virtual; + function GetGASTO_FACTURAIsNull: Boolean; virtual; + procedure SetGASTO_FACTURAIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -688,6 +769,10 @@ type property REFERENCIA_PEDIDOIsNull: Boolean read GetREFERENCIA_PEDIDOIsNull write SetREFERENCIA_PEDIDOIsNull; property FACTURA_WEB: SmallInt read GetFACTURA_WEBValue write SetFACTURA_WEBValue; property FACTURA_WEBIsNull: Boolean read GetFACTURA_WEBIsNull write SetFACTURA_WEBIsNull; + property ID_TIPO_FACTURA: Integer read GetID_TIPO_FACTURAValue write SetID_TIPO_FACTURAValue; + property ID_TIPO_FACTURAIsNull: Boolean read GetID_TIPO_FACTURAIsNull write SetID_TIPO_FACTURAIsNull; + property GASTO_FACTURA: String read GetGASTO_FACTURAValue write SetGASTO_FACTURAValue; + property GASTO_FACTURAIsNull: Boolean read GetGASTO_FACTURAIsNull write SetGASTO_FACTURAIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -697,7 +782,7 @@ type { IFacturasProveedor_Detalles } IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{F659E93B-D0FA-48CD-86DF-07903E7F8687}'] + ['{BE622FAF-3843-477A-8F04-F9FDD937F179}'] { Property getters and setters } function GetID_TIPO_IVAValue: Integer; procedure SetID_TIPO_IVAValue(const aValue: Integer); @@ -948,7 +1033,7 @@ type { IFacturasProveedor_Pedidos } IFacturasProveedor_Pedidos = interface(IDAStronglyTypedDataTable) - ['{EED4D71C-4868-4437-B0F5-CE738331D865}'] + ['{4A33A986-4CE2-4064-AE22-C0823A36AA54}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1090,6 +1175,60 @@ begin end; +{ TTiposFacturaProveedorDataTableRules } +constructor TTiposFacturaProveedorDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TTiposFacturaProveedorDataTableRules.Destroy; +begin + inherited; +end; + +function TTiposFacturaProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_TiposFacturaProveedorID].AsInteger; +end; + +procedure TTiposFacturaProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiposFacturaProveedorID].AsInteger := aValue; +end; + +function TTiposFacturaProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposFacturaProveedorID].IsNull; +end; + +procedure TTiposFacturaProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposFacturaProveedorID].AsVariant := Null; +end; + +function TTiposFacturaProveedorDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_TiposFacturaProveedorDESCRIPCION].AsString; +end; + +procedure TTiposFacturaProveedorDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_TiposFacturaProveedorDESCRIPCION].AsString := aValue; +end; + +function TTiposFacturaProveedorDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposFacturaProveedorDESCRIPCION].IsNull; +end; + +procedure TTiposFacturaProveedorDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposFacturaProveedorDESCRIPCION].AsVariant := Null; +end; + + { TFacturasProveedorDataTableRules } constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -1927,6 +2066,48 @@ begin DataTable.Fields[idx_FacturasProveedorFACTURA_WEB].AsVariant := Null; end; +function TFacturasProveedorDataTableRules.GetID_TIPO_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_FacturasProveedorID_TIPO_FACTURA].AsInteger; +end; + +procedure TFacturasProveedorDataTableRules.SetID_TIPO_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_FacturasProveedorID_TIPO_FACTURA].AsInteger := aValue; +end; + +function TFacturasProveedorDataTableRules.GetID_TIPO_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorID_TIPO_FACTURA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetID_TIPO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorID_TIPO_FACTURA].AsVariant := Null; +end; + +function TFacturasProveedorDataTableRules.GetGASTO_FACTURAValue: String; +begin + result := DataTable.Fields[idx_FacturasProveedorGASTO_FACTURA].AsString; +end; + +procedure TFacturasProveedorDataTableRules.SetGASTO_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_FacturasProveedorGASTO_FACTURA].AsString := aValue; +end; + +function TFacturasProveedorDataTableRules.GetGASTO_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_FacturasProveedorGASTO_FACTURA].IsNull; +end; + +procedure TFacturasProveedorDataTableRules.SetGASTO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_FacturasProveedorGASTO_FACTURA].AsVariant := Null; +end; + { TFacturasProveedor_DetallesDataTableRules } constructor TFacturasProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable); @@ -2500,6 +2681,7 @@ end; initialization RegisterDataTableRules(RID_ListaAnosFacturas, TListaAnosFacturasDataTableRules); + RegisterDataTableRules(RID_TiposFacturaProveedor, TTiposFacturaProveedorDataTableRules); RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules); RegisterDataTableRules(RID_FacturasProveedor_Detalles, TFacturasProveedor_DetallesDataTableRules); RegisterDataTableRules(RID_FacturasProveedor_Pedidos, TFacturasProveedor_PedidosDataTableRules); diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas index c065b316..a4adf461 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas @@ -9,15 +9,16 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ListaAnosFacturasDelta = '{597C7E92-4D92-447E-B929-17142EC8D988}'; - RID_FacturasProveedorDelta = '{ACBA8C9D-A8DA-42B8-82C6-443D313A128F}'; - RID_FacturasProveedor_DetallesDelta = '{A8B404BC-49F6-4337-B720-7E89EE78B376}'; - RID_FacturasProveedor_PedidosDelta = '{27E068A8-51CD-4289-AB94-31B7C5120DC4}'; + RID_ListaAnosFacturasDelta = '{58AB1D93-ECF9-4709-9940-4EABA82A3837}'; + RID_TiposFacturaProveedorDelta = '{ACA94265-BCFA-4352-AD0A-3047643CDBE1}'; + RID_FacturasProveedorDelta = '{6C73408A-5093-494D-9629-DA14CCD2809C}'; + RID_FacturasProveedor_DetallesDelta = '{8C06187D-4437-4059-B72D-81D07D5EA1B2}'; + RID_FacturasProveedor_PedidosDelta = '{09AF7634-49D5-466B-A428-D969048F0E0E}'; type { IListaAnosFacturasDelta } IListaAnosFacturasDelta = interface(IListaAnosFacturas) - ['{597C7E92-4D92-447E-B929-17142EC8D988}'] + ['{58AB1D93-ECF9-4709-9940-4EABA82A3837}'] { Property getters and setters } function GetOldANOValue : String; @@ -49,9 +50,55 @@ type end; + { ITiposFacturaProveedorDelta } + ITiposFacturaProveedorDelta = interface(ITiposFacturaProveedor) + ['{ACA94265-BCFA-4352-AD0A-3047643CDBE1}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TTiposFacturaProveedorBusinessProcessorRules } + TTiposFacturaProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, ITiposFacturaProveedor, ITiposFacturaProveedorDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + { IFacturasProveedorDelta } IFacturasProveedorDelta = interface(IFacturasProveedor) - ['{ACBA8C9D-A8DA-42B8-82C6-443D313A128F}'] + ['{6C73408A-5093-494D-9629-DA14CCD2809C}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -92,6 +139,8 @@ type function GetOldID_PEDIDOValue : Integer; function GetOldREFERENCIA_PEDIDOValue : String; function GetOldFACTURA_WEBValue : SmallInt; + function GetOldID_TIPO_FACTURAValue : Integer; + function GetOldGASTO_FACTURAValue : String; { Properties } property OldID : Integer read GetOldIDValue; @@ -133,6 +182,8 @@ type property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; property OldREFERENCIA_PEDIDO : String read GetOldREFERENCIA_PEDIDOValue; property OldFACTURA_WEB : SmallInt read GetOldFACTURA_WEBValue; + property OldID_TIPO_FACTURA : Integer read GetOldID_TIPO_FACTURAValue; + property OldGASTO_FACTURA : String read GetOldGASTO_FACTURAValue; end; { TFacturasProveedorBusinessProcessorRules } @@ -375,6 +426,18 @@ type function GetOldFACTURA_WEBIsNull: Boolean; virtual; procedure SetFACTURA_WEBValue(const aValue: SmallInt); virtual; procedure SetFACTURA_WEBIsNull(const aValue: Boolean); virtual; + function GetID_TIPO_FACTURAValue: Integer; virtual; + function GetID_TIPO_FACTURAIsNull: Boolean; virtual; + function GetOldID_TIPO_FACTURAValue: Integer; virtual; + function GetOldID_TIPO_FACTURAIsNull: Boolean; virtual; + procedure SetID_TIPO_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_TIPO_FACTURAIsNull(const aValue: Boolean); virtual; + function GetGASTO_FACTURAValue: String; virtual; + function GetGASTO_FACTURAIsNull: Boolean; virtual; + function GetOldGASTO_FACTURAValue: String; virtual; + function GetOldGASTO_FACTURAIsNull: Boolean; virtual; + procedure SetGASTO_FACTURAValue(const aValue: String); virtual; + procedure SetGASTO_FACTURAIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -533,6 +596,14 @@ type property FACTURA_WEBIsNull : Boolean read GetFACTURA_WEBIsNull write SetFACTURA_WEBIsNull; property OldFACTURA_WEB : SmallInt read GetOldFACTURA_WEBValue; property OldFACTURA_WEBIsNull : Boolean read GetOldFACTURA_WEBIsNull; + property ID_TIPO_FACTURA : Integer read GetID_TIPO_FACTURAValue write SetID_TIPO_FACTURAValue; + property ID_TIPO_FACTURAIsNull : Boolean read GetID_TIPO_FACTURAIsNull write SetID_TIPO_FACTURAIsNull; + property OldID_TIPO_FACTURA : Integer read GetOldID_TIPO_FACTURAValue; + property OldID_TIPO_FACTURAIsNull : Boolean read GetOldID_TIPO_FACTURAIsNull; + property GASTO_FACTURA : String read GetGASTO_FACTURAValue write SetGASTO_FACTURAValue; + property GASTO_FACTURAIsNull : Boolean read GetGASTO_FACTURAIsNull write SetGASTO_FACTURAIsNull; + property OldGASTO_FACTURA : String read GetOldGASTO_FACTURAValue; + property OldGASTO_FACTURAIsNull : Boolean read GetOldGASTO_FACTURAIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -542,7 +613,7 @@ type { IFacturasProveedor_DetallesDelta } IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) - ['{A8B404BC-49F6-4337-B720-7E89EE78B376}'] + ['{8C06187D-4437-4059-B72D-81D07D5EA1B2}'] { Property getters and setters } function GetOldID_TIPO_IVAValue : Integer; function GetOldIVAValue : Float; @@ -792,7 +863,7 @@ type { IFacturasProveedor_PedidosDelta } IFacturasProveedor_PedidosDelta = interface(IFacturasProveedor_Pedidos) - ['{27E068A8-51CD-4289-AB94-31B7C5120DC4}'] + ['{09AF7634-49D5-466B-A428-D969048F0E0E}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -944,6 +1015,80 @@ begin end; +{ TTiposFacturaProveedorBusinessProcessorRules } +constructor TTiposFacturaProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TTiposFacturaProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorID]; +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorID]); +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposFacturaProveedorID]; +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposFacturaProveedorID]); +end; + +procedure TTiposFacturaProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorID] := aValue; +end; + +procedure TTiposFacturaProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorID] := Null; +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorDESCRIPCION]; +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorDESCRIPCION]); +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposFacturaProveedorDESCRIPCION]; +end; + +function TTiposFacturaProveedorBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposFacturaProveedorDESCRIPCION]); +end; + +procedure TTiposFacturaProveedorBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorDESCRIPCION] := aValue; +end; + +procedure TTiposFacturaProveedorBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposFacturaProveedorDESCRIPCION] := Null; +end; + + { TFacturasProveedorBusinessProcessorRules } constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2172,6 +2317,68 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorFACTURA_WEB] := Null; end; +function TFacturasProveedorBusinessProcessorRules.GetID_TIPO_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetID_TIPO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_FACTURA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_TIPO_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_TIPO_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldID_TIPO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorID_TIPO_FACTURA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_TIPO_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_FACTURA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetID_TIPO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorID_TIPO_FACTURA] := Null; +end; + +function TFacturasProveedorBusinessProcessorRules.GetGASTO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorGASTO_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetGASTO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorGASTO_FACTURA]); +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldGASTO_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorGASTO_FACTURA]; +end; + +function TFacturasProveedorBusinessProcessorRules.GetOldGASTO_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasProveedorGASTO_FACTURA]); +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetGASTO_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorGASTO_FACTURA] := aValue; +end; + +procedure TFacturasProveedorBusinessProcessorRules.SetGASTO_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasProveedorGASTO_FACTURA] := Null; +end; + { TFacturasProveedor_DetallesBusinessProcessorRules } constructor TFacturasProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); @@ -3005,6 +3212,7 @@ end; initialization RegisterBusinessProcessorRules(RID_ListaAnosFacturasDelta, TListaAnosFacturasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_TiposFacturaProveedorDelta, TTiposFacturaProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedor_DetallesDelta, TFacturasProveedor_DetallesBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedor_PedidosDelta, TFacturasProveedor_PedidosBusinessProcessorRules); diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas index ac2bf01a..5ff0b3ff 100644 --- a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas @@ -9,6 +9,7 @@ uses const BIZ_CLIENT_FACTURA_PROVEEDOR = 'Client.FacturaProveedor'; + BIZ_CLIENT_TIPOS_FACTURA_PROVEEDOR = 'Client.TiposFacturaProveedor'; CTE_TIPO_ABONO = 'A'; CTE_TIPO_FACTURA = 'F'; @@ -18,6 +19,10 @@ const CTE_PAGADA = 'PAGADA'; type + IBizTiposFacturaProveedor = interface(ITiposFacturaProveedor) + ['{40F9AF09-459A-4F89-ABD1-16FB6659FA61}'] + end; + IBizFacturaProveedor = interface(IFacturasProveedor) ['{4BC473E5-3B82-4C1A-8E52-2A227490F94E}'] @@ -43,6 +48,8 @@ type procedure CalcularImporteTotal; end; + TBizTiposFacturaProveedor = class(TTiposFacturaProveedorDataTableRules, IBizTiposFacturaProveedor) + end; TBizFacturaProveedor = class(TFacturasProveedorDataTableRules, IBizFacturaProveedor, ISeleccionable) private @@ -383,6 +390,7 @@ end; initialization RegisterDataTableRules(BIZ_CLIENT_FACTURA_PROVEEDOR, TBizFacturaProveedor); + RegisterDataTableRules(BIZ_CLIENT_TIPOS_FACTURA_PROVEEDOR, TBizTiposFacturaProveedor); finalization diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm index 565d0902..cb1bbbf9 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm @@ -2,8 +2,8 @@ object RptFacturasProveedor: TRptFacturasProveedor OldCreateOrder = True OnCreate = DataModuleCreate OnDestroy = DataModuleDestroy - Height = 647 - Width = 933 + Height = 726 + Width = 1154 object schReport: TDASchema ConnectionManager = dmServer.ConnectionManager Datasets = < @@ -451,10 +451,11 @@ object RptFacturasProveedor: TRptFacturasProveedor 'E_IMPONIBLE, FAC.IMPORTE_IVA, FAC.IMPORTE_TOTAL AS IMPORTE_TOTAL' + '_FACTURA, REC.IMPORTE_TOTAL,'#10'FAC.REFERENCIA_PROVEEDOR,'#10'case'#10'when' + ' strlen(FAC.DATOS_BANCARIOS) = 0 then '#39'Sin cuenta bancaria'#39#10'else' + - ' FAC.DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS'#10#10#10'from V_FACTURAS_PR' + - 'OVEEDOR FAC LEFT OUTER JOIN V_REC_FAC_PRO_IMPORTES REC ON (REC.I' + - 'D_FACTURA = FAC.ID)'#10#10'where {where}'#10#10'order by ANO, MES, FAC.FECHA' + - '_VENCIMIENTO, DATOS_BANCARIOS, FAC.NOMBRE'#10#10 + ' FAC.DATOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10'FAC.ID_TIPO_FACTURA' + + ', FAC.GASTO_FACTURA'#10#10#10'from V_FACTURAS_PROVEEDOR FAC LEFT OUTER J' + + 'OIN V_REC_FAC_PRO_IMPORTES REC ON (REC.ID_FACTURA = FAC.ID)'#10#10'whe' + + 're {where}'#10#10'order by ANO, MES, FAC.FECHA_VENCIMIENTO, DATOS_BANC' + + 'ARIOS, FAC.NOMBRE'#10#10 StatementType = stSQL ColumnMappings = < item @@ -532,6 +533,14 @@ object RptFacturasProveedor: TRptFacturasProveedor item DatasetField = 'REFERENCIA_PROVEEDOR' TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'GASTO_FACTURA' + TableField = 'GASTO_FACTURA' + end + item + DatasetField = 'ID_TIPO_FACTURA' + TableField = 'ID_TIPO_FACTURA' end> end> Name = 'InformeListadoFacturasPendientes' @@ -614,6 +623,15 @@ object RptFacturasProveedor: TRptFacturasProveedor Name = 'DATOS_BANCARIOS' DataType = datString Size = 255 + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + end + item + Name = 'GASTO_FACTURA' + DataType = datString + Size = 2000 end> end item @@ -645,8 +663,9 @@ object RptFacturasProveedor: TRptFacturasProveedor 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + 'cha_factura)'#10'end as TITULO,'#10'REFERENCIA, ID_PROVEEDOR, NOMBRE, S' + 'ITUACION, NIF_CIF, FECHA_FACTURA, fecha_vencimiento, BASE_IMPONI' + - 'BLE, IMPORTE_IVA, IMPORTE_TOTAL'#10#10'from V_facturas_proveedor'#10'where' + - ' {where}'#10'order by ANO, MES, fecha_factura, NOMBRE'#10#10 + 'BLE, IMPORTE_IVA, IMPORTE_TOTAL,'#10'ID_TIPO_FACTURA, GASTO_FACTURA'#10 + + #10'from V_facturas_proveedor'#10'where {where}'#10'order by ANO, MES, fech' + + 'a_factura, NOMBRE'#10#10 StatementType = stSQL ColumnMappings = < item @@ -707,6 +726,14 @@ object RptFacturasProveedor: TRptFacturasProveedor item DatasetField = 'IMPORTE_TOTAL' TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_TIPO_FACTURA' + TableField = 'ID_TIPO_FACTURA' + end + item + DatasetField = 'GASTO_FACTURA' + TableField = 'GASTO_FACTURA' end> end> Name = 'InformeListadoFacturas' @@ -771,6 +798,15 @@ object RptFacturasProveedor: TRptFacturasProveedor item Name = 'IMPORTE_TOTAL' DataType = datCurrency + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + end + item + Name = 'GASTO_FACTURA' + DataType = datString + Size = 2000 end> end item @@ -805,11 +841,11 @@ object RptFacturasProveedor: TRptFacturasProveedor 'rom FAC.FECHA_VENCIMIENTO) = 12 then '#39'DICIEMBRE - '#39' || extract (' + 'year from FAC.FECHA_VENCIMIENTO)'#10'end as TITULO,'#10'case'#10'when strlen' + '(FAC.DATOS_BANCARIOS) = 0 then '#39'Sin cuenta bancaria'#39#10'else FAC.DA' + - 'TOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10'sum(FAC.IMPORTE_TOTAL) as ' + - 'IMPORTE_TOTAL,'#10'sum(REC.IMPORTE_TOTAL) as IMPORTE_RECIBOS'#10#10'from V' + - '_FACTURAS_PROVEEDOR FAC LEFT OUTER JOIN V_REC_FAC_PRO_IMPORTES R' + - 'EC ON (REC.ID_FACTURA = FAC.ID)'#10#10'where {where}'#10#10'group by 1,2,3,4' + - ',5'#10'order by 1,2,3,4,5'#10#10#10 + 'TOS_BANCARIOS'#10'end as DATOS_BANCARIOS,'#10#10#10'sum(FAC.IMPORTE_TOTAL) a' + + 's IMPORTE_TOTAL,'#10'sum(REC.IMPORTE_TOTAL) as IMPORTE_RECIBOS'#10#10'from' + + ' V_FACTURAS_PROVEEDOR FAC LEFT OUTER JOIN V_REC_FAC_PRO_IMPORTES' + + ' REC ON (REC.ID_FACTURA = FAC.ID)'#10#10'where {where}'#10#10'group by 1,2,3' + + ',4,5'#10'order by 1,2,3,4,5'#10#10#10 StatementType = stSQL ColumnMappings = < item @@ -1009,7 +1045,7 @@ object RptFacturasProveedor: TRptFacturasProveedor '_INF_FAC_PROVEEDOR comp2'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (AN' + 'O = :ANO2)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo2 on (VA' + 'LOR = periodo2.NFILA)'#10#10'where periodo= '#39'MENSUAL'#39#10'order by valor a' + - 'sc'#10#10#10 + 'sc'#10#10 StatementType = stSQL ColumnMappings = < item @@ -1322,11 +1358,12 @@ object RptFacturasProveedor: TRptFacturasProveedor SQL = 'select P.ANO, C.REFERENCIA, COALESCE(C.NOMBRE, P.NOMBRE) as NOMB' + 'RE, p.Importe_TOTAL_ANO,'#10'COUNT(P.FECHA_FACTURA) as NUMFAC, SUM(P' + - '.IMPORTE_TOTAL) as IMPORTE_TOTAL,'#10'((SUM(P.IMPORTE_TOTAL)*100)/p.' + - 'Importe_TOTAL_ANO) as PORCENTAJE'#10#10'from V_INF_FAC_PROVEEDOR P'#10'lef' + - 't join CONTACTOS C on P.ID_PROVEEDOR = C.ID'#10#10'where p.ID_EMPRESA ' + - '= :ID_EMPRESA'#10'and P.ANO = :ANO'#10'group by 1,2,3,4'#10'order by 1,6 des' + - 'c'#10'rows 1 to :NTOP'#10#10#10 + '.IMPORTE_TOTAL) as IMPORTE_TOTAL,'#10'case when p.Importe_TOTAL_ANO ' + + '= 0 then 0'#10'else ((SUM(P.IMPORTE_TOTAL)*100)/p.Importe_TOTAL_ANO)' + + #10'end as PORCENTAJE'#10#10'from V_INF_FAC_PROVEEDOR P'#10'left join CONTACT' + + 'OS C on P.ID_PROVEEDOR = C.ID'#10#10'where p.ID_EMPRESA = :ID_EMPRESA'#10 + + 'and P.ANO = :ANO'#10'group by 1,2,3,4'#10'order by 1,6 desc'#10'rows 1 to :N' + + 'TOP'#10#10#10 StatementType = stSQL ColumnMappings = < item @@ -1399,7 +1436,6 @@ object RptFacturasProveedor: TRptFacturasProveedor Params = < item Name = 'ID_EMPRESA' - DataType = datInteger Value = '' end item @@ -1489,6 +1525,547 @@ object RptFacturasProveedor: TRptFacturasProveedor Name = 'PORCENTAJE' DataType = datCurrency end> + end + item + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select VALOR, DESCRIPCION, periodo1.ANO as Ano1, periodo1.IMPORT' + + 'E_TOTAL, periodo2.ANO as Ano2, periodo2.IMPORTE_TOTAL,'#10#10'(periodo' + + '1.IMPORTE_TOTAL - periodo2.IMPORTE_TOTAL) as Diferencia,'#10'/*SOLO ' + + 'COMPARAREMOS CUANDO EL SEGUNDO A'#209'O SEA DIFERENTE DE 0, comparati' + + 'va de A'#241'o1 respecto A'#241'o2*/'#10'case'#10'when (periodo1.IMPORTE_TOTAL = 0' + + ') then (NULL)'#10'else (((periodo1.IMPORTE_TOTAL - periodo2.IMPORTE_' + + 'TOTAL) * 100) / periodo2.IMPORTE_TOTAL)'#10'end as Porcentaje'#10#10'FROM'#10 + + 'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, comp1.ANO, MES ' + + 'as NFILA, SUM(comp1.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_' + + 'FAC_PROVEEDOR comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and (ANO = :' + + 'ANO1)'#10'and (ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'orde' + + 'r by 1 desc,2 asc) periodo1 on (VALOR = periodo1.NFILA)'#10#10'left jo' + + 'in'#10'(select comp2.ID_EMPRESA, comp2.ANO, MES as NFILA, SUM(comp2.' + + 'BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp2'#10 + + 'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'and (ID_TIPO_F' + + 'ACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) p' + + 'eriodo2 on (VALOR = periodo2.NFILA)'#10#10'where periodo= '#39'MENSUAL'#39#10'or' + + 'der by valor asc'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'IMPORTE_TOTAL1' + TableField = 'IMPORTE_TOTAL1' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'PORCENTAJE' + TableField = 'PORCENTAJE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ANO1' + TableField = 'ANO1' + end + item + DatasetField = 'ANO2' + TableField = 'ANO2' + end> + end> + Name = 'InformeListadoFacturasGrafCompMensualTipoGasto' + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL1' + DataType = datCurrency + end + item + Name = 'DIFERENCIA' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select VALOR, DESCRIPCION, periodo1.ANO as Ano1, periodo1.IMPORT' + + 'E_TOTAL, periodo2.ANO as Ano2, periodo2.IMPORTE_TOTAL,'#10#10'(periodo' + + '1.IMPORTE_TOTAL - periodo2.IMPORTE_TOTAL) as Diferencia,'#10'/*SOLO ' + + 'COMPARAREMOS CUANDO EL SEGUNDO A'#209'O SEA DIFERENTE DE 0, comparati' + + 'va de A'#241'o1 respecto A'#241'o2*/'#10'case'#10'when (periodo1.IMPORTE_TOTAL = 0' + + ') then (NULL)'#10'else (((periodo1.IMPORTE_TOTAL - periodo2.IMPORTE_' + + 'TOTAL) * 100) / periodo2.IMPORTE_TOTAL)'#10'end as Porcentaje'#10#10'FROM'#10 + + 'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, comp1.ANO, SEME' + + 'STRE as NFILA, SUM(comp1.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V' + + '_INF_FAC_PROVEEDOR comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and (AN' + + 'O = :ANO1)'#10'and (ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,3' + + #10'order by 1 desc,2 asc) periodo1 on (VALOR = periodo1.NFILA)'#10#10'le' + + 'ft join'#10'(select comp2.ID_EMPRESA, comp2.ANO, SEMESTRE as NFILA, ' + + 'SUM(comp2.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEE' + + 'DOR comp2'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'and ' + + '(ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'order by 1 des' + + 'c,2 asc) periodo2 on (VALOR = periodo2.NFILA)'#10#10'where periodo= '#39'S' + + 'EMESTRAL'#39#10'order by valor asc'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'IMPORTE_TOTAL1' + TableField = 'IMPORTE_TOTAL1' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'PORCENTAJE' + TableField = 'PORCENTAJE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ANO1' + TableField = 'ANO1' + end + item + DatasetField = 'ANO2' + TableField = 'ANO2' + end> + end> + Name = 'InformeListadoFacturasGrafCompSemestralTipoGasto' + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL1' + DataType = datCurrency + end + item + Name = 'DIFERENCIA' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select VALOR, DESCRIPCION, periodo1.ANO as Ano1, periodo1.IMPORT' + + 'E_TOTAL, periodo2.ANO as Ano2, periodo2.IMPORTE_TOTAL,'#10#10'(periodo' + + '1.IMPORTE_TOTAL - periodo2.IMPORTE_TOTAL) as Diferencia,'#10'/*SOLO ' + + 'COMPARAREMOS CUANDO EL SEGUNDO A'#209'O SEA DIFERENTE DE 0, comparati' + + 'va de A'#241'o1 respecto A'#241'o2*/'#10'case'#10'when (periodo1.IMPORTE_TOTAL = 0' + + ') then (NULL)'#10'else (((periodo1.IMPORTE_TOTAL - periodo2.IMPORTE_' + + 'TOTAL) * 100) / periodo2.IMPORTE_TOTAL)'#10'end as Porcentaje'#10#10'FROM'#10 + + 'periodos_aux'#10'left join'#10'(select comp1.ID_EMPRESA, comp1.ANO, TRIM' + + 'ESTRE as NFILA, SUM(comp1.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from ' + + 'V_INF_FAC_PROVEEDOR comp1'#10'where ID_EMPRESA = :ID_EMPRESA1'#10'and (A' + + 'NO = :ANO1)'#10'and (ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,' + + '3'#10'order by 1 desc,2 asc) periodo1 on (VALOR = periodo1.NFILA)'#10#10'l' + + 'eft join'#10'(select comp2.ID_EMPRESA, comp2.ANO, TRIMESTRE as NFILA' + + ', SUM(comp2.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROV' + + 'EEDOR comp2'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'an' + + 'd (ID_TIPO_FACTURA = :ID_TIPO_GASTO)'#10'group by 1,2,3'#10'order by 1 d' + + 'esc,2 asc) periodo2 on (VALOR = periodo2.NFILA)'#10#10'where periodo= ' + + #39'TRIMESTRAL'#39#10'order by valor asc'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end + item + DatasetField = 'IMPORTE_TOTAL1' + TableField = 'IMPORTE_TOTAL1' + end + item + DatasetField = 'DIFERENCIA' + TableField = 'DIFERENCIA' + end + item + DatasetField = 'PORCENTAJE' + TableField = 'PORCENTAJE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ANO1' + TableField = 'ANO1' + end + item + DatasetField = 'ANO2' + TableField = 'ANO2' + end> + end> + Name = 'InformeListadoFacturasGrafCompTrimestralTipoGasto' + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL1' + DataType = datCurrency + end + item + Name = 'DIFERENCIA' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ANO' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'NTOP' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select P.ANO, C.REFERENCIA, COALESCE(C.NOMBRE, P.NOMBRE) as NOMB' + + 'RE,'#10'SUM(P.IMPORTE_DESCUENTO) as IMPORTE_DESCUENTO, SUM(P.IMPORTE' + + '_TOTAL) as IMPORTE_TOTAL,'#10'(SUM(P.IMPORTE_TOTAL) - SUM(P.IMPORTE_' + + 'DESCUENTO)) as IMPORTE_COBRADO,'#10'case when SUM(P.IMPORTE_TOTAL) =' + + ' 0 then 0'#10'else ((SUM(P.IMPORTE_DESCUENTO) * 100) / SUM(P.IMPORTE' + + '_TOTAL)) end as PORCENTAJE'#10#10'from V_INF_FAC_PROVEEDOR P'#10'left join' + + ' CONTACTOS C on P.ID_PROVEEDOR = C.ID'#10#10'where p.ID_EMPRESA = :ID_' + + 'EMPRESA'#10'and P.ANO = :ANO'#10'and ID_TIPO_FACTURA = :ID_TIPO_GASTO'#10'gr' + + 'oup by 1,2,3'#10'order by 1,5 desc'#10'rows 1 to :NTOP'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'PORCENTAJE' + TableField = '' + SQLOrigin = 'PORCENTAJE' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'IMPORTE_COBRADO' + TableField = '' + SQLOrigin = 'IMPORTE_COBRADO' + end> + end> + Name = 'InformeListadoProveedoresMayorDescuentoResumenTipoGasto' + Fields = < + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'IMPORTE_COBRADO' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ANO' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'NTOP' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + SQL = + 'select P.ANO, C.REFERENCIA, COALESCE(C.NOMBRE, P.NOMBRE) as NOMB' + + 'RE, p.Importe_TOTAL_ANO,'#10'COUNT(P.FECHA_FACTURA) as NUMFAC, SUM(P' + + '.IMPORTE_TOTAL) as IMPORTE_TOTAL,'#10'case when p.Importe_TOTAL_ANO ' + + '= 0 then 0'#10'else ((SUM(P.IMPORTE_TOTAL)*100)/p.Importe_TOTAL_ANO)' + + #10'end as PORCENTAJE'#10#10'from V_INF_FAC_PROVEEDOR P'#10'left join CONTACT' + + 'OS C on P.ID_PROVEEDOR = C.ID'#10#10'where p.ID_EMPRESA = :ID_EMPRESA'#10 + + 'and P.ANO = :ANO'#10'and P.ID_TIPO_FACTURA = :ID_TIPO_GASTO'#10'group by' + + ' 1,2,3,4'#10'order by 1,6 desc'#10'rows 1 to :NTOP'#10#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ANO' + TableField = '' + SQLOrigin = 'ANO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'NUMFAC' + TableField = '' + SQLOrigin = 'NUMFAC' + end + item + DatasetField = 'PORCENTAJE' + TableField = '' + SQLOrigin = 'PORCENTAJE' + end + item + DatasetField = 'IMPORTE_TOTAL_ANO' + TableField = '' + SQLOrigin = 'IMPORTE_TOTAL_ANO' + end> + end> + Name = 'InformeListadoProveedoresMayorFacturacionResumenTipoGasto' + Fields = < + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL_ANO' + DataType = datCurrency + end + item + Name = 'NUMFAC' + DataType = datInteger + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> end> JoinDataTables = <> UnionDataTables = <> @@ -1731,63 +2308,51 @@ object RptFacturasProveedor: TRptFacturasProveedor PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 37800.807714351900000000 - ReportOptions.LastChange = 42236.476664687500000000 + ReportOptions.LastChange = 43900.545331180550000000 ScriptLanguage = 'PascalScript' ScriptText.Strings = ( - 'procedure mContinuaOnBeforePrint(Sender: TfrxComponent);' + 'procedure Chart1OnBeforePrint(Sender: TfrxComponent);' 'begin' - ' if Engine.FinalPass then' - ' begin' - ' if ( = ) then' - ' begin ' - ' mContinua.Visible := False;' - ' end ' - ' else' - ' begin ' - ' mContinua.Visible := True;' - ' end ' - ' end; ' - 'end;' - '' - 'procedure Memo11OnBeforePrint(Sender: TfrxComponent);' - 'var' + ' if ( <> 0) then' + ' begin ' - ' ACadena : String; ' + - ' ' - 'begin' - - ' ACadena := ; ' - ' if Pos('#39'N'#186' de cuenta: '#39', ACadena) > 0 then' - ' begin' - ' Delete(ACadena, 1, 14);' - - ' Memo11.Lines.Text := '#39' '#39' + ACadena; ' + - ' ' + ' TLineSeries(Chart1.Series[0]).Title := '#39'Total facturado '#39' +' + + ' VarToStr();' ' end;' + ' ' + ' if ( > 0) then' + ' begin ' + + ' TLineSeries(Chart1.Series[1]).Title := '#39'Total facturado '#39' +' + + ' VarToStr();' + ' end' + ' else' + ' begin ' + ' Chart1.Series[1].Active := False;' + ' end; ' 'end;' '' - 'procedure Memo10OnBeforePrint(Sender: TfrxComponent);' + 'procedure Memo16OnBeforePrint(Sender: TfrxComponent);' 'var' - - ' ACadena : String; ' + - ' ' + ' Valor:Double; ' 'begin' - ' ACadena := ; ' - ' if Pos('#39'N'#186' de cuenta: '#39', ACadena) > 0 then' - ' begin' - ' Delete(ACadena, 1, 14);' + ' Valor := SUM() * 100; ' - ' Memo10.Lines.Text := '#39' '#39' + ACadena; ' + - ' ' - ' end;' + ' if (SUM()' + + ' = 0) then' + ' Valor := 100 - Valor ' + ' else' + + ' Valor := 100 - (Valor/SUM()); ' + '' + ' memo16.lines.add(FormatFloat('#39'#,##0.00 %'#39',Valor));' 'end;' '' 'begin' - '' - 'end.') + 'end. ') ShowProgress = False StoreInDFM = False OnStartReport = 'frxReportOnStartReport' @@ -1879,6 +2444,15 @@ object RptFacturasProveedor: TRptFacturasProveedor item Name = 'IMPORTE_TOTAL' DataType = datCurrency + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + end + item + Name = 'GASTO_FACTURA' + DataType = datString + Size = 2000 end> Params = <> LogChanges = False @@ -1986,6 +2560,15 @@ object RptFacturasProveedor: TRptFacturasProveedor Name = 'DATOS_BANCARIOS' DataType = datString Size = 255 + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + end + item + Name = 'GASTO_FACTURA' + DataType = datString + Size = 2000 end> Params = <> LogChanges = False @@ -2088,10 +2671,18 @@ object RptFacturasProveedor: TRptFacturasProveedor DataType = datString Size = 20 end + item + Name = 'ANO1' + DataType = datSmallInt + end item Name = 'IMPORTE_TOTAL' DataType = datCurrency end + item + Name = 'ANO2' + DataType = datSmallInt + end item Name = 'IMPORTE_TOTAL1' DataType = datCurrency @@ -2254,14 +2845,12 @@ object RptFacturasProveedor: TRptFacturasProveedor CloseDataSource = False DataSource = DADSInformeListadoProveedoresMayorFacturacionResumen BCDToCurrency = False - Left = 312 - Top = 432 + Left = 584 + Top = 408 end object DADSInformeListadoProveedoresMayorFacturacionResumen: TDADataSource - DataSet = tbl_InformeListadoProveedoresMayorFacturacionResumen.Dataset - DataTable = tbl_InformeListadoProveedoresMayorFacturacionResumen - Left = 312 - Top = 488 + Left = 576 + Top = 464 end object tbl_InformeListadoProveedoresMayorFacturacionResumen: TDAMemDataTable RemoteUpdatesOptions = [] @@ -2310,7 +2899,6 @@ object RptFacturasProveedor: TRptFacturasProveedor Name = 'NTOP' Value = '5' end> - MasterMappingMode = mmDataRequest LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False @@ -2318,22 +2906,20 @@ object RptFacturasProveedor: TRptFacturasProveedor LocalDataStreamer = Bin2DataStreamer LogicalName = 'InformeListadoProveedoresMayorFacturacionResumen' IndexDefs = <> - Left = 312 - Top = 544 + Left = 584 + Top = 528 end object frxDBInformeListadoProveedoresMayorDescuentoResumen: TfrxDBDataset UserName = 'frxDBInformeListadoProveedoresMayorDescuentoResumen' CloseDataSource = False DataSource = DADSInformeListadoProveedoresMayorDescuentoResumen BCDToCurrency = False - Left = 616 - Top = 432 + Left = 800 + Top = 408 end object DADSInformeListadoProveedoresMayorDescuentoResumen: TDADataSource - DataSet = tbl_InformeListadoProveedoresMayorDescuentoResumen.Dataset - DataTable = tbl_InformeListadoProveedoresMayorDescuentoResumen - Left = 616 - Top = 488 + Left = 800 + Top = 464 end object tbl_InformeListadoProveedoresMayorDescuentoResumen: TDAMemDataTable RemoteUpdatesOptions = [] @@ -2371,7 +2957,6 @@ object RptFacturasProveedor: TRptFacturasProveedor Params = < item Name = 'ID_EMPRESA' - DataType = datInteger Value = '' end item @@ -2382,7 +2967,6 @@ object RptFacturasProveedor: TRptFacturasProveedor Name = 'NTOP' Value = '' end> - MasterMappingMode = mmDataRequest LogChanges = False StreamingOptions = [soDisableEventsWhileStreaming] RemoteFetchEnabled = False @@ -2390,7 +2974,328 @@ object RptFacturasProveedor: TRptFacturasProveedor LocalDataStreamer = Bin2DataStreamer LogicalName = 'InformeListadoProveedoresMayorDescuentoResumen' IndexDefs = <> - Left = 616 - Top = 544 + Left = 800 + Top = 528 + end + object InformeListadoFacturasGrafCompMensualTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL1' + DataType = datCurrency + end + item + Name = 'DIFERENCIA' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturasGrafCompMensualTipoGasto' + IndexDefs = <> + Left = 304 + Top = 392 + end + object tbl_InformeListadoFacturasGrafCompTrimestralTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL1' + DataType = datCurrency + end + item + Name = 'DIFERENCIA' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturasGrafCompTrimestralTipoGasto' + IndexDefs = <> + Left = 304 + Top = 448 + end + object tbl_InformeListadoFacturasGrafCompSemestralTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'VALOR' + DataType = datSmallInt + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 20 + end + item + Name = 'ANO1' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'ANO2' + DataType = datSmallInt + end + item + Name = 'IMPORTE_TOTAL1' + DataType = datCurrency + end + item + Name = 'DIFERENCIA' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA1' + Value = '' + end + item + Name = 'ANO1' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'ID_EMPRESA2' + Value = '' + end + item + Name = 'ANO2' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoFacturasGrafCompSemestralTipoGasto' + IndexDefs = <> + Left = 304 + Top = 504 + end + object tbl_InformeListadoProveedoresMayorFacturacionResumenTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_TOTAL_ANO' + DataType = datCurrency + end + item + Name = 'NUMFAC' + DataType = datInteger + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ANO' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'NTOP' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoProveedoresMayorFacturacionResumenTipoGasto' + IndexDefs = <> + Left = 584 + Top = 584 + end + object tbl_InformeListadoProveedoresMayorDescuentoResumenTipoGasto: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ANO' + DataType = datSmallInt + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end + item + Name = 'IMPORTE_COBRADO' + DataType = datCurrency + end + item + Name = 'PORCENTAJE' + DataType = datCurrency + end> + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ANO' + Value = '' + end + item + Name = 'ID_TIPO_GASTO' + Value = '' + end + item + Name = 'NTOP' + Value = '' + end> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'InformeListadoProveedoresMayorDescuentoResumenTipoGasto' + IndexDefs = <> + Left = 800 + Top = 600 end end diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas index dbe91d4f..3738ed5f 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas @@ -9,7 +9,9 @@ uses frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, uDAInterfaces, uDADataStreamer, IBCustomDataSet, IBQuery, IBDatabase, uDAMemDataTable, FactuGES_Intf, frxExportPDF, uDABin2DataStreamer, - uDARemoteDataAdapter; + uDARemoteDataAdapter, + {Used RODLs:} DataAbstract4_Intf + ; type TRptFacturasProveedor = class(TDataModule) @@ -48,6 +50,11 @@ type frxDBInformeListadoProveedoresMayorDescuentoResumen: TfrxDBDataset; DADSInformeListadoProveedoresMayorDescuentoResumen: TDADataSource; tbl_InformeListadoProveedoresMayorDescuentoResumen: TDAMemDataTable; + InformeListadoFacturasGrafCompMensualTipoGasto: TDAMemDataTable; + tbl_InformeListadoFacturasGrafCompTrimestralTipoGasto: TDAMemDataTable; + tbl_InformeListadoFacturasGrafCompSemestralTipoGasto: TDAMemDataTable; + tbl_InformeListadoProveedoresMayorFacturacionResumenTipoGasto: TDAMemDataTable; + tbl_InformeListadoProveedoresMayorDescuentoResumenTipoGasto: TDAMemDataTable; schReport: TDASchema; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); @@ -66,6 +73,9 @@ type FImporteMinimo: Currency; FDesglosado : Boolean; FTopN: Integer; + FListaIDTiposdeGasto: TIntegerArray; + FListaNombreTiposGasto: StringArray; + procedure RecuperarNombresProveedores; procedure PrepararTablaInforme(ATabla: TDAMemDataTable); procedure PrepararTablaResumenInforme(ATabla: IDADataset); @@ -74,10 +84,16 @@ type procedure IniciarParametrosInforme; function _GenerarInforme(const TipoInforme: String): Binary; public - function GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeFacturasGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; const TopN: Integer): Binary; + function GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; + const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; + const ListaNombreTiposGasto: StringArray): Binary; + + function GenerarInformeFacturasGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; const TopN: Integer; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; end; implementation @@ -86,7 +102,7 @@ implementation uses uSistemaFunc, StrUtils, uDataModuleServer, schFacturasProveedorClient_Intf, - uROServer, DataAbstract4_Intf, srvGestorInformes_Impl; + uROServer, srvGestorInformes_Impl; const rptInformeIVA = 'InformeIVAProveedores.fr3'; @@ -120,10 +136,12 @@ end; function TRptFacturasProveedor.GenerarInformeFacturasGrafComp( const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; - const ListaIDProveedores: TIntegerArray; const TopN: Integer): Binary; + const ListaIDProveedores: TIntegerArray; const TopN: Integer; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var AStream: TMemoryStream; AInforme: Variant; + ACadena: TStringList; begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" @@ -141,17 +159,57 @@ begin FListaIDProveedores.Free; FListaIDProveedores := ListaIDProveedores; - //Preparamos la tabla correspondiente y la abrimos para el informe - if (FIntervalo = CTE_MENSUAL) then - PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompMensual) - else if (FIntervalo = CTE_TRIMESTRAL) then - PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompTrimestral) - else - PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompSemestral); + if Assigned(FListaIDTiposdeGasto) then + FListaIDTiposdeGasto.Free; + FListaIDTiposdeGasto := ListaIDTiposGasto; - //Se preparan las tablas del listado resumen del informe - PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorFacturacionResumen); - PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorDescuentoResumen); + if Assigned(FListaNombreTiposGasto) then + FreeAndNil(FListaNombreTiposGasto); + FListaNombreTiposGasto := ListaNombreTiposGasto; + + //Cargamos las tablas con parametro ID_TIPO_GASTO + if (FListaIDTiposdeGasto.Count = 1) then + begin + //Preparamos la tabla correspondiente y la abrimos para el informe + if (FIntervalo = CTE_MENSUAL) then + PrepararTablaInformeGrafComp(InformeListadoFacturasGrafCompMensualTipoGasto) + else if (FIntervalo = CTE_TRIMESTRAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompTrimestralTipoGasto) + else + PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompSemestralTipoGasto); + + + //Se preparan las tablas del listado resumen del informe + PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorFacturacionResumenTipoGasto); + PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorDescuentoResumenTipoGasto); + DADSInformeListadoProveedoresMayorFacturacionResumen.DataTable := tbl_InformeListadoProveedoresMayorFacturacionResumenTipoGasto; + DADSInformeListadoProveedoresMayorDescuentoResumen.DataTable := tbl_InformeListadoProveedoresMayorDescuentoResumenTipoGasto; + + DASInformeListadoFacturasGrafComp.DataTable.ParamByName('ID_TIPO_GASTO').AsInteger := FListaIDTiposdeGasto.Items[0]; + DADSInformeListadoProveedoresMayorFacturacionResumen.DataTable.ParamByName('ID_TIPO_GASTO').AsInteger := FListaIDTiposdeGasto.Items[0]; + DADSInformeListadoProveedoresMayorDescuentoResumen.DataTable.ParamByName('ID_TIPO_GASTO').AsInteger := FListaIDTiposdeGasto.Items[0]; + end + //El el caso de todas las facturas llamaremos a las tablas sin filtro + else + begin + //Preparamos la tabla correspondiente y la abrimos para el informe + if (FIntervalo = CTE_MENSUAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompMensual) + else if (FIntervalo = CTE_TRIMESTRAL) then + PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompTrimestral) + else + PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompSemestral); + + //Se preparan las tablas del listado resumen del informe + PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorFacturacionResumen); + PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorDescuentoResumen); + DADSInformeListadoProveedoresMayorFacturacionResumen.DataTable := tbl_InformeListadoProveedoresMayorFacturacionResumen; + DADSInformeListadoProveedoresMayorDescuentoResumen.DataTable := tbl_InformeListadoProveedoresMayorDescuentoResumen; + end; + + DASInformeListadoFacturasGrafComp.DataTable.Active := True; + DADSInformeListadoProveedoresMayorFacturacionResumen.DataTable.Active := True; + DADSInformeListadoProveedoresMayorDescuentoResumen.DataTable.Active := True; Result := Binary.Create; @@ -162,21 +220,33 @@ begin frxReport.LoadFromFile(AInforme, True); // IniciarParametrosInforme; + ACadena := TStringList.Create; + ACadena.Add('Todos los tipos de gasto'); + if Assigned(FListaIDTiposdeGasto) and (FListaIDTiposdeGasto.Count > 0) then + begin + ACadena.Clear; + ACadena.Add('Solo tipo de gasto ' + FListaNombreTiposGasto.Items[0]); + end; + + frxReport.Variables.Variables['TextoParametros']:= ACadena.Text; frxReport.Variables.Variables['Ano1']:= Ano1; frxReport.Variables.Variables['Ano2']:= Ano2; + frxReport.PrepareReport(False); frxReport.PreviewPages.SaveToStream(Result); finally AStream.Free; FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + FreeAndNil(ACadena); end; end; function TRptFacturasProveedor.GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var ATipoInforme: String; AStream: TMemoryStream; @@ -201,6 +271,14 @@ begin FListaIDProveedores := ListaIDProveedores; + if Assigned(FListaIDTiposdeGasto) then + FListaIDTiposdeGasto.Free; + FListaIDTiposdeGasto := ListaIDTiposGasto; + + if Assigned(FListaNombreTiposGasto) then + FreeAndNil(FListaNombreTiposGasto); + FListaNombreTiposGasto := ListaNombreTiposGasto; + //Se van a prepara las tablas del informe if tbl_InformeListadoFacturas.Active then tbl_InformeListadoFacturas.Active := False; @@ -243,7 +321,8 @@ function TRptFacturasProveedor.GenerarInformeListadoFacturas( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio, FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var ATipoInforme: String; AStream: TMemoryStream; @@ -267,6 +346,14 @@ begin FListaIDProveedores.Free; FListaIDProveedores := ListaIDProveedores; + if Assigned(FListaIDTiposdeGasto) then + FListaIDTiposdeGasto.Free; + FListaIDTiposdeGasto := ListaIDTiposGasto; + + if Assigned(FListaNombreTiposGasto) then + FreeAndNil(FListaNombreTiposGasto); + FListaNombreTiposGasto := ListaNombreTiposGasto; + //Se prepara la tabla del listado general del informe if tbl_InformeListadoFacturas.Active then tbl_InformeListadoFacturas.Active := False; @@ -309,7 +396,9 @@ function TRptFacturasProveedor.GenerarInformeListadoFacturasPendientes( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio, FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; + const ListaNombreTiposGasto: StringArray ): Binary; var ATipoInforme: String; AStream: TMemoryStream; @@ -333,6 +422,13 @@ begin FListaIDProveedores.Free; FListaIDProveedores := ListaIDProveedores; + if Assigned(FListaIDTiposdeGasto) then + FListaIDTiposdeGasto.Free; + FListaIDTiposdeGasto := ListaIDTiposGasto; + + if Assigned(FListaNombreTiposGasto) then + FreeAndNil(FListaNombreTiposGasto); + FListaNombreTiposGasto := ListaNombreTiposGasto; //Se prepara la tabla del listado general del informe if tbl_InformeListadoFacturasPendientes.Active then @@ -419,6 +515,14 @@ begin ACadena := ACadena + ' (desglosados)' end; + if Assigned(FListaIDTiposdeGasto) and (FListaIDTiposdeGasto.Count > 0) then + begin + ACadena := 'Solo tipo de gasto ' + FListaNombreTiposGasto.Items[0]; + end + else begin + ACadena := 'Todos los tipos de gasto'; + end; + ATextos.Add(ACadena); ACadena := ''; @@ -495,6 +599,24 @@ begin end; end; + // Filtrar el informe por tipo de gasto + if Assigned(FListaIDTiposdeGasto) then + begin + with ATabla.DynamicWhere do + begin + for i := 0 to FListaIDTiposdeGasto.Count - 1 do + begin + + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID_TIPO_FACTURA), NewConstant(FListaIDTiposdeGasto.Items[i], datInteger), dboEqual); + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + end; + end; + // Filtrar el informe por importe minimo if (FImporteMinimo > 0) then begin @@ -511,6 +633,11 @@ begin end; procedure TRptFacturasProveedor.PrepararTablaInformeGrafComp(ATabla: TDAMemDataTable); +var + AWhereStr : String; + Condicion: TDAWhereExpression; + i: Integer; + begin if ATabla.Active then ATabla.Active := False; @@ -520,7 +647,6 @@ begin ATabla.ParamByName('ID_EMPRESA2').AsInteger := FIdEmpresa; ATabla.ParamByName('ANO1').AsVariant := FAno1; ATabla.ParamByName('ANO2').AsVariant := FAno2; - ATabla.Active := True; end; procedure TRptFacturasProveedor.PrepararTablaResumenInforme(ATabla: IDADataset); @@ -561,6 +687,17 @@ begin end; end; + // Filtrar el informe por tipo gasto + if Assigned(FListaIDTiposdeGasto) then + begin + for i := 0 to FListaIDTiposdeGasto.Count - 1 do + begin + if Length(AWhereStr) > 0 then + AWhereStr := AWhereStr + 'AND'; + AWhereStr := AWhereStr + ' (' + fld_FacturasProveedorID_TIPO_FACTURA + ' = ' + IntToStr(FListaIDTiposdeGasto.Items[i]) + ') '; + end; + end; + // Filtrar el informe por importe minimo if (FImporteMinimo > 0) then begin @@ -580,7 +717,6 @@ begin ATabla.ParamByName('ID_EMPRESA').AsInteger := FIdEmpresa; ATabla.ParamByName('ANO').AsVariant := FAno1; ATabla.ParamByName('NTOP').AsInteger := FTopN; - ATabla.Active := True; end; procedure TRptFacturasProveedor.RecuperarNombresProveedores; diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm index aa05046f..19be45a6 100644 --- a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -40,6 +40,41 @@ object srvFacturasProveedor: TsrvFacturasProveedor Size = 254 end> end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'TIPOS_FACTURA_PROVEEDOR' + Name = 'IBX' + SQL = + 'SELECT'#10' ID, DESCRIPCION'#10' FROM'#10' TIPOS_FACTURA_PROVEEDOR'#10' ' + + 'WHERE {Where}'#10' order by 2'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'TiposFacturaProveedor' + Fields = < + item + Name = 'ID' + DataType = datInteger + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 2000 + end> + end item Params = <> Statements = < @@ -203,6 +238,14 @@ object srvFacturasProveedor: TsrvFacturasProveedor item DatasetField = 'FACTURA_WEB' TableField = 'FACTURA_WEB' + end + item + DatasetField = 'ID_TIPO_FACTURA' + TableField = 'ID_TIPO_FACTURA' + end + item + DatasetField = 'GASTO_FACTURA' + TableField = 'GASTO_FACTURA' end> end> Name = 'FacturasProveedor' @@ -414,6 +457,15 @@ object srvFacturasProveedor: TsrvFacturasProveedor item Name = 'FACTURA_WEB' DataType = datSmallInt + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + end + item + Name = 'GASTO_FACTURA' + DataType = datString + Size = 2000 end> end item @@ -927,6 +979,11 @@ object srvFacturasProveedor: TsrvFacturasProveedor Name = 'FACTURA_WEB' DataType = datSmallInt Value = '' + end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + Value = '' end> Statements = < item @@ -942,16 +999,16 @@ object srvFacturasProveedor: TsrvFacturasProveedor 'A_ALTA, USUARIO, ID_FORMA_PAGO,'#10' RECARGO_EQUIVALENCIA, ID_TI' + 'PO_IVA, IMPORTE_NETO, IMPORTE_PORTE,'#10' DATOS_BANCARIOS, FECHA' + '_VENCIMIENTO, FECHA_RECEPCION,'#10' RETENCION, IMPORTE_RETENCION' + - ', ID_PEDIDO, FACTURA_WEB)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFER' + - 'ENCIA, :REFERENCIA_PROVEEDOR,'#10' :FECHA_FACTURA, :BASE_IMPONIB' + - 'LE, :DESCUENTO,'#10' :IMPORTE_DESCUENTO, :IVA, :IMPORTE_IVA, :RE' + - ', :IMPORTE_RE, '#10' :IMPORTE_TOTAL, :OBSERVACIONES, :ID_PROVEED' + - 'OR, :NIF_CIF, '#10' :NOMBRE, :CALLE, :POBLACION, :PROVINCIA, :CO' + - 'DIGO_POSTAL, '#10' CURRENT_TIMESTAMP, :USUARIO, :ID_FORMA_PAGO,'#10 + - ' :RECARGO_EQUIVALENCIA, :ID_TIPO_IVA, :IMPORTE_NETO, '#10' :' + - 'IMPORTE_PORTE, :DATOS_BANCARIOS, :FECHA_VENCIMIENTO, :FECHA_RECE' + - 'PCION,'#10' :RETENCION, :IMPORTE_RETENCION, :ID_PEDIDO, :FACTURA' + - '_WEB)'#10' '#10' '#10#10 + ', ID_PEDIDO, FACTURA_WEB, ID_TIPO_FACTURA)'#10' VALUES'#10' (:ID, :I' + + 'D_EMPRESA, :REFERENCIA, :REFERENCIA_PROVEEDOR,'#10' :FECHA_FACTU' + + 'RA, :BASE_IMPONIBLE, :DESCUENTO,'#10' :IMPORTE_DESCUENTO, :IVA, ' + + ':IMPORTE_IVA, :RE, :IMPORTE_RE, '#10' :IMPORTE_TOTAL, :OBSERVACI' + + 'ONES, :ID_PROVEEDOR, :NIF_CIF, '#10' :NOMBRE, :CALLE, :POBLACION' + + ', :PROVINCIA, :CODIGO_POSTAL, '#10' CURRENT_TIMESTAMP, :USUARIO,' + + ' :ID_FORMA_PAGO,'#10' :RECARGO_EQUIVALENCIA, :ID_TIPO_IVA, :IMPO' + + 'RTE_NETO, '#10' :IMPORTE_PORTE, :DATOS_BANCARIOS, :FECHA_VENCIMI' + + 'ENTO, :FECHA_RECEPCION,'#10' :RETENCION, :IMPORTE_RETENCION, :ID' + + '_PEDIDO, :FACTURA_WEB, :ID_TIPO_FACTURA)'#10' '#10' '#10#10 StatementType = stSQL ColumnMappings = <> end> @@ -1158,6 +1215,11 @@ object srvFacturasProveedor: TsrvFacturasProveedor DataType = datSmallInt Value = '' end + item + Name = 'ID_TIPO_FACTURA' + DataType = datInteger + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1186,8 +1248,8 @@ object srvFacturasProveedor: TsrvFacturasProveedor ':DATOS_BANCARIOS,'#10' FECHA_VENCIMIENTO = :FECHA_VENCIMIENTO,'#10' ' + ' FECHA_RECEPCION = :FECHA_RECEPCION,'#10' RETENCION = :RETENCION' + ','#10' IMPORTE_RETENCION = :IMPORTE_RETENCION,'#10' ID_PEDIDO = :I' + - 'D_PEDIDO,'#10' FACTURA_WEB = :FACTURA_WEB'#10' WHERE'#10' (ID = :OLD_' + - 'ID)'#10 + 'D_PEDIDO,'#10' FACTURA_WEB = :FACTURA_WEB,'#10' ID_TIPO_FACTURA = ' + + ':ID_TIPO_FACTURA'#10' WHERE'#10' (ID = :OLD_ID)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk index c37ff34c..636d39bd 100644 --- a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk @@ -71,6 +71,7 @@ contains uViewPedidosFacturaProveedor in 'uViewPedidosFacturaProveedor.pas' {frViewPedidosFacturaProveedor: TFrame}, uEditorElegirDomiciliacion in 'uEditorElegirDomiciliacion.pas' {fEditorElegirDomiciliacion: TfEditorFacturaProveedor}, uViewTotalesVariosIVA in 'uViewTotalesVariosIVA.pas' {frViewTotalesVariosIVA: TfEditorFacturaProveedor}, - uEditorElegirFechaVencimiento in 'uEditorElegirFechaVencimiento.pas' {fEditorElegirFechaVencimiento: TfEditorElegirFechaVencimiento}; + uEditorElegirFechaVencimiento in 'uEditorElegirFechaVencimiento.pas' {fEditorElegirFechaVencimiento: TfEditorElegirFechaVencimiento}, + uEditorElegirTipoGasto in 'uEditorElegirTipoGasto.pas' {fEditorTipoGasto: TfEditorTipoGasto}; end. diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj index 1906ede3..aca0a8ef 100644 --- a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj @@ -41,6 +41,14 @@ Package FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration FacturasProveedor_view.dpk @@ -84,7 +92,14 @@
fEditorElegirDomiciliacion
TfEditorFacturaProveedor
- + +
fEditorElegirFechaVencimiento
+ TfEditorElegirFechaVencimiento +
+ +
fEditorTipoGasto
+ TfEditorElegirFechaVencimiento +
fEditorFacturaProveedor
TfEditorFacturaProveedor diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res index 1641339f..8b251f31 100644 Binary files a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res and b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res differ diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.dfm index 7e17cb3e..fe6afa94 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.dfm @@ -55,7 +55,6 @@ object fEditorElegirFechaVencimiento: TfEditorElegirFechaVencimiento Height = 41 Align = alBottom TabOrder = 0 - ExplicitWidth = 500 DesignSize = ( 565 41) @@ -68,7 +67,6 @@ object fEditorElegirFechaVencimiento: TfEditorElegirFechaVencimiento Caption = 'Aceptar' ModalResult = 1 TabOrder = 0 - ExplicitLeft = 336 end object bCancelar: TButton Left = 482 @@ -79,7 +77,6 @@ object fEditorElegirFechaVencimiento: TfEditorElegirFechaVencimiento Caption = 'Cancelar' ModalResult = 2 TabOrder = 1 - ExplicitLeft = 417 end end object cbFechaVencimiento: TcxDateEdit diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.pas index d2898859..a7d970ab 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirFechaVencimiento.pas @@ -31,11 +31,11 @@ type implementation {$R *.dfm} -uses uFactuGES_App; +uses uFactuGES_App, DateUtils; procedure TfEditorElegirFechaVencimiento.FormShow(Sender: TObject); begin -// + cbFechaVencimiento.EditValue := DateOf(Date); end; function TfEditorElegirFechaVencimiento.GetFechaVencimiento: datetime; diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm index 5a6e420f..15a9fa98 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm @@ -77,12 +77,18 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor Left = 427 Visible = True ExplicitLeft = 427 - ExplicitWidth = 285 + ExplicitWidth = 382 object TBXItem41: TTBXItem Action = actDomiciliacion + DisplayMode = nbdmImageAndText end object TBXItem42: TTBXItem Action = actVencimiento + DisplayMode = nbdmImageAndText + end + object TBXItem43: TTBXItem + Action = actAsignarTipoGasto + DisplayMode = nbdmImageAndText end object TBXSeparatorItem17: TTBXSeparatorItem end @@ -294,6 +300,11 @@ inherited fEditorFacturasProveedor: TfEditorFacturasProveedor OnExecute = actVencimientoExecute OnUpdate = actVencimientoUpdate end + object actAsignarTipoGasto: TAction + Caption = 'Asignar tipo gasto' + OnExecute = actAsignarTipoGastoExecute + OnUpdate = actAsignarTipoGastoUpdate + end end inherited SmallImages: TPngImageList [5] PngImages = < diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas index d78fba86..f225fc6c 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas @@ -40,6 +40,8 @@ type JsListaFacturasNoModificables: TJSDialog; actVencimiento: TAction; TBXItem42: TTBXItem; + actAsignarTipoGasto: TAction; + TBXItem43: TTBXItem; procedure FormShow(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actNuevaFacturaExecute(Sender: TObject); @@ -50,6 +52,8 @@ type procedure actDomiciliacionUpdate(Sender: TObject); procedure actVencimientoExecute(Sender: TObject); procedure actVencimientoUpdate(Sender: TObject); + procedure actAsignarTipoGastoExecute(Sender: TObject); + procedure actAsignarTipoGastoUpdate(Sender: TObject); private FFacturas: IBizFacturaProveedor; @@ -90,6 +94,41 @@ uses { *************************** TfEditorFacturasProveedor *************************** } +procedure TfEditorFacturasProveedor.actAsignarTipoGastoExecute(Sender: TObject); +var + AFacturas: IBizFacturaProveedor; + AListaFacturasNoModificadas: TStringList; + i: integer; + +begin + inherited; + + ViewGrid.SaveGridStatus; + try + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords); + AFacturas := (Controller as IFacturasProveedorController).ExtraerSeleccionados(Facturas) as IBizFacturaProveedor; + finally + ViewGrid.RestoreGridStatus; + end; + + Controller.AsignarTipoGasto(AFacturas); + + if (AFacturas.DataTable.RecordCount > 0) then + RefrescarInterno; +end; + +procedure TfEditorFacturasProveedor.actAsignarTipoGastoUpdate(Sender: TObject); +begin + inherited; + + if HayDatos and Assigned(ViewGrid) then + (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes) + and ViewGrid.esSeleccionCeldaDatos + and (ViewGrid.NumSeleccionados > 0) + else + (Sender as TAction).Enabled := False; +end; + procedure TfEditorFacturasProveedor.actDomiciliacionExecute(Sender: TObject); var AFacturas: IBizFacturaProveedor; @@ -234,7 +273,9 @@ begin JsListaFacturasNoModificables.Execute; FreeAndNil(AListaFacturasNoModificadas); - RefrescarInterno; + + if (AFacturas.DataTable.RecordCount > 0) then + RefrescarInterno; end; procedure TfEditorFacturasProveedor.actVencimientoUpdate(Sender: TObject); diff --git a/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas index 9d87a06f..64534358 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas @@ -10,10 +10,11 @@ implementation uses uEditorRegistryUtils, uEditorFacturasProveedor, uEditorFacturaProveedor, uEditorElegirDomiciliacion, uEditorElegirFechaVencimiento, uEditorElegirArticulosFacturaProveedor, - uEditorFacturasProveedorReport; + uEditorFacturasProveedorReport, uEditorElegirTipoGasto; procedure RegisterViews; begin + EditorRegistry.RegisterClass(TfEditorElegirTipoGasto, 'EditorElegirTipoGasto'); EditorRegistry.RegisterClass(TfEditorElegirFechaVencimiento, 'EditorElegirFechaVencimiento'); EditorRegistry.RegisterClass(TfEditorElegirDomiciliacion, 'EditorElegirDomiciliacion'); EditorRegistry.RegisterClass(TfEditorFacturasProveedor, 'EditorFacturasProveedor'); @@ -24,6 +25,8 @@ end; procedure UnregisterViews; begin + EditorRegistry.UnRegisterClass(TfEditorElegirTipoGasto); + EditorRegistry.UnRegisterClass(TfEditorElegirFechaVencimiento); EditorRegistry.UnRegisterClass(TfEditorElegirDomiciliacion); EditorRegistry.UnRegisterClass(TfEditorFacturasProveedor); EditorRegistry.UnRegisterClass(TfEditorFacturaProveedor); diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm index 937a5a22..16edbe84 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm @@ -1,6 +1,6 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor - Width = 451 - Height = 304 + Width = 906 + Height = 514 Align = alClient OnCreate = CustomViewCreate OnDestroy = CustomViewDestroy @@ -9,17 +9,19 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor object dxLayoutControl1: TdxLayoutControl Left = 0 Top = 0 - Width = 451 - Height = 304 + Width = 906 + Height = 514 Align = alClient ParentBackground = True TabOrder = 0 TabStop = False AutoContentSizes = [acsWidth, acsHeight] LookAndFeel = dxLayoutOfficeLookAndFeel1 + ExplicitWidth = 451 + ExplicitHeight = 304 DesignSize = ( - 451 - 304) + 906 + 514) object eReferencia: TcxDBTextEdit Left = 136 Top = 30 @@ -47,7 +49,7 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor end object edtFecha: TcxDBDateEdit Left = 136 - Top = 111 + Top = 138 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_FACTURA' DataBinding.DataSource = DADataSource @@ -67,12 +69,12 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 3 + TabOrder = 4 Width = 159 end object memObservaciones: TcxDBMemo Left = 22 - Top = 296 + Top = 323 Anchors = [akLeft, akTop, akRight, akBottom] DataBinding.DataField = 'OBSERVACIONES' DataBinding.DataSource = DADataSource @@ -88,13 +90,13 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 9 + TabOrder = 10 Height = 159 Width = 301 end object cbFormaPago: TcxDBLookupComboBox Left = 136 - Top = 189 + Top = 216 DataBinding.DataField = 'ID_FORMA_PAGO' DataBinding.DataSource = DADataSource Properties.ImmediatePost = True @@ -125,16 +127,16 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 5 + TabOrder = 6 Width = 78 end object bFormasPago: TButton - Left = 162 - Top = 189 + Left = 345 + Top = 216 Width = 132 Height = 23 Caption = 'Ver las formas de pago...' - TabOrder = 6 + TabOrder = 7 OnClick = bFormasPagoClick end object eReferenciaProveedor: TcxDBTextEdit @@ -162,7 +164,7 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor Width = 158 end inline frViewProveedorFactura: TfrViewDatosYSeleccionProveedor - Left = 322 + Left = 505 Top = 30 Width = 350 Height = 202 @@ -172,9 +174,9 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 10 + TabOrder = 11 ReadOnly = False - ExplicitLeft = 322 + ExplicitLeft = 505 ExplicitTop = 30 inherited dxLayoutControl1: TdxLayoutControl inherited edtlNombre: TcxDBTextEdit @@ -216,22 +218,22 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor Width = 327 end inherited edtCodigoPostal: TcxDBTextEdit - Left = 203 + Left = 287 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 203 + ExplicitLeft = 287 end inherited Button3: TBitBtn - Left = 87 - ExplicitLeft = 87 + Left = 171 + ExplicitLeft = 171 end end end object cbCuentaBancaria: TcxDBComboBox Left = 136 - Top = 245 + Top = 272 DataBinding.DataField = 'DATOS_BANCARIOS' DataBinding.DataSource = DADataSource Properties.DropDownListStyle = lsFixedList @@ -248,12 +250,12 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - TabOrder = 8 + TabOrder = 9 Width = 165 end object edtFechaVencimiento: TcxDBDateEdit Left = 136 - Top = 218 + Top = 245 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_VENCIMIENTO' DataBinding.DataSource = DADataSource @@ -273,12 +275,12 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 7 + TabOrder = 8 Width = 251 end object edtFechaRecepcion: TcxDBDateEdit Left = 136 - Top = 138 + Top = 165 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_RECEPCION' DataBinding.DataSource = DADataSource @@ -298,12 +300,12 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 4 + TabOrder = 5 Width = 158 end object eFacturaWeb: TcxDBCheckBox Left = 22 - Top = 84 + Top = 111 Caption = 'Factura WEB' DataBinding.DataField = 'FACTURA_WEB' DataBinding.DataSource = DADataSource @@ -318,10 +320,43 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 2 + TabOrder = 3 Transparent = True Width = 312 end + object cbTipoFactura: TcxDBLookupComboBox + Left = 136 + Top = 84 + DataBinding.DataField = 'ID_TIPO_FACTURA' + DataBinding.DataSource = DADataSource + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'DESCRIPCION' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.ListOptions.SyncMode = True + Properties.ListSource = dsTiposFactura + Properties.OnEditValueChanged = cbFormaPagoPropertiesEditValueChanged + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 307 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -347,6 +382,11 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor Control = eReferenciaProveedor ControlOptions.ShowBorder = False end + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'Tipo gasto:' + Control = cbTipoFactura + ControlOptions.ShowBorder = False + end object dxLayoutControl1Item9: TdxLayoutItem ShowCaption = False Control = eFacturaWeb @@ -447,4 +487,8 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor Left = 64 Top = 24 end + object dsTiposFactura: TDADataSource + Left = 64 + Top = 56 + end end diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas index ef117841..1d34d779 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas @@ -59,6 +59,9 @@ type edtFechaRecepcion: TcxDBDateEdit; dxLayoutControl1Item9: TdxLayoutItem; eFacturaWeb: TcxDBCheckBox; + dxLayoutControl1Item11: TdxLayoutItem; + cbTipoFactura: TcxDBLookupComboBox; + dsTiposFactura: TDADataSource; procedure bFormasPagoClick(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure CustomViewCreate(Sender: TObject); @@ -71,6 +74,7 @@ type FController : IFacturasProveedorController; FFormasPago : IBizFormaPago; FFormasPagoController : IFormasPagoController; + FTiposFacturaProveedor : IBizTiposFacturaProveedor; function GetFactura: IBizFacturaProveedor; procedure SetFactura(const Value: IBizFacturaProveedor); function GetController : IFacturasProveedorController; @@ -115,6 +119,7 @@ procedure TfrViewFacturaProveedor.CustomViewCreate(Sender: TObject); begin inherited; FFormasPago := Nil; + FTiposFacturaProveedor := Nil; FFormasPagoController := TFormasPagoController.Create; frViewProveedorFactura.MsgElegirProveedor := 'Elija el proveedor al que se le realizar la factura.'; end; @@ -123,6 +128,7 @@ procedure TfrViewFacturaProveedor.CustomViewDestroy(Sender: TObject); begin inherited; FFormasPago := Nil; + FTiposFacturaProveedor := Nil; FFormasPagoController := NIL; end; @@ -240,6 +246,12 @@ begin else ledtFechaVencimiento.Enabled := False; + + FTiposFacturaProveedor := FController.darTiposFacturaProveedor; + dsTiposFactura.DataTable := FTiposFacturaProveedor.DataTable; + dsTiposFactura.DataTable.Active := True; + + if FFactura.TIPO = CTE_TIPO_ABONO then begin dxLayoutControl1Item2.Caption := 'Fecha del abono:'; diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm index 11ce7629..54ad5d65 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm @@ -170,6 +170,10 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor Caption = 'Ref. Pedido' DataBinding.FieldName = 'REFERENCIA_PEDIDO' end + object cxGridViewGASTO_FACTURA: TcxGridDBColumn + Caption = 'Tipo gasto' + DataBinding.FieldName = 'GASTO_FACTURA' + end end inherited cxGridLevel: TcxGridLevel Caption = 'Todas' @@ -209,34 +213,30 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor Width = 229 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 179 + Left = 224 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 179 + ExplicitLeft = 224 ExplicitWidth = 188 Width = 188 end inherited eLista: TcxComboBox - Left = 304 + Left = 378 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 304 - ExplicitWidth = 215 - Width = 215 + ExplicitLeft = 378 end inherited eLista2: TcxComboBox - Left = 438 + Left = 474 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 438 - ExplicitWidth = 207 - Width = 207 + ExplicitLeft = 474 end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel @@ -270,6 +270,11 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor object TBXItem2: TTBXItem Action = actProvincia end + object TBXSeparatorItem3: TTBXSeparatorItem + end + object TBXItem4: TTBXItem + Action = actTipoGasto + end end end end @@ -310,6 +315,11 @@ inherited frViewFacturasProveedor: TfrViewFacturasProveedor OnExecute = actProvinciaExecute OnUpdate = actProvinciaUpdate end + object actTipoGasto: TAction + Caption = 'Tipo de gasto' + OnExecute = actTipoGastoExecute + OnUpdate = actTipoGastoUpdate + end end inherited GridPNGImageList: TPngImageList PngImages = < diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas index 600e86c6..288a751e 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas @@ -59,6 +59,10 @@ type cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn; cxGridViewFECHA_RECEPCION: TcxGridDBColumn; cxGridViewFACTURA_WEB: TcxGridDBColumn; + cxGridViewGASTO_FACTURA: TcxGridDBColumn; + TBXItem4: TTBXItem; + TBXSeparatorItem3: TTBXSeparatorItem; + actTipoGasto: TAction; procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); @@ -70,6 +74,8 @@ type procedure cxGridViewDataControllerCompare( ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2, AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer); + procedure actTipoGastoExecute(Sender: TObject); + procedure actTipoGastoUpdate(Sender: TObject); private //Filtros relativos a la vista @@ -136,6 +142,28 @@ begin (Sender as TAction).Checked := not (cxGridViewPROVINCIA.GroupIndex < 0); end; +procedure TfrViewFacturasProveedor.actTipoGastoExecute(Sender: TObject); +begin + inherited; + + if (cxGridViewGASTO_FACTURA.GroupIndex < 0) then + begin + cxGridViewGASTO_FACTURA.GroupIndex := cxGridView.GroupedColumnCount; + cxGridViewGASTO_FACTURA.Visible := False; + end + else + begin + cxGridViewGASTO_FACTURA.GroupIndex := -1; + cxGridViewGASTO_FACTURA.Visible := True; + end; +end; + +procedure TfrViewFacturasProveedor.actTipoGastoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Checked := not (cxGridViewGASTO_FACTURA.GroupIndex < 0); +end; + procedure TfrViewFacturasProveedor.AnadirFiltroFechas; var Columna: TcxGridDBColumn; diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBeneficiosReportGrafComp.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBeneficiosReportGrafComp.pas index 017cba4b..00d142b5 100644 --- a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBeneficiosReportGrafComp.pas +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeBeneficiosReportGrafComp.pas @@ -3,7 +3,8 @@ unit uIEditorInformeBeneficiosReportGrafComp; interface uses - FactuGES_Intf, uIEditorInformeBase; + FactuGES_Intf, uIEditorInformeBase, + DataAbstract4_Intf; type IEditorInformeBeneficiosReportGrafComp = interface(IEditorInformeBase) @@ -13,11 +14,16 @@ type function GetAno1: Variant; function GetAno2: Variant; function GetSerie: Variant; + function GetListaIDTiposGasto: TIntegerArray; + function GetListaNombreTiposGasto: StringArray; property Intervalo: Variant read GetIntervalo; property Ano1: Variant read GetAno1; property Ano2: Variant read GetAno2; property Serie: Variant read GetSerie; + property ListaIDTiposGasto: TIntegerArray read GetListaIDTiposGasto; + property ListaNombreTiposGasto: StringArray read GetListaNombreTiposGasto; + end; diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas index e9b2fd65..c7d804de 100644 --- a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorPendientesReport.pas @@ -3,7 +3,8 @@ unit uIEditorInformeFacturasProveedorPendientesReport; interface uses - FactuGES_Intf, uIEditorInformeBase; + FactuGES_Intf, uIEditorInformeBase, + DataAbstract4_Intf; type IEditorInformeFacturasProveedorPendientesReport = interface(IEditorInformeBase) @@ -15,6 +16,9 @@ type function GetListaIDProveedores: TIntegerArray; function GetDesglosadoProveedor: Boolean; function GetImporteMinimo: Currency; + function GetListaIDTiposGasto: TIntegerArray; + function GetListaNombreTiposGasto: StringArray; + property FechaInicio: Variant read GetFechaInicio; property FechaFin: Variant read GetFechaFin; property FechaVenInicio: Variant read GetFechaVenInicio; @@ -22,6 +26,8 @@ type property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; property ImporteMinimo: Currency read getImporteMinimo; + property ListaIDTiposGasto: TIntegerArray read GetListaIDTiposGasto; + property ListaNombreTiposGasto: StringArray read GetListaNombreTiposGasto; end; diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas index 5ae334fa..59922a30 100644 --- a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReport.pas @@ -3,9 +3,10 @@ unit uIEditorInformeFacturasProveedorReport; interface uses - FactuGES_Intf, uIEditorInformeBase; + FactuGES_Intf, uIEditorInformeBase, + DataAbstract4_Intf; -type +type IEditorInformeFacturasProveedorReport = interface(IEditorInformeBase) ['{0E60C309-336C-455D-825B-7E4892A6CBC5}'] function GetFechaFin: Variant; @@ -15,6 +16,9 @@ type function GetListaIDProveedores: TIntegerArray; function GetDesglosadoProveedor: Boolean; function GetImporteMinimo: Currency; + function GetListaIDTiposGasto: TIntegerArray; + function GetListaNombreTiposGasto: StringArray; + property FechaInicio: Variant read GetFechaInicio; property FechaFin: Variant read GetFechaFin; property FechaVenInicio: Variant read GetFechaVenInicio; @@ -22,6 +26,8 @@ type property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; property ImporteMinimo: Currency read getImporteMinimo; + property ListaIDTiposGasto: TIntegerArray read GetListaIDTiposGasto; + property ListaNombreTiposGasto: StringArray read GetListaNombreTiposGasto; end; diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas index 07d360b2..ca450ef8 100644 --- a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas @@ -3,7 +3,8 @@ unit uIEditorInformeFacturasProveedorReportGrafComp; interface uses - FactuGES_Intf, uIEditorInformeBase; + FactuGES_Intf, uIEditorInformeBase, + DataAbstract4_Intf; type IEditorInformeFacturasProveedorReportGrafComp = interface(IEditorInformeBase) @@ -15,6 +16,9 @@ type function GetNTop: Variant; function GetListaIDProveedores: TIntegerArray; + function GetListaIDTiposGasto: TIntegerArray; + function GetListaNombreTiposGasto: StringArray; + property Intervalo: Variant read GetIntervalo; property Ano1: Variant read GetAno1; @@ -22,6 +26,8 @@ type property NTop: Variant read GetNTop; property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; + property ListaIDTiposGasto: TIntegerArray read GetListaIDTiposGasto; + property ListaNombreTiposGasto: StringArray read GetListaNombreTiposGasto; end; diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas index c7702af0..6befb599 100644 --- a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeIVAProveedoresReport.pas @@ -3,7 +3,8 @@ unit uIEditorInformeIVAProveedoresReport; interface uses - FactuGES_Intf, uIEditorInformeBase; + FactuGES_Intf, uIEditorInformeBase, + DataAbstract4_Intf; type IEditorInformeIVAProveedoresReport = interface(IEditorInformeBase) @@ -13,11 +14,16 @@ type function GetListaIDProveedores: TIntegerArray; function GetDesglosadoProveedor: Boolean; function GetImporteMinimo: Currency; + function GetListaIDTiposGasto: TIntegerArray; + function GetListaNombreTiposGasto: StringArray; + property FechaInicio: Variant read GetFechaInicio; property FechaFin: Variant read GetFechaFin; property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; property DesglosadoProveedor: Boolean read GetDesglosadoProveedor; property ImporteMinimo: Currency read getImporteMinimo; + property ListaIDTiposGasto: TIntegerArray read GetListaIDTiposGasto; + property ListaNombreTiposGasto: StringArray read GetListaNombreTiposGasto; end; diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas index 9898ebf9..96dae763 100644 --- a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas +++ b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas @@ -324,7 +324,7 @@ begin AEditor.Title := 'Informe comparativo de beneficios'; AStream := FDataModule.GenerarInformeBeneficiosGrafComp(AppFactuGES.EmpresaActiva.ID, - AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.Serie); + AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.Serie, AEditor.ListaIDTiposGasto, AEditor.ListaNombreTiposGasto); AEditor.LoadFromStream(AStream); AEditor.Preview; @@ -372,7 +372,7 @@ begin AEditor.Title := 'Informe comparativo de facturacin de proveedores'; AStream := FDataModule.GenerarInformeFacturasProvGrafComp(AppFactuGES.EmpresaActiva.ID, - AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDProveedores, AEditor.NTop); + AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDProveedores, AEditor.NTop, AEditor.ListaIDTiposGasto, AEditor.ListaNombreTiposGasto); AEditor.LoadFromStream(AStream); AEditor.Preview; @@ -443,7 +443,7 @@ begin AStream := FDataModule.GenerarInformeIVAProveedores(AppFactuGES.EmpresaActiva.ID, AEditor.FechaInicio, AEditor.FechaFin, AEditor.ListaIDProveedores, AEditor.DesglosadoProveedor, - AEditor.ImporteMinimo); + AEditor.ImporteMinimo, AEditor.ListaIDTiposGasto, AEditor.ListaNombreTiposGasto); AEditor.LoadFromStream(AStream); AEditor.Preview; finally @@ -514,7 +514,7 @@ begin AEditor.Title := 'Listado de facturas de proveedor'; AStream := FDataModule.GenerarInformeListadoFacturasProv(AppFactuGES.EmpresaActiva.ID, AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDProveedores, - AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo, AEditor.ListaIDTiposGasto, AEditor.ListaNombreTiposGasto); AEditor.LoadFromStream(AStream); AEditor.Preview; finally @@ -537,7 +537,7 @@ begin AEditor.Title := 'Listado de facturas de proveedor pendientes'; AStream := FDataModule.GenerarInformeListadoFacturasProvPendientes(AppFactuGES.EmpresaActiva.ID, AEditor.FechaInicio, AEditor.FechaFin, AEditor.FechaVenInicio, AEditor.FechaVenFin, AEditor.ListaIDProveedores, - AEditor.DesglosadoProveedor, AEditor.ImporteMinimo); + AEditor.DesglosadoProveedor, AEditor.ImporteMinimo, AEditor.ListaIDTiposGasto, AEditor.ListaNombreTiposGasto); AEditor.LoadFromStream(AStream); AEditor.Preview; finally diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas index 98734f0d..e231e293 100644 --- a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas +++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas @@ -6,7 +6,7 @@ uses SysUtils, Classes, DB, uDADataTable, uDABINAdapter, uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, uRORemoteService, uROClient, uROBinMessage, - + {Used RODLs:} DataAbstract4_Intf, uIDataModuleGestorInformes, uDADesigntimeCall, uDataModuleBase, uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, uDARemoteDataAdapter, uIntegerListUtils, FactuGES_Intf; @@ -33,7 +33,7 @@ type function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; Const NTop: Variant): Binary; function DarListaAnosFacturasCli: TStringList; - function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary; + function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function GenerarInformeIVAComparativo(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant): Binary; //MODULO RECIBOS DE CLIENTE @@ -44,10 +44,12 @@ type function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; //MODULO FACTURAS DE PROVEEDOR - function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; Const NTop: Variant): Binary; + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; + const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; Const NTop: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function DarListaAnosFacturasProv: TStringList; //MODULO RECIBOS DE CLIENTE @@ -63,7 +65,7 @@ implementation uses uDataModuleConexion, uDataTableUtils, cxControls, - Dialogs, DataAbstract4_Intf; + Dialogs; { TdmPresupuestos } @@ -122,10 +124,11 @@ begin end; function TDataModuleGestorInformes.GenerarInformeBeneficiosGrafComp( - const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; const Serie: Variant): Binary; + const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; const Serie: Variant; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; begin try - Result := (RORemoteService as IsrvGestorInformes).GenerarInformeBeneficiosGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, Serie); + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeBeneficiosGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, Serie, ListaIDTiposGasto, ListaNombreTiposGasto); finally end; end; @@ -142,10 +145,11 @@ end; function TDataModuleGestorInformes.GenerarInformeFacturasProvGrafComp( const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; - const ListaIDProveedores: TIntegerArray; Const NTop: Variant): Binary; + const ListaIDProveedores: TIntegerArray; Const NTop: Variant; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; begin try - Result := (RORemoteService as IsrvGestorInformes).GenerarInformeFacturasProvGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdProveedores, NTop); + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeFacturasProvGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdProveedores, NTop, ListaIDTiposGasto, ListaNombreTiposGasto); finally end; end; @@ -170,10 +174,11 @@ end; function TDataModuleGestorInformes.GenerarInformeIVAProveedores( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; begin try - Result := (RORemoteService as IsrvGestorInformes).GenerarInformeIVAProveedores(IdEmpresa, FechaInicio, FechaFin, ListaIdProveedores, Desglosado, ImporteMinimo); + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeIVAProveedores(IdEmpresa, FechaInicio, FechaFin, ListaIdProveedores, Desglosado, ImporteMinimo, ListaIDTiposGasto, ListaNombreTiposGasto); finally end; end; @@ -206,10 +211,11 @@ function TDataModuleGestorInformes.GenerarInformeListadoFacturasProv( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; begin try - Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProv(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo); + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProv(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo, ListaIDTiposGasto, ListaNombreTiposGasto); finally end; end; @@ -218,10 +224,12 @@ function TDataModuleGestorInformes.GenerarInformeListadoFacturasProvPendientes( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; + const ListaNombreTiposGasto: StringArray): Binary; begin try - Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo); + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo, ListaIDTiposGasto, ListaNombreTiposGasto); finally end; end; diff --git a/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj b/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj index 3c2c84be..0d7fe84b 100644 --- a/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj +++ b/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj @@ -10,6 +10,10 @@ + + + + @@ -121,14 +125,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas index e8a887b1..a3211262 100644 --- a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas +++ b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas @@ -3,7 +3,8 @@ unit uIDataModuleGestorInformes; interface uses - uROTypes, Classes, FactuGES_Intf; + uROTypes, Classes, FactuGES_Intf, + {Used RODLs:} DataAbstract4_Intf; type IDataModuleGestorInformes = interface @@ -23,7 +24,7 @@ type function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; Const NTop: Variant): Binary; function DarListaAnosFacturasCli: TStringList; - function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary; + function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function GenerarInformeIVAComparativo(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant): Binary; //MODULO RECIBOS DE CLIENTE @@ -34,11 +35,11 @@ type function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; //MODULO FACTURAS DE PROVEEDOR - function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; - function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; Const NTop: Variant): Binary; + function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; Const NTop: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function DarListaAnosFacturasProv: TStringList; //MODULO RECIBOS DE CLIENTE diff --git a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas index 373e5a79..dde280da 100644 --- a/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas +++ b/Source/Modulos/Gestor de informes/Servidor/srvGestorInformes_Impl.pas @@ -50,7 +50,7 @@ type function GenerarInformeFacturasCliGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDClientes: TIntegerArray; const TopN: Integer): Binary; function DarListaAnosFacturasCli: StringArray; - function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant): Binary; + function GenerarInformeBeneficiosGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const Serie: Variant; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function GenerarInformeIVAComparativo(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant): Binary; //MODULO RECIBOS CLIENTE @@ -61,11 +61,12 @@ type function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; //MODULO FACTURAS PROVEEDOR - function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; - function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; + function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; - function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; const TopN: Integer): Binary; + function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; const TopN: Integer; const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; function DarListaAnosFacturasProv: StringArray; //MODULO RECIBOS PROVEEDOR @@ -124,13 +125,14 @@ begin end; function TsrvGestorInformes.GenerarInformeBeneficiosGrafComp( - const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; const Serie: Variant): Binary; + const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; const Serie: Variant; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var AReportGenerator : TRptFacturasCliente; begin AReportGenerator := TRptFacturasCliente.Create(nil); try - Result := AReportGenerator.GenerarInformeBeneficiosGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, Serie); + Result := AReportGenerator.GenerarInformeBeneficiosGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, Serie, ListaIDTiposGasto, ListaNombreTiposGasto); finally FreeAndNIL(AReportGenerator); end; @@ -152,13 +154,14 @@ end; function TsrvGestorInformes.GenerarInformeFacturasProvGrafComp( const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; - const ListaIDProveedores: TIntegerArray; const TopN: Integer): Binary; + const ListaIDProveedores: TIntegerArray; const TopN: Integer; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var AReportGenerator : TRptFacturasProveedor; begin AReportGenerator := TRptFacturasProveedor.Create(nil); try - Result := AReportGenerator.GenerarInformeFacturasGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIDProveedores, TopN); + Result := AReportGenerator.GenerarInformeFacturasGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIDProveedores, TopN, ListaIDTiposGasto, ListaNombreTiposGasto); finally FreeAndNIL(AReportGenerator); end; @@ -192,13 +195,14 @@ end; function TsrvGestorInformes.GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray; - const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + const Desglosado: Boolean; const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var AReportGenerator : TRptFacturasProveedor; begin AReportGenerator := TRptFacturasProveedor.Create(nil); try - Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo); + Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo, ListaIDTiposGasto, ListaNombreTiposGasto); finally FreeAndNIL(AReportGenerator); end; @@ -238,13 +242,14 @@ function TsrvGestorInformes.GenerarInformeListadoFacturasProv( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio, FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; const ListaNombreTiposGasto: StringArray): Binary; var AReportGenerator : TRptFacturasProveedor; begin AReportGenerator := TRptFacturasProveedor.Create(nil); try - Result := AReportGenerator.GenerarInformeListadoFacturas(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + Result := AReportGenerator.GenerarInformeListadoFacturas(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo, ListaIDTiposGasto, ListaNombreTiposGasto); finally FreeAndNIL(AReportGenerator); end; @@ -254,13 +259,15 @@ function TsrvGestorInformes.GenerarInformeListadoFacturasProvPendientes( const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant; const FechaVenInicio, FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; - const ImporteMinimo: Currency): Binary; + const ImporteMinimo: Currency; + const ListaIDTiposGasto: TIntegerArray; + const ListaNombreTiposGasto: StringArray): Binary; var AReportGenerator : TRptFacturasProveedor; begin AReportGenerator := TRptFacturasProveedor.Create(nil); try - Result := AReportGenerator.GenerarInformeListadoFacturasPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo); + Result := AReportGenerator.GenerarInformeListadoFacturasPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo, ListaIDTiposGasto, ListaNombreTiposGasto); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk index 8b4b26f5..fc5740a3 100644 --- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk @@ -67,7 +67,12 @@ requires cxDataD11, dxCoreD11, fqb110, - bdertl; + bdertl, + FacturasProveedor_model, + FacturasProveedor_controller, + DataAbstract_Core_D11, + dsnap, + adortl; contains uGestorInformesViewRegister in 'uGestorInformesViewRegister.pas', @@ -94,6 +99,7 @@ contains uEditorInformeFacturasProveedorReportGrafComp in 'uEditorInformeFacturasProveedorReportGrafComp.pas' {fEditorInformeFacturasProveedorReportGrafComp: TForm}, uEditorInformeBeneficiosReportGrafComp in 'uEditorInformeBeneficiosReportGrafComp.pas' {fEditorInformeBeneficiosReportGrafComp: TForm}, uEditorInformePresupuestosClienteReportGrafComp in 'uEditorInformePresupuestosClienteReportGrafComp.pas' {fEditorInformePresupuestosClienteReportGrafComp: TForm}, - uEditorInformeIVAComparativoReport in 'uEditorInformeIVAComparativoReport.pas' {fEditorInformeIVAComparativoReport: TForm}; + uEditorInformeIVAComparativoReport in 'uEditorInformeIVAComparativoReport.pas' {fEditorInformeIVAComparativoReport: TForm}, + uViewFiltroTipoGasto in 'uViewFiltroTipoGasto.pas' {frViewFiltroTipoGasto: TFrame}; end. diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj index 0280cb62..beb8dba6 100644 --- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj @@ -31,56 +31,55 @@ Delphi.Personality Package -FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_view.dpk +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GestorInformes_view.dpkFalse MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorInformeBase
TForm @@ -166,6 +165,10 @@
frViewFiltroProveedores
TFrame
+ +
frViewFiltroTipoGasto
+ TFrame +
frViewIntervaloComparativo
TFrame @@ -178,6 +181,12 @@
frViewPeriodoFechas
TFrame
+ + + + + +