From 022e5c198010e12c86a7c44c703dd57c56e67b17 Mon Sep 17 00:00:00 2001 From: roberto Date: Fri, 4 Feb 2011 12:13:34 +0000 Subject: [PATCH] =?UTF-8?q?Version=201.8.8=20Subida=20de=20informes=20esta?= =?UTF-8?q?d=C3=ADsticos=20de=20Facturas=20de=20Cliente=20y=20proveedor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1031 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/scripts/factuges.sql | 81 ++++++++ Database/scripts/factuges_sysdata.sql | 20 ++ Source/Cliente/FactuGES.dproj | 2 +- Source/Cliente/FactuGES.res | Bin 171984 -> 172156 bytes ...nformeListadoFacturasProveedorGrafComp.fr3 | 2 +- .../InformeListadoFacturasClienteGrafComp.fr3 | 68 +++++++ ...nformeListadoFacturasProveedorGrafComp.fr3 | 68 +++++++ .../Reports/uRptFacturasCliente_Server.dfm | 2 +- .../Reports/uRptFacturasCliente_Server.pas | 6 +- .../Reports/uRptFacturasProveedor_Server.dfm | 2 +- .../Controller/GestorInformes_controller.dpk | 3 +- .../GestorInformes_controller.dproj | 1 + .../Controller/GestorInformes_controller.res | Bin 384 -> 4748 bytes ...orInformeFacturasClienteReportGrafComp.pas | 30 +++ ...InformeFacturasProveedorReportGrafComp.pas | 2 + .../Controller/uGestorInformesController.pas | 33 +++- .../Data/uDataModuleGestorInformes.pas | 36 +++- .../Model/Data/uIDataModuleGestorInformes.pas | 4 +- .../Plugin/uPluginGestorInformes.dfm | 10 + .../Plugin/uPluginGestorInformes.pas | 9 + .../Views/GestorInformes_view.dpk | 1 + .../Views/GestorInformes_view.dproj | 95 +++++----- ...orInformeFacturasClienteReportGrafComp.dfm | 174 +++++++++++++++++ ...orInformeFacturasClienteReportGrafComp.pas | 178 ++++++++++++++++++ ...InformeFacturasProveedorReportGrafComp.dfm | 4 + ...InformeFacturasProveedorReportGrafComp.pas | 16 +- .../Views/uGestorInformesViewRegister.pas | 4 +- Source/Servicios/FactuGES.RODL | 24 +++ Source/Servicios/FactuGES_Intf.pas | 45 +++++ Source/Servicios/FactuGES_Invk.pas | 68 +++++++ Source/Servicios/RODLFILE.res | Bin 45090 -> 45956 bytes Source/Servidor/FactuGES_Server.RES | Bin 23208 -> 23488 bytes Source/Servidor/FactuGES_Server.dproj | 12 +- 33 files changed, 920 insertions(+), 80 deletions(-) create mode 100644 Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3 create mode 100644 Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 create mode 100644 Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReportGrafComp.pas create mode 100644 Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReportGrafComp.dfm create mode 100644 Source/Modulos/Gestor de informes/Views/uEditorInformeFacturasClienteReportGrafComp.pas diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index e00d3c81..6ea3576a 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -39,6 +39,11 @@ DECLARE EXTERNAL FUNCTION SUBSTR ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'; +DECLARE EXTERNAL FUNCTION DIV + INTEGER, + INTEGER +RETURNS DOUBLE PRECISION BY VALUE +ENTRY_POINT 'IB_UDF_div' MODULE_NAME 'ib_udf'; /******************************************************************************/ @@ -253,6 +258,12 @@ SET GENERATOR GEN_USUARIOS_ID TO 1; /**** Tables ****/ /******************************************************************************/ +CREATE TABLE PERIODOS_AUX ( + ID INTEGER, + PERIODO VARCHAR(20) COLLATE ES_ES, + VALOR SMALLINT, + DESCRIPCION VARCHAR(20) COLLATE ES_ES +); CREATE TABLE AGENTES_COMISIONES ( @@ -3453,6 +3464,76 @@ FROM GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ; + +/*VISTAS PARA INFORMES ESTADISTICOS*/ + +CREATE VIEW V_INF_FAC_CLIENTE_TOTAL_ANO( + ID_EMPRESA, + ANO, + IMPORTE_TOTAL) +AS +select ID_EMPRESA, EXTRACT(YEAR FROM FECHA_FACTURA) as ANO, SUM(IMPORTE_TOTAL) as IMPORTE_TOTAL +from FACTURAS_CLIENTE +group by 1,2 +; + +CREATE VIEW V_INF_FAC_PROVEEDOR_TOTAL_ANO( + ID_EMPRESA, + ANO, + IMPORTE_TOTAL) +AS +select ID_EMPRESA, EXTRACT(YEAR FROM FECHA_FACTURA) as ANO, SUM(IMPORTE_TOTAL) as IMPORTE_TOTAL +from FACTURAS_PROVEEDOR +group by 1,2 +; + +CREATE VIEW V_INF_FAC_CLIENTE( + ID_EMPRESA, + ANO, + SEMESTRE, + TRIMESTRE, + MES, + FECHA_FACTURA, + ID_CLIENTE, + NOMBRE, + IMPORTE_DESCUENTO, + IMPORTE_TOTAL, + IMPORTE_TOTAL_ANO) +AS +select f.ID_EMPRESA, EXTRACT(YEAR FROM f.FECHA_FACTURA) as ANO, +CAST((DIV(EXTRACT(MONTH FROM f.FECHA_FACTURA),8)+1) AS SMALLINT) as SEMESTRE, +CAST((DIV(EXTRACT(MONTH FROM f.FECHA_FACTURA),4)+1) AS SMALLINT) as TRIMESTRE, +EXTRACT(MONTH FROM f.FECHA_FACTURA) as MES, +f.FECHA_FACTURA, f.ID_CLIENTE, f.NOMBRE, f.IMPORTE_DESCUENTO, f.IMPORTE_TOTAL, v.importe_total as IMPORTE_TOTAL_ANO +from FACTURAS_CLIENTE f +inner join V_INF_FAC_CLIENTE_TOTAL_ANO v on ((v.id_empresa = f.id_empresa) and (v.Ano = EXTRACT(YEAR FROM f.FECHA_FACTURA))) +order by 1,2,3,4,5 asc +; + +CREATE VIEW V_INF_FAC_PROVEEDOR( + ID_EMPRESA, + ANO, + SEMESTRE, + TRIMESTRE, + MES, + FECHA_FACTURA, + ID_PROVEEDOR, + NOMBRE, + IMPORTE_DESCUENTO, + IMPORTE_TOTAL, + IMPORTE_TOTAL_ANO) +AS +select f.ID_EMPRESA, EXTRACT(YEAR FROM f.FECHA_FACTURA) as ANO, +CAST((DIV(EXTRACT(MONTH FROM f.FECHA_FACTURA),8)+1) AS SMALLINT) as SEMESTRE, +CAST((DIV(EXTRACT(MONTH FROM f.FECHA_FACTURA),4)+1) AS SMALLINT) as TRIMESTRE, +EXTRACT(MONTH FROM f.FECHA_FACTURA) as MES, +f.FECHA_FACTURA, f.ID_PROVEEDOR, f.NOMBRE, f.IMPORTE_DESCUENTO, f.IMPORTE_TOTAL, v.importe_total as IMPORTE_TOTAL_ANO +from FACTURAS_PROVEEDOR f +inner join V_INF_FAC_PROVEEDOR_TOTAL_ANO v on ((v.id_empresa = f.id_empresa) and (v.Ano = EXTRACT(YEAR FROM f.FECHA_FACTURA))) +order by 1,2,3,4,5 asc +; + + /******************************************************************************/ /**** Primary Keys ****/ /******************************************************************************/ diff --git a/Database/scripts/factuges_sysdata.sql b/Database/scripts/factuges_sysdata.sql index 95ac8d32..b2431698 100644 --- a/Database/scripts/factuges_sysdata.sql +++ b/Database/scripts/factuges_sysdata.sql @@ -2,6 +2,26 @@ SET SQL DIALECT 3; SET NAMES UTF8; +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (1, 'MENSUAL', 1, 'Ene'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (2, 'MENSUAL', 2, 'Feb'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (3, 'MENSUAL', 3, 'Mar'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (4, 'MENSUAL', 4, 'Abr'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (5, 'MENSUAL', 5, 'May'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (6, 'MENSUAL', 6, 'Jun'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (7, 'MENSUAL', 7, 'Jul'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (8, 'MENSUAL', 8, 'Ago'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (9, 'MENSUAL', 9, 'Sep'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (10, 'MENSUAL', 10, 'Oct'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (11, 'MENSUAL', 11, 'Nov'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (12, 'MENSUAL', 12, 'Dic'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (13, 'SEMESTRAL', 1, 'Primer semestre'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (14, 'SEMESTRAL', 2, 'Segundo semestre'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (15, 'TRIMESTRAL', 1, 'Primer trimestre'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (16, 'TRIMESTRAL', 2, 'Segundo trimestre'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (17, 'TRIMESTRAL', 3, 'Tercer trimestre'); +INSERT INTO PERIODOS_AUX (ID, PERIODO, VALOR, DESCRIPCION) VALUES (18, 'TRIMESTRAL', 4, 'Cuarto trimestre'); +COMMIT WORK; + INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (1, 'CLIENTE'); INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (2, 'PROVEEDOR'); INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (3, 'EMPLEADO'); diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 373edb3a..2b6d0506 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\TrueFalse1870FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.8.7.0FactuGESFactuGES1.8.7.0FactuGES.dprFalse +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1880FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.8.8.0FactuGESFactuGES1.8.8.0FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 254f842cecc73c72f66c4f05543f304dbc355477..fc95218dfa27a4b9b950bfd2de6b42eac1d5cdb8 100644 GIT binary patch delta 488 zcmY+9y-EW?6otPTlek%fY?*Q)_}`?k5JU_r5>T*7pDZd#&}fJ@R!O0d2N1SNHf**1k%5JT`Si1p!uPE9fK85R>J+6q+}R4N(KXZ--Ol*^X&E8tSA zSvG!#C3?NY>6k@fpphI*r=A=oFDNqqp@9y+hkAR>kts%X*pEGCUDNa*lW;H61@#pM zk*;oRimo`O$u*Z8$+_d4j_@}3^1bE8#>3Z0Z>gQ|C(^s!)i`x3?mB@a55?E!AkS0Bco^V-k%5OnK!AaPkwJnXgB3)>c`OVJObikd5V;d< z3=GV0UI!-w0}F$K0z_^F2Ll5uf(JB>jlsYGD#ypbz>eUlGQ=}*FgQ3sBsH8E7&sX` zJRrP|5C#S=hJ*yD#wiR8+zbs3P?a1YhcYmHU}RuW0Mh^e3ji^Y0|W*P2oHT=oc?Go zlZiSz&=!y^JA*w~4am7HU=b)6Oa)B0oyVlis53or9#j1EH}jY@7|o}P&S$coeqlaS L0+4OEfXN#G43a93 diff --git a/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 index b0dfbc19..92056ee4 100644 --- a/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 +++ b/Source/Informes/1/InformeListadoFacturasProveedorGrafComp.fr3 @@ -1,5 +1,5 @@ - + diff --git a/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3 b/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3 new file mode 100644 index 00000000..300c25c0 --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasClienteGrafComp.fr3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 new file mode 100644 index 00000000..733331d6 --- /dev/null +++ b/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index dd5fbb98..12e36516 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -1356,7 +1356,7 @@ object RptFacturasCliente: TRptFacturasCliente '.IMPORTE_TOTAL) as IMPORTE_TOTAL,'#10'((SUM(P.IMPORTE_TOTAL)*100)/p.' + 'Importe_TOTAL_ANO) as PORCENTAJE'#10#10'from V_INF_FAC_CLIENTE P'#10'left ' + 'join CONTACTOS C on P.ID_CLIENTE = C.ID'#10#10'where p.ID_EMPRESA = :I' + - 'D_EMPRESA'#10'and P.ANO = :ANO'#10'group by 1,2,3,4'#10'order by 1,5 desc'#10'ro' + + 'D_EMPRESA'#10'and P.ANO = :ANO'#10'group by 1,2,3,4'#10'order by 1,6 desc'#10'ro' + 'ws 1 to :NTOP'#10#10#10 StatementType = stSQL ColumnMappings = < diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index 43a054b7..ded68fbf 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -94,13 +94,13 @@ type tbl_InformeListadoFacturasGrafCompMensual: TDAMemDataTable; tbl_InformeListadoFacturasGrafCompTrimestral: TDAMemDataTable; tbl_InformeListadoFacturasGrafCompSemestral: TDAMemDataTable; - schReport: TDASchema; frxDBInformeListadoClientesMayorFacturacionResumen: TfrxDBDataset; DADSInformeListadoClientesMayorFacturacionResumen: TDADataSource; tbl_InformeListadoClientesMayorFacturacionResumen: TDAMemDataTable; frxDBInformeListadoClientesMayorDescuentoResumen: TfrxDBDataset; DADSInformeListadoClientesMayorDescuentoResumen: TDADataSource; tbl_InformeListadoClientesMayorDescuentoResumen: TDAMemDataTable; + schReport: TDASchema; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); private @@ -253,8 +253,8 @@ begin PrepararTablaInformeGrafComp(tbl_InformeListadoFacturasGrafCompSemestral); //Se preparan las tablas del listado resumen del informe -// PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorFacturacionResumen); -// PrepararTablaResumenInformeGrafComp(tbl_InformeListadoProveedoresMayorDescuentoResumen); + PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorFacturacionResumen); + PrepararTablaResumenInformeGrafComp(tbl_InformeListadoClientesMayorDescuentoResumen); Result := Binary.Create; diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm index 1989e0c3..8c754b33 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm @@ -1282,7 +1282,7 @@ object RptFacturasProveedor: TRptFacturasProveedor '.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,5 des' + + '= :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 StatementType = stSQL ColumnMappings = < diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk index 45a44a35..078e5376 100644 --- a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk +++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dpk @@ -44,6 +44,7 @@ contains uIEditorInformePresupuestosReport in 'View\uIEditorInformePresupuestosReport.pas', uIEditorInformeRecibosProveedorReport in 'View\uIEditorInformeRecibosProveedorReport.pas', uIEditorInformePedidosReport in 'View\uIEditorInformePedidosReport.pas', - uIEditorInformeFacturasProveedorReportGrafComp in 'View\uIEditorInformeFacturasProveedorReportGrafComp.pas'; + uIEditorInformeFacturasProveedorReportGrafComp in 'View\uIEditorInformeFacturasProveedorReportGrafComp.pas', + uIEditorInformeFacturasClienteReportGrafComp in 'View\uIEditorInformeFacturasClienteReportGrafComp.pas'; end. diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj index 367a8884..1983ef96 100644 --- a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj +++ b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.dproj @@ -45,6 +45,7 @@ + diff --git a/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res b/Source/Modulos/Gestor de informes/Controller/GestorInformes_controller.res index 8b251f312bcccec5485024f6fe8d80e1cdf25746..1641339fcc482e7e3492d1b45813a86619622c33 100644 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP delta 11 ScmeBCZD5|Duvteife`=|>;pCc diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReportGrafComp.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReportGrafComp.pas new file mode 100644 index 00000000..63691ae7 --- /dev/null +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasClienteReportGrafComp.pas @@ -0,0 +1,30 @@ +unit uIEditorInformeFacturasClienteReportGrafComp; + +interface + +uses + FactuGES_Intf, uIEditorInformeBase; + +type + IEditorInformeFacturasClienteReportGrafComp = interface(IEditorInformeBase) + ['{12EA329F-37E3-4583-A54E-BE146C8E9D8A}'] + + function GetIntervalo: Variant; + function GetAno1: Variant; + function GetAno2: Variant; + function GetNTop: Variant; + + function GetListaIDClientes: TIntegerArray; + + property Intervalo: Variant read GetIntervalo; + property Ano1: Variant read GetAno1; + property Ano2: Variant read GetAno2; + property NTop: Variant read GetNTop; + + property ListaIDClientes: TIntegerArray read GetListaIDClientes; + end; + + +implementation + +end. diff --git a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas index 06e3335a..07d360b2 100644 --- a/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas +++ b/Source/Modulos/Gestor de informes/Controller/View/uIEditorInformeFacturasProveedorReportGrafComp.pas @@ -12,12 +12,14 @@ type function GetIntervalo: Variant; function GetAno1: Variant; function GetAno2: Variant; + function GetNTop: Variant; function GetListaIDProveedores: TIntegerArray; property Intervalo: Variant read GetIntervalo; property Ano1: Variant read GetAno1; property Ano2: Variant read GetAno2; + property NTop: Variant read GetNTop; property ListaIDProveedores: TIntegerArray read GetListaIDProveedores; end; diff --git a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas index 34c076b4..12193769 100644 --- a/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas +++ b/Source/Modulos/Gestor de informes/Controller/uGestorInformesController.pas @@ -23,6 +23,7 @@ type procedure VerInformeIVAClientes; procedure VerInformeListadoFacturasCli; procedure VerInformeListadoFacturasCliPendientes; + procedure VerInformeFacturasCliGrafComp; //MODULO RECIBOS DE CLIENTE procedure VerInformeListadoRecibosCliPendientes; @@ -74,6 +75,7 @@ type procedure VerInformeIVAClientes; procedure VerInformeListadoFacturasCli; procedure VerInformeListadoFacturasCliPendientes; + procedure VerInformeFacturasCliGrafComp; //MODULO RECIBOS DE CLIENTE procedure VerInformeListadoRecibosCliPendientes; @@ -87,6 +89,7 @@ type procedure VerInformeListadoFacturasProv; procedure VerInformeListadoFacturasProvPendientes; procedure VerInformeFacturasProvGrafComp; + function DarListaAnosFacturasProv: TStringList; function DarListaIntervalos: TStringList; @@ -110,7 +113,9 @@ uses uIEditorInformeIVAProveedoresReport, uIEditorInformeFacturasProveedorReport, uIEditorInformeFacturasProveedorPendientesReport, uIEditorInformeRecibosProveedorReport, uIEditorInformeRecibosProvPendientesReport, - uIEditorInformePedidosReport, uIEditorInformeFacturasProveedorReportGrafComp; + uIEditorInformePedidosReport, + uIEditorInformeFacturasProveedorReportGrafComp, + uIEditorInformeFacturasClienteReportGrafComp; {procedure CopiarArticulosPedido(AOrigen: IBizDetallesPedidoCliente; @@ -291,6 +296,30 @@ begin Result := FDataModule; end; +procedure TGestorInformesController.VerInformeFacturasCliGrafComp; +var + AStream: Binary; + AEditor : IEditorInformeFacturasClienteReportGrafComp; +begin + AEditor := NIL; + CreateEditor('EditorInformeFacturasClienteReportGrafComp', IEditorInformeFacturasClienteReportGrafComp, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; + AEditor.Title := 'Informe comparativo de facturación de clientes'; + + AStream := FDataModule.GenerarInformeFacturasCliGrafComp(AppFactuGES.EmpresaActiva.ID, + AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDClientes, AEditor.NTop); + + AEditor.LoadFromStream(AStream); + AEditor.Preview; + finally + AEditor.Release; + AEditor := Nil; + FreeAndNil(AStream); + end; +end; + procedure TGestorInformesController.VerInformeFacturasProvGrafComp; var AStream: Binary; @@ -304,7 +333,7 @@ begin AEditor.Title := 'Informe comparativo de facturación de proveedores'; AStream := FDataModule.GenerarInformeFacturasProvGrafComp(AppFactuGES.EmpresaActiva.ID, - AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDProveedores); + AEditor.Intervalo, AEditor.Ano1, AEditor.Ano2, AEditor.ListaIDProveedores, AEditor.NTop); AEditor.LoadFromStream(AStream); AEditor.Preview; diff --git a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas index 28e01990..b95ec661 100644 --- a/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas +++ b/Source/Modulos/Gestor de informes/Data/uDataModuleGestorInformes.pas @@ -30,6 +30,8 @@ type function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturasCli(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 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; //MODULO RECIBOS DE CLIENTE function GenerarInformeListadoRecibosCliPendientes(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; @@ -42,7 +44,7 @@ type 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): Binary; + function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; Const NTop: Variant): Binary; function DarListaAnosFacturasProv: TStringList; //MODULO RECIBOS DE CLIENTE @@ -68,6 +70,22 @@ begin RORemoteService.Message := dmConexion.Message; end; +function TDataModuleGestorInformes.DarListaAnosFacturasCli: TStringList; +var + i: Integer; + AResultado : StringArray; +begin + Result := Nil; + try + AResultado := (RORemoteService as IsrvGestorInformes).DarListaAnosFacturasCli; + Result := TStringList.Create; + for i:= 0 to AResultado.Count - 1 do + Result.Add(AResultado.Items[i]); + finally + FreeANDNIL(AResultado) + end; +end; + function TDataModuleGestorInformes.DarListaAnosFacturasProv: TStringList; var i: Integer; @@ -100,12 +118,22 @@ begin end; end; -function TDataModuleGestorInformes.GenerarInformeFacturasProvGrafComp( +function TDataModuleGestorInformes.GenerarInformeFacturasCliGrafComp( const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; - const ListaIDProveedores: TIntegerArray): Binary; + const ListaIDClientes: TIntegerArray; Const NTop: Variant): Binary; begin try - Result := (RORemoteService as IsrvGestorInformes).GenerarInformeFacturasProvGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdProveedores, 7); + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeFacturasCliGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdClientes, NTop); + finally + end; +end; + +function TDataModuleGestorInformes.GenerarInformeFacturasProvGrafComp( + const IdEmpresa: Integer; const Intervalo, Ano1, Ano2: Variant; + const ListaIDProveedores: TIntegerArray; Const NTop: Variant): Binary; +begin + try + Result := (RORemoteService as IsrvGestorInformes).GenerarInformeFacturasProvGrafComp(IdEmpresa, Intervalo, Ano1, Ano2, ListaIdProveedores, NTop); finally end; end; diff --git a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas index f54d1732..17d80eea 100644 --- a/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas +++ b/Source/Modulos/Gestor de informes/Model/Data/uIDataModuleGestorInformes.pas @@ -20,6 +20,8 @@ type function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturasCli(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 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; //MODULO RECIBOS DE CLIENTE function GenerarInformeListadoRecibosCliPendientes(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; @@ -33,7 +35,7 @@ type 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): Binary; + function GenerarInformeFacturasProvGrafComp(const IdEmpresa: Integer; const Intervalo: Variant; const Ano1: Variant; const Ano2: Variant; const ListaIDProveedores: TIntegerArray; Const NTop: Variant): Binary; function DarListaAnosFacturasProv: TStringList; //MODULO RECIBOS DE CLIENTE diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm index 663ec359..53a34f6e 100644 --- a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm +++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.dfm @@ -109,6 +109,12 @@ object PluginGestorInformes: TPluginGestorInformes ImageIndex = 0 OnExecute = actInformeFacturasProveedorGrafCompExecute end + object actInformeFacturasClienteGrafComp: TAction + Category = 'Facturas de cliente' + Caption = 'Informe comparativo de facturaci'#243'n de clientes' + ImageIndex = 0 + OnExecute = actInformeFacturasClienteGrafCompExecute + end end object MainMenu: TMainMenu Images = LargeImages @@ -176,6 +182,10 @@ object PluginGestorInformes: TPluginGestorInformes Tag = 150 Action = actInformeFacturasProveedorGrafComp end + object Informecomparativodefacturacindeproveedores2: TMenuItem + Tag = 160 + Action = actInformeFacturasClienteGrafComp + end end end object SmallImages: TPngImageList diff --git a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas index 489e0a7b..b461b80f 100644 --- a/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas +++ b/Source/Modulos/Gestor de informes/Plugin/uPluginGestorInformes.pas @@ -44,6 +44,8 @@ type actInformeFacturasProveedorGrafComp: TAction; N5: TMenuItem; Informecomparativodefacturacindeproveedores1: TMenuItem; + actInformeFacturasClienteGrafComp: TAction; + Informecomparativodefacturacindeproveedores2: TMenuItem; procedure actInformeFacturasClienteExecute(Sender: TObject); procedure actInformeFacturasClientePendientesExecute(Sender: TObject); procedure actInformeFacturasClienteIVAExecute(Sender: TObject); @@ -55,6 +57,7 @@ type procedure actInformeRecibosProveedorExecute(Sender: TObject); procedure actInformeRecibosProvPendientesExecute(Sender: TObject); procedure actInformeFacturasProveedorGrafCompExecute(Sender: TObject); + procedure actInformeFacturasClienteGrafCompExecute(Sender: TObject); private FController : IGestorInformesController; public @@ -84,6 +87,12 @@ begin FController.VerInformeListadoFacturasCli; end; +procedure TPluginGestorInformes.actInformeFacturasClienteGrafCompExecute( + Sender: TObject); +begin + FController.VerInformeFacturasCliGrafComp; +end; + procedure TPluginGestorInformes.actInformeFacturasClienteIVAExecute( Sender: TObject); begin diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk index 12859f3c..067ea400 100644 --- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dpk @@ -90,6 +90,7 @@ contains uEditorInformePresupuestosReport in 'uEditorInformePresupuestosReport.pas' {fEditorInformePresupuestosReport: TForm}, uViewPeriodoFechas in 'uViewPeriodoFechas.pas' {frViewPeriodoFechas: TFrame}, uViewIntervaloComparativo in 'uViewIntervaloComparativo.pas' {TfrViewIntervaloComparativo: TFrame}, + uEditorInformeFacturasClienteReportGrafComp in 'uEditorInformeFacturasClienteReportGrafComp.pas' {fEditorInformeFacturasClienteReportGrafComp: TForm}, uEditorInformeFacturasProveedorReportGrafComp in 'uEditorInformeFacturasProveedorReportGrafComp.pas' {fEditorInformeFacturasProveedorReportGrafComp: TForm}; end. diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj index 188c4328..81d59c92 100644 --- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj @@ -38,49 +38,43 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorInformeBase
TForm @@ -93,6 +87,10 @@
fEditorInformeFacturasClienteReport
T
+ +
fEditorInformeFacturasClienteReportGrafComp
+ TForm +
fEditorInformeFacturasProveedorPendientesReport
TForm @@ -101,10 +99,7 @@
fEditorInformeFacturasProveedorReport
TForm
- -
fEditorInformeFacturasProveedorReportGrafComp
- TForm -
+
fEditorInformeIVAClientesReport
TForm @@ -162,6 +157,12 @@
frViewPeriodoFechas
TFrame
+ + + + + +