From bf321b65a8962c3c3c3fba4b6ba23e88f02f130d Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 23 Sep 2021 17:15:32 +0000 Subject: [PATCH] Version 2.4.0 git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1168 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Source/Cliente/FactuGES.dproj | 2 +- Source/Cliente/FactuGES.rc | 8 +- Source/Cliente/FactuGES.res | Bin 171984 -> 171984 bytes Source/Informes/1/AlbaranCliente.rdx | Bin 82432 -> 82432 bytes Source/Informes/1/InfAlbaranCliente.fr3 | 6 +- Source/Informes/2/AlbaranCliente.rdx | Bin 82944 -> 82944 bytes Source/Informes/2/InfAlbaranCliente.fr3 | 7 +- .../2/InformeListadoBeneficiosGrafComp.fr3 | 13 +- ...nformeListadoFacturasProveedorGrafComp.fr3 | 11 +- Source/Informes/3/AlbaranCliente.rdx | Bin 115712 -> 115712 bytes Source/Informes/3/InfAlbaranCliente.fr3 | 10 +- .../3/InformeListadoBeneficiosGrafComp.fr3 | 13 +- ...nformeListadoFacturasProveedorGrafComp.fr3 | 11 +- Source/Informes/4/AlbaranCliente.rdx | Bin 53248 -> 53248 bytes Source/Informes/4/InfAlbaranCliente.fr3 | 4 +- Source/Informes/5/AlbaranCliente.rdx | Bin 103936 -> 103936 bytes Source/Informes/5/InfAlbaranCliente.fr3 | 6 +- .../Reports/uRptWordAlbaranCliente.pas | 12 + .../Reports/uRptFacturasCliente_Server.dfm | 433 ++++++++++-- .../Reports/uRptFacturasCliente_Server.pas | 49 +- .../uFacturasProveedorController.pas | 20 +- .../Model/uBizFacturasProveedor.pas | 24 +- .../Reports/uRptFacturasProveedor_Server.dfm | 645 ++++++++++++++++-- .../Reports/uRptFacturasProveedor_Server.pas | 87 ++- .../Views/uEditorElegirTipoGasto.dfm | 5 +- .../Views/uEditorElegirTipoGasto.pas | 5 +- .../GestorInformes_Group.groupproj | 16 +- .../Views/GestorInformes_view.dproj | 96 +-- ...uEditorInformeBeneficiosReportGrafComp.dfm | 75 +- ...uEditorInformeBeneficiosReportGrafComp.pas | 13 +- ...formeFacturasProveedorPendientesReport.dfm | 10 +- ...formeFacturasProveedorPendientesReport.pas | 13 +- .../uEditorInformeFacturasProveedorReport.dfm | 82 ++- .../uEditorInformeFacturasProveedorReport.pas | 10 +- ...InformeFacturasProveedorReportGrafComp.dfm | 77 ++- ...InformeFacturasProveedorReportGrafComp.pas | 15 +- .../uEditorInformeIVAProveedoresReport.dfm | 118 ++-- .../uEditorInformeIVAProveedoresReport.pas | 11 +- .../Views/uViewFiltroTipoGasto.dfm | 48 +- .../Views/uViewFiltroTipoGasto.pas | 111 ++- .../Reports/uRptWordPedidoProveedor.dfm | 24 +- Source/Servidor/FactuGES_Server.RES | Bin 23352 -> 23356 bytes Source/Servidor/FactuGES_Server.dproj | 2 +- Source/Servidor/FactuGES_Server.rc | 10 +- Source/Servidor/uDataModuleServer.pas | 11 +- 45 files changed, 1615 insertions(+), 498 deletions(-) diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index d4516365..db59be65 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\TrueFalse2340FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.4.0FactuGESFactuGES2.3.4.0FactuGES.dprFalse +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2400FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.4.0.0FactuGESFactuGES2.4.0.0FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index f4a002ff..34e40ecf 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,3,4,0 -PRODUCTVERSION 2,3,4,0 +FILEVERSION 2,4,0,0 +PRODUCTVERSION 2,4,0,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.3.4.0\0" + VALUE "FileVersion", "2.4.0.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductName", "FactuGES\0" - VALUE "ProductVersion", "2.3.4.0\0" + VALUE "ProductVersion", "2.4.0.0\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index a9e78344d8cd1716775dfa7f5ab74c5713efa4a8..7e638f7b5cf500e92e40154e9723b96da9331be6 100644 GIT binary patch delta 56 zcmcbxpX7@+iY`FTu7S&bR=7)++WoX0dB%50s_DE3sC1(wTbRSmOieV! zh%sg}(VXZt`=pzTiHm0DCcAtwd{~SzesaKGz{xb~UVv?g?1S0V|I_vwGGn4Q`Eg!) z&bjA#&S@DQ(T7L$lcg?>sWMj$hgGNROMTo=G^Z-uB`W03kKSUU+j&GU6VZ!4q6o@^ z7~zsON_qZkITj$Q#Kf5*qVCkZ0`-pOGghZ17NSufntnCq&Mg|n%j9uN=Ou=6Yc*AG z;nnhXqaZQpAEnGXqPA-*^JKHjAEQ9AzV3c!S?6O}=zWZH7IdZ@RkK=G{AlVm=~>DC z+nGdCz3KLpKUi^&BiR3HooEpK@;sKGES-7D7Ll|k&^U%o)uNPK%j1lzD^9j${wS)c zw(<7>L!H*2&FJpxZr zNw}k)^B1XC{9a)V`QK)*bW5BP&<8Rt zW|ft{b_w6m5C1rZzpa1Ha_rq8x5d}vel)@c2tyNWf>zi99nc9oU=JLI<6y%$Ou|_> z4^uD=-@^?206)SNxC+-`7Up0ct`jxT4OA9j5tbkWKNSXKLKaj&J#;`6cET|BVPh}hQ$dx=;9aLx}+m!eyVfH3ORo{G&v*l}&EfIj z-M8Pl?c=Fe-hHzN%=%nD$T9n5EP zF+S=KskQvqdV-bbF)>(bOly8#iSwEjDO_HVUC3;Y(2P36{?P30+)RsCdpC(Yeyh6j zb8fA7kC$Wz-B;_Z*PR{K!mtKAwZuytu~$}k%X(kyLT@q7ThN=*r>$v@6qcnPw2Y}kJys%))o8>+Sc`Q?U=y0qf_Ch~Ib1>) zF5?QmM-O_@j{ywgHtt{olQ6bfV1(3turL!bRG|iOY)OAv*z6B#d?Oge-gI$MwI!kS zhVTWcsHJCW7OQA$77b`j&!2T&q|upQ7^&Jwho<4Bpy7Ao6f_M@p&NfVhoZBcW6_{W zcSK*6pmu9!npIyq_`p4>?Bi0CyNV(FfNL1WkN62cJ9g>Z^rq4;WV6P76Sv^)!#LNv z7v2{5NmsW)w?NZRU>9~{5B4I7Y=G&<%HNiXEi|`c8@6Kyc0#8m(-m`0jPUz>_s{qF zY?>UGbEuhqI~Yql(wy%{Nx7cEJ;FBQu3{-80LZPVo=sn=Y0LUTQd_mIKVI45a` z2w^GW*-%yoWmW1Cy4!IA@8Dxx!fzPET^NQ(u>u>>1}*h@y8TMuiAoUj z_el10{REB}Q)-TKaUCNV#Ud78qBn6Xilj1SnE>zD0DtB1ioRABVk!Pl6q^|TDD>_J z@f1367|-TCN3B8WVd+lk2lS-$LQjes#1N)NuF>m`EAK$)q0j@Nye-s2p)a+a@D7I_ z5ZzXb_eda16Ss`Jq)5UK=dQK=4?8=&^7KKOP?EvEZUFedZnesiWp|3mm0O`b+;T}A61z`6rtpET3 diff --git a/Source/Informes/1/InfAlbaranCliente.fr3 b/Source/Informes/1/InfAlbaranCliente.fr3 index bbe91dc7..98a2515d 100644 --- a/Source/Informes/1/InfAlbaranCliente.fr3 +++ b/Source/Informes/1/InfAlbaranCliente.fr3 @@ -1,12 +1,12 @@ - + - + @@ -27,7 +27,7 @@ - + diff --git a/Source/Informes/2/AlbaranCliente.rdx b/Source/Informes/2/AlbaranCliente.rdx index 21291e69e2b629484528a4d2c5b6b3629784c095..fe21a56835c654a9fafdb56a35d904aaaa25839d 100644 GIT binary patch delta 2847 zcmbW(YfKbZ6bJBoc4zhl3(MjnyFkH;fL0zst%$6Mpp>o1YqhqiRJ0FhtD;zw8se^> zYMR!lQyDNdHI1YX(`cQR{m^Q)+SHn~BB?R)Lz`-Z7!w3(eYV>F+1(LIHL(u)?VWq? z+?mU{=gw|$iyYh{A4oNjO-VE4Q-xA(_<_2WMB}ukYb3;xcp=(_5G4*F=Az6TCxiiI z7D_%IrOd>2Ke>d+z`#r6h47>9!+4jnT}rfl%eTYP?m#t3IcIdZ+wrhSQ>5gJ`RG)P zQvQUOP)p)kLb&liWxLWKWjlGI_aB`J3dv7T)^DwM^G!N&oqjWYNP%)$stFW0BlYz$ zk+L3TEKXa~S9~!w{Verj?w^~5*l3INOVKIm<07p>aQ#n2^DRuO0FB+z$?4a5lSjvY zfYWH*79Pl5oyswJz13giFI#9{x^$^lWI8G<6q`a`g*+(%pCrVyPz{Tq9vZ+8YvBZ3 zgnk%+LAU}#Fbr2=1nzSE{P5}HhxT{x7ki?AT^+-Rw!ho4vF-I0FRVBond#_f{0vL% z=5n7yH2RF9$>&hi*mn}0Gc4h@7cHBk%|cmb|Cllk#z_Wy1s)@rgfM|sOK?0TQ4tnD zLt8dZBiW1IGR>8AncQVKod@N>gBCy~6e@F*-AZY)2kgpj$)YtSe?&g+ssawjLf~-J zKrPe(hlNAZ2ppCm?1moT5b5E$A}MP3T2F*Vf$BH_+5~QaSR(dF5oTNBJ$?wD{h7 zir8|WGrG7)V=OmTcC;a~(oS)2rJW+{VKKVFO(11F##2H*+|!7yBf5x5H`ys6A!0V~)bjYL3X;$#wJK{n(-J`}@jC;>0b zfhzFBVpsyr&;skA6S`n8^ulSl0N3FL+=AQiH~a&4;4Z0o1~O$5UbzM^f&?;{zzi0M z0o7roBz4F@aca;&lDgbL{p0uHKZ}okv4les47aGm21-}A8p#>L$2rNg3)cyUy4pg| zJkOh&bA(q5g@^Jezqg#wrk{GQ^M55FWh`8mTmjX762IXN3S{Wx1VBW!BCm1e57 zMI_nrg($+We~h)N&sixzDWS7g`kBb4cE?b5HNJwyc&zp-qD`z6>qLuaMcE?Oh}Bs8 zRj92&>w5J2akgGGi8t{r^^l&>sTlf%yfbl6&L_^34G@IA@C}>-&I7D@czJorc&Uy7 zFH?-V&yLv_6pUErff0f z2-QuYS){IXk%ubOO)ko%nfOKE3LSM(sX^Hz*?N*`KGAe_ftxBb4)k{L&o3kHf;ACb z@*TM>;xhE5n`+`POzOy?UvbAXIrJUXhjvb;vrcpCwwL+WTd1vsWFl|qZ7;oHh>y0C K-aArCcIjVq&cvz! delta 2756 zcmciEdr(wW90&08yL(p_-3!aYBD;V<8Hg3a0zMD|e4#78lCiOggsCx~jj3a1PK)C| z^b|bObs8Ftrm1mCt2?$c6{GeTb($LKF_xxI%p@u^@>r2fz`noTy-LO(^-p)_bI-Zw zargYrIrr|?)m!W8tskZ+q{vid5*5n@%GY#A##{1h-zOoq#0s%a2+@voD$<+;Arz#! zNcs3T>3FpJ!6igGItIrIQHAR&^moZdHGcHxd^;Q-2QCxk8H>a1ahOHnlpFKWA}#8q zjMcbG*!S5;y_v4u8y+`g0Ul`Aw?_WHTe zwhgNuedP(U2{})pZO2TXLp)~N@wm?-YLVpzTqUcu7E1j%MpZN(@qkr`As{2palcAQ z*a7KAb%H_GP;7=Pv6I|ph||%5J3Ry(rdO6Fxn*gR2Q>MnYBOq+_7RoJRC{vHJT%~# zIo@T!F>i$?I0ziS8GDB+pYdeNI*$i5;|%!PU2gZZ!k7Qzasv5In0i_99>1r5*$ z&CuV~{&QDb7boHKNzS((Zhfz{?eN~0UufU>R82d^D8Crjo?)NqbBgd9VTU?H>*l<( zZcZWJPRl5~(*&y?T3K^h#eGAFcchq840n15xl=HrkwW(x?t4(}MfFHCP-(cwcaT+N;TwWX)LYZK$E`#&5gR)|1jiv@~?iXxc(P5RSrmxBwk+2`ID{ZhEGEZa;Ack& zls^c$PyqZw;TH%$~)xs$gyr;g&=(HK9tD+6`=&Gob)Qi zS2y>p%yHFcjumdSwLzYKEuONh?o83`2rQXM(@0zZl$x2iac&>!jDzTALGHZjSq^W-aY+lon diff --git a/Source/Informes/2/InfAlbaranCliente.fr3 b/Source/Informes/2/InfAlbaranCliente.fr3 index 48a41af1..b5c269dd 100644 --- a/Source/Informes/2/InfAlbaranCliente.fr3 +++ b/Source/Informes/2/InfAlbaranCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -30,9 +30,7 @@ - - - + @@ -40,5 +38,6 @@ + diff --git a/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3 b/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3 index 27065b83..1d108d7e 100644 --- a/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3 +++ b/Source/Informes/2/InformeListadoBeneficiosGrafComp.fr3 @@ -1,8 +1,8 @@ - + - + @@ -19,15 +19,16 @@ - - + + - + - + + diff --git a/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 index df820868..524bcba1 100644 --- a/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 +++ b/Source/Informes/2/InformeListadoFacturasProveedorGrafComp.fr3 @@ -1,23 +1,24 @@ - + - + - - + + - + + diff --git a/Source/Informes/3/AlbaranCliente.rdx b/Source/Informes/3/AlbaranCliente.rdx index 0f5b2a53daa188a5b0ed01620cb502f55fff625a..893c5b50809d4711441e1127e0fab3e5afa21d1e 100644 GIT binary patch delta 2356 zcmciDYfKbZ6bJBgW_MX$OJRi-C?FtJv_*_4nqrNu3TRquBSz&RkHtpo15<6AHjTRo zzECT68m9J%-?R~=u5przN+DL#hizj`4f>_AA4pq)m4XN;{hwt=iH(WrhYtDeotb;* z-g7VK&baqj-FvJ}aSA)tcqN?&)t8hDd{!N2$|zmNL~#*BFA~u@l&L67Vu%!!Whmu% z-10^&Q6e5R#S`WEpNmotna2hH72xZLY9nyzP&-WFF|`;>4x=;%=~PYT^rW{iv;(!B zc3-1^m9^?}^JKdOI`-(atEGXNQ;aT+YU$(?%Y)90N2=97%`dyEqeri=+D6OMC_{1D z@@~l5v2TK2SFc}Rx z)i%qf9RSuht~fCaD+yuWz^u3q`kd&R4M92yrQQ}7?2_R!hPPn`@iD>jK@ z1y*SllzAe;hfKjnz^}~lI3oYxNskJC*dP3eFL=)+M+Z-pNhlzbus{GMjK zf5TFlH8^3QkAA=WLt8U>sJX4#L!Z4zHAu_jYD)aI1hSc4lhvEPB!X51GDSAxX`}Zp zk1e5>6O7J#Q00YNAOrP5zeQD&r*gfzB{4?5muT};Bp%{vvgoTJ9}1ulieL>CLkX0^ zXoy&`WmVgg_3g=AS7>o!!?JeX#ZlTc7r&`E73~=p$LXyup2qCdyl&2M%|ggoFc)sa z0NjB=7={s0@FuZ<6)-ajhET9U7$iXkWJ3<*LOv8gCDcO$G{OmJhc4)58c#hq@xm?W zg+AzKt-q2dO<9E*tcH9jfI=vOHBbyCPzvRG{0_dr+PNyWYdzI$*5+4pq8?q%3t9WA z3fE1j;c)HCDxRQi-pLN_tDR_ypD=kSMSdJceey20yFS9aeVbiMxA1TFxkg`&erwIRwk&z&@ zA5RNuEo~(yy-w?C3(ECWL7QnYZNgOr?ruYU9?rH=DQ(1C_7OGu&wCj!mUQ$fnHP%@ zQekYSwBou0%C+tq{I}}e9O#;fw$DN$?#}=>d=AIqBHV;>L@dXkpJcDN>nE8^XeZfh z0?FtAa6mLYwiCYnEAKx43lv z@D`RWYiv#bw#4E$ywC5jQ%_a-Add?=rA}5`mw&UD%FsayT++Y&fL$CQkw%*F7M!Oa zsN-}#{UK*F&(?AdbMk`kTbkt4Iv*(Z#v2PxwXpAe$%gOrV_%P+haFig-(nM*AP$mJ z`j_$&Xh-Vs%4#{xbHeJ5@-IBBT{+4gCD5YP9OIMRt3USzr`xS9H*NAs*S9vag?Xj^ T_F3MbJmJ5~Ms4qTwweC{6ak(I delta 2176 zcmcK5ZA?>F7zgn4+}^ef+X5|uXj@scFwt2+7TiQkO^`PQVQ!fvGt=zDvdzT3BpO^| z*?2QbX7t8hG)u;2HM)IpqmFBW%5X@Qm~3Vni;=~|i7yB$$Ye4E_J2yRkS!+Lhh6gH zoO{o?=RW7$=k!+ZG*|C5f9aISuehWP8dOT9b5x}`4B4AZB*c&LLM#_T*b;;x%~tlxj@SWHWFX;9z-f|l$q=97#l!f}OZ_1s#UN)q znTRo2N*+d0sgN64fo}bqT~6$kT7Ef5WhRxE=NPs?|U>F#`zT|#Rw`BWmPmdy`RH1)sydUMm2gK zEA$Q_4`Cd5PCTFKxhPvaIpK|SnrSi5i|3RM%OMX|Ksi*vHVDEY2!$8V{fS=V zDL$@iq#N1~!x^{$SD_cKK_A?Le4a7*VO$LKbf51OZKCshXPY<@6#I~r9ZI6B$L0v3 zvp!gF*yc)DqtG~;Shx2Fr0y2xCYnZ z2HYf(E&5RDhXGiHunV9Nil7)uU^T3PQYe$u??0e4s?=N`(m7H~>d3AR){?CHYRRT< zL`{pWr5BtyA2x`ZS4Z>J>5iUyvQv|qQG?anUV|}xH5mPWt;MO< z1}ZgjlKRzG8z?!2w-9d)PIXQv&L4jNesxa+Eu!^WTLV2IS@}h8z{*Wd;^#}7w~L5e z@i=$G%vW&|=NF(-UAdd)2a-@-09#={dtc<`XNpLFvm!S0kXQnWxD&zE=83!+lQJB>ZL}KM29?`BeQjamRnbP^`f8Q*; zIrL4SZ-7d5Xdi7SzqVPSJ>(eOUH`grc3oGU*n|N*(52b-Q-Ek#`zT27l2RR$-`Ye4 zMA>TL0rKS6k2msX$_JvwotSaC_JMzZyV;xiV%a<4Ncg=t<2tjbkLvz{1rS{bU zT5H31M-CpPpJ`a_K1yL}LRNPjqZaDZ@;;{wyLs@7gZz2a-aAD`B8OIWn% - + @@ -19,7 +19,9 @@ - + + + @@ -27,8 +29,8 @@ - - + + diff --git a/Source/Informes/3/InformeListadoBeneficiosGrafComp.fr3 b/Source/Informes/3/InformeListadoBeneficiosGrafComp.fr3 index c3b25328..64571841 100644 --- a/Source/Informes/3/InformeListadoBeneficiosGrafComp.fr3 +++ b/Source/Informes/3/InformeListadoBeneficiosGrafComp.fr3 @@ -1,8 +1,8 @@ - + - + @@ -19,15 +19,16 @@ - - + + - + - + + diff --git a/Source/Informes/3/InformeListadoFacturasProveedorGrafComp.fr3 b/Source/Informes/3/InformeListadoFacturasProveedorGrafComp.fr3 index f9b29aa5..481a9476 100644 --- a/Source/Informes/3/InformeListadoFacturasProveedorGrafComp.fr3 +++ b/Source/Informes/3/InformeListadoFacturasProveedorGrafComp.fr3 @@ -1,23 +1,24 @@ - + - + - - + + - + + diff --git a/Source/Informes/4/AlbaranCliente.rdx b/Source/Informes/4/AlbaranCliente.rdx index a829ab5726279cdd3254e763562adf6516967e0c..50dd72d978520d09a27bb2e7c0e7006d64103fff 100644 GIT binary patch delta 2217 zcmbu>eN2^A9Ki8&?tLyS6r?L&d_hoNv^5zq-?B{sc~M>judvycP1|TK&>7WcSajKH z5d{hN2*nBqg5t{sv(vOS*D8n7?9GhTa_Uyi{-{6F{%foC{lR^Zw%FV{+lOycT+q%VitRHbfMYe8IAd6u~K!~Eb*rAIh>#-O69#uz35Tu^SMeL zwZ`k@EbZsf0j}1{pZ};MrrKHVmq4eN+JMo%HTSzix|d~;4}EtAb8ksaF~2#L zq12Sg6K-0%NzZIfb(DYoV|Lni`ay#KGDfMGXxbw4Ci}bh-5E})-CC)$MD+kCCF4@u zexsyCiroJJb@VuHsza?g?`w#wsj4ZcSn@E%u8KMD4LM3_tiVd-As>Y(LJ2mZ6lJKu z76h>k)u_QE*nyqcjSCpV6pJhB>Lw~ zf6@ZGEonq&$)QYS`UDy|?#3xx#F)(rT-EE{In6Ym0MRES4H?M9GUTA#uAhHi2W8sR zyQOpNcFm&gb}y4#P=W2JLp_?%i7*TzHn{MVo_#KHaS9hPhAX&^8@P#ExQ$qz7Cc&ZbXLn-i-4stv3;c> znRI(TKWclaA0u6})eKi`bytq3Y!w4M1j%g!B)7dd1IejNaw;UBLQ*Fw+l3|!YxC#m z#!w<%_^np!umSaW4qX_*1zelvciLheLx?iSkWZo$l3OXVJlrKxOuHmXmP;vQ$?!o4 zO{|+L4xT_AUcf78!2xt240rv={3IZm+pmb@ff9(!uLvb5h0IlgdI_(h6%t@C4nY>n zu-3|a(X+@T_LPJqu^VxhkxvCKpCfr0vbZHUNwzFr7VJb&?ppo#gXyPyQ4Y0Z$9pnj zrgoSFAv?+4MgL>h%)Ds`Fbsp}Ycu=$Y=TGDgcRBM`F2PDS9)&z`(}A=bz#e}O5-bh z4;RyrzT~>eT?D0<~+sj72 zm#?3fE<8d>EkjDZR%&~Cs4BtqIZpV@xBQPWe#YvcZ9V%_Vr<8`Z{)*ipBeLMJ!%_2 RtM|-_p40BNKQ6^P{{UUuXy5<< delta 2172 zcmb`}eN2^A9Ki8&p8H&2c(2msCEmn0SkBqVL=olf;sq3g1hfB~FKxN9bZM(m=4H(S zS|Fziq{w_ShR&2F(wvXpL&vVXs ze&=`2!?mg3)70)U*86=t31Mb&n}kU@7%(vQo#n z6PKb?hPc_|ka$;`0%%fCI3YTf-drwkE z4KJI%HC;<*DVFir`O9A5Dow8BpMR)p%ntjBfCM_XSZPLk*ROJ?b|1?m*SxcnxkE;> z%rACbcqD83hMSfTNRN+O_l{NV&g{CSHxT?cainJ^Z8fRW{oQf1(<$|eR;rPxp5mrt zT#DPTnY2ie@t;%ATqpk3!7}6C*PPP0agXV@6T`Mr8mqAu>#!b0*ob13pbX`xz-Clq z3$~&L^=QCO?86AgFoD~+gGt=QLp;J1oTkL%o)mdoFS$E~0ZdVx%kdAi$F`L-wJ6K7 z*4d^mkZpDa{8q?kasqkgjJ?EZ4ZNv~+?WfQMP}LriMtdMcMuYH2$iUU#Q(M#NXc*- zQZDK|xs;{MUBV%*BN)Oc#+ zHET}yav6dO)M5|z;s~12f>uPG`pio@IA2${+X=e1A%b>vpc7r_MvoKB{z9Ad?A6B3 zNq0gy2?zMNYg;>Y)cLV>oAyRIcV6>kTebP_OJBH%)3phu2qJ_kRAVa|uoL@m2oVfn z6l0jc9Zcdb9^w(E;Nwkxq#^^E$VMK5sL*P?s->|9dvOFUXvGP%A%b>vpc7r_HvUMN zcaYX;b0f0CT#w}9GX%``_JAqxPIE4{_uA`ZkD?@nD)ya9Lq3vx$bpj+BS%4!-UI3D zHET{kZaR8=dcgUp=aBqqTyV0|lf*GUb28tmkZkOSWW(TNNETd@1tA#_vRYZ>^NVg$G6_?fm?zz|UmnPNAZA*+`n8|ZGLY-I5a+0ZfsQGpODu?u^Y z3ai63j^Z7>hxgF}cZX#?5|FIrJ`^vMKx91|QH(Ok+9aq(977lqpg}KAL4u7Z`NE3T zrnJvz4u4n`E@b8n_^<1zVT^3W5F}JdwV&6x2aLlN3+?Y=cnL$q!f^`wR>bioB*eZ1 zIrZ*|AEo_2obY)MxVwP~yvNeY-0#2ev}z*inX+=Anv~C8yZ0?lVyr}Yw%zF)_*N&s zSP}jV|Rf%NzdJ zuf26k$J!5uU%GVu#&mmR_!;>@^Uy^?kXojdI$vt%^0{Xh^4nwgT)D%48z!$fy4q>I j`cqQ;y - + @@ -32,7 +32,7 @@ - + diff --git a/Source/Informes/5/AlbaranCliente.rdx b/Source/Informes/5/AlbaranCliente.rdx index f60b1e7fb4e0e814e3d62ef8e89bc662d2c1baba..96157c26f4277dc215c7b9ed3a2c87db0f591896 100644 GIT binary patch delta 2246 zcmb8we@L8l90&04=eZx&vGeq9`6J!w#AdcRQ_p5A@|?d<&+`|iw7HpSrmpEGtU0%v zj?L+u-tCD!qZTBiKcYd>$sQ14h6JKeNvlN=2&48#unds}E$scdyJra_SYLSE_s8>m zzu(XI`F@}0&fGAbxnZ12l*lJLrD*V{~~5j>6%PAjT0@=v;` zc&Als3gvt=rv+K3&rDfHErx5hVB=#s2CCQZuyUlE(}GPV!%OMf*xF?tWybLDXj+#c z`8U1CI}{(PKYA>9JX_GT(%SIl?xZ`Ehv4_2cRx2GIl?h%{X(rmaD6KYaSuVgh(>!wFHEXebQUQ@lNzMwL>5h>s>&g;B-AqaLs4mcnmoKOfwPy(e; z4lbw!H+Y~LYM>FC;4EB&08GOzSb`O}55L1IJOIL~<0bq&4Q8-FEd0H;`sQ~F#KE*BaF2}x8cEiSSt4_%ZS zYH)=bTosgqPNyr#gY4@Hs?&zpTS>=5w>m?&E>_YBTr6@^F0y_%smQXcsEI7fSQX8Y zPjP!_f_&=F9;zUN5ATCs$*7^ywtO6UClo*-6a#;4DxeB#pb6UHEL?+WSb|lMFjOR1 zAPyXWAcPYTu&9T2g=%SM`Z*NO!!TTc5g3JwFb0=k9Q;Z~Ep5GH($os($oOm;}4J}5w zB#bw=9C(8(0h{a<9u(ezW6%c!a0vQ>TLBjFQ|+ujXoR0?*H5@+p6!lO0Qb<nU}(WPkHq;NP_}naqB_?_d68H8={6NA-}h61 mJnG0vx@(PCx!uTrsp_$DG7zn+Cnl&%vV>bnySnBlv;H5JVsVK8 delta 2147 zcmbW&du&rx90&08Yj4-3u6wjNhtzHkhV123?8abh-HXB9ql|)Pu48VJftyD5Vrw_q z)NBjJh}!{fAd!st7i531G~*_OKSmb+fha}<1B*lh?jJ)m?hlC3%#6wx`ar>z!J9*yHS4y;~$sfiqp2v%JT?uCkfSLdE1=0 z`VJlzX^Q0BnNyoID|zW}p_a@w=W^p;a!j;aS?}PLu1sxCNtXOfV{YSPp5>zDkJ*eN zY4QifHaPhwj*@%UrNqjlS(4sCMI(itv}nKR2t#Wth}L68F*!2|hF2%Dh@wn7Pbp$y8Q z61G7V)PWCzFac-b9L&IFxC!^*dsu+`@Bkh{$`byW5w`{G5D&jC{YawJYq z>^nZyEb3ves)!afF?`MDG23~K{pdabBjKcYt77sfvd-a>O%A)MB2Ky;8S-N#HGIU; zN4Z911sKI6w*W_13>;l4aC8+=8O~jGoiaH{4v>QjfDs@E$ANJ$9E1|iO#Yhe3f944 za0pppd&(mDxtPgS$OaGO!*I-v`?p$B?l6n^}6{>Ih0OZ;#C>ZSScxHW@h z{~EXRZ#G6AU$du1BpQ$7M;VX#r$-z@pFZH73_=KaM+f2jpzL(54?9B@ePtE$PT!sG|n*X&=sLR_6KPz;M%4&>p9lA~XrDFG6Lx;P#sd!-(Gy;#MY8i2l)};y-nn{11367w`4!3G z4#P>9S>Yzi?0yu7%%PS5hdHKAH&V$^BR=kjaX1UJE8IhwJ&4MT4&RRaAWs3D_%w_Y z;ZrG!;?pUCQYeE8sDx&C9omIx6kAif_{_{Ap_acoQ|4^guHmGi&d@Mn!x(V=MU? zJdSVQ|GjZz+GG1@{8?Ty8~mh75dOH#iSyG-wHr){%T?SS4qd;pkFJsP_Af2_pZAxK zO^dboEsaHwJbkK-hKLIFoCEX~$w_PLg?8FTRG?LLP`Y`dxLtdrgPu;yX}bG1ez43K zg9!!aJf8DB&h_aI^2OuFML7||M1|Uo5QV8yKQcgf9agWWkALsM$il NTgmuzaU8GH-vLTTSHS=P diff --git a/Source/Informes/5/InfAlbaranCliente.fr3 b/Source/Informes/5/InfAlbaranCliente.fr3 index b8d07bb1..c1165400 100644 --- a/Source/Informes/5/InfAlbaranCliente.fr3 +++ b/Source/Informes/5/InfAlbaranCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -23,13 +23,13 @@ - + - + diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas index 578d77ad..531bff02 100644 --- a/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptWordAlbaranCliente.pas @@ -180,6 +180,18 @@ begin ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString); if BookmarkExists('CorreoEmpresa') then ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString); + + if BookmarkExists('ImporteTotal') then + if ImprimirPrecio then + begin + ReplaceBookmark('ImporteTotal', FormatFloat(DISPLAY_EUROS2, FieldByName('IMPORTE_TOTAL').AsFloat)); + end + else + begin + ReplaceBookmark('ImporteTotal', ''); + if BookmarkExists('DescripcionImporteTotal') then + ReplaceBookmark('DescripcionImporteTotal', ''); + end; end; end; diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index 01a1c649..fecfa67e 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -2379,7 +2379,63 @@ object RptFacturasCliente: TRptFacturasCliente Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -2449,19 +2505,21 @@ object RptFacturasCliente: TRptFacturasCliente '(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 + '_EMPRESA1'#10'and (ANO = :ANO1)'#10'AND comp2.ID_TIPO_FACTURA in (:T1,:T' + + '2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,:T14,:T15)'#10'gro' + + 'up by 1,2,3'#10'order by 1 desc,2 asc) periodo_gastos1 on (VALOR = p' + + 'eriodo_gastos1.NFILA)'#10#10'left join'#10'(select comp3.ID_EMPRESA, comp3' + + '.ANO, MES as NFILA, SUM(comp3.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'f' + + 'rom V_INF_FAC_CLIENTE comp3'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and ' + + '(ANO = :ANO2)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_ingr' + + 'esos2 on (VALOR = periodo_ingresos2.NFILA)'#10#10'left join'#10'(select co' + + 'mp4.ID_EMPRESA, comp4.ANO, MES as NFILA, SUM(comp4.BASE_IMPONIBL' + + 'E) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp4'#10'where ID_EMPR' + + 'ESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'AND comp4.ID_TIPO_FACTURA i' + + 'n (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,:T14,' + + ':T15)'#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'MENSUAL'#39#10'order ' + + 'by valor asc'#10 StatementType = stSQL ColumnMappings = < item @@ -2640,7 +2698,63 @@ object RptFacturasCliente: TRptFacturasCliente Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -2710,19 +2824,21 @@ object RptFacturasCliente: TRptFacturasCliente '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 + 'PRESA = :ID_EMPRESA1'#10'and (ANO = :ANO1)'#10'AND comp2.ID_TIPO_FACTURA' + + ' in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,:T1' + + '4,:T15)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_gastos1 on' + + ' (VALOR = periodo_gastos1.NFILA)'#10#10'left join'#10'(select comp3.ID_EMP' + + 'RESA, comp3.ANO, SEMESTRE as NFILA, SUM(comp3.BASE_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'order by 1 desc,2 a' + + 'sc) periodo_ingresos2 on (VALOR = periodo_ingresos2.NFILA)'#10#10'left' + + ' join'#10'(select comp4.ID_EMPRESA, comp4.ANO, SEMESTRE as NFILA, SU' + + 'M(comp4.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDO' + + 'R comp4'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'AND co' + + 'mp4.ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10' + + ',:T11,:T12,:T13,:T14,:T15)'#10'group by 1,2,3'#10'order by 1 desc,2 asc)' + + ' periodo_gastos2 on (VALOR = periodo_gastos2.NFILA)'#10#10#10'where peri' + + 'odo= '#39'SEMESTRAL'#39#10'order by valor asc'#10 StatementType = stSQL ColumnMappings = < item @@ -2901,7 +3017,63 @@ object RptFacturasCliente: TRptFacturasCliente Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -2971,20 +3143,21 @@ object RptFacturasCliente: TRptFacturasCliente '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 + 'EMPRESA = :ID_EMPRESA1'#10'and (ANO = :ANO1)'#10'AND comp2.ID_TIPO_FACTU' + + 'RA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,:' + + 'T14,:T15)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo_gastos1 ' + + 'on (VALOR = periodo_gastos1.NFILA)'#10#10'left join'#10'(select comp3.ID_E' + + 'MPRESA, comp3.ANO, TRIMESTRE as NFILA, SUM(comp3.BASE_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'order by 1 desc,' + + '2 asc) periodo_ingresos2 on (VALOR = periodo_ingresos2.NFILA)'#10#10'l' + + 'eft join'#10'(select comp4.ID_EMPRESA, comp4.ANO, TRIMESTRE as NFILA' + + ', SUM(comp4.BASE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROV' + + 'EEDOR comp4'#10'where ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'AN' + + 'D comp4.ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,' + + ':T10,:T11,:T12,:T13,:T14,:T15)'#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 @@ -5321,7 +5494,63 @@ object RptFacturasCliente: TRptFacturasCliente Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -5436,7 +5665,63 @@ object RptFacturasCliente: TRptFacturasCliente Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -5551,7 +5836,63 @@ object RptFacturasCliente: TRptFacturasCliente Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index 7f7529f5..236106d9 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -110,10 +110,10 @@ type frxDBDInformeIVAComparativoFacturasPro: TfrxDBDataset; DADSInformeIVAComparativoFacturasPro: TDADataSource; tbl_InformeIVAComparativoFacturasPro: TDAMemDataTable; - schReport: TDASchema; tbl_InformeListadoBeneficiosGrafCompSemestralTipoGasto: TDAMemDataTable; tbl_InformeListadoBeneficiosGrafCompTrimestralTipoGasto: TDAMemDataTable; tbl_InformeListadoBeneficiosGrafCompMensualTipoGasto: TDAMemDataTable; + schReport: TDASchema; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); private @@ -141,6 +141,7 @@ type procedure PrepararTablaResumenInforme(ATabla: IDADataset); procedure PrepararTablaInformeGrafComp(ATabla: TDAMemDataTable); procedure PrepararTablaResumenInformeGrafComp(ATabla: TDAMemDataTable); + procedure RellenarParametro(ANombreParametro: String; AID: Integer; AListaIDTiposGasto: TIntegerArray; ATabla: TDADataSource); function _GenerarInforme(const TipoInforme: String): Binary; procedure IniciarParametrosInforme; procedure RecuperarNombresClientes; @@ -246,6 +247,7 @@ var AStream: TMemoryStream; AInforme: Variant; ACadena: TStringList; + i: Integer; begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" @@ -267,28 +269,18 @@ begin 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 + //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 - 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; + PrepararTablaInformeGrafComp(tbl_InformeListadoBeneficiosGrafCompSemestralTipoGasto); + + //Rellenamos los 15 parametros de tipos de gasto (1..15, en caso de estar filtrado a 0 + for i := 1 to 15 do + RellenarParametro('T' + IntToStr(i), i, FListaIDTiposdeGasto, DASInformeListadoFacturasGrafComp); +// DASInformeListadoFacturasGrafComp.DataTable.ParamByName('ID_TIPO_GASTO').AsInteger := FListaIDTiposdeGasto.Items[0]; DASInformeListadoFacturasGrafComp.DataTable.Active := True; Result := Binary.Create; @@ -305,7 +297,9 @@ begin if Assigned(FListaIDTiposdeGasto) and (FListaIDTiposdeGasto.Count > 0) then begin ACadena.Clear; - ACadena.Add('Solo tipo de gasto ' + FListaNombreTiposGasto.Items[0]); + ACadena.Add('Solo tipo de gasto: '); + for i := 0 to FListaNombreTiposGasto.Count - 1 do + ACadena.Add(FListaNombreTiposGasto.Items[i]); end; frxReport.Variables.Variables['TextoParametros']:= ACadena.Text; @@ -889,6 +883,15 @@ begin end; end; +procedure TRptFacturasCliente.RellenarParametro(ANombreParametro: String; AID: Integer; AListaIDTiposGasto: TIntegerArray; ATabla: TDADataSource); +begin + if (AListaIDTiposGasto.Count > AID-1) + then ATabla.DataTable.ParamByName(ANombreParametro).AsInteger := FListaIDTiposdeGasto.Items[AID-1] + else if (AListaIDTiposGasto.Count <> 0) then + ATabla.DataTable.ParamByName(ANombreParametro).AsInteger := 0 + else ATabla.DataTable.ParamByName(ANombreParametro).AsInteger := AID; +end; + procedure TRptFacturasCliente._GenerarFactura(const ID: Integer; const VerSello: Boolean = True; const VerCopia: Boolean = True); var AInforme: Variant; diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas index 3fea84da..aeeec8f7 100644 --- a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -50,7 +50,8 @@ type function EsEliminable(AFactura: IBizFacturaProveedor): Boolean; function ElegirFacturas(AFacturas : IBizFacturaProveedor; AMensaje: String; AMultiSelect: Boolean): IBizFacturaProveedor; - function ExtraerSeleccionados(ARecibosProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; + function ExtraerSeleccionados(ARecibosProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; overload; + function ExtraerSeleccionados(ATiposFacturasProveedor: IBizTiposFacturaProveedor) : IBizTiposFacturaProveedor; overload; function DarListaAnosFacturas: TStringList; procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); @@ -122,7 +123,8 @@ type function EsEliminable(AFactura: IBizFacturaProveedor): Boolean; function ElegirFacturas(AFacturas : IBizFacturaProveedor; AMensaje: String; AMultiSelect: Boolean): IBizFacturaProveedor; - function ExtraerSeleccionados(AFacturasProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; + function ExtraerSeleccionados(AFacturasProveedor: IBizFacturaProveedor) : IBizFacturaProveedor; overload; + function ExtraerSeleccionados(ATiposFacturasProveedor: IBizTiposFacturaProveedor) : IBizTiposFacturaProveedor; overload; function DarListaAnosFacturas: TStringList; procedure FiltrarAno(AFactura: IBizFacturaProveedor; ADynWhereDataTable: WideString; const Ano: String); @@ -621,6 +623,11 @@ begin if (AFactura.Detalles.DataTable.RecordCount = 0) then raise Exception.Create('La factura debe tener al menos un concepto en su contenido'); + { Esta validacin puede saltar cuando se generan facturas automticamente + por albaranes o pedidos y el Proveedor no tiene Tipo de IVA puesto. } + if (AFactura.ID_TIPO_FACTURA = 0) then + raise Exception.Create('Debe indicar un tipo de gasto para esta factura'); + { Esta validacin puede saltar cuando se generan facturas automticamente por albaranes o pedidos y el Proveedor no tiene Tipo de IVA puesto. } { if (AFactura.ID_TIPO_IVA = 0) then @@ -919,6 +926,15 @@ begin end; end; +function TFacturasProveedorController.ExtraerSeleccionados(ATiposFacturasProveedor: IBizTiposFacturaProveedor): IBizTiposFacturaProveedor; +var + ASeleccionados : IBizTiposFacturaProveedor; +begin + ASeleccionados := (darTiposFacturaProveedor as IBizTiposFacturaProveedor); + CopyDataTableDA5(ATiposFacturasProveedor.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + function TFacturasProveedorController.ExtraerSeleccionados(AFacturasProveedor: IBizFacturaProveedor): IBizFacturaProveedor; var ASeleccionados : IBizFacturaProveedor; diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas index 5ff0b3ff..be9ca843 100644 --- a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas @@ -48,7 +48,14 @@ type procedure CalcularImporteTotal; end; - TBizTiposFacturaProveedor = class(TTiposFacturaProveedorDataTableRules, IBizTiposFacturaProveedor) + TBizTiposFacturaProveedor = class(TTiposFacturaProveedorDataTableRules, IBizTiposFacturaProveedor, ISeleccionable) + private + FSeleccionableInterface : ISeleccionable; + public + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface + write FSeleccionableInterface implements ISeleccionable; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; end; TBizFacturaProveedor = class(TFacturasProveedorDataTableRules, IBizFacturaProveedor, ISeleccionable) @@ -303,6 +310,7 @@ begin RE := 0; SITUACION := CTE_PENDIENTE; FACTURA_WEB := 0; + ID_TIPO_FACTURA := 15; //COMPRAS POR DEFECTO end; procedure TBizFacturaProveedor.IVAOnChange(Sender: TDACustomField); @@ -388,6 +396,20 @@ begin FProveedor := AValue; end; +{ TBizTiposFacturaProveedor } + +constructor TBizTiposFacturaProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizTiposFacturaProveedor.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + initialization RegisterDataTableRules(BIZ_CLIENT_FACTURA_PROVEEDOR, TBizFacturaProveedor); RegisterDataTableRules(BIZ_CLIENT_TIPOS_FACTURA_PROVEEDOR, TBizTiposFacturaProveedor); diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm index cb1bbbf9..85132e7f 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm @@ -1537,7 +1537,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -1562,14 +1618,15 @@ object RptFacturasProveedor: TRptFacturasProveedor '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 + 'ANO1)'#10'AND ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T' + + '9,:T10,:T11,:T12,:T13,:T14,:T15)'#10'group by 1,2,3'#10'order by 1 desc,' + + '2 asc) periodo1 on (VALOR = periodo1.NFILA)'#10#10'left join'#10'(select c' + + 'omp2.ID_EMPRESA, comp2.ANO, MES as NFILA, SUM(comp2.BASE_IMPONIB' + + 'LE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp2'#10'where ID_EMP' + + 'RESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'AND ID_TIPO_FACTURA in (:T' + + '1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,:T14,:T15)' + + #10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo2 on (VALOR = peri' + + 'odo2.NFILA)'#10#10'where periodo= '#39'MENSUAL'#39#10'order by valor asc'#10#10 StatementType = stSQL ColumnMappings = < item @@ -1652,7 +1709,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -1677,14 +1790,16 @@ object RptFacturasProveedor: TRptFacturasProveedor '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 + 'O = :ANO1)'#10'AND ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:' + + 'T8,:T9,:T10,:T11,:T12,:T13,:T14,:T15)'#10'group by 1,2,3'#10'order by 1 ' + + 'desc,2 asc) periodo1 on (VALOR = periodo1.NFILA)'#10#10'left join'#10'(sel' + + 'ect comp2.ID_EMPRESA, comp2.ANO, SEMESTRE as NFILA, SUM(comp2.BA' + + 'SE_IMPONIBLE) as IMPORTE_TOTAL'#10'from V_INF_FAC_PROVEEDOR comp2'#10'wh' + + 'ere ID_EMPRESA = :ID_EMPRESA2'#10'and (ANO = :ANO2)'#10'AND ID_TIPO_FACT' + + 'URA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,' + + ':T14,:T15)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo2 on (VA' + + 'LOR = periodo2.NFILA)'#10#10'where periodo= '#39'SEMESTRAL'#39#10'order by valor' + + ' asc'#10#10#10 StatementType = stSQL ColumnMappings = < item @@ -1767,7 +1882,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -1792,14 +1963,16 @@ object RptFacturasProveedor: TRptFacturasProveedor '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 + 'NO = :ANO1)'#10'AND ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,' + + ':T8,:T9,:T10,:T11,:T12,:T13,:T14,:T15)'#10'group by 1,2,3'#10'order by 1' + + ' desc,2 asc) periodo1 on (VALOR = periodo1.NFILA)'#10#10'left join'#10'(se' + + 'lect comp2.ID_EMPRESA, comp2.ANO, TRIMESTRE 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_FA' + + 'CTURA in (:T1,:T2,:T3,:T4,:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T1' + + '3,:T14,:T15)'#10'group by 1,2,3'#10'order by 1 desc,2 asc) periodo2 on (' + + 'VALOR = periodo2.NFILA)'#10#10'where periodo= '#39'TRIMESTRAL'#39#10'order by va' + + 'lor asc'#10#10#10 StatementType = stSQL ColumnMappings = < item @@ -1882,7 +2055,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -1900,8 +2129,9 @@ object RptFacturasProveedor: TRptFacturasProveedor ' 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 + 'EMPRESA'#10'and P.ANO = :ANO'#10'AND ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4' + + ',:T5,:T6,:T7,:T8,:T9,:T10,:T11,:T12,:T13,:T14,:T15)'#10'group by 1,2' + + ',3'#10'order by 1,5 desc'#10'rows 1 to :NTOP'#10#10#10 StatementType = stSQL ColumnMappings = < item @@ -1980,7 +2210,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -1997,8 +2283,9 @@ object RptFacturasProveedor: TRptFacturasProveedor '= 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 + 'and P.ANO = :ANO'#10'AND ID_TIPO_FACTURA in (:T1,:T2,:T3,:T4,:T5,:T6' + + ',:T7,:T8,:T9,:T10,:T11,:T12,:T13,:T14,:T15)'#10'group by 1,2,3,4'#10'ord' + + 'er by 1,6 desc'#10'rows 1 to :NTOP'#10#10#10 StatementType = stSQL ColumnMappings = < item @@ -3023,7 +3310,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -3090,7 +3433,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -3108,7 +3507,7 @@ object RptFacturasProveedor: TRptFacturasProveedor LocalDataStreamer = Bin2DataStreamer LogicalName = 'InformeListadoFacturasGrafCompTrimestralTipoGasto' IndexDefs = <> - Left = 304 + Left = 296 Top = 448 end object tbl_InformeListadoFacturasGrafCompSemestralTipoGasto: TDAMemDataTable @@ -3157,7 +3556,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -3221,7 +3676,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item @@ -3281,7 +3792,63 @@ object RptFacturasProveedor: TRptFacturasProveedor Value = '' end item - Name = 'ID_TIPO_GASTO' + Name = 'T1' + Value = '' + end + item + Name = 'T2' + Value = '' + end + item + Name = 'T3' + Value = '' + end + item + Name = 'T4' + Value = '' + end + item + Name = 'T5' + Value = '' + end + item + Name = 'T6' + Value = '' + end + item + Name = 'T7' + Value = '' + end + item + Name = 'T8' + Value = '' + end + item + Name = 'T9' + Value = '' + end + item + Name = 'T10' + Value = '' + end + item + Name = 'T11' + Value = '' + end + item + Name = 'T12' + Value = '' + end + item + Name = 'T13' + Value = '' + end + item + Name = 'T14' + Value = '' + end + item + Name = 'T15' Value = '' end item diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas index 3738ed5f..575893bc 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas @@ -81,6 +81,7 @@ type procedure PrepararTablaResumenInforme(ATabla: IDADataset); procedure PrepararTablaInformeGrafComp(ATabla: TDAMemDataTable); procedure PrepararTablaResumenInformeGrafComp(ATabla: TDAMemDataTable); + procedure RellenarParametro(ANombreParametro: String; AID: Integer; AListaIDTiposGasto: TIntegerArray; ATabla: TDADataSource); procedure IniciarParametrosInforme; function _GenerarInforme(const TipoInforme: String): Binary; public @@ -142,6 +143,7 @@ var AStream: TMemoryStream; AInforme: Variant; ACadena: TStringList; + i: Integer; begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" @@ -167,17 +169,13 @@ begin 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); - + //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); @@ -185,27 +183,9 @@ begin 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; + //Rellenamos los 15 parametros de tipos de gasto (1..15, en caso de estar filtrado a 0 + for i := 1 to 15 do + RellenarParametro('T' + IntToStr(i), i, FListaIDTiposdeGasto, DASInformeListadoFacturasGrafComp); DASInformeListadoFacturasGrafComp.DataTable.Active := True; DADSInformeListadoProveedoresMayorFacturacionResumen.DataTable.Active := True; @@ -224,8 +204,10 @@ begin 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]); + ACadena.Clear; + ACadena.Add('Solo tipo de gasto: '); + for i := 0 to FListaNombreTiposGasto.Count - 1 do + ACadena.Add(FListaNombreTiposGasto.Items[i]); end; frxReport.Variables.Variables['TextoParametros']:= ACadena.Text; @@ -478,6 +460,7 @@ procedure TRptFacturasProveedor.IniciarParametrosInforme; var ATextos : TStringList; ACadena : String; + i: Integer; begin ATextos := TStringList.Create; @@ -515,9 +498,11 @@ begin ACadena := ACadena + ' (desglosados)' end; - if Assigned(FListaIDTiposdeGasto) and (FListaIDTiposdeGasto.Count > 0) then + if Assigned(FListaIDTiposdeGasto) and (FListaNombreTiposGasto.Count > 0) then begin - ACadena := 'Solo tipo de gasto ' + FListaNombreTiposGasto.Items[0]; + ACadena := 'Solo tipo de gasto: '; + for i := 0 to FListaNombreTiposGasto.Count - 1 do + ACadena := ACadena + FListaNombreTiposGasto.Items[i] + #13; end else begin ACadena := 'Todos los tipos de gasto'; @@ -600,20 +585,25 @@ begin end; // Filtrar el informe por tipo de gasto - if Assigned(FListaIDTiposdeGasto) then + if Assigned(FListaIDTiposdeGasto) + and (FListaIDTiposdeGasto.Count > 0) then begin with ATabla.DynamicWhere do begin + Condicion := Nil; 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 + if (Condicion = Nil) then + // (ID_TIPO_FACTURA = ID) + Condicion := NewBinaryExpression(NewField('', fld_FacturasProveedorID_TIPO_FACTURA), NewConstant(FListaIDTiposdeGasto.Items[i], datInteger), dboEqual) else - Expression := NewBinaryExpression(Expression, Condicion, dboAnd); - end; + Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_FacturasProveedorID_TIPO_FACTURA), NewConstant(FListaIDTiposdeGasto.Items[i], datInteger), dboEqual), Condicion, dboOr); + end; + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; end; @@ -810,6 +800,15 @@ begin end; +procedure TRptFacturasProveedor.RellenarParametro(ANombreParametro: String; AID: Integer; AListaIDTiposGasto: TIntegerArray; ATabla: TDADataSource); +begin + if (AListaIDTiposGasto.Count > AID-1) + then ATabla.DataTable.ParamByName(ANombreParametro).AsInteger := FListaIDTiposdeGasto.Items[AID-1] + else if (AListaIDTiposGasto.Count <> 0) then + ATabla.DataTable.ParamByName(ANombreParametro).AsInteger := 0 + else ATabla.DataTable.ParamByName(ANombreParametro).AsInteger := AID; +end; + function TRptFacturasProveedor._GenerarInforme(const TipoInforme: String): Binary; var AInforme: Variant; diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.dfm b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.dfm index 9534de05..819b88e5 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.dfm +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.dfm @@ -3,7 +3,7 @@ object fEditorElegirTipoGasto: TfEditorElegirTipoGasto Top = 0 BorderStyle = bsDialog Caption = 'Tipo de gasto' - ClientHeight = 124 + ClientHeight = 138 ClientWidth = 500 Color = clWindow Font.Charset = DEFAULT_CHARSET @@ -34,11 +34,12 @@ object fEditorElegirTipoGasto: TfEditorElegirTipoGasto end object Panel1: TPanel Left = 0 - Top = 83 + Top = 97 Width = 500 Height = 41 Align = alBottom TabOrder = 0 + ExplicitTop = 381 DesignSize = ( 500 41) diff --git a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.pas b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.pas index c89a2fb4..59c2d45b 100644 --- a/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.pas +++ b/Source/Modulos/Facturas de proveedor/Views/uEditorElegirTipoGasto.pas @@ -7,7 +7,10 @@ uses Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorElegirTipoGasto, cxGraphics, DB, uDAInterfaces, uDADataTable, cxDBEdit, uFacturasProveedorController, - cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uBizFacturasProveedor; + cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uBizFacturasProveedor, + cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxDBData, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, + cxClasses, cxGridCustomView, cxGrid; type TfEditorElegirTipoGasto = class(TfEditorBasico, IEditorElegirTipoGasto) diff --git a/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj b/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj index 0d7fe84b..fb997c0a 100644 --- a/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj +++ b/Source/Modulos/Gestor de informes/GestorInformes_Group.groupproj @@ -9,6 +9,7 @@ + @@ -161,14 +162,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj index beb8dba6..cac55e5c 100644 --- a/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj +++ b/Source/Modulos/Gestor de informes/Views/GestorInformes_view.dproj @@ -38,48 +38,54 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorInformeBase
TForm @@ -181,12 +187,6 @@
frViewPeriodoFechas
TFrame
- - - - - -