From 85066a87b07c1c091bc639981257d2e645bcea3f Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 23 Nov 2011 16:45:58 +0000 Subject: [PATCH] Se adaptan informes a abeto design, falta repaso de informes globales y por empresas git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@12 93f398dd-4eb6-7a46-baf6-13f46f578da2 --- Build/Build.fbl6 | Bin 4128768 -> 4259840 bytes Source/Base/Base.dproj | 96 +++++++++--------- Source/GUIBase/GUIBase.dproj | 56 +++++----- .../uAlbaranesClienteController.pas | 16 +-- .../uAlbaranesClienteReportController.pas | 21 ++-- .../Data/uDataModuleAlbaranesCliente.pas | 13 ++- .../uIDataModuleAlbaranesClienteReport.pas | 4 +- .../Reports/uRptAlbaranesCliente_Server.pas | 19 ++-- .../Servidor/srvAlbaranesCliente_Impl.pas | 7 +- .../Views/uEditorAlbaranCliente.dfm | 4 + .../Views/uEditorAlbaranCliente.pas | 12 ++- .../Views/uEditorAlbaranesCliente.dfm | 1 - .../Views/uEditorAlbaranesCliente.pas | 16 ++- .../Views/uViewAlbaranCliente.dfm | 10 +- .../Views/uViewAlbaranesCliente.dfm | 18 ++++ .../uContratosClienteController.pas | 16 +-- .../uContratosClienteReportController.pas | 25 +++-- .../Data/uDataModuleContratosCliente.pas | 13 ++- .../uIDataModuleContratosClienteReport.pas | 4 +- .../Reports/uRptContratosCliente_Server.dfm | 2 - .../Reports/uRptContratosCliente_Server.pas | 22 ++-- .../Servidor/srvContratosCliente_Impl.pas | 12 +-- .../Views/uEditorContratoCliente.dfm | 79 ++++++++------ .../Views/uEditorContratoCliente.pas | 17 +++- .../Views/uEditorContratosCliente.dfm | 2 +- .../Views/uEditorContratosCliente.pas | 16 ++- .../Controller/uFacturasClienteController.pas | 16 +-- .../uFacturasClienteReportController.pas | 16 +-- .../Data/uDataModuleFacturasCliente.pas | 6 +- .../uIDataModuleFacturasClienteReport.pas | 2 +- .../Reports/uRptFacturasCliente_Server.pas | 11 +- .../Servidor/srvFacturasCliente_Impl.pas | 6 +- .../Views/uEditorFacturaCliente.dfm | 2 + .../Views/uEditorFacturaCliente.pas | 12 ++- .../Views/uEditorFacturasCliente.dfm | 6 +- .../Views/uEditorFacturasCliente.pas | 14 ++- .../Views/uEditorPresupuestosCliente.pas | 4 +- Source/Servicios/FactuGES.RODL | 8 ++ Source/Servicios/FactuGES_Intf.pas | 28 ++--- Source/Servicios/FactuGES_Invk.pas | 24 +++-- Source/Servicios/RODLFile.res | Bin 43584 -> 43888 bytes Source/Servidor/FactuGES_Server.res | Bin 23352 -> 23360 bytes 42 files changed, 401 insertions(+), 255 deletions(-) diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 804fd31788dcf2465acbb89f540f5d0fff65cb7d..641697d5aa3a9ca15c68093e493b18dc61a5c79b 100644 GIT binary patch delta 259550 zcmeFa4}475);B&A^M58YNkn8~CK9F$jhJK-B2t1NA|f;;G&BeeQi9OYU-*{RYFr$RSi{FNeS0&-PY~ZKCbKbro3yNv-db=&dKw6p7-}Y@BRGV_S0i! zeZPCJv-dvx?6cQ8`|NSMo8)eHSwM7FZgjj1{@dId|CPxUa5O!X$sWRgsP}m<`ryOh zEh?Ez(?TXQ0pfroZ0W6s*corM{n^l^`qP6z1B^;$daNaP9;(8%{pr{mu_3PY8+LVo+(2do z_>Vt!917LKp-^@00f`DQD7x0GWwK~6+6#^aaCCu#`)>;Ti({b{BpVBlw}!E>vW3CI z4{+p8f_Wvmd4=hZhP@a(p;mZ8o#vsInHdD7^|fNrnyVh=&yy4P@aWyd5!^wsB1WZ$ z(bdrKPp^Tb_k#o5|42%T0+UGNHe)fV`XO+Wd=crh*8efUxAt&(i{jgFdH()$;1xxv z<95{TpxX^U?)|a+#|1wY{h0G(!jGPt_X6`YuIs~&4|{povSBlZ4H?#B*b~Ek%l=FD z*V*r6znZ-^dtvtE>|xpGhJG~kjiFBr)eil8);C!nW$nnCn>8`(nXD(Wv{`>2^4^eF zhpZhkW=NkQU55Oe`EBMGnXhIp&U_&=F*7x7?aT_qf5r$2VH-9(78c71}z&jV^EJlPYh}`=+Eh&rN5uPFnx0RsPsFFGz2fmC}*{aj;`r+%YxhfbJY zE_**DaKF}5vCFtYPR=biE+tj(8!Jfud@wO|k8yv^HC|4nKD^Mrtg!t`TOX1_CIR@QV|zqb!~e?;kvu1 zVbPIAWs8ayWiAR`)U>c+;kJck3kw!H7KSgpzo2$O&4Q{06$?ripjmKhe$D(X z^GoL^&5xQdn}25Bfq9$e<;}~SmohJAUg*5LbN9~OG`D1~V{Z7|`=z@}D@uz?V@g9y z@4i^`V%3WkFP6TT|6=Nkx941#b6`%*UsKOd*$rR*$J~lXV;e; zD%nz!Uy@#8FS$LdVb+;hM`l&eDw~x$%P}izR?w{bGcV2DGSfXXf2M6_=uE}TyE7VQ z9GOuzqi9CvjL;cP#SO*Vipz@^6c-ie6ekqlo_=Baf$62w^QWgyS4_VRJ;Q!muKQ1L?g3yv3pUN}>9plDN3T2V}qq3G1qnyD32GpD9Z zjhPxcwP{MjlE^rjwop5u)g$cD2Y9>@osF>iMP&^@jLiz;zg!|(g$JdUp8ozRU;rQ(FspB2v zqsD8--x^mtZtu7)<4VTmkINiq8y7ULDgQ!#UH*am>imlQ()|0+-F)uMbD7UMp0hkB zd+z4gQ)8>fmXBR9Hgl|FtYxh0(wMq22ga0*DIAkCCVY%y%-y`Yyxn=5^78W1^OEv3 zdAFav^z620S3X<%Z2Ge?&xSvHX>{G_1Eb4E7mm&uZ5gc@eSg%cQF}*i8I?aOb5zPG z!>BvC4Y}316}j%*?A+8`M{ZE={gI6$YetrhEFPIXGHIlJq-^A!5sf3xj5so)Y(%kZ zME(fJh@cU&5qF-s^vt1Wik``NCgB;&Gfg=+bLw*T=9K58<;3I|a%!L6{q)MGi=WPZ zTJiMl;b(@shZhb{AMO|)G`x0L&9H65%7zsTlMTC-eJcA<_U`P8?BZ;Dc2M@6p^Zc9 zhVC6&J~VZxeW+&W{j6JA^;tDpTe3>CY*~h^+e2K{Lskwc9+EvIX-N2xy3D(|)#RNviwEBY4q&F`Dt zH@t6SpQ=9YK81bK`y}2;vjrd|tr<@Ji{71ZngQ`-;bt~mmN=-^d ziaVt^B{wB0B`QUhQrGi9&+49KJ&Sr~_Dty+(=)W^-Q=3&Ey<9)7qrfwzO3c6)?OYP=xb&KjI>vk*gRO0T$Er}}=3lnn^Qxjtn!xI&WcM=*C z>JttnBqi7q3<>4VVrQN+)oF8ToQ?5k;*Z3a#}~)v#fQf$;_t@Q#qEyU6qg&97MBpG zh`Z&u;MnF^=_qxiJ7OH+j)tzMx*qDfvTIS-+^*qW6q?JJiq*v4 z?sBP1RhRNE3%X=>adfeCxfxR*QyWteH{Z4y3ZR%9gDX&vXCtD{)r`z^3_A+~sJ<~3; z-|Bd(V@=13j%giZIvP6GcG%rvWrt!{hwKir4tJhtc%tr!>L*g4us@-B;=b*ct=?8+ zE3{?X9JVN%!gjm;nfC7Xh3(VZC$+b?4{Cp>-KBPi+7-0RY!}n+X7s7(n&^t?(&*f1 zMfB~cGf`zxB~ejPny6cC>)Y0}Eo__FHl?ktt)lJi$TN`#A~!{rMHWZqMkYl@Mam*w zhpfA;Io1@b#d^VV$Wmo-TaqkM7MbNvn+t7@wAt3CtW80i&^C7?8X}HFR7aFWq(;~y zG!ci)Rc5z2#T;Y48D15>GQ2Q6JKPZ-9)7>|t=4B+A8B3IIsSeo`QWjDak{OZ^5*kt$yf?T!xFk3yI3?H;tO&jtv?*voP+m}IP?M>_RA;I- z<(bkYNNCo?JdnE%_&Wdrb3gVv1t^V zBkC%3g}PLot4>u%sWs|bs!OUm)m~M(DqZDJ1*v4Jy~<6>5@n1sNO@mzNl~FFRpctt z6)}oX#oZPSEsnG(YLV$`k+S7yh84l7s}J+4tbEg zR<>KVQkDh*3Y#oc79cxsIBPga5&Gf! zEPaN4fWEIw-%FpY@1~E}$Lc%lJLuc#BlQvbFnx&LsMqOL`T+d{-LJZPx?glZ>3-0C zr@NuMs=KVas5`Gat2?bbsXL)NsynPZsN1jGr`w}@Q@2yMUAI+NsoSVqr(3OCu3Ms8 zq?@OkqnoLlrkkRhq#Lgrs~fEwp&PEt(q-rd=v;kuy>!XCZn}6~tgf@JgRY$}QWv2M z(}n1aI-O3X3(!5#{;IvF{YCqe_6O~E+8f%d+RNID+Vk48+SA&T+7sHN+QZs|+Wp#n z+CADgwL7)jwOh57+Kt+E+SS_S+9ldW+IiYJ+L_vE+9}#e+VR@4+R@q(+Tq$PZH9J$ zOWRl5OPj3irj6IeYCCH?XxnKcwGrAdZHU&W)oE4Q0PO?KubO+BUo<~ye$afUxuLnL zxvaUUIj=dZIjuRVIiWeKIjlLT*{|8B*`s+=vs1HOvsF{6*{E5kS*=;FS)y5_nWvef znW>qknWCAb8Lt_u8Lb(i8Lr9FWN2IiG<`L_G|8H7ns`mDrn9Dlrky5I6QK#yglLQ! zod%>(tX>U-*6)IX_zP=BYsp}wlVtiGr|uRg0jtv;zfp+2fUtUjpTuimHLqkdDp zQ@vfiRb8pxs9vXDtzNEPqF$t)r=Fvpsh*~uqMoE4uO6!&tsbEsuFg_txYPsGebv3x z$?9(Ecy+A0v$})2ojOt-p$=1rsEul!TBQz9KT!Rux~KX@^^@uc)px2Js;jEYs*9@g zss^zLBszs`KsyV8es%fez zs!6KxswUSH-G2t2(IKsUlSosxVcE%Ba$*RH^{g z1Ld#Ed&*ywKPi7uey6;lysEscyr?{{JgYpdJgGdPJgPjbJgD5S+^5{5d{enoxm~$c zS*hHpT&G;ET&`TAT%??*oTHqnoTi+joTMDD9IG6y9HAVp%yKC+lmnD~mA#b7%5KVd zWvsHZvV*dnGEy0#3{!?EjY^$Tr3_F$Q2eU6r}#zjli~-(cZwT|tBT8ti;DA#vx?J- zlZq3Hql&|dgNpr%eTqGbHx)Y-+Z9_Cm5Pmub&A!B<%%VWMT&WfIf|KzX^JU|Ns94` zv5L`(5sKjoSC%3}F+kB*(Myr6=%$EQ#40)~Iw;yHA{7yeFhz*MsL&}?ij{AazLEMy z%o~j~yK2Tj)on7syzWMr@*Z01j_j=mvw%0H1tle3)vtVcD&X}EdcQouc zvZG{2-j0+Vx2rBx9jGd-%C2%$-FmJ5wVKxoU(0^Y@!HMpXI$I&ZZFuLxjklk}{#r9NR406x(jTvf!11SJGZ-+~d&fe_U+_0%`ldF1D-lnuowoMH$oq6fVOI0tee5vpy%S(!vZf@MRv20_( z#-NS&H(c6Kv7vNB?uMWZvJH1CE>+Z4R8?eFBvgb})UMyXe&zbq_4f6e^|kA2)>W-5 zTUWBKU|r6-ly#PMm)6#>%G%3YPR%C<_es%GVum8B~kE5ldbUs1E7 zYDLA0k`;L?QdZnterEaJ<@w9gm)nyW!tgNh{EUHXX zc5CUDrS7HqOM{l)Uvg>5rX>rO?8yUyV#%~0O{#WXW^$(7RLcJf$96tEHt#B5 zz9d?n9#ke%$?TynYVW=NT>0XE;q7HV;O+fF^Zy5xcYW+(2fidyzRl-2a}W4C%ALk{ zWH~0qX8VT9%T$8kx?U!j9|(tEbsJM0(34+n$+zCqt@ze!Pg~1Ip)wpBb9b4S@~vw zJ{=A}d&N)UjT z{VSC}QOQcz7j)4(ci4Kawz+&Ck>$wv;$c3t2iZ6YjmWnqNLejkG|{V3^BUZ_i*E64 zM|+^Wk(TB@dSuLZ^1TF9>7;IGC{f9CC7runZ> z*`OjB1{m9MtQUPuY*3;dc55*yH`4q#s$qG8RHSbp*oguiM-#vD)Q^F_ChPVE-~89l z@x`g8+25e@O)6P)EdyP2p!~#lwqJ4MA46gZy z-sYQ&c4GNoXnB61@<%F}y>_5umHnz4w~w>;?w60(cMr|~HkEs+WcKhODcao{58L9q<{tAEm0}elXd$;nnrB7Qq-rJbpNhNk%p}qN_#iic0cR55eM-{Xb=I(3p&x8d!D()_Kc43iOEC=3Cez{V3|b~Y4n zL(=U(^3`nohQAEQAT5@wmdfKQPe3b^N*)9oVw>OIBA5G=6KK3fWmgt~aQ3iLx{G+_J zYsYzOf1|nYQ2DcuwTWP@K&*5x?BHrkXEpBmeRzA*X#VL`7W>#61hz!4>Ky{l=fwuT zbhC}TwFsKK4V4xjYuIk0oi=ryDWTmz9lSNxa@jQZFe-=3$cPBIqUiC6KK*u-ado5< zOYhT94`;`9nC zoytKfa@Y!2v@7VM^P;$+Tpg(=KTqXXRI)a+f{srszbl$u4wa&bR@K6ZVYpwVQC>}1y?+vHHFL*8I9xi zJTN2rT#8%C6^r`x>;WZzhZ@*N<-1g}V$A`2qLG5e6lnXtm9P6) zn+ev$yrIe-V2t`e?!(XW#x~Q;l~fWRWB&nV6m``WALP1O$64G3l=XU%zmV9Cu&pAg zY)d7p>Q(sTTR8kW2243(Nw4k@t+CQM7L{_$f+lfZhO$xVSzZ2i2S zy9{(vC8Kjx`7T zEQvmhf1bpZPJfZJ<%f0*XEgW@K>XdWvs;8I|&fwAp2FZmchkUnp5U@k)yh93Mew1#WdZWVqir z&G(S)H2-TJf#(03%8OL8a^d4i^j;6-dWSo{ zGvEF{^N&z@8f~ZkR1Tn$*;@tn7Q^A!JNiuL+HFrY-~ROBBEL-YU!k(W$KH6b^_-Z! zn)dL>Yn8%VVFia6|`oCEG{3|xgU z&|AUbSIfmCxvQ|{FxUF-e;(nl!g88_1(hqQWUYozI#CCx_(`ZGbp&KX-sG+Iq`6b5 ze9Fh#ZLszu9Db$ySuNUkH8ejyim;YCAA5PAi%v|lyJDn=&8|Y7{4Mn~ZS))}pP`af zb{3cu8+plw7rDlxgRcADSl-?in*U`gxBA$_>SLtQue#$VaJN>wdt9^0-oDQ_-@hO& zR12KuxruQsH9~OEe{&qI1F(pOYopb`Z4WEc+iMV}1gws9Bsd|U2<%9hZ1NFroId)=tSFBODU?gjQl zFYG&;qcAhg8aFV3n261i0v3Hf9r7Uv~G?yH}0@Q!Eco6;NWw6_yXf z8RE}~rCfb|0|Piq!2EZq{5zE(xb{Q$Y62X7m-t*JXOE6@GWraYPlaq~uZYSQsATr+ zU`x~kPmOcH99naczb~jGEY5L}idq=Xeop;bYCu-iB8>dvqQxi|60K z$*XDpH>iBm$6h+v67}b!3%OBv8UMyjMm>8uuH44*g;Qykk@G#^I^e@iwB25v%$1A1 zGwN`c?;d}L^l0ZEmH(iUU58xIagyU#Px(8%JvzamzPNlKEl)a?gQ#To@Oq2-;O}kV z>{0JqMnlN*?`V0xr}7q+%pOi|L?>Wz<2ic?e6+{=)+mpbXAG5Neag26?1?_bf){i4 zs5kE(UBf?J8)^RQRNnBhX9Iif;qYs};}g-I>@R!>-~IJh{Pn1Tw0J$tpi?{fcv_wbR2KM@4+m3G*DLriS3c@;xi3@KD~gsUn#y)Q<-?&# z^dV840fVOdx1;>%L|uJ(InBP7%5^Hwo?htvRsygY4!?GLZz^{`ocfBdCv|Y-71WXW z7p-5Dj6|lw{eUkoMaL!iIIezd83BD*%fE#5*#7lYo}&^3_mKG>{t$g=#kJu2hwnq{ zpEN&4tk>^v>j zUiH0T3cT0Gx7PO^cq{lJ4_blm966avB`Xy^uSBn6Z7RmZ8~9fMvS;Xv>`x#$nmbA5 zr&Ka?IMWs#l!oo(E+!p}+;plbzfbf3lgeLJDlOjkP$9Ykd0tN=6$^evVe_ zJe6PhRC5g26P=mIy~1@43qK{7(a^Dc1kFE^%3L3N`Cw1<=8Ou%_fB*yV)v;0IhsA6 z%5gsCoM2AOS>0R@m-HV0D$-3~#mc{h#CQ#^QhAL^b`5es7wsT@^0>OvS*4qH6?sou zm=r3X@+ln7hH+->cZ2>6uS{WJqu!Q#(k^~r!?*{QZy1$0+eMv~4`27-s|7!M!`|oY zeM18_G!`UpP4nY`gLce5_VC6N3#XFfYtSBxq`K+rB6(MuA0q^4FV4pvPIyEg&8h)s6577qmyCzdYZd} z$_-R9Ym-1n_rcHFw-DHX&O+bHxTp8yYdeG1ZYGtpd}><^wx)~O3!05j!Or|eU~5L? z>uL51DmTbTawd#-7=;jh*x;%&JIrupEm#DNNx2eEix*TyrCLSehkz}-7sMWfl|3*B z!QL;V@(U;AooMdPRN?~xt+EC~-%E7bu#g)$*>pih7um>h3WWJ_I)oDaDxtj*po@-9 z#V6r%(#MwUNq({^?*kSvcV8;|QOQcz2CRv8j&bjDmy`NNZZ-?Si3ZxkNe4mC?9u*1wl)`BhjV^WUGkI)vjJIeb?PeeA(Y_MO5x~cCi;_d``hstO~US1BF z(ZE_N*HH;}xfujDt?0A*&M0U)xYOR;OybB-wF=DOEGQ^XHWhS zf9KPQrW^yRn13~uIKLO#!z&@W&gs2s&K?UIJU^4a^9#Wi=ATUE6e?Nyrh+}uVfgw0 z&K?b%yXlH2xtr!+Oyv?Edw2ul&Ei+zb2HJN>=ys}pH0c+Cm=1B?_(+j|pUMSPGJ7SUi;i^HM{)I~QAlrZeudU=8r^sxJwO+AhJ&BwD%*=+{O4xN?EXgc-=XqnAA2i7 z7ky|uLSe>8T?qG1{vCq+kI+KcRF|myhDuhtAz)2(#^YWNO-Gk?vgIT44m5X1D(ybj zW`i}n+5DRBTP|$PI*50v@^+g4H7cuo>|r2Ev~=g5<2v#}e(3|7m&vU(e4{4_~^_MaJGH4x#z8s2u8J59=yAH3<5HVDO{f zy!;Q48cTP8%J->crE4K&?Wr8D^{B@uYud{XrZ|3}y(}uRcc9MfsX<4ZeziTmool@( z_VADLO>gt|M$!D(N@(Xmflw$<~vYana8h`$!czyeySrSdqH%$f!) ziI#5MDz0?2RNmU=L3*@@F$I)ksbu!hpNxgWuXL|+{;hij|HhduHJ1O8=D$ScH&ilv zXiIeB5)=+&JzJQ=q624X?k}mV_pyd?IMF9Z)e>|M#`DomH~k_){wLa4H>vzHm8@_& zFsFsXud?~4Oiq_f@eY4wukunpo|Xom57>5iPoZSyaGb)4rLVaT^ZWKsi0jj@TT+)E z{SzEr68gYDN&TI1UHT*@_3zU^tzY-Jq`nKm68t~D2Gg0=E3Ir;f%?w(;1;BHKonwp1g{0zEfZW^M6L=X)3`i*L?VJ6&=79FXYO{ z77DQ0KAs=#l~K8jN@mXhx@hx7AK)$rZ8!E6mb{SW#~D4^o#JB;XTx}j{Vs3gJh%zF z@=Jzg?Bf0bETEMGRK8CoD;<_vwDqb~Fo4lEa~JW8_2r+_+-Io#!pE8tthEp;o4kZ; zI~tgi9o^0M6?DI`bU9Q$LnSL6PG&?W42xgq+Rk@EQ%)xg_h`A+Qk~hup;~kR3+7)Z z(^m5i*axW{50!_gWcJWwMDNk>S_JRn%9rS~?V zuHDVmm%irqM*QZ{{PU??;A0OXZK99QG1EAE(|Hfr-Fpsy?|wk@AExp{AA4KC9uX^F z@k+Qid>5v@M0>{rYUQDiwe?_0^xkmHfO}&gABA+&RoU{}H1}Vr{K>}}-q)fNx7s5( zjNansYu=RtFVgI#RL=D=hrvnFrprE!4~>C*i@E6(M1F*3|A@+?KIU+Q5*_u{^6%2= z1k1aw^*Kn7Jtd#Yaa6LNf_HW*9DY4z2u$_cw_poOyy3MZTAm(MCVQf%nI6iOE_i}2 zCf8S(T9Nf12E}+L6`Q7L16Ih%w9Te85;o7YU%3vF%;1ysJR0Qigv>WBQU#2nNiHrn z?N|H;R!Q`tuuxL9#8jXtfE>K~1uXXTWGyvymMdccT*aGddkoB+C^JR0P(0;Lng~hB z4+>kc!07iFy(yumWLtz#?_|n0m|>;OiKmjowL>yD_2;(R>r_9PV&<_Q@pZ0 zV9Oq*BoE*nq^D@TX70wwI02F0DR*%an!^O9*;K)@uf z!uOQjfuQADRB0No=-|!w7M$DDnP4%Yl+Xk}D>{UdAKnj&^Mq`L$_D&P=81jPG+e3Z zf_ZlQ3EC@aqbb&Na;IsJTsaiLg^x<*IaqDl84!@bx3g#aF4IOuKpJgz{5qK|*lThG zgv-gky{3Q2DY5Q*sO6n^Ox1GbO0f5$*Pg?3^S4s_0KMPYN9%9+8;21p5wt` zJfo4C`tBoBw}5VPPvlY4cLBRgHVR;(w8_ zUn}}^4@gRY*@hdAwIz%{OqxYLaJajC|A zKN=P~#z)9TN%HXi!D)V3l7`3$WXC79xOtd}IL-K;QIv)+Yn^7iHAPthuPvQsjO&Wi z@F@qJ8y#bD9scO|k)&ZQhSQACFHz(0dKAu$?@~l*0+CLq`CUmGK23-0T1mdo z63G6ZBn>lXr};}s8p7UAGtTnG%Z4v@B3l5>?Sw3zX2w!5F-6h@EJSdcmrK&H0NZJP zT9W1ppaxoo0XXpjz~?+pb9YG^o}tiy*ChEJgCTosNgCp9PV)znG^~qonpa5C@c99p zJ6(zh&S7YVL)pnX;>i+MIR%{!)gJid6Og!-~L1P5J?_Z z7dp)t_7g80eD(y{drR`L*wJamm&@YWgTgWUen}pJ3{LYGk~GBaoMv<{#I3`3m`<}p zl7>&w;p7%c9@a59&6Scg>`wyOaikGHJM3HFG>1ykuy!7@KPSn<_Z&|12uT{=*Fbi3 z$i>eNOSqlpNs@F_7@plG$-{RHPII0l4QmwQ$-5VVl&!?i4r?KuX7ty@X;@7JXJ0SL z!-u_2a~DY(Vlhs0y(A5rpE%8WNg4uzaB>XTh!+mt`#H@uk~HiM0@*REcy@69o#sDE z(y-LrX`U=e!+SHQ`G6!1t1sZ>+a!5dtL!x6nhx=@f&1k&Uzem|A(hj-L6U|D9i05E zBoFU}oMv>U#ZL~a#UcANNgno?aheU1G<+xJH0Mat@RG)9Mt@ZNqBFV!GKc^X^LE?;{;nQ(Ad7>l_3+0{W*^+d{3C#YjBoEslIL)0UY51rW zvJaHx;T@CHj3G7gmVZPIIax4OJS=*5nwLt__)0tySl9qxG7ao4<21LEq&X7-XyRydX`JRKnxkVQ zA&d(@fFqd(V)0J%B}tkqg$hkfluQF(VLHuYC25FOJIxJ}G;IFmGzUx45Ic8Hydp*a z*WWkF@GXt_HHR;Ho#tFg8up}sF404hhp#G~<_VHCM4lmgqa+WTR5;DaQZ(#E2)Xe> zh?gBU7IK=~OVY5>0c7td$-_2LPBV5`QR}cG6>?We(F7K2IL*f-X?Rf!+3~HIsC5Dh z=bYw!k~Hik=rrpjY545PX`U-d!$)&)@?uFI-n}`^UrW-kWD~OQmgHeSET_4xBn@vJ zA^TU7eEm0QzCeyk9A`-1ETC3#qa=`_DBNyBH8kiAHfhZUwy^IMWMtbuWw zk4w_<^|RBQFG<5HGpE@jNyFw$PP1K-hOhaZ=8=*#>;vXBM@!PMqaRefr6dnKNjS|} zk~HkAln^e-!tO>+bDSg%n^?iQJ4*8K;@fFHFG<68F_1k)l828@n<*Q7Ed;q&OXh}8 zJDld1BxzU~*H^IE*;?C`8<3W(gNQ4khryu`NCgx`u*?!UJH=oh@e1E ztBl}>0UlL;@Mj?|-xpyxx5EeG17D(r6oFGY(Hv}E;AcwxD2MCuU7J||)-Q|pQI^MZ zut%_84i=j7BUtc*BV58gquE<7zbrmDRUusJ0?hwIUf)ge+@*b~98SS;-6 zM=;OIk6_UgFX3YQWw(|(JA0&fv#=b@!SW+4Ql_l_gp1#;n@#fkY_Um<9}(qmi#Nrd zuYNh0Q}Y<%!o9-T4D~Sv37gbOn0Mosqk~iq_GtCV;kvSmO(%SqE4w;N*hv7H9#uMKq(?!iWnqCWKhE8cXl?x^dp8!*w zvI2X{J54IbbSZ+l+d@+=?#Ci#N@bZPMU+Spv!#eRqJ#^cGNqyn5G;NmEHGEzc~Uv% zOA!ks2-hwap7uM*B8e=!V9XMq^th#nrBcK)Nn6XMvaFCIR!I@7rHC~!{)^XStyGqE zQp9>GqC$$;fCSdxujMyNWqC=8*d#@4mLe*7!sUN8ShIG2c-y)6miI(p#H}P{tWL; z9F`(Jlp>Bu5g&;Wod0oDj6wh7m=sYfMI4tRPKXoWe|#*?T-jA8MSLPfoRlIyl_FfH zq?pg7h|^NU=TgKODdG!B|KqGwmM^76$al_IW55sgyBbuSU*<4xS)!^lw!+bJq{geg4V z&kVjCLOv@G4k8cshG{(iT#5QOTZ4n-W^!(8aQOfKgy-}t!MzH60fBvkGPD(wE|AR%C z4GoN69GRezAFKieKab*+HK35deIZ)U$bBJet*!_7m2?2R7WlQM_t}XXAueMKZe8q+ z3*Z(i-nlD&4Qyn|a5EL}To8B2&tMFGIP865HiFU)8MqX(2l$P!cfyMw3VUZk__eTt zS-_tKdV(pqxzZG-;BHIaX*qt;>2(?L6Ho6$40i^4n&rWrA0~Pq`ndmt*R8-!AjYzE z_!A}FnS#I86~PqT`y-YqxEY9d>WDkjc^x#|hQm8W#2twTu{^MorVC5JUm4sWYX?(s zFQ{Oq`~#FKrrZamCsT0CILD|Zb2vDXo1@~ETz0Ne; zZKXX^tf2H}N+c*bOu_wxyslFeC>F*K3R*8lIY1e~ z6x;yA>n_BD63!SWDBfsF0w}E*lL$%=rgQ^k9#gu563LV#P+Ee*Pr7@6=Jh(0LGix+ z>j_FJ%aj7j8m2r2$~dO<0;P~Cy+N79lvGfHn9>K7eoW~L3itcBTp#WSS~R25Kyfgo zKPV+k832lgDFZ>VGbJ6AIZPP@N&-_dKsm&e!JuqrN~Q|#KRi8G1l)b)AXBnH@xELd z3QAwbWP>u4DY%EvM@+#DI-h3>enNbMDY!$x2BzRP0jsFudVn9n?_?By2|to4xuDEt z$|z8hn1cJc9A^q{>XOJ5+*9Q_ri=k)9aC_3l{lt62g-a@p#HK4`Jk<5)HqNUF$K37 z8O4+dpm?J!1)xl2%tTO}Oqm4AD@?)dGisTF-;iHp%4ATkc%MJGO~f!pO$EgpwJ8E6 zj4>~O62+8hpb(}^2gMtJDh6d6V`hL7!jzeyq%&of3eKO;v=X3dm@*p_4^!rVGLR`R zf-;*arJ$&pg44Uir1@O3Q9d=%0Rimlx3h;nX(*|wVVRi|G^5-RxoNMDDN|66)3q(Sq(}uQ`Ug8 zfGOpme8!Zupy-*h4wNlSSr5uprc{6uk5ek{*4qHu1V(KHMaz_zK)J}2O`sfR%4SfG zFr^ZdrA#59WHV(8DBpUn?+)(YnKV5NG5C0My0y%k8-m^(>GO=C&Hp=2$?rA&-){kQ z?21XytPV;~w5#PaF|GjG^&W!sx)%R)3f$8F7tZ?Vq%PV2TwNcX_0dUfIHLS#MIh&P zv@{!!$@xb=m-+`!uXkEbqaNYsV1pZ(&?7Vol~|$T9c3`tBq1|Xs4NpIRYK)0p~87d zc=;ZnIq%qpigyS^Z&SfCp%Nifx(k)3g~}A6vRtTa7b<(aPh__9#=(cYT5>=&n{X1wGVDOhKn~B2&N(bv<%D(ZPI)QK)>t6!a;Bg~}kIf=$R> zJWRHODd2oS-b)sVSAt+xu~FYX6c>) zrAVmk6Ds?K$}y&(Q)&|`)0l#OXt+@61q$yGA~ixtRS1<&nS!ooOQ8}eRC)-Nc|zp? zQ_$HQCsYcd|MQn0saZm$RH&?BN-8AtI)SJp3Yoq_rJqn4DO5OL2!IEv=n>vv6#AsFW}TJyaZtxX}oeEj9?QETj$!l|xKHr*x=Ld0wb^ol^8e zS1|^a4MJrnQ_%BFLIvCZ0cvxF)N!Vuw;3l?o)aqTn1T-GD50`QsH|to1V}bjsO<7S ze~|JBDX(jV%oWCmBW=z4|;l_-JYdgO;?l+Q2$ipxf?nh&LZv~dG%^JpN3BrN3l-iygzNtR z)5Qy^WTBEPR3-?O1wv(oP~p8zYI=*1d0(h}hP{TnS+EFRw-%LpVY&-KwgY#{YE?g|L}R)XBnDiez*`Jxpn#D9=xQPO z9s}@|B7iQh1J=YgB>s{m!FP*7udE5ZGBmP>rC=MyA7uc#YM4U70DRRb^xvA;FON>) zQ@CVJ_|8%2)it44henn&BW!!wOAJ6)4^uqN0QM8J6B)pMzGpiF*e?r@WdOd8Y*4~O zsyjpQog`X~U;uiG*v_#GU_Vsw0Rz}CXT8J#_EP~LGJyTQ`XC0dU;TqK!vhNbZDK#@ zvx6nUca}oOv!O&SWEWGT?;!_!=6fDQlzPcuLdiVKmm48fP72%Kj?AO%41 z)iY8cl>z7{;%O!`AP4{iM>8Op0y+kSP~cqvI47y8B}HClNkS=5$$(Y>;Axo0-4q4@ zf_W@OYYM#00Q533i<<#v01({DfCzkTA#_HY+R!Agvn1$)qLKCtumT`-Oq=kfDgrqy zMOzB|fdS~Cq74fJq5(iK3+m4|YdeaxWl7r8JS-5=WCH-fg)9YnuxRxJ13CbJ;C=>l zq`)x-*eSpq-=BZBmW&pm86?(!=T_`Y(r9hWg7`kcd3IKw= zSPBOPM&SLAv(%3Is&vJ{0BxW<6V0HD+ZDpojyY|FZx>(+f076iYIV0xWdUG#vmu%`TRr7!(AzF<=G-LKrZU0_hBxMS*+{ zfb%z%P^5+>nGFD*#>0R)pddJq0WVTuHUmm2pk@HZ8_>oV444NBf&&;Z9|0VHIx=Jd zB5-`g0E|Z9)%zm@@Vz#I4Gh5i2sARlO@U7suowWeahU;206>rn3PAm3O-m_K&yti; z-~t1dQNYT8`rq)5K-WJ&=5c=5YHkNt6KZ%Pehv&blR!ndo|p?42-g&I zz!gaKmM}{L07fAoTyx81L5K50VG8gbU9u`6g2U)cA%G)-cZk4};Q-(r5fH%p-8%qa zAt2`PC0e=28fkDszBvg)#>S*Clg+a5*vu z2$v)`VKJ{_bRdHj4a@0WZ4Dq74H2%fZo*;;msWGJ4&jPwF0vt9NZo|RGzVaq0UvH$r@<7$Rnc4u;mT+(!f+o_^<-HvcJNOZ z{If}j2v5NA35$~M@ zAb^ie?-LyhfkB8d%m@N4AjQW*Kns937=S5E08AF9Xa#`R!NwFWbdKG^B20P;FR@akLP=q&^=0FomF+5+%c@FN<4ES3U0OglK*G5|Y_4UUBj zzz)*^j{V-~03sdXI3`SD2cSp@bONBW5a$xfcJkQ96f|UHvr}df$ji!qY{`U367S~{(KKWqz4=a z7=VLFPdG}2KnehBguqh(c!Lm_1p^U5;y0Qg7< z3j2my1l9w9@q-E6Esxc!fFoX*WCH*bguq4sv}xj3w{5AXl_Ci|TAA#^Z(Nn>+lY;$C`KPlMB zWs*PpXg8Oc&5_HRBdeMt-@@^Sy9LE+`eAeAk><#YjBF5TK!t#G`898Zfb}E0H%C6* z963dtq&vwh7ian1WVSa)?rDyEuQ~EdB)RebTaiY}U|BIL;M)b;F%lygzT{CxVzj`Q ze1ee}-~jURo%E_1i_s3>td|&xAq8J@A|o-p;7g8WBt{w@Ct)X>m!#P%yFOqf1{faC zdSzE|bL61rNN=}yiP_!3vSNtB_oN+~BYQSSZek>c7pU1sJNZ2p(5L6N+6Pc@hIkIj*n8HvFN-?~_Yq~A_r?S-sw*2lsxzU1WQa=Il*ekZ}z z5-hiE-|ptf6U~tyH%Ff1Na%=7VvTg2WyMI0Z%tb?N49Q`Oz|Zj+sUlJmlf`2R?Ns2 zFsJe@(Z=S;x@Jh%u9MBMyS{FY{DzTQkrDyKKiI^`R4<7Wao@_E_Oc@6+2+Xej5LYl z)QOSaozzB)v1~WB%I3(In@V(i;2Yq&_(>CKT_niq(9E~1bY?j*e&$O)7CQ4K_whNw{};=; zzd5_d7>NNlU%R&E$Z3qkKpdA-xRY(TA1m0+wpVlHh~~(O=1AA4jKu()Z)I9GM@BYB z_Gpfr_lSh?*Y~6c7>nUNUvgY?WMOmUEK!o}q+2S=(%p2|Ffvu7ME2&$#OBDpK=Sc_ zF}wYm%Q~_-a(;8<4Mz6i>f*DLr{;0?@!dQ_nmo75aRw>k1SBQgH!Yc@_m`um^H30S|Z>lle4Szo)Onj;s9lhprQ z&sdDg`r4h^9J#AG($gII1(MkQO=2g#!m?t_*SAE@=Ezr?BWr!g$NkT1jKz?!?@7a& zBcqxlhe?y*e-df-%C2`9i6Lm;5`{EJrZ-3CGtwnycN=5H$Qnjs{Mxrf>gLFSBIG0g zb2ei!#_emjV{_zy=E$!Yi9v2(v!8hVPcgQkxvY(h#MrT~U2l|FjMNKr`uU%a#m{~1 z#tXChlF7}Hxe_Gre@>8KIsbD(bL5KV$hFOpTR0N#f9~aiZ)M(ZF6(E_k&nHz@HJcS zoAWXM^MWrc^gpjM5+nb(c)DA$$8UAbcesJq+ zPLkfGwL@O+`Ptce{pX6PgrEd+;9={&9cnQJ_ZBfLH+@JrXe=N6DU);i5Tu>)%vjfJ z>hE79{@wz=x4`c$@PDuc@U2&$%3%0N+^h*_zr}|G5&JI?mdF93r7n1I76AV2H7IOYRr~7xleE)7`!zc5z#1Y#;QD)g>)fhI==i#Rq>HF zmMzG0;DR-%{rjQTTs^sMvl!G#$qq+yd^~w*v%DZwo~TTSN!L#PzKPuR}VfH-IwYRWf#pJy(yNygAZL#yUcEnj)KWdax z65YwthSapS4<>C>W4xw3#&CN`0I3}ov&1tt!4erkQU}>`NaL88n;y5*dLV$L4z=Wv zs);cLo(0K?x8vknU&mx_|p$==?HIixs0v60j~W9vkY1_p+c_jg!#k@|G2o21USl#%SA z)@qWv&=N=zN7$bv6*H_cP?c(u?XnmGpnPLpmd>Oi&l=;2TAi3GCx-0Ad=iyzRS?6= zmIyL$sU?y$=5m>;NbxdDF}Xc1Ip*N-#N7d^9x{cqdk+#j%^pVXkG4g5QifaW<)m?Y zOf{*R=`~rnG%=CXcD86q#m>M8;uvdJ5cddc5V1{2j^WNt9E+{5lVcN-0|T56&%TjX zm7IjX4EGV9nKaIV@&@H4mXqC?)Z5 zBr^w28Dz5S$hFtuwkaNKHIn7S5{;yMto2`HbsPBWF9%}Uds62n7RiZYq}4)d->`Hb z4trn+Pt}CP965=3$5KRcCRo=H)4P^9lD*n`hPaQ#xJmBwi6(_3wnq|qtv03$M{I6P z3@51vEQQ4WzGX96SZkk3j+{u2@E8lNZn->>oE;zEn#?ft$AWL3z?_7j#^QoO+1u9g{askTkC zrFepht;6MHz~J~`^7&^_U%bkEn|eOC7)htob^}>F(>fTjH{?A?y`^R5Q-mojf=h6HY2i?W4(V zcXBtx|C*Q?Kyp5gNhglW)+CbYvKdHI>%q-A(pFGui%}5U*5o=m zjGVO_$>j1KHi#?n;YHSJbyJL#wM6npINy-;731sh9d$Ff+tF1v!itB8d z#C-y8ga;Avi^wKTViZYjpIAZa4_S*y-aE-Lp3v9q(9IfdBqx#L!^vr+_MoktrV{fZ_}oK`Y1ws_nudtx`T!DMR}*k{DV znVHj{pI$P#czQ?T*avNJdrEu>IrCYvO+J!D@3&h5;+{%0GEl~>G6-h~Pr0XAS;VruN z=teUBV2dQTzp-ak2El{*wP0g3>8ZB#Ab0NB?~*D*vWcv)#>A1_d&xnhK02n9D{JLv zwp_C9gXCON^;Mz`HBZfd#MHrcJCf`sjt^~RT!TZWsvuDx*)!!=NS{~Y?Zj%b3?Q># zf!Wl*UW;!}&b$(Dk*^{@cTMg^+8%=*SO1Z%Gx_qUEi^#(Jc&DIk0eLplUtLu$86E$ z=+5{MV*SWIlsL?mm;htY|2LEWK)LI}_ea{NwAZw+ZI|CJr5!YVyT<6^=-lY2Xj$}` zsIsW^C|i^w>TcUpZFAeEx3#owid+y`5E&C`h`ePzWj$mqw}x7qEOnM@OR>dn(O3?& ziE2|3krxpln`xS6nqrz{8gCkF8f_Y38g9xmWtaw-`kF!`dYQVJ;!Uxp&Ms32Q#(_n zDZ&(H3NaZ?I+My2V0vKu)p*bNi}5Gp5616|H;h+}myH*V=Z$BLr;R6#CyYmphm8k~ z`;GgIdyH=ycN(`Fw;C&r8;$FXtBuQzON@(*^Ne$hyT8x-{?2y=-Cd}w=HIm4 zZ1_{rpYr}>`;+WXr*7D9Y`I=~-IaRXa$Rw~uCcnYs4=~<{#xxd_chzK@~gR5Z+%<; zZN;|<-`;LG(@@q>(4c9!d8PPD(v^nGM=qCL&cA&7o6>Lczlr+h(xpR}iZ5kf(p*~b z$EJ&yE>>L3xfpdZ=;Hma3%*YM`u>GO7ZNVWE);*2^40G1`R8rt8_sPzS9&h@T-3Qu z^~J7wd%dQ9%a<#^%>FXwOT(9qXKT-vpDj6i=!@bnvcEWRCh5$P&#ON#`aJV<`{$a^ z@1L$cz3udZ(`ly*T4E)hF{#rkp(TNzNx}pIoS` zsw=4rt!w(Y_+!P#^(PLU$U6~wqTzVv@$lpKYj4%&)ixa4eaw}AOm?i{=#itA8sAKp4#bGYJg-r>;0 z7e1)^Aol~y2e%GY9ST3R(j)UU96a*B*n9u@oXhwB|GF4PqsjcLjbRuK!!QiPFdBwo zG#Vyk7>32ThGAF?;~JKR`8}Elm1;$$T18Z=R!vmu<@I{$l}e@h9LMu|Jh$UI_dLCC zx6k|gd4E5De6HKAHuuMQ9LISc=XpM#$Md?L*K?=xPoQ8~$v@v4ms3$Fh&! zDM%~uF1UH5_{hm4sYk+(cpW)^IQ?+^;qb%3hwmK9Ih1xN=1|C?l7smN;|`V{h&s^d zz@7bN`w#Aq+8?t2?!MA}Y5S({3)|tfeAO4goSo3=K7ZS>mEwO(tBGomxDuSr_tu_k+U;Oeqf z2UlgRN>~-V%6pY<)s6JC>8a_l=>h2;>9<#wt}I-cyt2{Ciz{+gq^yWp;lIMR;@0w# z<$24~mU}P1kd~VkpB9$pnRdfb;wW-tJ7OIr%T6v!TNb}8dRgc)uVojP7A#F!8tYgZ zxiomG$I=U_`Kd{%(W&97fvID+pNvTPRNij)*NjK+Qn3Fvx zc}~Kds5w4!ZqGh5J94&d_JvsoXGP4qn|MAkKQS#aDlsVW`pmGI*-wN&ac4%+jIoCPmi1)F#XoFi_?mx9h{alEqL15$KxOOc)VUtc%Sj5e%?P zfn$rt96dN>ux)T=WKv{UWXYhjgE9tr4Z1b(?7*0Tp#wbz<`2ji z5Hp}G;(SC_gnxub#Krz`{loiv^)GPr%jy@`?{?pkzWIH_`v&yA6`mEI93CEC*5`bm ztUitU-0gj#cTDfl-X6Vkd!_Y?>UBNrLRfZKV3(E))0 zo&k4Slr%osIJn7F>s+;ZY9W-wa(Yf zteIHTyXGCwV$TB46wg@CNKaqSyERH`WYtKh5mBSG`uXZP)#IuMRxhiTUoELxV6`(I zNgkmdjXX-KCRPoodb7%q;wmv!ysDJh^X+N&D0`6I*Y062q3<=O*dpkA(|m_pZq*td ze4Ej**oa8J#nF7{h;KFJS2y}^f#>#Gr$08B-8cJUQr5nci zW+T3lfnT@iza`*&FRSE>!TA;g$)5!0JNYC}0p}YiC12#?4&$q`QdkIs6vbcxael_g zB5*tXg;vP0X!`6eaFbHH~f+zGy2 z;oHD-Bwaei3sDy97j;{4UDbfx`raK5iZW+Kf2VTB?v=WV%M39t-2O=-Ur zoY#{KaEv(bfoR|p1w69FzL{0;E86n-B3O@*HWe?#G~htm9Ws?RIJ zYcM#c@FMWn75*ytYYKk_yh!0MgTKn_U#9ddgjW>)68Osse-Zqw!Y_gIy_C}bMeq;7 zIlhtV4r&e@EeOf%Bb) z($BZxHx&Mj!D;;8DZ+Iae5>$l;NK|xYw+s|zY2a$;bq`oGdJ>2zwi<8D+pH=gD=6$ z6#fPHR|+o$|5D+fgMT5og9CpCp;QRWKL!6>;U(aoDf|=gPZj<#c!|P43Z?TuZ@*6z z;R*~sR`_M`j}-nPINuE_=l)0VpA>!z{6Bm%u{8KMgdY`ye}QvWWcz=D|6AcV!T+W3 ze}MnfRFP;MW zJkMB+o`z6S^;QF~0dBVU0I#m_s^HZWUIpAka*l6@P*n;X1-y#F|HjDd3jYh7>vg$E z{{;V=TuS}``FC(Cd=!JaBrvb1aBuJj6n;N=U4_>H_f~jq@cZqk|9P-H1zr&9CHyjD4<{Bz*e5CY2u7jFeVns^uPCB3+POYqi8`vCA(3U2}4 zQsK=V5CRmT8F&kY`-3-EcvJ9Z3U31LuW&zbM^i=ch0sLd4}tqB{6TPEg*OI&Na2mZ zA9Qio{^OK3gwR+qXaL?w;q}2AD%=OWfx_#7*LUL-zY~P^ZUQ}S3w%6rIrqWf?UeQ% zz=IUt9(&)2nJ&n{xJB%N`SWDZ57@Iyp6&G!N(AH$dUDi@E8e__X6*t zI0^#~QFu@A&I<1VKC!~TtN!l}p_5_|3f@uS-M}YQI5M_nSMWH6cL9G?;UV2={`p83 ztOV!`gANKG4Bk`Wk>EWPJ_x+K!UuvUI7pDG9spsA!Xv;ZE4)8=s1l$bcsGUj1@8)O z>_6Uq;SeS%0s4T)D||F~qQYaqXDWOY_!I8jVH*jd4+-+vJ_5YA!lS`^DSSBi4EF%G zVc^phKGfhe{%ML31%ogpz$4&~EA5AXPgQt4aee~sJcU079>M;N{NtoD5yD)>U;=oO z!sEdEvm^4sFP_RriSweKgZA{p;N!t(3qMBvKMukyA+V!Z@P5Q)fU)3x6+Q+$T;Vf` z^P_*CRQx~DozDL(q$t7+7(^s_=Q>Q3{_6o=RLE zZyZSw9#IVDfG<%DW`hq=+Rp+Xtnfte#fqO5#3>UF+e$@P?h=Pl17D%E=L(8b z8l$vd2EJTrzZ5*p;MjjW1*s55DUOzatB2~v;3LtVei&2vB=`u0r+_abUOojJe-VUe z7!WcXJw==!f1LpX`eE=)@HGlw56)*fnYne~tI^){zm~Xz18{{S4KiTB6^rC+h;ypB zV3B+^_$np9DsV1jWczgRbguu)Q$gKY34tpUX^=ylJGwy$-~{KBlWe~Y{3)gVR&XwG zT( zkRd;={l`gQGBTDh36_dG5L7lI@RxZ&TVI z2Io>twm$^EmAG5|e-HxKXwu*Sc(xK?KRB0Mvi&}AF1aMn2j5cR$5sEoP69t~eqV)P zr06wpKD|muMd0~pPd|+IuY&JY_$%OCib+2&bN$bO_rSoMo3k+3t?-w?^A!FfabAqi zDEtL*F6m_8GvK?_lgeobT_6Uq#SjiF z2JeC&0;eBFs^0-WsPMPJxulZ=xBz|t?U8AR?JWpg(@BFj!MUcB{0-tfW&7P7+0KJ= z=_cEs1Lx9B@-pIfewg(s#nD%WK;J=C_?O^ZI7mldfb&#JUP|0no$jnq_~+m!*}sv0 zr1UcgCs^S8(2J+$Q}E{$UINa=qzwEC_;IEE$KZwF^uuP<{~tkkRtOyU3OE;yGQef< zV`xuJjgEc@&NZWKe+isxK*|5f^?wyg5ufE)pdW^#n`FS8D<8@K0sbO!nV}!RxgwGQ zz6XCnX@3L!4A=kC(RU=+DKM8x($TlzT;WLm4LDUYZu~maQVi zb;|<%F!)t)u3{zsjkpJOlux^|LwCUWv@6^H3eIO&$sNByc!dO+iJ!r_E}lmci6b(lEN(*aA_s^zrkNp0{jb{ODoylqle8_jRK!n+E)cX zXK>0t{WMZt1;XnvFu5I^Pp>inKjEAMyoUDV#_;nub%;5iUS<2g!1*j%&Uya-B!TC$ zNO5!*oKKhK2Gsr!aIWbj{~i2Q#g8|2v^x2JN8$Gqcd)>vl5|uD23!#_rys`1YJ+n{ zB)J#(+r;G>x(}QyCF#Ew_yx88uLI!~U;a!Mx zs<{S~enP;@h`ZJQogsXsIO+t>wV`y>5&TP~eK7bJ;Pk`DTnF&d3ht`^+e6?YQwC@U z{y7ZH)b%6oMI+-%Nw)6`&Xtnn;lw#}-za|i^q~1?flDQ6&>IF^DoNf8{JP>O44f+{ z*}f+@S4zz3hmnaM;784((G;JhV)TIt_sU!m=f&WQdZp%5~cNIRHIIkhDh@_uc;8gjzIL|+)G!X(< zKGI+&_#aAuC&0P#k?m)IbLGRFei;6zgL5@3xnmlH-${@odmNn0WEmip_yaUDu6!h4 z0&cJ3?q@ML{rONg|4$O9Ogn5`5=loXF2TkXk>rcOxgwH$A^6|K0^_+JEMfTxJpqfGGGOa{mV=aZK7vmTranR3qazYanTB}Hq& zxx$eFGQg`V?bm=;Q}}A)JY`%FNk6NIJ6P~g4ANo16_GSp3C9ei$pG2l zWeVQ{UP}qQ8Qf7*5jK&)tD0*-86XRsYdy&~f^)4W`37)L#s3lF4aq;(4bA0WKTW(bwdb>bPig-=_`lJf`eStH zB)BiNcdP$TKzK-T^c-=XGcG3Oh>wHQSION{T?pP-;m?9|@d-b!`u`Y&MvB2v@P^=I zXN;f#yn(_m5Py(5+CuU37C4_p>?egcV9;D~bRL{*L)rcuIM;^E>4(wL z*TK04l>9aDW)3Al5dBEsfs00I z@FI8?tUD$D-gIqkd7{cw{jUZk1B27}TPp_d!=M$oIfD1VTPnO5oa+M_;9c+l#s53tTuZv$|MNBkE+(a; zGU9%eIzHb^{uOwz65vbl4hsJQ{<%Id{TTIsDTMZl!RO#yAD9NbRz3r7r?meRoX_{N zeF=Dw(*6^!|9MgH`CA%%3 zy5!%0cQOOO|8;Oa-OKilYY_N6&4QV_ufe$}mHaArM z=hL_3{{io21fZ1Ci>LU$p7cI5Wrz>q2IWt z3kPZN7kHQw;6ZZKoB|9|cw=xrM@T=7!1)~E;*@`$n}#GbBS!-jM-9OF93dUm2j_Ey zaKT5rsDe z=R!mJX#zgPtv$u}gD@C^IR(DpkqUnZoC^~fpd;~CG=NcV0qEXxa6U)K_8pjW{XbGM zXb*!C3U5c8r+`l$(oqmNAM+)D7@QB)lD7qqChk`Mw}HR~g)|5R=YoQ{nW5I;TsKG_ zM!Yq3l((z&(-V9Qacp~6{oexupCqI~cW^!zNFGX@Q$4!Ek+F@tf%CaQw(kng$9&1V z^rZP`M=^?{5E$?=TpDx+?+R{aq7yjR2i)G|gNO%`|A~tKf#7|({+9s;K$xHyM1aRB zygzYHH6MDVpMKzvD((A%j|VsQA8)^K2y{$#bJPcXoZ_fAcr3U%;$Glm6+V)98|vs} zcRvo>2ndth1zR+6P8}bT<;aGE$1ClJf%BnPwjT=4M@-413{K)$18BY_tq z?^o$)D>!d6$xjgPj7%^$2k;!YSy`Fl@f>Hi3GuKzhjQaB6)PLbq?z*i{&4ubQ(m+cRL^LAx!W@0}$Z%gC(Kc=t` zLb?(lAAF_4_kzTan=8M5SCX6#$tJ$co#BQr#N~Ioaa&o zC<5Q0_<0qar&6|mh3kI~z;h{6^fC;1E+sz;{*)5nC2*b^8Q?|mOr`w`;Oo_Wd4>dD z)jS2#(P?m=0?AK-b4n$D9-K2L_x(w5&NR0-_8%VsKOmti1>UGQdLMizasFF|{NncS zfp1j;6oY3g{9SOK8qraD{ttvLiox69o59URdI5Zs!rubtsSyEeZ-Qqj{@*Y-ji2X6 z8k~p0dWD}O&TEA;Bvbks@ovO-5tkYI6#Qw0mw@kJKSutM(oZ1ph-HU92H(yGoPT=p z6nq5Enc((jhOU6;puNd2gXa=AJ8IPbA41?1$-tMuop59Zz6ice;olGsMJ8lNuYHiwn|7?&)g4rV;+1D`O0Mg(pI4?Rm;xh1O;Kv;CSKvGavO`~j=c@1je*uA4uMAuY z&Wlv?&x!Ng^X`xVZWHf`Ovv^>f#*|uW57KBJmUXA;GRl@ABlG-M|+e2x4?HR{NLa_ z$I{Qg!1ofDnRfgW0*^o%+yv)U%G^xpKft*|?8xLlfb&$!OneW{i&y%;;o=S(k3jb5 zI~efll?LAu=e5FfECbXGv)OtPKce{YBpycmu+qMU;GJB@Ki3pghj2(Ss0Pk+COhN- zeo$#&75o6WnV~A+JO$+$<@vWm;J`8y^fY{91pAc$e^VxSWIP43Lw|vDMkW7~I4{P1 zil4j09W3w&WZ*wwz$1|ScW};xoPyuLdG2N4JK#J3>E~B)>X5?_%oP0sf#8!2ZO0Q-)3|?VEx-jw=D0KsW&d zv!{OGg=lYbUvTcI4Ezu{PmLVFgW%7({JYM7JOzy*aEIi`8WHC?=D?CS1n2!N12+KY zsgZ#nCf)~rDl$#++d_C=F=zwMBai_C!A}vF9cm5Efo1zv#LX#?9csy(>wgX`9RJAuDgVPI_6j>LH`Pb&d}!Cz3?cL3)plO1XwM)S{( zc+ttg?O?zokQoXRf#rw?6OSN2uPN;#iT5YY9g_YBfxoKO{{tbsLI$#@1HidM(oqC> zkrKE+IM1>4(+`}djJd;{v%U~sg(H)PgLA57;6C8oQJJCM;5^4Na4&G4O2HkrFcNq* z^4!P(J;8Z*NZtdSQz{(UVu7e@P^=Zr@z9mT?cJ0u;A1?QAXM`OTw z@k&3V!Fd4E&rIT+p?B5#{|N~1C;?`G7b}jYgY(E_;A!C8QOO?%f7kTG=RZFCO@;6_ z336l!;M^fOf+^rUm)zc5Lz9IcZg28Q;Jk)pha3w@7)YtOqy$(1{vHC5FQcQ$;2c;w znh$xfupFE_BzYS66(um2bnJ&SDhIF(oaesW56}Nn2t3Cun3+fg=akAhUIKoZ zxLgy9!8z43@RQ)Yw#oxjoD|{??kT5E8Z07#*TjcPfDOb46Xy;|M^Ax&toX?U|48BM z!KtI}_y4bhP@)803(l#Q9nApeOvnta0sjPk%#5xE=K;G0K>6qGw+aG}K&CVuoHHQ< zuLS3j$@bfc51|ZwuC&hqXFoD?PF^f*P^viE2L74iXe;=q;O5A(!8x$p_glbuG0MQ3 z!5y4xIkHU#In&f3NBL^s1K~?0z;19( zwH!en_*V!(vuI4^Gs2JT&@SSfX$SaZ~`#Qzrc!0q4Nd&tY($8n^p@4ng3#l#UL9 z^IDPo060&99Pxf|?x+mB51iK!{J84>mq>`BOnj>tya>(#WZ)M>dl~o)_&3y^xw+_0 zgY(*AKPErL^*;w@1KHE(VQ?Le%*AyQoY#u%&kk;IjRBaGqls;2ik(@NbUzb#R^mQ}A8yZU zLU!mcaL!zLhdBP9Byg&E?xn$9@V|)5Ir{^g=U%q|9h^HP+y4g687&V?aqkd!a9~~( z($TLl;8e4LnTa~R=$1TcZ?EdkYlCwD_G7m90B@^N2@EDYvh2yj-)|D@M_8k8i4a0b9;XA0P2hOasWQy9tdoC;gW6Ycn*Syw@Z9hs@-y7K0{DURB9hz}oaeH_5q-N6oCC-aKM2li zOZw?Rd>q&RUNA66+@1yE9Dof>-VVIB5;zF_J|*zO;Jk*|55G8bZNYi!-TwYp8xnYK zxI=Pef#4iK^48$IR{RY2t^lpTYY~^3Xel`S;QoIS##7+B2w;x5J2*S?69GcO?^gnJ z1NVj>HsKL>1+SyD@6wCrpHt0_8B$&Pnpa_FnA4z z;%EQ~aTK_oVh}-`GgMy*&>x%w_=%481AjpA(-)klnA`LD$4F5)1Ro_pA8_uF99eI0 zUK8wyU!3Y*;5?Ob#9`pvA>qei>j{D9j1A1Wk0#EUU`KxJon9PZICx`sN48<$jTAl< zoc&8bQ3j{+Hy}aw^br{Fnve!Vzg zkTjS^d?ICnxgWLV7iZ#e@EY_xeL>E6F`o+V%K-#W04G;QdmeyM|4)IyBk&_=j%+e` z6Qx6wz#mcq#Dmk*S=~DH7`TVRC-$QCH-Wn2rv#Wl2Fy7{eq_Wi9$6eXVYdK}g7b)F z=Ej3RNL*%O95}!K=;kOE0%w3zYGz_AIFFbEn0yR4?+!oW{Nj#|2Ioa81IK{#E->2j z{IkI*2)ufw!ARn~3wQ)_WFx?Namn_{#N(+w2lgYsW=H3PH&xm@=0Rwo1egn6lbp!K zl?2{gX+MWJFVbcTpAF6f^CMsU;sMWcafgi;mmEPN3_Pik3_KIuUkUI8IA_9-z0->W z%mC-LCH+qa=S;ZO|7%H@Oe46TjAh^q@HR@|HN+=T`v4`tYH$wh$GxE!cW4!O9s0f8 zKhJ+U1fBxf)0N=7s->e9;DN;Dnph6bQzQMPfwx9`b4_sV>EIFYoUwr^EQ3L9*;D#` zDLC%}Kl(Sncx0*Itq{QEOTfJdl#iHxUrd}ADNUt&{r@C{mWrbk@cR@;i@($$q#~ahh*Rb z;2q(ILvSYcGw1rBr+^*ti-mnK;MFU6K5?EJUW_upUhw*4D>JtToR2Hg&u(yDq;B{B zR^}h^!76NZ4KXS$|9`Q@yU6uAPg7YGk0bT%qkZfg!&Vcjo@FUIGe;nX61YV`= z$XwN@z#GGn$=@YDoiY)s1bzpccYz<-@QeMw4bDt-$YHwxp_>x;EpQ&O?9iLw-HFT0 zy#da!zEZ*zcyc z1Ls}fM;gC4@K@jg^tdR3+QmjS+jz`H;?Dg|$$IQqQYk^6{01Lq^4^z$ir zbNJ!sj~YGw7YT{fqrPMyQ}<8s)=J=;;Jj=6NaGie_#fcBYb5`HIA=6m@$dK^LLU-j zCT@W9?vReY6YXV3zXfkaosg;i2Ap@3^mE@4&o3VF zui%_HIe=fl`xBQP{TaM1+4A$Jj2An)4WXZ6@Dn(vP6qf7IPVTWmm8x)KZ3U*CNpsh zJP_O%FvtHl1U|5^BQp~oz3DQEGBFSxGI>?-UP|C9;1R@SNA2M4ln&X5J2(Izp*S$V zI1_)PL!3J4=r8aA#AQnV1P>xxIpVwEe8BNz=k#L#e}Ge_-Ru9~A@B%ffV$Mv+0;?) zj11rnK1k{4{oq3sKXt%6miwXnbB}71z?m4V7ccN(8v2j@j9 zM>Y)nQ6<1oa9%5N#8Ke9?@eyh|BsNsbI+?(1{eZPKio3(7=eY3x|0ElWbS!v3KL5yV zHiiVAV_qyWz-aIZilZlpFQWES6+Q!ekkX;)-~++S>;GvG65z-j@#Ek;$1>GZ!3QV- z62PY@9hw3@S>cY!B=8jQK9&I{f%ATqnTQ9Uq&QkYJca!5RLUt!1|MRMn11qFneXBb z+cd?|JQxgCMm86m=Tdew3H))z&m7`BH9Tdq{cLdF1#Zv(nFS$I37iPd`&c@f3C>4G znW5#x7gOMw#N}#F1Ajtt-v3+!a_V@sOGnGVdCp|urQlIYM^nLP$NNX$bh1M`nRER=+O0?QMFJSa zD119{UMqZvl>u_V=MtAwc7{0n=c$qHPZM88oUqNoZ;kPbcflzL^|8wBHEs;^Y{|{jy0+=Z+1m}G(NAN5-x03;mf%A5isXhwc%)`BX z0oVV$=oTO_`7<(cgbbLEqkqdx90up(gzV5Ea6abCzz4yT75@joV|o3{0Q({EF<%CF zhjFM~e`KV~M*8l2u2 z@qmFTyaWS2#L5x82%b{)^r@Xq7B+Ca0Pv{NlQQBfX*m3`x9rJR;LDW}eF@H=Zp-#x z5MM!lCMo_)UEE>gWiEU8IShC;iyYfN15Z-|e+teYhs(ev;PFb}PrzLlt*%42v0Xlf zz{^|){s^46h3x1R@W+$@m%;g1&wk7)`4F7X4eZC@9RCu8WhBT$-$igfrppd}06tL( z{66?n#m{@hdE4>HL=K>sxPyfWilcX7z{g@4_y%!a6MP7j{5xx>+sMT!|9sN;Hw50; zas>YZ_f`V`6Fdcu%)mFn(}~Lg`~#eC%aNJ*flDXu5ubfz;P1g#Dvo|5zKYuO)X4UC z!1+KUNBk@NtXBN|0`7P~>Cw*+rV^J&rrY3r%$0$E0$-&B_z!r3;^#+jzUhQA;o5&Z z1;hH-Z0l)cDT={R;_Ha>zL$Zcz`ws&Y$18 zl}^1OY(oHZRrdmKhK`y%44fC2%urA8tx89GfG1aU$W=OZhmfrpgc4s%8S+P9`eAI> zZs5G=WZpaV>Emz(XsQJ041;-aWRAEKI2R1;$mAWtw(XCr`_>gM2lj$lV7ZwAhXWZ6-F z@LBLfKa5N_HMoNwg{TB>0s}tFNk@Lf*U%Jjb8)-T<7>esTcy!81jNjJHmGAn>772CfIrrI>W| z0P)q73BH|1&T(DvnZ)Jx^9Elp0`q|H??cCbcElx@3{VFKd?=M2stwNfYRSM};9PP^ zKlg#JQv%lle}d0HvZpm6@I6^FfG7A2jLb}R4e+%HVDjqVd`Ol9s0KbAemK4{_Z|@V zUM(58DmWjxq@yatxenlylPoms;Pn+hHt=a?V8nI&P3L2F#6_k|-Cy8*5|RP_1ouGz zbHsPS`OZfkfXV*==Od;Z!0#^Zusu$VvCi{;Cuj)j-24DmB8D;xsx(;TfzCXF8yZ{cW_|3esr6&EimBox6H(5@Pou)VEGIkg$}dx0O2yF{aJ~mac4#&DKBYsez_~tW`Q4!)U#M_{h@WiZ%_z$RY`&V`8_K`QuiCGZk(J~GO{i@|xjk{<_|xu)Pr z5;oA>??GUbr-1X3PC8lyo<+^?w2c zK2S(UQ;26$CZ0xMa|DyYxtNp#m;}yut;xXg;7f_iwelF({~Un#y$n1N27z#7j(7ri zDjbZ<(S|;9T{xfjQ!l;7_8x$wz?iPzDeU-jdpjsd3nbL*N629Kq|vvuVT| zln%WH&ih!lF9JWN1b!8qe#pSKR}Ai;uTGGGTtqL!;3*~WS#T;`+#J0G&ih_==tc0O zN{3zm&t(4&`X9fz96keq_c1#%Q+gV_7csdlPl5BrU-hOff2f%q%OTM2t7pr`enDny`{0Oy| z1Iq_rOYMy*aL_NDigP6JY7eL1rK9u2w-M*Fq73{7IM;M?WN(5$s|0=vyszTlaREZ1 zV(>QjMlvuL3wQJ#a4uG5;CI2Zl=j8o#})tYxwyl|g@zp2`!MLI^z;L8F3)A)i{P7- zz?ZGdaRr|Qo9{cn14={2|J&o!S9XnOr`rNz1W+=8z-TrK?H zO>_h{qjzDe(K8*0{?(TLG3bBvA5;RnM-8Da^fJ3p`5(@wXZe5Q7(|WQnvMSF|KXrc z|IbIQ2Ks&iiFV2<=ZIvQu5roK)&KXu|4Vb= z@TQN1CVAjM{D1HtjVR7IGfu@n_?TAlum3Op;ZK1^n1TMwf8dz*U$%1{`rMiYQlPQx$?4y;vkjQw<`y;)JU zx@%T9TX}0?M%0>55B{FH^z#F)oy%7Tw>rJDMzijAop>Vb9^&3k-Sw82@3Xd?ROkLy zr+@NnV`*uKCq~`FvW53O#J%w?y4$_gah@)Hpjo^Hj`Fd@XX{(ypoWAk(qw;-a(J$h zb*~Jue*pDLXSw&Gdswz;ZEe|cF6D4#6KhLD?EKO_#1<=?wX!??t9adCzlfHMny=PQ z!^P$1)-Ku)@@{qdazP7najUl0h0&_>!h5)A(fS@@=g5|pIa?k{Bkw;_v+h`|8f%?1 z!}3~?bxfBy-r92a3YuZpfOC5_*5%A-r5msz>IUqx)C|}j%TwLOy4!~MQ^GyODYxz+ zUhZx!PHM+7r&uT15Os$IL!9#XJuJ8Mv5sk9L@`fRAlYXi;yn zbzlC9rSa1)Cv)Gr+GS+4(rtG`)NOY|)NS`oo|FjV_!h9JPDK{zH|s_OvMxygDwhIr!5dx%rA?;*~=Ms-i+ z@%TC|dzhJHiSKT=#ECnt$8$BzSo_w!GDKYkYlylE)(}VSwsvb@MC*`_IhL!*5Ow>_ z5Ow>_Wy$-kat`ATT4tsAkR=W~Vu=e1taE7ZPC4vtcctr4L#y|Sb$?!4 zM#DUjW1Ry-)P*!eO-Mu2g}i!(XY&o~{urWeha2LQBlob}^0u|OX)n*_yY~=vvuRjf zd+#2W*D|cL*D;G?&M&r}YD3hOo`$F^Jq_{NAGAm;cHzgC`>Oa8OC0v8B`)~PdKbQS zmglY1IunMd%b_7&{>(ZPhPb87+HLP?bQZ7r^*zLuQPzh!!}8kodsuGyl`F#Vw1+&L ze{O4bzeQE~XZmWHUS&kRvlpBZB3 z2Rm3ET8_7%<4*sdtYaFYF3X14;+K0^QkJb&YUv%zwHNifB|iIyB@X)2dZjjNKr59l z`e=H;|GQb!^3UsDrFZjQsr%y({COR}8rm<`INi5OmG7#aPTSBs&i;S;|IS+>jl-S3 zj@EUZ;l9lqpPm}k{7A4vy%?fT;EadX{iO=@Ii=) zcK{2eLa473_~vFy3x40&Qs5iC-2{jEjxpbR?xvW+gF1olx3{$5uPRsy{F%5SI9%^n zH>s?+gr+*dUng(?C5X!vy%}FwaPYh3{QkP7Nq|mhsS{f11ioXYPMQN$R zmIB{OVkz*A@0LP05*(HaKM2WE;2WhZ1-`+>Qs8^NECs%stQp@gRq43dOJ~A&%31pA zqZ7h)LSG1uO40l2O#17D2%RuMCk!kX9Lfd5pmIeKB6Y%GoiIcvJR$^#+s9^6LU9v@ z>V#oBVYp6+b`u=pL%R`fiV#NXgi$&nMkkC`1V{NthGP_^To|hpVs*keoiM(V;J^o# zk5*D3#OZ_yI$@$tc+5g@7$29$TPTJwNheI!2~%`Jf~DY~)6Y~(g@ng-!Ze*QT_?=Y z2#y0!Xp{ppbwZ*}n57eD>x4OU{Ifo!CFz8@I$@qpn6DF(`F?H71L^{u$wHm5NGGJ| zgeO_x@mD$oFV>kX(Fv(KVX017<`Nv0qid%mP3LR5PFSH6R+>Vk>yLC(QLjH%>4eof zVU146s1TIvkF^zw`-RCmov>afWa@;cq~Lb_u|X>GYGR{K$kGX$bi!tLL0o@qaaSs? zKeBbgR-Ld-CpcB1{Q4tDRm|&;?K)wHPS~jvaw`kC{&>2w;<{+qr4ydf33)nUx0PUA zf9$bR_`+nbPRQ2@`*gy7Yk{sm4p=LnA2_HJ4(Wu$I^l>;a1`j2qdMW3PIy))6zYWI zTz^}h0PJMag8r*?Y_6gcs_Fy}oluPghh>oJI+GeY!BZ#H)Csi=fyQ5Hi1+DCymUfs zolr+7+z+Ah^@q34q^?fj_gXB|SWhSTlnd(hNBwd|x&CON6B_D-MmnLf5Ztdn9u$h( z^~Xax!B;2v>4YY3g1r7{>ZXY64}YD&TgNi<&2<8|mKGJ)9|4L|e*Mu>C$!QDt#v|R zCBeM@Xj4hS^+#Ks@UTt@(h2P>1lRRPdke+5{^+0+f^|YiozTfr;OmdhmI?_WI-!eB z=&BRCX#~fCP>ph+yH4n#6ME`|FrCngj(=|Jv3%9_)(L%dLby)os}uV1^@rRI<x5{XFv1inU4M); z74`aKlun4z38QtwmV$DRVZ2UwR0?j_A8}HV*B|^|i{(0ru2fuqOx6igbV7non5qip*B_6oih2DpO(#s(2{UxU6O{#Af6T0`xUN4E zb;2y2Fk2_gu@a2yk0dLFuRrGMgn2q)zD`KC7U=q8fwl7afrUC@kxod_2~X+-$6}qb zL?@)`1b(l@a+fUA2@bygurx{2nJm`{D|Et2osdp~_4UUpoylsQutq0j=!CU~K;y4; z`dOzlS+5f^b;46RVFQH9*B={oCRsXRlTO&I6SkBK>h(uyLw#6kLBC(g}xk!V#TNU?I4!KaN@`#`VWBo$#zqDAWnZEd{>*u#?h~ z{;PB#sG<|9>I4s+P)#E^4pi4D2Wsd9Pn}RxC)Cmj_tEjsdhA|0p|(z_qZ97e3Eq7D zVVU{5I+F)h(u6ozPq-@KM&XTLBeV!@@p|dKKUw?$Cih2FfMJIIC3Egx;Xk`J{AKfb} zuIrB;I-#dd2-69@tOVowqqmj9*B^a!Lby)os}uTJ3v~U_-&*hpc4k_gh4vN z5vfxK>x3aX;Srq>r4xqo^@rttAEq-It`nkl!U&x(k_3lk^ievK7@aU$CydbvV-11E zU+MG{t1}s=6UOU=M|DCRgv!?+6LcmMb;4shAzmj;Di_r2kIChVa{VzyCnV^EsXF0t zA-G?EOcRRR^~ZFbFheIip%Z4h3G(_Q(M=K8AG37AY@IMiCnPCC#r4NrMJd1jn5Prw z>x5*Tu%MD)UVkjCq~Q8vkxod_2~X;T#TJ6=`eTWOVqAZu>V%~_VVO>#oo;cc7DvferwN6;06EbwdTAi@YIx95x^*WPGo$!=S*q{?OYOg=C zbS9g0!e*VYMJHslz~x}26TnuT$u{TlWz8F%_Fvlke6aJkQ_X!&#~o{46zu%|v*zCR z?#`>9HE-np<8-~Rn*Z$IXg*)Kz$w@9u9w?`Tr9o-WPFiC_bn|$)O}0K5RC@}RQ{G$ zuKi)FC#J;JXkmqmJuPuqEy5OEeytgOm*?_*)?bP;MC}*)*i!d}KEtc#nI$7Skl~iP z)*%hCYQ1}i^L_3iUaM~{ep%>kd?l2=;!{?n{Z7BpO84DRL+t$EJ^WwZ+SBs;Qtv-O z!Rb57t?b*LXr+5(iP1>+O-4ifsi}2rL!8pgT0Gu@zT32Suv4A0MLJo||AjPM4^AkdI-x-a4jXS#Pq&t&`_-nx;c6>S}`@S=7}A zhS(y}+U@a4e2}Zb2f4Jf`c2QRbWiOuTZ?Uhxu39JbVYL)sstz^*6%y2rMy4uPm=2*{#Ax_D*7Dsr~uIlf!j%kRx=cX8< z>%mN#CsY|NPP}QowffGX6*6kKb*~IjS6vvQ?qMT_sH-k^&7cI=J768t5OsyKA?lt9 zXNbDO`BEy4Q}WP$FE< zQ~2$C3#;d^87*`tLqpV^3=L89B)zSdC~p5ZEYoOcn$pJ5G?k4@(-by!p7ExA_?Mo~M}gKC+H!h`Jis5H&Th%d6(0Kgav=HvG&wq#^3Ip&{zF zq07?x`A~^vmJ6=*swIxPW{J;UCv1_zOHFB=jQZAkJcg(%TMSY63^YU3)uYWCP|SKa ztz#OZZaWy_PoDR%)NBXmh+#Z$KU!NFqVBL_h`MKq8KUN}lK89TOqAZS#8JOn;&IC+xH3>>CEfo>wCJ;KOo{`XI_YJ zh%@|lP@Xg0Ga$+t{CYqO=dVWt>d;$)55Di$)|vIMz(&rr*Zd-!c^3l0oN4d-^>u!k zQG0;%{SW-A*NU@wEEte5BYDm|XWcq=>Up+LnlwMKOILbV(W_yz`}&TVIxlL@v^mK$ zlAO&7dvw_LY+#bJsH8_yv)FRG{&Qw0&zqDyr+?y%sk4)(8V)*lv2bwcKwvj#{3n5_ z&Bm1*_f4EUY2KvSQ|G%`cXu|+@@?KzM4!{zfA-XcQ|I|Fm_Iea7H0G4)Geg5f8q?X z4D#>PzGFxK`BSINnVmrY>e{7iXo$1U!hj~uf?EN@oL@c{*xOlV_YJX+bsnnH!_VHy z`D5FL&Ap^|=NFTD^mHbD8`#phv^c1yN2m6kL!A>Zcj@Q!{?^yudF7`b`Odp11G1eS z%l(3!VebXSJCjNRO1GtVig)In5At?q{S;X2Ou5}-mh+1j0y{Wkf9c`vyx1%##aaAz zj{s+3RzNl9%P$7hcCM@D+urG&L{5_a;~VVEdNau1S@<2#&E+lu&VaK4(`(S+I(F$A z>}=YsO9SUtFW(l<;I=(B*6G-#OZ((mN&X%9Q_6GBj?Z)ob0&7`;p@ER?OVs$p;b^F z=b>jh)p73X*rTb_JGe(cRr;GY&W^7JwsZcqr<1R<@YTR-&hedkL^wA#^j-QuZClmw z0mC8&jT}CjK0>W&`|JMGb2s#!`QLgRkdq!L^rxfnyPQw%eEi18Rcs+2`+Qvb(V36( zK8pA#=%ZU#4qnN)5`LxNa?Itj50gHO{qW|cE0=OErCf@-6m-e+Quf8vi(waUe{ki4 z%nzbI2>Rgm`$g{;zMuYn{QKeW`@CQF-o^KF-V1%Nr1)fUcJcJ$$l`!vpW?K4L*H%m z?!kA`-${5U>YbZ!=f9occ-!~wyBAJgNWKtsA@8l&w{E*vzaeVe<}E-!WT1NOnx!!Mb8)Syioi? z&I^u=7ouMXdcpUF>t~A26rM>x6MZK9jL(_dr!St4I~{S_BnP_`yansc(X91@aD4x z&jvkv_E_$*q+`*?f{ytfyMDCjXyMV6qcKMVk9r<0C`c~2<2Z8u$jKwIM)W6RksX&C|9jWHX;HhOF<+mN#%ZbR6HpbfSS=buV_D(tD!%!JI~%>4Cn>%-O;tjk;% zvo2&^{@S#)p=%qh&Ckfph{*`a@Xolkrfki@HR)>-)`YIPu)1({#Oe#H3Rk7C3RqQ| zo|_(%-YEUz%EFZqEB#lNtT?m6cSYXvfaN)9j_5S+v8{IK}}^KZ^8o|iK(dY;d` zTXQeYJu^4cG1qsl*W9wCqNKE>xTLV8fTWvqis$6aiJs#<=jQC<*(YbG&W@WMIJ<0C z(X6ytw-To(-ko`U=9!sMGec&2&P;gX{0!e2`O`C}$4?KKo;z*&H2-Nik0(6t`*`Wp zGgEV>rcI5RdOe{yAv+-^;rf)6DbuHfP4S&lIyqwU`AIR8{3n&fJ5u9g<3r;E<8M87 z@v+>;VjgSs*!79I6XPa&PrNyyc*5BU=@UFBq{YR>g~bKL-F!6b(UeD{9`$;(Wc-=& z2gj$5j~gF2-gEq&amC{b#-)sl9Tz#yd)%$qjM${u(AY+?XUFD`O&J?IHehV&n7lEm zV?xH<9es9m#^~_Tw$Y_AXJZOtk{vNIG5#?nqjE>3jEWrXj^pI@QcIqhX)M5HSFN9#9@)c0*84ID;b(HG=6BvP@kb?QAJUO zQ7KVAQFk9X|470kQIGgPVtb@`NWqZoA#p>l42~XL92p&Xdr;}1!a-Ssq6gg=cyVC< zKu7vO&w=>^d62JKHy{ zZ(QH7zCnF&hhGWL3y%#C4L{!}t50MfuRb?=U+7)fJH2;8@8I6vy=}d(^g7uqtygHT zyI~i?(!%1y0>X-V7WPcz zM(Ekl+|c0AMxi&m6?e<&meOr{x8QCUyPoNq*)_3iXxBzvZCx*PN$3*Q#lMTKOIAoq zNK{Br$eqrGos&98b@u3dzLRgKI~_|pUg((BF|cE4a8__!a9D6q@a+yKJH&Rl+rFfI zR{MnZ5$*4`OK#`U&T%m)Bgj9f^x?FJ10TNLHnXj7TU*=QHVJKl+IY9g4NMF44lHS% z*E+qmXX~4-GFv6JvbDP2GQH*WmL4r{1Y`t62ZRI^x5#c0*CMh-P>b`;vzjM2_h^2x z*~w-R&Agl4_D}Qo@W0VCqiIaj(54cDJgBKb{HZEy2z0vK41q~A$1~t6i;9!Hq2C)so8hl!RME$EiTYXmfjPq&iQ`6^C zy`}YL)$3C4>I0V^*#5wP2iiRFTHUpEXVv}F`wj0y-rc?J-rw9m_x_*jd|GFBomF*) z*7>yd%e7b4u3P(Oua~_>dv*7+d+olj?|m)r`)4i3leH$)YFVphtxGkh*8JJ?Q_p># zeLY)x{#avqjj1&{)_A%4?&`Cu|5@#7wWHO#SNq801&>u8ejYDZ-CcE7)jz9Tt#Y)= z&?+6P{Au5AUuqw0Z)g9_w%j(=*3nkqw%Gd@`+w~Jvj1TJ*8a8qOZ#W`kL@4Y-?zVG zf7AZD{T2I*_EYxf?8hAT!}k65J@#Gp9rkVZ&GrrUb@tWv74~KJ#rB2vdG^`%C+v^g zC)+35$J@u)N7{$khu8<&``LTjd)T|$JK5XY+uB>%o7Vmw1$1|K!XkaSaCAntAXi`om%)BKhX63HWTg z4gKDN{&T&K+x~WrtX`$Q>#vkpTs5Kkw*FHPhNyYVHr1o0)myeVt6Ac>8kV@&ldwgv z>NcWloGG=edu52aYaBz=UE>&{=JU<1mndWlZ_AK|rn%@hG|e@?OVhl~aMh0jUaM~z z&}oRe>s3S4U9TFV?s~OuHpSfgkabK$)Lru%qVAgCWvO}VZPP%CSQgDfFypdcXed&ONQ(t1?>X-rF?9s%@>)1mBwH*k{sUT^F-8+qbj| zJc3*3X4VjOGi!+SG}CL%qgMP zmWEihul0KshB&|9J;ZDMt;G>XC}xY^)-esSs_tGBwyfIs9+tX~So?M)%WM6uEe%n( zbqrCrbzGL3t#kEJin({NbxcFly=(2V)VynLh`M*Jmq*guF;j+H$23IUM=pk_yPd`5 zR`Zd|@@q8CpO#qvg%Ly4y^Uswx_6ZgQTI05?g)x`V!3rpL)3j3XoxEpTW81+b$n>!mN+WOx-_sqPxH2Ami6hx5H%-iry*+2)DShN>gDI}u~rOGw^j^Mw^j^M zw^lCgq?l8dTF;vy>h^>o>h^>o>h{E>3ly`(O6!=0s2ist>K;38h`Mne??>yCK5lJo zch;`sRi}Ot6|R+UCNo;;4zPx(JHWauH3!(a88qPe&s%RuL)2|ZL)2|Zm#Ep0%ZAfI zpz}-CF%3}{(-7;uau3TUwBVqLQsqVD4*L)3h{1h3W~jlTB3*t^T{D6+n5 z^a&)myCe`GK!5;2f&_PWcXxNEgS$(?;O;KL-Q8V+!{9o=KzP^g^eWbqcX+;>^XXhC z*WLHzmsPd*PVMgccQ>8dMKP~ij{Wywo#CJEzs~Sa_g`oDr~B{4ulO~WEc@^KuQUA9 zGd^edr+>|MhJRe)tUCH^vF5+~%wfVmeFoAQ{^>K2&hSs4ft>OH&8FM*-+j8m|DJ1C z_}^3J4FB|dUc8AuYwY;%^R6@e(@QdE_@|d-&hQT}$*fI3&}WZF|9u~FhJSh@?F|3) zMA{kt=_S&XjLs?h?>?R3pX!S<{8N2#h6%m@dsc>I!eb?T`NMK2|MOLYbBjNn|C}Mt zfB*ZZlbl=iIP>3k8uu&st+B)gKHPgHt?Rvm@c;bx`PjMrpPo24!*m({`*(GQxi0

qWL8ACEO`D2pS%9J@xuGG;hd!pq~-2T)= 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 F{{=8vIWzzO diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index a0c3f23..7dae4e8 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -65,55 +65,55 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

fConfigurarConexion TForm diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index b044e14..e1875bd 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas index 579b97f..040991a 100644 --- a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas @@ -42,8 +42,8 @@ type function ExtraerSeleccionados(AAlbaran: IBizAlbaranCliente) : IBizAlbaranCliente; function ElegirAlbaranes(AAlbaran: IBizAlbaranCliente; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranCliente; - procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); - procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); + procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); + procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); @@ -136,8 +136,8 @@ type DoPost: Boolean = True) : Boolean; procedure EnviarAlbaranPorEMail(AAlbaran : IBizAlbaranCliente); - procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); - procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false); + procedure Preview(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); + procedure Print(AAlbaran : IBizAlbaranCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); procedure EtiquetasPreview(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); procedure EtiquetasPrint(AAlbaran : IBizAlbaranCliente; Const withRefCliente: Boolean); @@ -1002,7 +1002,7 @@ begin end; end; -procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); +procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); var AReportController : IAlbaranesClienteReportController; ID_Albaranes: TIntegerList; @@ -1030,7 +1030,7 @@ begin else ID_Albaranes.Add(AAlbaran.ID); - AReportController.Preview(ID_Albaranes); + AReportController.Preview(ID_Albaranes, VerLogotipo); finally AReportController := NIL; @@ -1038,7 +1038,7 @@ begin end; end; -procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); +procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); var AReportController : IAlbaranesClienteReportController; ID_Albaranes: TIntegerList; @@ -1064,7 +1064,7 @@ begin else ID_Albaranes.Add(AAlbaran.ID); - AReportController.Print(ID_Albaranes); + AReportController.Print(ID_Albaranes, VerLogotipo); finally AReportController := NIL; diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas index 794b809..fc2169e 100644 --- a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas @@ -10,8 +10,8 @@ uses type IAlbaranesClienteReportController = interface(IControllerBase) ['{4BCC7A93-3322-494C-A3FA-118F4B62CB15}'] - procedure Preview(const AListaID : TIntegerList); - procedure Print(const AListaID : TIntegerList); + procedure Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); + procedure Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean); procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean); function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; @@ -26,8 +26,8 @@ type constructor Create; override; destructor Destroy; override; - procedure Preview(const AListaID : TIntegerList); - procedure Print(const AListaID : TIntegerList); + procedure Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); + procedure Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean); procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean); function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; @@ -113,8 +113,7 @@ begin end; end; -function TAlbaranesClienteReportController.ExportToPDF(const AID: Integer; - const AFileName: String): Boolean; +function TAlbaranesClienteReportController.ExportToPDF(const AID: Integer; const AFileName: String): Boolean; var AStream: Binary; begin @@ -124,7 +123,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetRptPDFAlbaran(AID); + AStream := FDataModule.GetRptPDFAlbaran(AID, True); try AStream.SaveToFile(AFileName); Result := True; @@ -136,14 +135,14 @@ begin end; end; -procedure TAlbaranesClienteReportController.Preview(const AListaID : TIntegerList); +procedure TAlbaranesClienteReportController.Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); var AStream: Binary; AEditor : IEditorAlbaranesClientePreview; begin AEditor := NIL; - AStream := FDataModule.GetRptAlbaranes(AListaID); + AStream := FDataModule.GetRptAlbaranes(AListaID, VerLogotipo); try CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); if Assigned(AEditor) then @@ -164,7 +163,7 @@ begin end; end; -procedure TAlbaranesClienteReportController.Print(const AListaID : TIntegerList); +procedure TAlbaranesClienteReportController.Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); var AStream: Binary; AEditor : IEditorAlbaranesClientePreview; @@ -173,7 +172,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetRptAlbaranes(AListaID); + AStream := FDataModule.GetRptAlbaranes(AListaID, VerLogotipo); try CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); if Assigned(AEditor) then diff --git a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas index dac9c60..f0b1498 100644 --- a/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas @@ -37,9 +37,9 @@ type function NewItem : IBizAlbaranCliente; // Report - function GetRptAlbaranes(const ListaID: TIntegerList): Binary; + function GetRptAlbaranes(const ListaID: TIntegerList; const VerLogotipo: Boolean): Binary; function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; - function GetRptPDFAlbaran(const AID: Integer): Binary; + function GetRptPDFAlbaran(const AID: Integer; const VerLogotipo: Boolean): Binary; end; implementation @@ -63,27 +63,26 @@ begin RORemoteService.Message := dmConexion.Message; end; -function TDataModuleAlbaranesCliente.GetRptAlbaranes(const ListaID: TIntegerList): Binary; +function TDataModuleAlbaranesCliente.GetRptAlbaranes(const ListaID: TIntegerList; const VerLogotipo: Boolean): Binary; var AParam : TIntegerArray; begin AParam := ListaID.ToIntegerArray; try - Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam); + Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam, VerLogotipo); finally FreeAndNil(AParam); end; end; -function TDataModuleAlbaranesCliente.GetRptPDFAlbaran( - const AID: Integer): Binary; +function TDataModuleAlbaranesCliente.GetRptPDFAlbaran(const AID: Integer; const VerLogotipo: Boolean): Binary; var AParam : TIntegerArray; begin AParam := TIntegerArray.Create; try AParam.Add(AID); - Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam); + Result := (RORemoteService as IsrvAlbaranesCliente).GenerarInforme(AParam, VerLogotipo); finally FreeAndNil(AParam); end; diff --git a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas index 1b2f871..b63c1aa 100644 --- a/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas +++ b/Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas @@ -8,9 +8,9 @@ uses type IDataModuleAlbaranesClienteReport = interface ['{42C55204-5AB9-403E-8385-1A62B02D8234}'] - function GetRptAlbaranes(const ListaID: TIntegerList): Binary; + function GetRptAlbaranes(const ListaID: TIntegerList; const VerLogotipo: Boolean): Binary; function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; - function GetRptPDFAlbaran(const AID: Integer): Binary; + function GetRptPDFAlbaran(const AID: Integer; const VerLogotipo: Boolean): Binary; end; implementation diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas index d1a2c61..cd06a29 100644 --- a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas @@ -36,11 +36,12 @@ type procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; + FVerLogotipo: Boolean; //Genera cada uno de los albaranes a imprimir procedure _GenerarAlbaran(const ID: Integer); public - function GenerarAlbaran(const ListaID : TIntegerArray): Binary; - function GenerarAlbaranEnPDF(const ListaID : TIntegerArray): Binary; + function GenerarAlbaran(const ListaID : TIntegerArray; const VerLogotipo: Boolean = True): Binary; + function GenerarAlbaranEnPDF(const ListaID : TIntegerArray; const VerLogotipo: Boolean = True): Binary; function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary; end; @@ -71,11 +72,14 @@ begin frxReport.EngineOptions.NewSilentMode := simReThrow; end; -function TRptAlbaranesCliente.GenerarAlbaran(const ListaID : TIntegerArray): Binary; +function TRptAlbaranesCliente.GenerarAlbaran(const ListaID : TIntegerArray; const VerLogotipo: Boolean = True): Binary; var i: Integer; begin Result := Binary.Create; + //Inicializamos parametros + FVerLogotipo := VerLogotipo; + //Vamos generando todos y cada uno de los presupuestos recibidos for i := 0 to ListaID.Count - 1 do _GenerarAlbaran(ListaID.Items[i]); @@ -83,13 +87,15 @@ begin frxReport.PreviewPages.SaveToStream(Result); end; -function TRptAlbaranesCliente.GenerarAlbaranEnPDF( - const ListaID: TIntegerArray): Binary; +function TRptAlbaranesCliente.GenerarAlbaranEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean = True): Binary; var i: Integer; begin Result := Binary.Create; + //Inicializamos parametros + FVerLogotipo := VerLogotipo; + //Vamos generando todos y cada uno de los presupuestos recibidos for i := 0 to ListaID.Count - 1 do _GenerarAlbaran(ListaID.Items[i]); @@ -119,7 +125,8 @@ begin raise Exception.Create (('Error Servidor: _GenerarAlbaran, no encuentra informe' + rptInfAlbaran)); frxReport.LoadFromFile(AInforme, True); - frxReport.ReportOptions.Name := 'Albarán de cliente ' + tbl_Cabecera.FieldByName('REFERENCIA').AsString; + frxReport.Variables.Variables['VerLogotipo'] := FVerLogotipo; + frxReport.ReportOptions.Name := 'Albarán de cliente ' + tbl_Cabecera.FieldByName('REFERENCIA').AsString; frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas index 28dfe9c..0ad6e40 100644 --- a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas @@ -32,7 +32,7 @@ type procedure DARemoteServiceCreate(Sender: TObject); protected { IsrvAlbaranesCliente methods } - function GenerarInforme(const ListaID: TIntegerArray): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; end; @@ -81,14 +81,13 @@ begin ConnectionName := dmServer.ConnectionName; end; -function TsrvAlbaranesCliente.GenerarInforme( - const ListaID: TIntegerArray): Binary; +function TsrvAlbaranesCliente.GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; var AReportGenerator : TRptAlbaranesCliente; begin AReportGenerator := TRptAlbaranesCliente.Create(nil); try - Result := AReportGenerator.GenerarAlbaran(ListaID); + Result := AReportGenerator.GenerarAlbaran(ListaID, VerLogotipo); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm index 14d8c4d..5abfacf 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm @@ -360,6 +360,7 @@ inherited fEditorAlbaranCliente: TfEditorAlbaranCliente inherited eImporteNeto: TcxDBCurrencyEdit Left = 93 Top = 11 + Enabled = True Style.IsFontAssigned = True ExplicitLeft = 93 ExplicitTop = 11 @@ -406,6 +407,9 @@ inherited fEditorAlbaranCliente: TfEditorAlbaranCliente ShowCaption = False ShowBorder = False inherited dxLayoutControl1Group2: TdxLayoutGroup + inherited dxLayoutControl1Item8: TdxLayoutItem + Visible = False + end inherited dxLayoutControl1Group7: TdxLayoutGroup Visible = False end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas index 06daa57..5bfbcac 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas @@ -223,9 +223,13 @@ begin end; procedure TfEditorAlbaranCliente.ImprimirInterno; +var + AVerLogotipo: Boolean; begin inherited; - FController.Print(FAlbaran); + AVerLogotipo := True; + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Print(FAlbaran, False, AVerLogotipo); end; procedure TfEditorAlbaranCliente.OnClienteChanged(Sender: TObject); @@ -306,9 +310,13 @@ begin end; procedure TfEditorAlbaranCliente.PrevisualizarInterno; +var + AVerLogotipo: Boolean; begin inherited; - FController.Preview(FAlbaran); + AVerLogotipo := True; + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Preview(FAlbaran, False, AVerLogotipo); end; procedure TfEditorAlbaranCliente.RecalcularPortePorUnidad; diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm index ebbb83c..53e0775 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm @@ -2,7 +2,6 @@ inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente Caption = 'Lista de albaranes de cliente' ClientWidth = 583 ExplicitWidth = 591 - ExplicitHeight = 240 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas index fea01f7..8ce0f4d 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas @@ -387,10 +387,11 @@ var Respuesta : Integer; AAlbaranes: IBizAlbaranCliente; AllItems: Boolean; - + AVerLogotipo: Boolean; begin AAlbaranes := Nil; AllItems := False; + AVerLogotipo := True; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); @@ -417,7 +418,10 @@ begin AAlbaranes := Albaranes; if Assigned(AAlbaranes) then - FController.Print(AAlbaranes, AllItems); + begin + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Print(AAlbaranes, AllItems, AVerLogotipo); + end; end; end; end; @@ -485,9 +489,12 @@ var Respuesta : Integer; AAlbaranes: IBizAlbaranCliente; AllItems: Boolean; + AVerLogotipo: Boolean; + begin AAlbaranes := Nil; AllItems := False; + AVerLogotipo := True; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); @@ -514,7 +521,10 @@ begin AAlbaranes := Albaranes; if Assigned(AAlbaranes) then - FController.Preview(AAlbaranes, AllItems); + begin + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Preview(AAlbaranes, AllItems, AVerLogotipo); + end; end; end; end; diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm index 4bf64cd..71422af 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm @@ -100,8 +100,8 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente inherited dxLayoutControl1: TdxLayoutControl Width = 442 Height = 221 - ExplicitWidth = 452 - ExplicitHeight = 226 + ExplicitWidth = 442 + ExplicitHeight = 221 inherited edtlNombre: TcxDBTextEdit ExplicitWidth = 224 Width = 224 @@ -458,6 +458,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'REFERENCIA_CLIENTE' DataBinding.DataSource = DADataSource + Enabled = False Properties.ReadOnly = False Properties.ValidateOnEnter = True Style.BorderColor = clWindowFrame @@ -507,6 +508,7 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente Top = 224 Width = 373 Height = 41 + Enabled = False Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 @@ -572,6 +574,8 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente end object dxLayoutControl1Item23: TdxLayoutItem Caption = 'Ref. cliente:' + Enabled = False + Visible = False Control = eRefCliente ControlOptions.ShowBorder = False end @@ -641,6 +645,8 @@ inherited frViewAlbaranCliente: TfrViewAlbaranCliente end object dxLayoutControl1Group17: TdxLayoutGroup Caption = 'El albar'#225'n pertenece a la tienda' + Enabled = False + Visible = False object dxLayoutControl1Item17: TdxLayoutItem Caption = 'New Item' ShowCaption = False diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm index 38774d1..9d851db 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm @@ -63,6 +63,8 @@ inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente object cxGridViewTIENDA: TcxGridDBColumn Caption = 'Tienda' DataBinding.FieldName = 'TIENDA' + Visible = False + VisibleForCustomization = False end object cxGridViewREFERENCIA: TcxGridDBColumn DataBinding.FieldName = 'REFERENCIA' @@ -171,17 +173,21 @@ inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente end object cxGridLevelPendientes: TcxGridLevel Caption = 'Pendientes' + Visible = False end object cxGridLevelEnviados: TcxGridLevel Caption = 'Enviados' + Visible = False end object cxGridLevelServidos: TcxGridLevel Caption = 'Servidos' + Visible = False end object cxGridLevelProximosAEnviar: TcxGridLevel Caption = 'Pasados de fecha' Options.DetailFrameColor = clNone Options.DetailFrameWidth = 0 + Visible = False end end inherited frViewFiltroBase1: TfrViewFiltroBase @@ -193,15 +199,27 @@ inherited frViewAlbaranesCliente: TfrViewAlbaranesCliente Width = 596 ExplicitWidth = 596 inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 499 Width = 499 end inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 147 Width = 147 end inherited edtFechaFinFiltro: TcxDateEdit Left = 251 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitLeft = 251 ExplicitWidth = 335 Width = 335 diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas index 8436ff6..1957c18 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas @@ -54,8 +54,8 @@ type function EsModificable(AContrato : IBizContratoCliente): Boolean; function EsEliminable(AContrato : IBizContratoCliente): Boolean; - procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false); - procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false); + procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); + procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); procedure EnviarContratoPorEMail(AContrato : IBizContratoCliente); function CambiarSituacion(AContrato : IBizContratoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; @@ -126,8 +126,8 @@ type function EsModificable(AContrato : IBizContratoCliente): Boolean; function EsEliminable(AContrato : IBizContratoCliente): Boolean; - procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false); - procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false); + procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); + procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); procedure EnviarContratoPorEMail(AContrato : IBizContratoCliente); function CambiarSituacion(AContrato : IBizContratoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; @@ -967,7 +967,7 @@ begin Result := AContrato; end; -procedure TContratosClienteController.Preview(AContrato: IBizContratoCliente; AllItems: Boolean = false); +procedure TContratosClienteController.Preview(AContrato: IBizContratoCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); var AReportController : IContratosClienteReportController; ID_Contratos: TIntegerList; @@ -993,14 +993,14 @@ begin else ID_Contratos.Add(AContrato.ID); - AReportController.Preview(ID_Contratos); + AReportController.Preview(ID_Contratos, VerLogotipo); finally AReportController := NIL; FreeAndNil(ID_Contratos); end; end; -procedure TContratosClienteController.Print(AContrato: IBizContratoCliente; AllItems: Boolean = false); +procedure TContratosClienteController.Print(AContrato: IBizContratoCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); var AReportController : IContratosClienteReportController; ID_Contratos: TIntegerList; @@ -1025,7 +1025,7 @@ begin else ID_Contratos.Add(AContrato.ID); - AReportController.Print(ID_Contratos); + AReportController.Print(ID_Contratos, VerLogotipo); finally AReportController := NIL; diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas index 3cc6711..7a7f2bf 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas @@ -10,8 +10,8 @@ uses type IContratosClienteReportController = interface(IControllerBase) ['{FEF47B69-26A3-462A-AF6D-4B2073D4F9DC}'] - procedure Preview(const AListaID : TIntegerList); - procedure Print(const AListaID : TIntegerList); + procedure Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); + procedure Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; end; @@ -23,8 +23,8 @@ type constructor Create; override; destructor Destroy; override; - procedure Preview(const AListaID : TIntegerList); - procedure Print(const AListaID : TIntegerList); + procedure Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); + procedure Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; end; @@ -83,7 +83,7 @@ begin } end; -procedure TContratosClienteReportController.Preview(const AListaID : TIntegerList); +procedure TContratosClienteReportController.Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); var AStream: Binary; AEditor : IEditorContratosClientePreview; @@ -92,7 +92,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetRptContratos(AListaID); + AStream := FDataModule.GetRptContratos(AListaID, VerLogotipo); try CreateEditor('EditorContratosClientePreview', IEditorContratosClientePreview, AEditor); if Assigned(AEditor) then @@ -116,16 +116,16 @@ begin end; end; -procedure TContratosClienteReportController.Print(const AListaID : TIntegerList); -{var +procedure TContratosClienteReportController.Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); +var AStream: Binary; - AEditor : IEditorContratosClientePreview;} + AEditor : IEditorContratosClientePreview; begin -{ AEditor := NIL; + AEditor := NIL; ShowHourglassCursor; try - AStream := FDataModule.GetRptPresupuestos(AListaID); + AStream := FDataModule.GetRptContratos(AListaID, VerLogotipo); try CreateEditor('EditorContratosClientePreview', IEditorContratosClientePreview, AEditor); if Assigned(AEditor) then @@ -133,7 +133,7 @@ begin try AEditor.Controller := Self; AEditor.ListaID := AListaID; - AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE; + AEditor.Title := 'Contrato - ' + AppFactuGES.EmpresaActiva.NOMBRE; AEditor.LoadFromStream(AStream); AEditor.Print; finally @@ -147,7 +147,6 @@ begin finally HideHourglassCursor; end; -} end; end. diff --git a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas index 4a37414..94b293f 100644 --- a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas @@ -49,8 +49,8 @@ type function NewItem : IBizContratoCliente; // Report - function GetRptContratos(const AListaID: TIntegerList): Binary; - function GetRptPDFContrato(const AID: Integer): Binary; + function GetRptContratos(const AListaID: TIntegerList; const VerLogotipo: Boolean): Binary; + function GetRptPDFContrato(const AID: Integer; const VerLogotipo: Boolean): Binary; function GetAnosItems : TStringList; function GetContratosClienteBeneficios : IBizContratosClienteBeneficios; @@ -77,27 +77,26 @@ begin RORemoteService.Message := dmConexion.Message; end; -function TDataModuleContratosCliente.GetRptPDFContrato( - const AID: Integer): Binary; +function TDataModuleContratosCliente.GetRptPDFContrato(const AID: Integer; const VerLogotipo: Boolean): Binary; var AParam : TIntegerArray; begin AParam := TIntegerArray.Create; try AParam.Add(AID); - Result := (RORemoteService as IsrvContratosCliente).GenerarInformeEnPDF(AParam) + Result := (RORemoteService as IsrvContratosCliente).GenerarInformeEnPDF(AParam, VerLogotipo) finally FreeANDNIL(AParam) end; end; -function TDataModuleContratosCliente.GetRptContratos(const AListaID: TIntegerList): Binary; +function TDataModuleContratosCliente.GetRptContratos(const AListaID: TIntegerList; const VerLogotipo: Boolean): Binary; var AParam : TIntegerArray; begin AParam := AListaID.ToIntegerArray; try - Result := (RORemoteService as IsrvContratosCliente).GenerarInforme(AParam) + Result := (RORemoteService as IsrvContratosCliente).GenerarInforme(AParam, VerLogotipo) finally FreeANDNIL(AParam) end; diff --git a/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas b/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas index a883e0f..81cc31d 100644 --- a/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas +++ b/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas @@ -8,8 +8,8 @@ uses type IDataModuleContratosClienteReport = interface ['{6AB7469B-842A-413E-AF33-9506477A9666}'] - function GetRptContratos(const AListaID: TIntegerList): Binary; - function GetRptPDFContrato(const AID: Integer): Binary; + function GetRptContratos(const AListaID: TIntegerList; const VerLogotipo: Boolean): Binary; + function GetRptPDFContrato(const AID: Integer; const VerLogotipo: Boolean): Binary; end; implementation diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm index 746bca7..dbe85a1 100644 --- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm +++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm @@ -1010,7 +1010,6 @@ object RptContratosCliente: TRptContratosCliente Top = 128 end object IBDatabase1: TIBDatabase - Connected = True DatabaseName = 'C:\Codigo Acana\Output\Debug\Database\FACTUGES.FDB' Params.Strings = ( 'user_name=sysdba' @@ -1022,7 +1021,6 @@ object RptContratosCliente: TRptContratosCliente Top = 296 end object IBTransaction1: TIBTransaction - Active = True Left = 48 Top = 352 end diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas index 5eebb03..0eaca56 100644 --- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas +++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas @@ -82,6 +82,7 @@ type FListaNombresClientes: TStringList; FImporteMinimo: Currency; FDesglosado : Boolean; + FVerLogotipo : Boolean; procedure _GenerarContrato(const AID : Integer); @@ -90,10 +91,10 @@ type function _GenerarInforme(const TipoInforme: String): Binary; procedure IniciarParametrosInforme; - procedure RecuperarNombresClientes; + procedure RecuperarNombresClientes; public - function GenerarContrato(const ListaID : TIntegerArray): Binary; - function GenerarContratoEnPDF(const ListaID : TIntegerArray): Binary; + function GenerarContrato(const ListaID : TIntegerArray; const VerLogotipo: Boolean = True): Binary; + function GenerarContratoEnPDF(const ListaID : TIntegerArray; const VerLogotipo: Boolean = True): Binary; function GenerarInformeListadoContratos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; end; @@ -141,12 +142,15 @@ begin end; end; -function TRptContratosCliente.GenerarContratoEnPDF(const ListaID: TIntegerArray): Binary; +function TRptContratosCliente.GenerarContratoEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean = True): Binary; var i: Integer; begin Result := Binary.Create; try + //Inicializamos parametros + FVerLogotipo := VerLogotipo; + //Vamos generando todos y cada uno de los Contratos recibidos for i := 0 to ListaID.Count - 1 do _GenerarContrato(ListaID.Items[i]); @@ -478,12 +482,15 @@ begin end; end; -function TRptContratosCliente.GenerarContrato(const ListaID: TIntegerArray): Binary; +function TRptContratosCliente.GenerarContrato(const ListaID: TIntegerArray; const VerLogotipo: Boolean = True): Binary; var i: Integer; begin Result := Binary.Create; try + //Inicializamos parametros + FVerLogotipo := VerLogotipo; + //Vamos generando todos y cada uno de los Contratos recibidos for i := 0 to ListaID.Count - 1 do _GenerarContrato(ListaID.Items[i]); @@ -519,7 +526,7 @@ begin tbl_Cabecera.Active := False; tbl_Capitulos.Active := False; tbl_Detalles.Active := False; - tbl_Condiciones.Active := False; + tbl_Condiciones.Active := False; tbl_Cabecera.ParamByName('ID').AsInteger := AID; tbl_Capitulos.ParamByName('ID_PRE_CON').AsInteger := AID; @@ -531,13 +538,14 @@ begin tbl_Cabecera.Active := True; tbl_Capitulos.Active := True; tbl_Detalles.Active := True; - tbl_Condiciones.Active := True; + tbl_Condiciones.Active := True; AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString); if VarIsNull(AInforme) then raise Exception.Create (('Error Servidor: _GenerarContrato, no encuentra informe ' + rptInforme)); frxReport.LoadFromFile(AInforme, True); + frxReport.Variables.Variables['VerLogotipo'] := FVerLogotipo; frxReport.AddFunction('function PONERJUSTIFICACIONCOMPLETA(ARTFText : String): String', 'User Function',''); frxReport.ReportOptions.Name := 'Contrato ' + tbl_Cabecera.FieldByName('REFERENCIA').AsString; frxReport.PrepareReport(False); diff --git a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas index 4381145..13967ec 100644 --- a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas +++ b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas @@ -33,8 +33,8 @@ type procedure DARemoteServiceCreate(Sender: TObject); protected { IsrvContratosCliente methods } - function GenerarInforme(const ListaID: TIntegerArray): Binary; - function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; end; implementation @@ -77,25 +77,25 @@ begin ConnectionName := dmServer.ConnectionName; end; -function TsrvContratosCliente.GenerarInforme(const ListaID: TIntegerArray): Binary; +function TsrvContratosCliente.GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; var AReportGenerator : TRptContratosCliente; begin AReportGenerator := TRptContratosCliente.Create(nil); try - Result := AReportGenerator.GenerarContrato(ListaID); + Result := AReportGenerator.GenerarContrato(ListaID, VerLogotipo); finally FreeAndNIL(AReportGenerator); end; end; -function TsrvContratosCliente.GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; +function TsrvContratosCliente.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; var AReportGenerator : TRptContratosCliente; begin AReportGenerator := TRptContratosCliente.Create(nil); try - Result := AReportGenerator.GenerarContratoEnPDF(ListaID); + Result := AReportGenerator.GenerarContratoEnPDF(ListaID, VerLogotipo); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm index f64d125..213b9df 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm @@ -187,10 +187,6 @@ inherited fEditorContratoCliente: TfEditorContratoCliente object pagContenido: TTabSheet Caption = 'Contenido' ImageIndex = 1 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 inline frViewDetallesContratoCliente1: TfrViewDetallesContratoCliente Left = 0 Top = 0 @@ -224,59 +220,82 @@ inherited fEditorContratoCliente: TfEditorContratoCliente end inherited FontName: TJvFontComboBox Left = 34 - ExplicitLeft = 34 + ExplicitLeft = 368 + ExplicitTop = 0 end inherited FontSize: TEdit - Left = 179 + Left = 513 + Top = 0 Width = 74 - ExplicitLeft = 179 + ExplicitLeft = 513 + ExplicitTop = 0 ExplicitWidth = 74 end inherited UpDown1: TUpDown - Left = 253 - ExplicitLeft = 253 + Left = 587 + Top = 0 + ExplicitLeft = 587 + ExplicitTop = 0 end inherited ToolButton13: TToolButton - Left = 270 - ExplicitLeft = 270 + Left = 604 + Top = 0 + ExplicitLeft = 604 + ExplicitTop = 0 end inherited ToolButton6: TToolButton - Left = 278 - ExplicitLeft = 278 + Left = 612 + Top = 0 + ExplicitLeft = 612 + ExplicitTop = 0 end inherited ToolButton7: TToolButton - Left = 312 - ExplicitLeft = 312 + Left = 646 + Top = 0 + ExplicitLeft = 646 + ExplicitTop = 0 end inherited ToolButton8: TToolButton - Left = 346 - ExplicitLeft = 346 + Left = 680 + Top = 0 + ExplicitLeft = 680 + ExplicitTop = 0 end inherited ToolButton12: TToolButton - Left = 380 - ExplicitLeft = 380 + Left = 714 + Top = 0 + ExplicitLeft = 714 + ExplicitTop = 0 end inherited ToolButton9: TToolButton - Left = 388 - ExplicitLeft = 388 + Left = 722 + Top = 0 + ExplicitLeft = 722 + ExplicitTop = 0 end inherited ToolButton10: TToolButton - Left = 422 - ExplicitLeft = 422 + Left = 756 + Top = 0 + ExplicitLeft = 756 + ExplicitTop = 0 end inherited ToolButton11: TToolButton - Left = 456 - ExplicitLeft = 456 + Left = 790 + Top = 0 + ExplicitLeft = 790 + ExplicitTop = 0 end end inherited cxGrid: TcxGrid + Top = 50 Width = 831 - Height = 170 + Height = 192 ExplicitTop = 50 ExplicitWidth = 834 ExplicitHeight = 273 end inherited TBXDock1: TTBXDock + Top = 24 Width = 831 ExplicitTop = 24 ExplicitWidth = 834 @@ -295,10 +314,6 @@ inherited fEditorContratoCliente: TfEditorContratoCliente object pagInicidencias: TTabSheet Caption = 'Incidencias' ImageIndex = 2 - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 - ExplicitHeight = 0 inline frViewIncidenciasCli: TfrViewIncidencias Left = 0 Top = 0 @@ -375,6 +390,10 @@ inherited fEditorContratoCliente: TfEditorContratoCliente inherited PnlComentario: TPanel Width = 845 ExplicitWidth = 845 + inherited lbComentario: TLabel + Width = 835 + Height = 25 + end end inline frViewTotales1: TfrViewTotales [5] Left = 0 diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas index 6ef92e8..d3eef8f 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas @@ -284,10 +284,16 @@ begin end; procedure TfEditorContratoCliente.ImprimirInterno; +var + AVerLogotipo: Boolean; begin inherited; + AVerLogotipo := True; if not Modified then - FController.Print(FContrato); + begin + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Print(FContrato, False, AVerLogotipo); + end; end; procedure TfEditorContratoCliente.OnClienteChanged(Sender: TObject); @@ -345,10 +351,17 @@ begin end; procedure TfEditorContratoCliente.PrevisualizarInterno; +var + AVerLogotipo: Boolean; + begin inherited; + AVerLogotipo := True; if not Modified then - FController.Preview(FContrato); + begin + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Preview(FContrato, False, AVerLogotipo); + end; end; {procedure TfEditorContratoCliente.RecalcularPortePorUnidad; diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm index 95ce7a5..a6e8af1 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm @@ -124,7 +124,7 @@ inherited fEditorContratosCliente: TfEditorContratosCliente Width = 805 ExplicitWidth = 805 inherited tbxMain: TTBXToolbar - ExplicitWidth = 775 + ExplicitWidth = 632 object TBXSubmenuItem3: TTBXSubmenuItem [0] Caption = 'Nuevo' DisplayMode = nbdmImageAndText diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas index b3b9fc6..1375898 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas @@ -475,9 +475,12 @@ var Respuesta : Integer; AContratos: IBizContratoCliente; AllItems: Boolean; + AVerLogotipo: Boolean; + begin AContratos := Nil; AllItems := False; + AVerLogotipo := True; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); @@ -504,7 +507,10 @@ begin AContratos := Contratos; if Assigned(AContratos) then - FController.Print(AContratos, AllItems); + begin + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Print(AContratos, AllItems, AVerLogotipo); + end; end; end; end; @@ -548,9 +554,12 @@ var Respuesta : Integer; AContratos: IBizContratoCliente; AllItems: Boolean; + AVerLogotipo: Boolean; + begin AContratos := Nil; AllItems := False; + AVerLogotipo := True; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); @@ -577,7 +586,10 @@ begin AContratos := Contratos; if Assigned(AContratos) then - FController.Preview(AContratos, AllItems); + begin + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Preview(AContratos, AllItems, AVerLogotipo); + end; end; end; end; diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index 62d2429..0781526 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -39,8 +39,8 @@ type function Duplicar(AFactura: IBizFacturaCliente): IBizFacturaCliente; function GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; - procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false); - procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false); + procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); + procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); procedure RecalcularImportes(AFactura: IBizFacturaCliente); @@ -102,8 +102,8 @@ type function GenerarAbono(AFactura: IBizFacturaCliente): IBizFacturaCliente; procedure RecuperarCliente(AFactura : IBizFacturaCliente); - procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false); - procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false); + procedure Preview(AFactura : IBizFacturaCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); + procedure Print(AFactura : IBizFacturaCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); procedure RecalcularImportes(AFactura: IBizFacturaCliente); function EsModificable(AFactura: IBizFacturaCliente; var AComentario: Variant): Boolean; @@ -1082,7 +1082,7 @@ begin Result := AFactura; end; -procedure TFacturasClienteController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false); +procedure TFacturasClienteController.Preview(AFactura: IBizFacturaCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); var AReportController : IFacturasClienteReportController; ID_Facturas: TIntegerList; @@ -1109,7 +1109,7 @@ begin else ID_Facturas.Add(AFactura.ID); - AReportController.Preview(ID_Facturas); + AReportController.Preview(ID_Facturas, VerLogotipo); finally AReportController := NIL; @@ -1117,7 +1117,7 @@ begin end; end; -procedure TFacturasClienteController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false); +procedure TFacturasClienteController.Print(AFactura: IBizFacturaCliente; AllItems: Boolean = false; VerLogotipo: Boolean = true); var AReportController : IFacturasClienteReportController; ID_Facturas: TIntegerList; @@ -1144,7 +1144,7 @@ begin else ID_Facturas.Add(AFactura.ID); - AReportController.Print(ID_Facturas); + AReportController.Print(ID_Facturas, VerLogotipo); finally AReportController := NIL; diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas index 54dd1b5..4dd0e3e 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas @@ -10,8 +10,8 @@ uses type IFacturasClienteReportController = interface(IControllerBase) ['{A0F41767-4FF6-4BAE-9FC9-894DD721D756}'] - procedure Preview(const AListaID : TIntegerList); - procedure Print(const AListaID : TIntegerList); + procedure Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); + procedure Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); end; TFacturasClienteReportController = class(TControllerBase, IFacturasClienteReportController) @@ -22,8 +22,8 @@ type constructor Create; override; destructor Destroy; override; - procedure Preview(const AListaID : TIntegerList); - procedure Print(const AListaID : TIntegerList); + procedure Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); + procedure Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); end; @@ -54,14 +54,14 @@ begin inherited; end; -procedure TFacturasClienteReportController.Preview(const AListaID : TIntegerList); +procedure TFacturasClienteReportController.Preview(const AListaID : TIntegerList; const VerLogotipo: Boolean); var AStream: Binary; AEditor : IEditorFacturasClientePreview; begin AEditor := NIL; - AStream := FDataModule.GetReport(AListaID); + AStream := FDataModule.GetReport(AListaID, VerLogotipo); try CreateEditor('EditorFacturasClientePreview', IEditorFacturasClientePreview, AEditor); if Assigned(AEditor) then @@ -79,7 +79,7 @@ begin end; end; -procedure TFacturasClienteReportController.Print(const AListaID : TIntegerList); +procedure TFacturasClienteReportController.Print(const AListaID : TIntegerList; const VerLogotipo: Boolean); var AStream: Binary; AEditor : IEditorFacturasClientePreview; @@ -87,7 +87,7 @@ begin AEditor := NIL; ShowHourglassCursor; try - AStream := FDataModule.GetReport(AListaID); + AStream := FDataModule.GetReport(AListaID, VerLogotipo); try CreateEditor('EditorFacturasClientePreview', IEditorFacturasClientePreview, AEditor); if Assigned(AEditor) then diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas index c843e62..4439078 100644 --- a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas @@ -33,7 +33,7 @@ type function NewItem : IBizFacturaCliente; // Report - function GetReport(const AListaID: TIntegerList): Binary; + function GetReport(const AListaID: TIntegerList; const VerLogotipo: Boolean): Binary; end; implementation @@ -52,13 +52,13 @@ begin RORemoteService.Message := dmConexion.Message; end; -function TDataModuleFacturasCliente.GetReport(const AListaID: TIntegerList): Binary; +function TDataModuleFacturasCliente.GetReport(const AListaID: TIntegerList; const VerLogotipo: Boolean): Binary; var AParam : TIntegerArray; begin AParam := AListaID.ToIntegerArray; try - Result := (RORemoteService as IsrvFacturasCliente).GenerateReport(AParam); + Result := (RORemoteService as IsrvFacturasCliente).GenerateReport(AParam, VerLogotipo); finally FreeANDNIL(AParam); end; diff --git a/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas index 22b4f5b..0edf393 100644 --- a/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas +++ b/Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas @@ -8,7 +8,7 @@ uses type IDataModuleFacturasClienteReport = interface ['{F498AC70-AA38-4C06-B301-85A4AC0B210B}'] - function GetReport(const AListaID: TIntegerList): Binary; + function GetReport(const AListaID: TIntegerList; const VerLogotipo: Boolean): Binary; end; implementation diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index 27d29c2..92bf1d2 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -50,6 +50,7 @@ type FListaNombresClientes : TStringList; FImporteMinimo: Currency; FDesglosado : Boolean; + FVerLogotipo: Boolean; //Genera cada uno de los albaranes a imprimir procedure _GenerarFactura(const ID: integer); overload; @@ -61,7 +62,7 @@ type procedure RecuperarNombresClientes; public - function GenerarFactura(const ListaID : TIntegerArray): Binary; overload; + function GenerarFactura(const ListaID : TIntegerArray; const VerLogotipo: Boolean = True): Binary; overload; function GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; @@ -104,12 +105,15 @@ begin FreeANDNIL(FListaNombresClientes); end; -function TRptFacturasCliente.GenerarFactura(const ListaID: TIntegerArray): Binary; +function TRptFacturasCliente.GenerarFactura(const ListaID: TIntegerArray; const VerLogotipo: Boolean = True): Binary; var i: Integer; begin Result := Binary.Create; try + //Inicializamos parametros + FVerLogotipo := VerLogotipo; + //Vamos generando todos y cada una de las facturas recibidas for i := 0 to ListaID.Count - 1 do _GenerarFactura(ListaID.Items[i]); @@ -616,7 +620,8 @@ begin raise Exception.Create (('Error Servidor: _GenerarFactura, no encuentra informe ' + rptFacturaCliente)); frxReport.LoadFromFile(AInforme, True); - frxReport.ReportOptions.Name := 'Factura ' + tbl_Cabecera.FieldByName('REFERENCIA').AsString; + frxReport.Variables.Variables['VerLogotipo'] := FVerLogotipo; + frxReport.ReportOptions.Name := 'Factura ' + tbl_Cabecera.FieldByName('REFERENCIA').AsString; frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas index 5c4c622..baa273f 100644 --- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas @@ -35,7 +35,7 @@ type private protected { IsrvFacturasCliente methods } - function GenerateReport(const FacturaID: TIntegerArray): Binary; + function GenerateReport(const FacturaID: TIntegerArray; const VerLogotipo: Boolean): Binary; end; implementation @@ -77,13 +77,13 @@ begin ConnectionName := dmServer.ConnectionName; end; -function TsrvFacturasCliente.GenerateReport(const FacturaID: TIntegerArray): Binary; +function TsrvFacturasCliente.GenerateReport(const FacturaID: TIntegerArray; const VerLogotipo: Boolean): Binary; var AReportGenerator : TRptFacturasCliente; begin AReportGenerator := TRptFacturasCliente.Create(nil); try - Result := AReportGenerator.GenerarFactura(FacturaID); + Result := AReportGenerator.GenerarFactura(FacturaID, VerLogotipo); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm index e25f808..6e0f625 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm @@ -245,6 +245,8 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente ExplicitHeight = 228 inherited memObservaciones: TcxDBMemo DataBinding.DataSource = frViewFacturaCliente1.DADataSource + ExplicitWidth = 785 + ExplicitHeight = 20 Height = 228 Width = 521 end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas index b6c15bc..26fed49 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas @@ -306,9 +306,13 @@ begin end; procedure TfEditorFacturaCliente.ImprimirInterno; +var + AVerLogotipo: Boolean; begin inherited; - FController.Print(FFactura); + AVerLogotipo:= True; + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Print(FFactura, False, aVerLogotipo); end; procedure TfEditorFacturaCliente.OnClienteChanged(Sender: TObject); @@ -410,9 +414,13 @@ begin end; procedure TfEditorFacturaCliente.PrevisualizarInterno; +var + AVerLogotipo: Boolean; begin inherited; - FController.Preview(FFactura); + AverLogotipo:= True; + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Preview(FFactura, False, AVerLogotipo); end; procedure TfEditorFacturaCliente.RecalcularPortePorUnidad; diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm index d979796..c038758 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -38,7 +38,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Width = 640 ExplicitWidth = 640 inherited tbxMain: TTBXToolbar - ExplicitWidth = 640 + ExplicitWidth = 632 object TBXSubmenuItem2: TTBXSubmenuItem [0] Caption = 'Nuevo' DisplayMode = nbdmImageAndText @@ -200,12 +200,16 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 144 + Width = 144 end inherited edtFechaFinFiltro: TcxDateEdit + Left = 301 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 301 ExplicitWidth = 263 Width = 263 end diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas index d4dfd51..f7e9b23 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -294,9 +294,11 @@ var Respuesta : Integer; AFacturas: IBizFacturaCliente; AllItems: Boolean; + AVerLogotipo: Boolean; begin AFacturas := Nil; AllItems := False; + AVerLogotipo:= True; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); @@ -323,7 +325,10 @@ begin AFacturas := Facturas; if Assigned(AFacturas) then - FController.Print(AFacturas, AllItems); + begin + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Print(AFacturas, AllItems, AVerLogotipo); + end; end; end; end; @@ -401,9 +406,11 @@ var Respuesta : Integer; AFacturas: IBizFacturaCliente; AllItems: Boolean; + AVerLogotipo: Boolean; begin AFacturas := Nil; AllItems := False; + AVerLogotipo:= True; if MultiSelect and Assigned(ViewGrid) then AllItems := (ViewGrid.NumSeleccionados > 1); @@ -430,7 +437,10 @@ begin AFacturas := Facturas; if Assigned(AFacturas) then - FController.Preview(AFacturas, AllItems); + begin + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); + FController.Preview(AFacturas, AllItems, AVerLogotipo); + end; end; end; end; diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas index 1fb7d17..1208da8 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas @@ -516,7 +516,7 @@ begin if Assigned(APresupuestos) then begin - AVerLogotipo := (Application.MessageBox('¿Desea imprimir el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + AVerLogotipo := (Application.MessageBox('¿Desea imprimir el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); FController.Print(APresupuestos, AllItems, AVerLogotipo); end; end; @@ -594,7 +594,7 @@ begin if Assigned(APresupuestos) then begin - AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el documento con logotipo?', 'Atención', MB_YESNO) = IDYES); + AVerLogotipo := (Application.MessageBox('¿Desea previsualizar el/los documento/s con logotipo?', 'Atención', MB_YESNO) = IDYES); FController.Preview(APresupuestos, AllItems, AVerLogotipo); end; end; diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 0d12562..132ab49 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -276,6 +276,8 @@ + + @@ -352,6 +354,8 @@ + + @@ -875,6 +879,8 @@ + + @@ -883,6 +889,8 @@ + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index 42ad626..111c7d4 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -510,7 +510,7 @@ type { IsrvFacturasCliente } IsrvFacturasCliente = interface(IDataAbstractService) ['{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}'] - function GenerateReport(const FacturaID: TIntegerArray): Binary; + function GenerateReport(const FacturaID: TIntegerArray; const VerLogotipo: Boolean): Binary; end; { CosrvFacturasCliente } @@ -523,7 +523,7 @@ type protected function __GetInterfaceName:string; override; - function GenerateReport(const FacturaID: TIntegerArray): Binary; + function GenerateReport(const FacturaID: TIntegerArray; const VerLogotipo: Boolean): Binary; end; { IsrvFacturasProveedor } @@ -588,7 +588,7 @@ type { IsrvAlbaranesCliente } IsrvAlbaranesCliente = interface(IDataAbstractService) ['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'] - function GenerarInforme(const ListaID: TIntegerArray): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; end; @@ -602,7 +602,7 @@ type protected function __GetInterfaceName:string; override; - function GenerarInforme(const ListaID: TIntegerArray): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; end; @@ -849,8 +849,8 @@ type { IsrvContratosCliente } IsrvContratosCliente = interface(IDataAbstractService) ['{ADBF1627-F507-4A0F-818E-38BAE28579B6}'] - function GenerarInforme(const ListaID: TIntegerArray): Binary; - function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; end; { CosrvContratosCliente } @@ -863,8 +863,8 @@ type protected function __GetInterfaceName:string; override; - function GenerarInforme(const ListaID: TIntegerArray): Binary; - function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; end; implementation @@ -1755,12 +1755,13 @@ begin result := 'srvFacturasCliente'; end; -function TsrvFacturasCliente_Proxy.GenerateReport(const FacturaID: TIntegerArray): Binary; +function TsrvFacturasCliente_Proxy.GenerateReport(const FacturaID: TIntegerArray; const VerLogotipo: Boolean): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); __Message.Write('FacturaID', TypeInfo(FactuGES_Intf.TIntegerArray), FacturaID, []); + __Message.Write('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); @@ -1898,12 +1899,13 @@ begin result := 'srvAlbaranesCliente'; end; -function TsrvAlbaranesCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary; +function TsrvAlbaranesCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); @@ -2681,12 +2683,13 @@ begin result := 'srvContratosCliente'; end; -function TsrvContratosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary; +function TsrvContratosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); @@ -2698,12 +2701,13 @@ begin end end; -function TsrvContratosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; +function TsrvContratosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Write('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index b07da32..4b07853 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -849,9 +849,10 @@ begin end; procedure TsrvFacturasCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerateReport(const FacturaID: TIntegerArray): Binary; } +{ function GenerateReport(const FacturaID: TIntegerArray; const VerLogotipo: Boolean): Binary; } var FacturaID: FactuGES_Intf.TIntegerArray; + VerLogotipo: Boolean; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -859,8 +860,9 @@ begin lResult := nil; try __Message.Read('FacturaID', TypeInfo(FactuGES_Intf.TIntegerArray), FacturaID, []); + __Message.Read('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); - lResult := (__Instance as IsrvFacturasCliente).GenerateReport(FacturaID); + lResult := (__Instance as IsrvFacturasCliente).GenerateReport(FacturaID, VerLogotipo); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerateReportResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); @@ -1031,9 +1033,10 @@ begin end; procedure TsrvAlbaranesCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerarInforme(const ListaID: TIntegerArray): Binary; } +{ function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; } var ListaID: FactuGES_Intf.TIntegerArray; + VerLogotipo: Boolean; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -1041,8 +1044,9 @@ begin lResult := nil; try __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); - lResult := (__Instance as IsrvAlbaranesCliente).GenerarInforme(ListaID); + lResult := (__Instance as IsrvAlbaranesCliente).GenerarInforme(ListaID, VerLogotipo); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvAlbaranesCliente', 'GenerarInformeResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); @@ -2142,9 +2146,10 @@ begin end; procedure TsrvContratosCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerarInforme(const ListaID: TIntegerArray): Binary; } +{ function GenerarInforme(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; } var ListaID: FactuGES_Intf.TIntegerArray; + VerLogotipo: Boolean; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -2152,8 +2157,9 @@ begin lResult := nil; try __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); - lResult := (__Instance as IsrvContratosCliente).GenerarInforme(ListaID); + lResult := (__Instance as IsrvContratosCliente).GenerarInforme(ListaID, VerLogotipo); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContratosCliente', 'GenerarInformeResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); @@ -2172,9 +2178,10 @@ begin end; procedure TsrvContratosCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary; } +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerLogotipo: Boolean): Binary; } var ListaID: FactuGES_Intf.TIntegerArray; + VerLogotipo: Boolean; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -2182,8 +2189,9 @@ begin lResult := nil; try __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); + __Message.Read('VerLogotipo', TypeInfo(Boolean), VerLogotipo, []); - lResult := (__Instance as IsrvContratosCliente).GenerarInformeEnPDF(ListaID); + lResult := (__Instance as IsrvContratosCliente).GenerarInformeEnPDF(ListaID, VerLogotipo); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContratosCliente', 'GenerarInformeEnPDFResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); diff --git a/Source/Servicios/RODLFile.res b/Source/Servicios/RODLFile.res index a68fab66e66e0538a0cecc5df77509bd19db685f..4626e4d14801504c2f0e52e601d7c84c89a9f0e0 100644 GIT binary patch delta 76 zcmX?bh3UgJrU?p63ad9NML16u5Eqzy-aT@Xx##8w&L=pb{EErfadxBvhE delta 76 zcmX@Gjd8~|#tnBO7;PrsjgSYDe