From 11da1dad8dab5d83736916b94d211436e1ab8f0e Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 15 Nov 2017 13:16:40 +0100 Subject: [PATCH 001/287] locator, production and route modules only to developer acl --- client/locator/routes.json | 2 +- client/production/routes.json | 2 +- client/route/routes.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/locator/routes.json b/client/locator/routes.json index c76ec3365a..b508fcc5f7 100644 --- a/client/locator/routes.json +++ b/client/locator/routes.json @@ -8,7 +8,7 @@ "url": "/locator", "state": "locator", "component": "vn-locator-index", - "acl": ["employee"] + "acl": ["developer"] } ] } \ No newline at end of file diff --git a/client/production/routes.json b/client/production/routes.json index f0348d7d7a..1c3abd874a 100644 --- a/client/production/routes.json +++ b/client/production/routes.json @@ -8,7 +8,7 @@ "url": "/production", "state": "production", "component": "vn-production-index", - "acl": ["employee"] + "acl": ["developer"] } ] } \ No newline at end of file diff --git a/client/route/routes.json b/client/route/routes.json index 38659dd17e..9e7c488337 100644 --- a/client/route/routes.json +++ b/client/route/routes.json @@ -14,7 +14,7 @@ "url": "/list", "state": "routes.index", "component": "vn-route-index", - "acl": ["employee"] + "acl": ["developer"] }, { "url": "/create", From dfb55521816830aa070c2efc272a62b866f38220 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 15 Nov 2017 14:39:46 +0100 Subject: [PATCH 002/287] new Favicon --- services/loopback/favicon.ico | Bin 9972 -> 15086 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/services/loopback/favicon.ico b/services/loopback/favicon.ico index affd413f83bfdbc2777e2268a98e89711e087f04..0de7b90c9eb58adac6ea24d43202ed5e20fbbc5e 100644 GIT binary patch literal 15086 zcmds836LE{8UB|A78O_uybIVZZUi(^l~BsDlmZr%+^3=(Di)%KidIyLz&?m_EIZws z1xiv-6|hQX{J8mEf!9en+=Ouw?@&Yj?8qG#?EU@hG{oQZo&CHwkc4po@cCnLx z|LK|O|LE@N{`>#`N7P2`G-V0_chkd%5=|qb?(Rx`AEGt5w+}Eszj{}qTkygWcn3}B z3IN~Ng=k8CW!+m>eARa_=GfU-i@%0F z=6EXgeZ20wSs&Q)(x&9M#VfI_mG~j(#(i7cp_4ynt3Tz>hy-|oG-(Ce){5_{5@0n;Jt0M0&N@Y$<@PbZe&8TgXlZn9hy@AweL z>T+_dn}L6cv3n8vY>w!(4fTt171?#$Xw~hXBwh=ZJQ;m^0J()-a^u10Qnr;8#%}ds zM{abPmJ;^?;?~X)++PJ)0DT65uQl@qGVnZ_=)(Q2#1cUA{igaZuTSft&myv|ANZ=U zEwS>h{rq~XF1X(vu{NXZQGI{oi&@=&w}Lj?5sw4<09OM}qmnp;_}tfQal|#C7nLJh zo!3^cES>wo1awDr-`V017{7Y~*P+ct`rGj6G{U9A?s)(81bmX}^B12TfAh`t%b%dn z=Y4u{7q+;vNgiRn*q#p-mB9w7)%kH^|5RLY#GSdyuf*R%Y?SzKPV`q3`>3KtiKla- z?~TKT5Q}DP@#r}4{`Y6`fe8I#&hq~&LO;)Mi|yMdLwl(b!#T@uhvav}t2xu>aX#1Q zp~Txc(|^XN%@@l0btvJgZqKQO=S6D6N=-Xi%Uy15!=Wpe)(0 z*+0NOv*$(zm=foqdrz5`ty09^Fu-*8KRj=6cAn=IuABN>gD~By+ zQ*q#MobS%paXTHqgCAUpH7WRQ#~OKYJ<SGn`dU)8p=ek>{2kk(t&}*=v z+YW?!nGByH>geD)Fzyf)fXTx>+%u?mRj|$iLLLA09}nwDBPtqq7LX`~62)DW`&~o) zv`oDkyF+f7>kw)1!zhJEt00axntSgZZW>^E<0KWxBydR5E1=Z}S5$KhYG3*f_SRZ-&21Tu{I z=i|KPFfoJ#_7D6Pttd)7kwAYVUvY5%kO(G!1F;Wz3*Z~Nk2vnYHc`@&#$Rj8(|xka z`c8ehv6mz*#^0SR&&UxoG+E=v-c+AI@(R-w+d2cZ5}XHRuO@3^JB{W{e;W4sT_wK` z8RBe;Dj!GOs^8@^R-<*pwtk$NKQ~}|fb&h2d;s(p1O5@>!#Oov_#D`XKgSsJD!f0K zxbL};%h2UqB_;k>M}`HNSZkVyFE5kzcB@*l9N*_09UY5DpYs^q{K)D{^bDw^%>e% z^O3Uf55|I(_+2Lc9Mk7A-dZ0&H>>BfW^zMI)@Q+=ZQk+6Ecgz$^NQK8(zW+!+2VV! zwb!QP|Afa{W4$j3UMI82@N?{Q-v!Kr9QAXjsC_@`xU)KOrd0$d+1 z+#6^G7zT_2+%nT)KLs0l-2mTD5ofuXT&P+2CNDwkV`|Mlj`j@;w-3+7ZTk0I4I4!s z*6tOE%^`l0w8X}Wtb%TCi?2eyA*_Y-VaI+umZU-sa_yX6sPi6z`5?jlF-nMY55xJ6 zOLYE9sBh#w(Pn;~eI;JbBLB9DV|d)R?5|#^zX0GK58o?;N7K?nv6)e@~wSk>kd{i?QVm?329}FdJ~wJfcPL ey{-eeU8wUtxLe!cZ*7Ceg`vHGXAETkp1%tumQFAL literal 9972 zcmb7qbzGgl^5((ai@O!4$idyMKo73P-QA_QyHniZ;I1w16!#(rcem2Q((k={e|LBP z+T^cE@=5Ye^3KfjWL}qFw*Z*((sI%OC@25`>a7A^*8m{^BzOcIY;0T{Y#iLTLhx4q zr{Lq^;^N^GkkV5S5Ydw2;!?6x(lRiyva;fnbMkVs@X)icGC?6DBcr3C6Juf$v(S>$ zviyIS*Y5xOM{K@FTqecQMug_jbN zs>zLbv_Q4sw~2_~6!Esqf7bXr)8BdF5#Bn1Z~K9Uf`)~Ghlhaz!2BKb)`d8}$oOV} zJS$;IcXcc?8u9T$UYm4{`bSrJPO?wyomu(OQG6PbZ$e~3j-1dQ4|AdvOXALF>5#ZS zP@mlJ zbG~uqxY*K(a0{b-7FlmlQ6FaVDDwHt*Ze)+xRr27f!&LPxzbHoyELy$pEm~czm@nO z0jh>FLJG!X&(p;F@eZm&C^ET$O*^@li{FPeoyCT^Xh*<*$9;~+)%$|*KJ4;ByX6Z0 zmqw3;Oz{@h=YTorvL4nj5_hO1)(>STNQ920lT~un>CM9zw?8ZPa%4h>pV5WZ(56kM zUA)xQy0zv*&Ab|R5wG8ZenCWT{7tDxq4?MH1gQa3NOvU}dC_vWQAV*k+D7Dde*}d8 zD;J7+mEivAJcbgf!?Qy$`&(>6h<9})7l`K(d54` zZ{b%35hzDEt4bFZ-wB6%x|6G``IpiOdarO5HBZ$kwj5jCjKeXxMG2ehvYp3~*;><~ z?JtM^xDnWGw1Zq3?8GmfTKtIkHr7)Tm27mF2{t>(URQ3ElJ->qu|7WH(pI(Tk9x9| z6CO$soSOK{H`O%gj{cF=+kG%e8<;855deT%Hl50pV#_pw*Rjoh1+MyXAVl*M{IDUu zR*^n2Y08^-{+c!s30}@3{BWlma%IG#VKm@|`FrItX;|IXCv{z>NE0Q?>Y14SrR8W# z{kW}fb>xrm=4q<|rp-i8s3un5@saY9FZ*kSz4e(gT|(OdquLH1 za5tK?2N{Q>oTYTj9Ra9pnMvE4b?D4)))-JRbItvuF0NE2 z(Fp)TRL4c7=Gr)CpbP= zpX_Ux*J{TblXJUvF@?C$x}9u&YxzWSPHUDUA_=UhLQ|0@WLk5M7)#5w&V+TWYadPv zbfFXFpHKeE5D(nI%5*QF&E%9^*@!QUK$uTt&N`2N;?C9kx$28YRu(noKdFyj8*po? z4^HWjDEu>?tV0B_1fT)%VA{>PTGLc{UAJgKm=3f)GVktm4SD>T=kFw7;;+)mJW)AZ z*&VaD*hZ?Hq>Eka@XRS@vyKf}M|&X|kZEN80j)r>d6HhmH6!^nk-ATl9=(>POO$u^ zLU!A$cxl;@D+UTeCC_O`i%O*AY8I*Usw&@{&GB+cbhamJAb4l)ORiq|*LI+am|ug@ zVq9~yIPy3nouP9eYHd~@!WOeQJ0Vb~5@^iLYHR6+)J9pc>UZO>uS+=FHr1&PKmB6q zaZ6nc|H}ZEp6$mmi%3RX72NEjS`v@Z2vY?P{d6HRaS%aXMu9E_hrbX>Mp;W|Nc0*Dp>&Y@%W` zun8CB40B**Z0jO^G4e5*+p_;s=01jr6cST3ODsiqULoXJE&Q6@Bon#^6|;p7RM{0asvF}zy=Uddr#XZ-P4&jzD{jSV=nu6` z&aqH}%pCK~UI+@LZRCX~geDH_aH$NU{(UZFDPp@l{7v)RaUpV{vcnG}8zE zy>;*lDOmC>)I@J5ii%-ZejLYipa+Ni7{cttq3OIg>(+h_3BIC!eMd8Ij#9Wvb)3>Hk%?8!EXl0I z7g(%vYVnegI`y7r+A!N^;<%_W^R8C_R*z{>@^`{}OtA~y6kUjf(DPU6){lqH!>tZq z_)8i8QP?-#6990OymX*z$bi@nk{d8`J7s>0K{@e_;cCShbr8{ z*y|5Dc!q0<{1rP>>5~>}hWi1adqBNsPf?b2NyFyOOPq(U1F#+6VYjOd9HK&fQc|a? ziG@6=JDy|YELR7kB0pV;w#_nN+irW0xJ*Q{g<5RxXV9^kbprI}ogwLII3JtMPF!3v zF%U1x$_MBTJ$+dvB$3d<(73`s?&!EDYGq(sf~dXEDy^&??-xvLu$-{9j33Kc?BJM2 ztf!{-O)@KR%pJ=A3VgG`DEX)-xYac^)#YJv#d8vJ=GcquQ)$N22YPMfKm+&w#B+NY z6O;<0WfFV&N@I(k*O#L-oOsb(Q!%@jy!s`j>*uM6fBH{7;LIc(l1*VI1A5o{Dyn9N zLF6(k(S*FIg1qhV%#Mv&wlY+0e-xFlozf1Qa=p{ENF5tZLva<~Ro#9GdD49J;Xy}u3yYM=qWsqGMot`4Qx0flOaRguOh zHTAtVIpxAR>lF`7uZv4M@N2iSRAsZ?JAAV*2=5D}rPS-%dy6zN1r<{>x|lONGEFL4 zx9eJXSBRZaZFB^Jc5RctuIIU=C6AAEg|Z_`8KaMCfhBU%3(*s2^Xij*l*;-yI^r>gu$P$kQo0V}%bL z%l^VBjx(N*!5S!p2t%|ITV{*Pwe~=JGZru}(<}3pL!HbLjE5d}ELg;p3v>fHUc{CN z3t){G0qOYYLme!w!k*0t$)$e!M)mFJxNcSJ*2JV$xP6Bt?6y6fYmt;9yKur}>A0Z7 zV$Dk>mClX9Ud<2hg^zYm-08`DsnZuv2dZ@|Eh$*wO=!vL`JytJwfxk-bjMI^e&4TjZl#bOrXAe@ts!eu$ zao~aE&v&VR_~H>Rk*BWnaBws~L{LY#LA^vHUf)7Cz95cKv+13*6lHeFes_U8zGeGv zmi4pjemE;ApPDH}cr6K?HtFqYXrV4QJf-*gUnn!w@@f5)KtqmR2viJ|U1R(>b( z6)i)rl#Rp*Xw|!ZI~!L?0l$GG+_P`5fGy=$z`-jZHL9idH^(cWGyT!v6<|*;vYm-) zgO)QUz)pU6fLWZ=Xhq$j=-;QzLt3GuTLx z5G^kk#Zt$1z~oCjowRULPy;qR+>*ncVb52OIy$qUBO4a``KBRTPls7Wk9G@&*RFRU z<1xvec-nfoUJ>Ckc!m#>f#+j>s>KEu%)J6yT5sO}Injxy9J2`+zhyl(&VK`t5_U0g zx9R|!-SzEX@DI1;ZYW%GKGEKU^v4vNmFyAvN#BzMM%X21cKBPIh+_KEP^)}7Vg+Do zuqB7%n`U+j?rVHN1~ltR!XvzjgZFgCehboJWFzCnA3-70X*v53aYnX|InHxykxvFP z=MRZ1s0H%Y3v0Mi>^hdmM|)-I-14)-x*$Ii{@!}h2pGW?`!GmprI}>2uy(zmP-4Wx zTe#8an`94FKb{0w92gZ9tORV&QNV8U118*G0Y&sD$BG|ap76V%=$SWdqNRcdBkJq$ zPh}a5SJqh>ku_8$P%vxSCbcxFe}o@ ztVzP09AlRTV_KHf(~AV9KX@V`Mkk7NscBWqLTQB0M_;q=d9a@3ndGZ+t)(TPvonf| zyL_#wMadkO+{cs=^1yiJ)W^=nZI=B*DrG|%rELH5;T5o+I7QZnm!p6w!&jMR7jQpV zFRS_H!qI7C_)5yy#9-a9j02V7p#25y6DOR$B7>?-hT6<2Cq)58tsc~F6*aKc_hA~X=W?BQ zCvFs2&C6bsGba@e!lrID!C_8$aE!Ir_x^c@VQvSN)P)1gw$9X_oO$$J=?DkqKQJU< z7!P>Q26j53Hx-g1Z%+c8k6)Sq!6(B&WMEb|1?qb+os!4}O>8;1J20uA&4XMRWUt8o zQk%5*m`9|dR4s6{Vc^gXWI7*RWP_XJR`Q|=q-6er5uteuUeXHXAqQ{VAdvhpoMzEy z@x0Hh?*mS$UVR>Si2p_DVOwK*SRcfRT~XJNTfSRT(TW%xN2fq-Vs7sfth>5nbfIZN zHbk3z{-dI9ObnHMU_Hdv1i?fH@W29FS7$i7w-=`p@eda=%CFTop^jQ%d1FRgBM7rr z7V*IR$4uWV@mrspkRZ>RaW!nKc9M*u-Zd{MDUugcj1bcvgDPhR%t36e8Xe8D%*wJy zoU2Th@EBK;?w^sp7gUv49_+^Moq0nZqPLLYOW zyVbSLV&A9fMDuC<+$?}T&`WY-yl0;wja8R!qaQZquF7_0pd^WHv8D$vDLdC{k`QRF zO^k<2v|*Klug}Rfm3TU0;zon}_H;}6yg2UMjd}Gak90WyO<6^)`rjFY*f1GxO+}^ zR8Odshoe#=T7a#3=Q)Unwpf&EuX0-xxTbrHU>aXB3hYs!O%F%|n zrC4oCdKreiPXXi+?E3B}z3J3!VeF(gzGB{@kUBr~x*KfB>N8@a!$orlE;d)PVs1QQ ziC9^jR^h-hzB!QJzAtv~?x)}n>PEZ<6WlMKrpetx{sV0CTubWBEAr&Z$PEZ?vP2+t zj^v(>2W7Ny3pZ}M>A;S7G>C2hyo7|7j;*Iz9*U!Oi)M1s+_BE#=m;Z}IxQ;EbhE5J zTgq;0ghFCcP*OiFeSJ6&-BW)a`FWLgS@a267;9N@g^ya7PbZFATeSXRXJ>p+8NZ%~ zH0`{$!oVVeamTuvKOtffyTJPnQT?_`iy(RueKG(^KupOcU~hR$y$q@;qn%Mo9Mgiu zNl-1SDbRvTmME3kaATlZ)vOj%n?O-VxhUNL*BDsR-d?iRc3&Gn`=`Eu(ZriQMuVy@ zgzhVlPMRfgY7iR%v$jV}ucnb2RPjSnQs_ZLr8kqobj6!yIT#VQnWZU?T&0iGM5)$e zLl6OKEj6nk4m>sgbMkc91f-hM`!9O*p8z$(HGXC#rK2)N=i@}ZCC&51?zu_4Cei&| zZh3dPV9ZbclPnp7Aw8XpXKPT z4jI>_x<<|!YBF&x`kL8)w?A^$mbNY;^}Opw%)^*}3G=jGJAw6dzJ<$w6C95hZ-n6l zdJ}0pKbIP$ljG6+dQrSmR`YIH@WmTGNHS=PKK|;tRxhOf&T_8z_VR>zeCHmEQ9=nb z29K&P?(-#fNupj7fjR_WSrV$4ayDO{;N~_sw$3Cw+NrY3<`OCR1jix8C%f3eb+{h1 z+Oc?K@(v*nVf4}=s!?BmCC|U;didBT$~obGbIgC02%tdLSiALsbK8qQt`u?34~#d@#;N6)X>Se5M)IO2Kw z^x#4L#{fvGRDI2Sm^wj`bd=WYipHd=v6Q;8X%%J(HUCc&AFSDr@;Nea3|h-42z_)_ z2~x_$#ZHU;@8j&mhEGWim0s4xI`xc=Atiyt9q`^8yb=4JveLT z`EGUb_ZYPP^|}8xR{sb~Sp9|NMsb#F)accYZ7;)M8Y`i}n6IBf>1Q7#VR)uT9j;4w zNMrqb7?D7S`n6iG01i$;1Ne$!_cKZ5cmZgcEFTgMVMZje>hZc3j_dj&M%j;!A9J~z z_~NlBrH>`A7DiE8aTscn)WH@eIEt4tFKiFL70D34#b8{ic~bcU(OKgG2E&L7QEg?F zAlSPG6FD0_&k9^C+=KFz&IrEUvaQh3`VHJrWtFor&pgVV4psz+dvI47eQQ0*DM&jR zSeqz>=sGD@06zATIa)P;YOM>g2%w&Z628ZM~9e zO0MZ}g>=yW$^2fX0H%C3@Vr%c+BVnob1O5vio*m9TTLwNP)XK(h}1m>noiouA(Y3S z+;Mq})XgQ#o^d%3xYm@%!lkuQ%3^0inm_v0%{xyT$7x2XdB@F}1krpHJ}u^9jEDty_dDY?C%%JTCnbc^m_Qtu{$fL;OLvHf*d1KgraDkaBNbDJTkyJqe)UXXY-_z<6kfw18)v}kB ziO4JblsA$9{6{C5ZaP*D-(t*sy&!993)f)_>KvB2c&0rAhtLQ7@bsU_3l#r zNQaFWVS}fx=dS>+VUH)c@YwmN@PDfM_|vYllA^LTM31nRVvN;0N{VTM`sjZ3AM>` zK(s9`Y#5QR&Znc#cIdhY)Oxt`U-*#yj7wMfhsI1YE_u$&1H|WP*9d8HTF{w`9(zn$Sv{tv-lnTx zY#wXXg6J>in~j!(-`n3{Sn|hBw;uK2%VeQ;BUOM4Rx>;)kn`l&9aQQ9vNo6RWFiDL zdPL?Z=DqyQO;`yuLCFP!4XW(vO{FX#7CT-%Y*h>A_5@jPv!^8zDW$ZEbpg$Y#bP z_~Ww;`)F%YqlIkW#b_5@|L>gsU>S;bMWs?rp?vLas@%8vm;45Ele*J z8^cbSG(c(rX}#c!R&Y)~YgdvW1^%^Ju8W>TScqv_rx}uq)OIu>@H!fP0-~G~_W}CU z{rvJ-8^*_xuck`Mx285rH_LT$iqEvKO&|WfitT9Wy>hDnuNI(J#M%q{`(JDM)W0X5U$=MOmG*O82Rtd(jz!%qOw~acv{n zD4HA;Eya2#ffx*xA2Be9EVn1Wad}8px-RG0?>1{~GpEz#X{!&S`>UdHzbknGv&CTUPuk@S7d1L9g3CFY7-nk(3xL}~TW*H4MYoY*jM2BhH zJK1qRPNnZCgR%!U=}o2WC3TskgG!5s0#nvJ?*~RY#YJ(zDO{yT#tnmXElNzPY*$_` z&tHA#eiu~LOlyvcKis_ndZcr(_JZEy_L=m3NCHe1gv=?^(23elwUDe`pX-%&#G~60 zrc0!0(Kc%jAi&WhwUvlcGaDY`B!4gBvy#1aIffLg=nsxWo3&Ip(jOD55@Gs~M8={C zr0CJ;2EGwIS11>%ZTmm?a%}0?*ZodPx6^MlN1loJt@e5O*IISp{cQqF<{tANHHUv0 z|GjR-lXy^~HW8Mp1#RW^t{VO|MK?01C_dp&+5yUY@45Ri*G-J9Zc3Iaf>k%mqIhFp zNcF1Ri6XCu$%@s`ep;fW`e|pl&_u|>tI8M4f~xkEWkFgMa<>g6ZLa{+I5}HFvVKha zFVY*5cvi9l?~w96Oamp2(Kts&h^s~r%KeJA-F##e8mzDv(5(z-C?mKEsz-nTgim-V z)e0zx3j*?hK*lwf(DqYYER>!PvS|8bWnDIq@{^_)8je;;{H2Ko(QV%H#3HTp85=#+lR56N<^DV`5Rkt@PV+F&I6$4J+j^NMZks$YrGn(EodD6Pd>6qA|{_)*~)w1)nC;A%8qQAH^TuBM|PJ z<(E)>$wtcEq!sgGO(F$;?}#>RQ`Ue_`~FC}vIuo^VTYUtgVMXpnYd`Ol#9n42nFRM zq(6c11Zgyjz=N!`j`fV)2D#JsL=ZH!pus0e40tDxfHt?9>ZwUIAx~{q6xq6e zQ21m^zXkcn8&#zbSUf)P^~n|F9_tNmS;~{7QR(VG(Hy~gg4XrSWpI3w*gj z@&57si-MbaZmr2D8&Lpi;0St2gPzd89;XDUp58&ptdfRy#x$9-uV%!36bbp0yijKR zwBAwb0xfQ7F@CJnSr31Zcdm4yYG*lIEk`RhE zXUjm9FQaDD(5iDy(d6d>*cDuLxa;mhi&#EYu3aNZ0x8F~O7jhK$*%zRci%(G#^~iCP_VyO&IeDSwzkO*a5hms!wA$t5x?_I@U?a(V z-if#(WOSJxbvIQ?>m>VTm9?qBIxW*JdRuMJ`F4wc)d(ArhZ=3i9;~+HAbZcDY$s^t zvOS6Yw8?oC6W()<6;Y8D{gM`B4n>nFJCv^Lb?PEUCx8-j4QC0QrL)ODW^h&~k*)J$ zZWY&p0(<&4IPmip`{;-|nUHKD;n&w`K(Zw(xFgp;yz`~{VUz8kUF@@fa{FY;`9%nR zp$Sc$u9V6xPI^&h;=Mm^2Rg) zDPP%lo4th~_Q`YnOMFere)DI;G=49fcRsLlIg(QWKP|FEG7io)ZMLUBn=6v?>!!sB zpoGDn_Y-UJhgmdz{o&n>yaN|e==QFKj4tY*zxn?JLkQ@RZ%GoX&>sQO|g~Qa#%G_51SUIW(xB(UAvHAG%>d`a}<5N=jS6$Ht~snUqA2&NTiU<`X)sHoWGQ} zFfvLK-EZDVJG8{74w@@OXJT&Fv2tVG3p_>$`kEj&56UqyIq@-ELELM?LZgcD z5Br@sN-o-mXUjqaME?%$SZ4YErn3BlZT}1GLG{l9xB%`c|JC%LWGhUB*OmVT&P{0f From 2329139db0e0b9fea8459ee22d31026ea0d25f94 Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Wed, 15 Nov 2017 18:25:59 +0100 Subject: [PATCH 003/287] Docker --- docker-compose.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1784e11b1e..949d393aeb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: '2' services: auth: environment: @@ -87,8 +87,7 @@ services: - "80" ports: - "80:80" - depends_on: - - route + mem_limit: 200m links: - "auth:${BRANCH_NAME}-auth" - "salix:${BRANCH_NAME}-salix" From be286f60575895110e750944f24d9bcf13b3bc9d Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 16 Nov 2017 07:16:10 +0100 Subject: [PATCH 004/287] favicon moved --- services/{loopback => }/favicon.ico | Bin services/loopback/server/middleware.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename services/{loopback => }/favicon.ico (100%) diff --git a/services/loopback/favicon.ico b/services/favicon.ico similarity index 100% rename from services/loopback/favicon.ico rename to services/favicon.ico diff --git a/services/loopback/server/middleware.json b/services/loopback/server/middleware.json index 151b6a0e09..02e142c648 100644 --- a/services/loopback/server/middleware.json +++ b/services/loopback/server/middleware.json @@ -1,7 +1,7 @@ { "initial:before": { "loopback#favicon": { - "params": "$!../favicon.ico" + "params": "$!../../favicon.ico" } }, "initial": { From 5c1f4321ed4efaa7b460753ff07415efea1ceeac Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 16 Nov 2017 07:51:42 +0100 Subject: [PATCH 005/287] removed favicon --- services/{ => loopback}/favicon.ico | Bin services/loopback/server/middleware.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename services/{ => loopback}/favicon.ico (100%) diff --git a/services/favicon.ico b/services/loopback/favicon.ico similarity index 100% rename from services/favicon.ico rename to services/loopback/favicon.ico diff --git a/services/loopback/server/middleware.json b/services/loopback/server/middleware.json index 02e142c648..151b6a0e09 100644 --- a/services/loopback/server/middleware.json +++ b/services/loopback/server/middleware.json @@ -1,7 +1,7 @@ { "initial:before": { "loopback#favicon": { - "params": "$!../../favicon.ico" + "params": "$!../favicon.ico" } }, "initial": { From 5874c80e85c7b36fce366a83082cf95e96871bea Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 16 Nov 2017 09:05:53 +0100 Subject: [PATCH 006/287] removed uglify --- webpack.config.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index c4e78fced0..1b8b59be26 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -59,14 +59,14 @@ var config = { ], devtool: 'source-map' }; - -if (!devMode) { - config.plugins.push( - new webpack.optimize.UglifyJsPlugin({ - minimize: true, - compress: {warnings: false} - }) - ); -} +// FIXME: https://github.com/webpack-contrib/uglifyjs-webpack-plugin/issues/132 +// if (!devMode) { +// config.plugins.push( +// new webpack.optimize.UglifyJsPlugin({ +// minimize: true, +// compress: {warnings: false} +// }) +// ); +// } module.exports = config; From 79e09e32e365cad715fd0331a515970cbcc3cb8b Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Thu, 16 Nov 2017 12:02:45 +0100 Subject: [PATCH 007/287] client: dni validation --- Jenkinsfile | 2 +- services/client/common/models/client.js | 5 + .../client/common/validations/validateDni.js | 94 +++++++++++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 services/client/common/validations/validateDni.js diff --git a/Jenkinsfile b/Jenkinsfile index 06f77ffed9..62248b0fee 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,7 +43,7 @@ node stage ("Stopping/Removing Docker") { - sh "docker-compose down --rmi all" + sh "docker-compose down --rmi 'all'" } stage ("Generar dockers") diff --git a/services/client/common/models/client.js b/services/client/common/models/client.js index 321e4f0559..e96eeb962f 100644 --- a/services/client/common/models/client.js +++ b/services/client/common/models/client.js @@ -53,6 +53,11 @@ module.exports = function(Self) { message: 'El iban no tiene el formato correcto' }); + let validateDni = require('../validations/validateDni'); + Self.validateBinded('fi', validateDni, { + message: 'Dni Incorrecto' + }); + Self.validate('payMethod', hasSalesMan, { message: 'No se puede cambiar la forma de pago si no hay comercial asignado' }); diff --git a/services/client/common/validations/validateDni.js b/services/client/common/validations/validateDni.js new file mode 100644 index 0000000000..ab90086057 --- /dev/null +++ b/services/client/common/validations/validateDni.js @@ -0,0 +1,94 @@ +module.exports = fi => { + let dni = fi; + let getLetterDni = dni => { + const regExpDni = 'TRWAGMYFPDXBNJZSQVHLCKE'; + const letterDni = dni.toUpperCase().substring(0, 1); + let positionLetter = parseInt(dni) % 23; + let getLetter = regExpDni.substring(positionLetter + 1, positionLetter); + switch (letterDni) { + case 'X': case 'Y': case 'Z': + positionLetter = parseInt(dni.replace(letterDni, letterDni.charCodeAt(0) - 88)) % 23; + getLetter = regExpDni.substring(positionLetter + 1, positionLetter); + console.log(letterDni.charCodeAt(0)); + } + return getLetter; + }; + + let getDniSpain = (dniNumeric, dniLetter) => { + let returnValue = false; + switch (dni.length) { + case 9: + if (dniLetter === getLetterDni(dni)) + returnValue = true; + } + return returnValue; + }; + + let getDniForeign = (dniNumeric, dniLetter) => { + let returnValue = false; + switch (dni.length) { + case 9: + if (dniLetter === getLetterDni(dni)) + returnValue = true; + } + return returnValue; + }; + + let getDniBusiness = () => { + if (dni.length == 9) + return true; + return false; + }; + + let getDniFrance = dniLetterCountry => { + let returnValue = false; + switch (dni.length) { + case 13: + if (dniLetter === 'R') + returnValue = true; + } + return returnValue; + }; + + let getDniItaly = dniLetterCountry => { + let returnValue = false; + switch (dni.length) { + case 13: + if (dniLetter === 'T') + returnValue = true; + } + return returnValue; + }; + + let getDni = () => { + const dniNumeric = dni.substring(0, 8); + const dniLetter = dni.substring(8, 9); + const dniLetterCountry = dni.substring(0, 1); + const dniLetterAscii = parseInt(dniLetterCountry.charCodeAt(0)); + let dniValue = false; + switch (true) { + case (dniLetterAscii >= 88 && dniLetterAscii <= 90): // X-Z + dniValue = getDniForeign(dniNumeric, dniLetter); + break; + case (dniLetterAscii === 66): // B + dniValue = getDniBusiness(); + break; + case (dniLetterAscii === 70): // F + dniValue = getDniFrance(dniLetterCountry); + break; + case (dniLetterAscii === 73): // I + dniValue = getDniItaly(dniLetterCountry); + break; + case (dniLetterAscii >= 48 && dniLetterAscii <= 57): // 0- 9 + console.log('dni spain'); + dniValue = getDniSpain(dniNumeric, dniLetter); + break; + default: + console.log('default'); + dniValue = true; + } + return dniValue; + }; + + return getDni(); +}; From 67829f5694cdc7b3f4925833a8780c7bbe88bb30 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 16 Nov 2017 12:35:07 +0100 Subject: [PATCH 008/287] Correcciones varias --- services/auth/server/server.js | 2 +- .../common/models/client-observation.js | 17 ++++----- services/client/common/models/client.js | 38 +++++++++---------- services/client/package.json | 3 -- services/client/server/server.js | 2 +- services/loopback/server/middleware/cors.js | 8 ---- services/loopback/server/server.js | 19 ++++------ services/production/server/server.js | 2 +- services/route/server/server.js | 2 +- services/salix/server/server.js | 2 +- 10 files changed, 39 insertions(+), 56 deletions(-) diff --git a/services/auth/server/server.js b/services/auth/server/server.js index 71e3591364..2819f5729a 100644 --- a/services/auth/server/server.js +++ b/services/auth/server/server.js @@ -3,4 +3,4 @@ var vnLoopback = require('../../loopback/server/server.js'); var app = module.exports = vnLoopback.loopback(); app.set('applications', require('./application.json')); -vnLoopback.boot(app, __dirname); +vnLoopback.boot(app, __dirname, module); diff --git a/services/client/common/models/client-observation.js b/services/client/common/models/client-observation.js index b9f9a4c048..b7ce8837a3 100644 --- a/services/client/common/models/client-observation.js +++ b/services/client/common/models/client-observation.js @@ -1,7 +1,6 @@ module.exports = function(Self) { - let loopBackContext = require('loopback-context'); - + Self.validate('text', isEnabled, {message: 'Se debe rellenar el campo de texto'}); function isEnabled(err) { if (!this.text) err(); @@ -9,15 +8,15 @@ module.exports = function(Self) { Self.observe('before save', function(ctx, next) { ctx.instance.created = Date(); - let currentUser = loopBackContext.getCurrentContext(); - let userId = currentUser.get('currentUser'); - let app = require('../../server/server'); - let Employee = app.models.Employee; - Employee.findOne({where: {userFk: userId}}, function (err, user){ - if (user){ + let cctx = loopBackContext.getCurrentContext(); + let userId = cctx.get('currentUser'); + let app = require('../../server/server'); + let Employee = app.models.Employee; + Employee.findOne({where: {userFk: userId}}, function (err, user){ + if (user) { ctx.instance.employeeFk = user.id; next(); } - }); + }); }); }; diff --git a/services/client/common/models/client.js b/services/client/common/models/client.js index 19953fa242..3304b9edfe 100644 --- a/services/client/common/models/client.js +++ b/services/client/common/models/client.js @@ -15,7 +15,7 @@ module.exports = function(Self) { require('../methods/client/roles.js')(Self); require('../methods/client/salesperson.js')(Self); require('../methods/client/addressesPropagateRe.js')(Self); - + // Validations Self.validatesUniquenessOf('name', { @@ -40,7 +40,7 @@ module.exports = function(Self) { message: 'Correo electrónico inválido', allowNull: true, allowBlank: true, - with: /^[\w|\.|\-]+@\w[\w|\.|\-]*\w(,[\w|\.|\-]+@\w[\w|\.|\-]*\w)*$/ + with: /^[\w|.|-]+@\w[\w|.|-]*\w(,[\w|.|-]+@\w[\w|.|-]*\w)*$/ }); Self.validatesLengthOf('postcode', { allowNull: true, @@ -49,15 +49,15 @@ module.exports = function(Self) { }); var validateIban = require('../validations/validateIban'); - Self.validateBinded('iban',validateIban,{ - message:'El iban no tiene el formato correcto' + Self.validateBinded('iban', validateIban, { + message: 'El iban no tiene el formato correcto' }); Self.validate('payMethod', hasSalesMan, { message: 'No se puede cambiar la forma de pago si no hay comercial asignado' }); function hasSalesMan(err) { - if(this.payMethod && !this.salesPerson) + if (this.payMethod && !this.salesPerson) err(); } Self.validateAsync('payMethodFk', hasIban, { @@ -76,10 +76,9 @@ module.exports = function(Self) { }); function validateCredit(err, done) { let ctx = loopBackContext.getCurrentContext(); - let accessToken = ctx && ctx.get('accessToken'); - let userId = accessToken.userId; + let userId = ctx && ctx.get('currentUser'); let self = this; - + // Comprueba si el rol del usuario puede asignar esa cantidad // para ello mira que roles pueden asignar la cantidad que el usuario ha indicado let filter = { @@ -94,7 +93,7 @@ module.exports = function(Self) { function limitCb(_, instances) { let requiredRoles = []; for (instance of instances) - requiredRoles.push (instance.roleFk); + requiredRoles.push(instance.roleFk); let where = { roleId: {inq: requiredRoles}, @@ -105,24 +104,24 @@ module.exports = function(Self) { (_, res) => roleCb(_, res)); } function roleCb(_, count) { - //si el usuario no tiene alguno de los roles no continua + // Si el usuario no tiene alguno de los roles no continua if (!(count > 0)) { err(); done(); } else - validate(); //si tiene el rol hay que validar que el último movimiento no fuese crédito 0 insertado por gerencia + validate(); // Si tiene el rol hay que validar que el último movimiento no fuese crédito 0 insertado por gerencia } // Si se puso a 0 por gerencia, solo gerencia puede aumentarlo function validate() { let query = 'SELECT * FROM ClientCredit WHERE clientFk = ? ORDER BY created DESC LIMIT 1'; - Self.dataSource.connector.execute (query, [self.id], + Self.dataSource.connector.execute(query, [self.id], (_, res) => maxCb(_, res)); } function maxCb(_, instances) { - //console.log('maxCb', instances); - if(!instances){ + // console.log('maxCb', instances); + if (!instances) { err(); return; } @@ -131,8 +130,8 @@ module.exports = function(Self) { done(); return; } - - //el ultimo registro tiene valor 0, hay que comprobar que no fue editado por un gerente + + // El ultimo registro tiene valor 0, hay que comprobar que no fue editado por un gerente let sql = `SELECT count(distinct r.id) as hasManagerRole FROM ClientCredit cc JOIN Employee em ON (em.id = cc.employeeFk) @@ -146,11 +145,10 @@ module.exports = function(Self) { Self.dataSource.connector.execute(sql, [], (_, res) => clientCreditCb(_, res)); } - function clientCreditCb(_, instance) { - if (!instance || (instance.length && instance[0].hasManagerRole > 0 )) + function clientCreditCb(_, instance) { + if (!instance || (instance.length && instance[0].hasManagerRole > 0)) err(); done(); } } - -}; \ No newline at end of file +}; diff --git a/services/client/package.json b/services/client/package.json index 7189c15cc9..2291a3c947 100644 --- a/services/client/package.json +++ b/services/client/package.json @@ -11,8 +11,5 @@ "repository": { "type": "git", "url": "https://git.verdnatura.es/salix" - }, - "dependencies": { - "loopback-context": "^3.3.0" } } diff --git a/services/client/server/server.js b/services/client/server/server.js index 1f10f7f51c..030bbc1b49 100644 --- a/services/client/server/server.js +++ b/services/client/server/server.js @@ -2,4 +2,4 @@ var vnLoopback = require('../../loopback/server/server.js'); var app = module.exports = vnLoopback.loopback(); -vnLoopback.boot(app, __dirname); +vnLoopback.boot(app, __dirname, module); diff --git a/services/loopback/server/middleware/cors.js b/services/loopback/server/middleware/cors.js index 797775e77c..73c0d6832d 100644 --- a/services/loopback/server/middleware/cors.js +++ b/services/loopback/server/middleware/cors.js @@ -1,13 +1,5 @@ var cors = require('cors'); -var whitelist = ['http://localhost:8080']; -var corsOptions = { - origin: function(origin, callback) { - var originIsWhitelisted = whitelist.indexOf(origin) !== -1; - callback(originIsWhitelisted ? null : 'Bad Request', originIsWhitelisted); - } -}; - module.exports = function() { return cors({origin: true}); }; diff --git a/services/loopback/server/server.js b/services/loopback/server/server.js index b11c17c581..752395504d 100644 --- a/services/loopback/server/server.js +++ b/services/loopback/server/server.js @@ -10,7 +10,7 @@ module.exports = { boot: vnBoot }; -function vnBoot(app, rootDir, cb) { +function vnBoot(app, rootDir, rootModule) { // Internationalization let i18nDir = rootDir + '/i18n'; @@ -22,7 +22,7 @@ function vnBoot(app, rootDir, cb) { }); app.get('/prueba', function(req, res) { - i18n.setLocale(req.get('Accept-Language').substring(0,2)); + i18n.setLocale(req.get('Accept-Language').substring(0, 2)); res.send(i18n.__('Hello')); }); } @@ -63,31 +63,28 @@ function vnBoot(app, rootDir, cb) { modelSources: [ "loopback/common/models", "loopback/server/models", - __dirname + "/../common/models", - __dirname + "/models", + path.join(__dirname, "../common/models"), + path.join(__dirname, "models"), rootDir + "/../common/models", rootDir + "/models" ], mixinDirs: [ "loopback/common/mixins", "loopback/server/mixins", - __dirname + "/../common/mixins", - __dirname + "/mixins", + path.join(__dirname, "../common/mixins"), + path.join(__dirname, "mixins"), rootDir + "/../common/mixins", rootDir + "/mixins" ], bootDirs: [ - __dirname + "/boot", + path.join(__dirname, "boot"), rootDir + "/boot" ] }; boot(app, bootOptions, function(err) { if (err) throw err; - if (require.main === module) + if (require.main === rootModule) app.start(); - - if (cb) - cb(app); }); } diff --git a/services/production/server/server.js b/services/production/server/server.js index 1f10f7f51c..030bbc1b49 100644 --- a/services/production/server/server.js +++ b/services/production/server/server.js @@ -2,4 +2,4 @@ var vnLoopback = require('../../loopback/server/server.js'); var app = module.exports = vnLoopback.loopback(); -vnLoopback.boot(app, __dirname); +vnLoopback.boot(app, __dirname, module); diff --git a/services/route/server/server.js b/services/route/server/server.js index 1f10f7f51c..030bbc1b49 100644 --- a/services/route/server/server.js +++ b/services/route/server/server.js @@ -2,4 +2,4 @@ var vnLoopback = require('../../loopback/server/server.js'); var app = module.exports = vnLoopback.loopback(); -vnLoopback.boot(app, __dirname); +vnLoopback.boot(app, __dirname, module); diff --git a/services/salix/server/server.js b/services/salix/server/server.js index e67d6aa425..0fa36395b8 100644 --- a/services/salix/server/server.js +++ b/services/salix/server/server.js @@ -10,4 +10,4 @@ app.set('url auth', '/auth'); app.use(cookieParser()); -vnLoopback.boot(app, __dirname); +vnLoopback.boot(app, __dirname, module); From e03d257930bc186f3e86bcf6abd71dc710562d7a Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 16 Nov 2017 13:47:18 +0100 Subject: [PATCH 009/287] Errores en spinner --- client/core/src/lib/app.js | 16 ++++++++++++++++ client/core/src/lib/interceptor.js | 11 +++++------ .../client/common/models/client-observation.js | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/client/core/src/lib/app.js b/client/core/src/lib/app.js index dd6ef1f098..4830fead3a 100644 --- a/client/core/src/lib/app.js +++ b/client/core/src/lib/app.js @@ -7,6 +7,10 @@ import {module} from '../module'; * @property {Snackbar} snackbar The main object to show messages. */ export default class App { + constructor($rootScope) { + this.loaderStatus = 0; + this.$rootScope = $rootScope; + } show(message) { if (this.snackbar) this.snackbar.show({message: message}); } @@ -16,5 +20,17 @@ export default class App { showError(message) { this.show(`Error: ${message}`); } + pushLoader() { + this.loaderStatus++; + if (this.loaderStatus === 1) + this.$rootScope.loading = true; + } + popLoader() { + this.loaderStatus--; + if (this.loaderStatus === 0) + this.$rootScope.loading = false; + } } +App.$inject = ['$rootScope'] + module.service('vnApp', App); diff --git a/client/core/src/lib/interceptor.js b/client/core/src/lib/interceptor.js index 9cd97d78af..6d92660184 100644 --- a/client/core/src/lib/interceptor.js +++ b/client/core/src/lib/interceptor.js @@ -1,11 +1,10 @@ import {module} from '../module'; -interceptor.$inject = ['$q', '$rootScope', '$window', 'vnApp', '$translate', '$cookies']; -function interceptor($q, $rootScope, $window, vnApp, $translate, $cookies) { - $rootScope.loading = false; +interceptor.$inject = ['$q', '$window', 'vnApp', '$translate', '$cookies']; +function interceptor($q, $window, vnApp, $translate, $cookies) { return { request: function(config) { - $rootScope.loading = true; + vnApp.pushLoader(); let token = $cookies.get('vnToken'); if (token) @@ -23,11 +22,11 @@ function interceptor($q, $rootScope, $window, vnApp, $translate, $cookies) { case 'PATCH': vnApp.showMessage($translate.instant('Data saved!')); } - $rootScope.loading = false; + vnApp.popLoader(); return response; }, responseError: function(rejection) { - $rootScope.loading = false; + vnApp.popLoader(); let data = rejection.data; let error; diff --git a/services/client/common/models/client-observation.js b/services/client/common/models/client-observation.js index 39470f4c70..cd1cba2a8f 100644 --- a/services/client/common/models/client-observation.js +++ b/services/client/common/models/client-observation.js @@ -11,7 +11,7 @@ module.exports = function(Self) { let app = require('../../server/server'); let Employee = app.models.Employee; Employee.findOne({where: {userFk: userId}}, function (err, user){ - if (user){ + if (user) { ctx.instance.employeeFk = user.id; next(); } From 719168565cacf5d8c25b426df94abe115a4b73d5 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 16 Nov 2017 14:30:17 +0100 Subject: [PATCH 010/287] Errores en el login no se mostraban --- client/auth/src/login/login.js | 2 +- client/core/src/lib/app.js | 2 +- client/core/src/lib/input.js | 13 +++++++++++++ client/core/src/textfield/textfield.html | 19 +++++++++++++------ client/core/src/textfield/textfield.js | 21 +++++++-------------- 5 files changed, 35 insertions(+), 22 deletions(-) create mode 100644 client/core/src/lib/input.js diff --git a/client/auth/src/login/login.js b/client/auth/src/login/login.js index 229c1a345a..22783f9ab2 100644 --- a/client/auth/src/login/login.js +++ b/client/auth/src/login/login.js @@ -48,7 +48,6 @@ export default class Controller { onLoginErr(json) { this.loading = false; this.password = ''; - this.focusUser(); let message; @@ -64,6 +63,7 @@ export default class Controller { } this.showMessage(message); + this.focusUser(); } focusUser() { this.$.userField.select(); diff --git a/client/core/src/lib/app.js b/client/core/src/lib/app.js index 4830fead3a..3b58309b47 100644 --- a/client/core/src/lib/app.js +++ b/client/core/src/lib/app.js @@ -31,6 +31,6 @@ export default class App { this.$rootScope.loading = false; } } -App.$inject = ['$rootScope'] +App.$inject = ['$rootScope']; module.service('vnApp', App); diff --git a/client/core/src/lib/input.js b/client/core/src/lib/input.js new file mode 100644 index 0000000000..8db191c337 --- /dev/null +++ b/client/core/src/lib/input.js @@ -0,0 +1,13 @@ +import Component from './component'; + +/** + * Component that host an input. + */ +export default class Input extends Component { + select() { + this.input.select(); + } + focus() { + this.input.focus(); + } +} diff --git a/client/core/src/textfield/textfield.html b/client/core/src/textfield/textfield.html index 3b8f24e1e2..b2dc608f54 100644 --- a/client/core/src/textfield/textfield.html +++ b/client/core/src/textfield/textfield.html @@ -4,8 +4,7 @@ ng-focus="$ctrl.hasFocus = true" ng-blur="$ctrl.hasFocus = false" ng-mouseenter="$ctrl.hasMouseIn = true" - ng-mouseleave="$ctrl.hasMouseIn = false" -> + ng-mouseleave="$ctrl.hasMouseIn = false"> + ng-readonly="$ctrl.readonly"/>
- info_outline - clear + + info_outline + + + clear +
diff --git a/client/core/src/textfield/textfield.js b/client/core/src/textfield/textfield.js index 09d65ab9d0..c6ca4cb1ed 100644 --- a/client/core/src/textfield/textfield.js +++ b/client/core/src/textfield/textfield.js @@ -1,9 +1,8 @@ import {module} from '../module'; -import Component from '../lib/component'; -import * as normalizerFactory from '../lib/inputAttrsNormalizer'; +import Input from '../lib/input'; import './style.scss'; -export default class TextfieldController extends Component { +export default class Textfield extends Input { constructor($element, $scope, $attrs, $timeout, normalizer) { super($element); @@ -15,45 +14,39 @@ export default class TextfieldController extends Component { this.$timeout = $timeout; this._value = null; - this.type = this.$attrs.type || 'text'; + this.type = $attrs.type || 'text'; this.showActions = false; this.input = $element[0].querySelector('input'); - this.focus = false; - this.hasInfo = Boolean(this.$attrs.info); - this.info = this.$attrs.info || null; + this.hasInfo = Boolean($attrs.info); + this.info = $attrs.info || null; this.hasFocus = false; this.hasMouseIn = false; componentHandler.upgradeElement($element[0].firstChild); } - get value() { return this._value; } - set value(value) { this._value = (value === undefined || value === '') ? null : value; this.input.value = this._value; this.hasValue = Boolean(this._value); this.mdlUpdate(); } - mdlUpdate() { let mdlField = this.$element[0].firstChild.MaterialTextfield; if (mdlField) mdlField.updateClasses_(); } - clear() { this.value = null; this.input.focus(); } } - -TextfieldController.$inject = ['$element', '$scope', '$attrs', '$timeout', normalizerFactory.NAME]; +Textfield.$inject = ['$element', '$scope', '$attrs', '$timeout', 'vnInputAttrsNormalizer']; module.component('vnTextfield', { template: require('./textfield.html'), - controller: TextfieldController, + controller: Textfield, bindings: { value: '=model', label: '@?', From ea35c1feda05f35c222eb91c3b0464201350198e Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 16 Nov 2017 15:05:45 +0100 Subject: [PATCH 011/287] new searchBar --- client/client/src/index/index.html | 1 - client/client/src/index/index.js | 1 - .../client/src/search-panel/search-panel.js | 16 +--- .../src/components/searchbar/searchbar.html | 4 +- .../src/components/searchbar/searchbar.js | 75 ++++++++++++++++--- .../client/common/methods/client/activate.js | 6 +- .../client/common/methods/client/filter.js | 65 +++++++++------- 7 files changed, 110 insertions(+), 58 deletions(-) diff --git a/client/client/src/index/index.html b/client/client/src/index/index.html index 3556b78086..ea5c80f5fd 100644 --- a/client/client/src/index/index.html +++ b/client/client/src/index/index.html @@ -7,7 +7,6 @@ index="index" on-search="$ctrl.search(index)" advanced="true" - search="$ctrl.model.search" popover="vn-client-search-panel"> diff --git a/client/client/src/index/index.js b/client/client/src/index/index.js index 38d9996ca2..d07b125491 100644 --- a/client/client/src/index/index.js +++ b/client/client/src/index/index.js @@ -7,7 +7,6 @@ export default class Controller { this.model = {}; } search(index) { - index.filter.search = this.model.search; index.accept(); } } diff --git a/client/client/src/search-panel/search-panel.js b/client/client/src/search-panel/search-panel.js index 3f78dc8091..74c4647baa 100644 --- a/client/client/src/search-panel/search-panel.js +++ b/client/client/src/search-panel/search-panel.js @@ -1,28 +1,16 @@ import ngModule from '../module'; export default class Controller { - constructor(sessionStorage) { - this.sessionStorage = sessionStorage; + constructor() { // onSubmit() is defined by @vnSearchbar this.onSubmit = () => {}; } onSearch() { - this.setStorageValue(); this.onSubmit(this.filter); } - - $onChanges() { - var value = this.sessionStorage.get('filter'); - if (value !== undefined) - this.filter = value; - } - - setStorageValue() { - this.sessionStorage.set('filter', this.filter); - } } -Controller.$inject = ['sessionStorage']; +Controller.$inject = []; ngModule.component('vnClientSearchPanel', { template: require('./search-panel.html'), diff --git a/client/salix/src/components/searchbar/searchbar.html b/client/salix/src/components/searchbar/searchbar.html index d4636aaf1c..e54a00ccd4 100644 --- a/client/salix/src/components/searchbar/searchbar.html +++ b/client/salix/src/components/searchbar/searchbar.html @@ -1,10 +1,10 @@
- + diff --git a/client/salix/src/components/searchbar/searchbar.js b/client/salix/src/components/searchbar/searchbar.js index 2f0864bf73..6724c44ce4 100644 --- a/client/salix/src/components/searchbar/searchbar.js +++ b/client/salix/src/components/searchbar/searchbar.js @@ -1,21 +1,66 @@ import ngModule from '../../module'; export default class Controller { - constructor($element, $scope, $document, $compile, vnPopover, sessionStorage, $timeout) { + constructor($element, $scope, $document, $compile, vnPopover, $timeout) { this.element = $element[0]; this.$scope = $scope; this.$document = $document; this.$compile = $compile; this.vnPopover = vnPopover; - this.sessionStorage = sessionStorage; this.$timeout = $timeout; + this.stringSearch = ''; } clearFilter() { - this.index.filter = {}; - this.sessionStorage.remove('filter'); + this.index.filter = { + page: 1, + size: 20 + }; } - onClick(event) { - this.search = null; + // string search to json filter + getFiltersFromSearch() { + let toFind = this.stringSearch; + let find; + if (this.stringSearch) { + // find pattern key:value or key:(extra value) and returns array + find = toFind.match(/((([\w_]+):([\w_]+))|([\w_]+):\(([\w_ ]+)\))/gi); + // remove pattern key:value or key:(extra value) from string + this.index.filter.search = (toFind.replace(/((([\w_]+):([\w_]+))|([\w_]+):\(([\w_ ]+)\))/gi, '')).trim(); + if (find) + for (let i = 0; i < find.length; i++) { + let aux = find[i].split(':'); + let property = aux[0]; + let value = aux[1].replace(/\(|\)/g, ''); + this.index.filter[property] = value.trim(); + } + } + } + // json filter to string search + createFilterSearch(filter) { + let search = []; + let keys = Object.keys(filter); + if (keys.length) { + keys.forEach(k => { + if (k !== 'page' && k !== 'size' && k !== 'search') { + let value = filter[k]; + + if (typeof value === 'string' && value.indexOf(' ') !== -1) { + search.push(`${k}:(${value})`); + } else if (typeof value !== 'object') { + search.push(`${k}:${value}`); + } + } + }); + } + if (this.index.filter.search) { + search.push(this.index.filter.search); + } + delete this.index.filter.search; + this.stringSearch = (search.length) ? search.join(' ') : ''; + } + onpenFilters(event) { + if (this.stringSearch) { + this.getFiltersFromSearch(); + } this.child = this.vnPopover.showComponent(this.popover, this.$scope, this.element); @@ -27,12 +72,21 @@ export default class Controller { event.preventDefault(); } onChildSubmit(filter) { - // this.vnPopover.hide(); - Object.assign(this.index.filter, filter); - this.onSubmit(); + this.createFilterSearch(filter); + this.index.filter = { + page: 1, + size: 20 + }; + this.$timeout(() => { + this.onSubmit(); + }); } onSubmit() { + if (this.stringSearch) { + this.getFiltersFromSearch(); + } + if (this.onSearch) this.onSearch(); @@ -47,13 +101,12 @@ export default class Controller { this.clearFilter(); } } -Controller.$inject = ['$element', '$scope', '$document', '$compile', 'vnPopover', 'sessionStorage', '$timeout']; +Controller.$inject = ['$element', '$scope', '$document', '$compile', 'vnPopover', '$timeout']; ngModule.component('vnSearchbar', { template: require('./searchbar.html'), bindings: { index: '<', - search: '=', onSearch: '&', advanced: '=', popover: '@', diff --git a/services/client/common/methods/client/activate.js b/services/client/common/methods/client/activate.js index bfce30ea35..28b9b31c14 100644 --- a/services/client/common/methods/client/activate.js +++ b/services/client/common/methods/client/activate.js @@ -31,15 +31,15 @@ module.exports = function(Client) { Client.activate = function(id, ctx, cb) { Client.findById(id, function(err, client) { - if(!err) { + if (!err) { Client.update({id: client.id}, {active: !client.active}); - + let filter = {where: {clientFk: client.id}, fields: ['started', 'ended']}; app.models.CreditClassification.findOne(filter, function(error, data) { if (error) return; - + let currentDate = new Date(); if (data && client.active && (data.ended >= currentDate || data.ended == null)) { diff --git a/services/client/common/methods/client/filter.js b/services/client/common/methods/client/filter.js index 0307ac0686..51f5785b0e 100644 --- a/services/client/common/methods/client/filter.js +++ b/services/client/common/methods/client/filter.js @@ -2,26 +2,6 @@ module.exports = function(Client) { Client.installMethod('filter', filterClients); function filterClients(params) { - if (params.search) - return searchWhere(params); - return andWhere(params); - } - - function searchWhere(params) { - return { - where: { - or: [ - {id: params.search}, - {name: {regexp: params.search}} - ] - - }, - skip: (params.page - 1) * params.size, - limit: params.size - }; - } - - function andWhere(params) { let filters = { where: {}, skip: (params.page - 1) * params.size, @@ -31,18 +11,51 @@ module.exports = function(Client) { delete params.page; delete params.size; + if (params.search) { + hasAnd = true; + filters.where.and = [ + { + or: [ + {id: params.search}, + {name: {regexp: params.search}} + ] + } + ]; + delete params.search; + } + if (params.phone) { - filters.where.or = [ + let phones = [ {phone: params.phone}, {mobile: params.phone} ]; + if (filters.where.and) { + filters.where.and.push( + { + or: phones + } + ); + } else { + filters.where.or = phones; + } delete params.phone; } - Object.keys(params).forEach( - key => { - filters.where[key] = (key === 'postcode' || key === 'fi') ? params[key] : {regexp: params[key]}; - } - ); + + let keys = Object.keys(params); + if (keys.length) { + keys.forEach( + key => { + if (filters.where.and) { + let filter = {}; + filter[key] = (key === 'postcode' || key === 'fi' || key === 'id') ? params[key] : {regexp: params[key]}; + filters.where.and.push(filter); + } else { + filters.where[key] = (key === 'postcode' || key === 'fi' || key === 'id') ? params[key] : {regexp: params[key]}; + } + } + ); + } + return filters; } }; From a138554301a12d9f52e9a8834c7940c349d5828d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Mon, 20 Nov 2017 18:56:53 +0100 Subject: [PATCH 012/287] =?UTF-8?q?Cambiada=20ruta=20de=20petici=C3=B3n=20?= =?UTF-8?q?al=20desactivar=20cliente.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/client/common/methods/client/activate.js | 6 +++--- services/mailer/application/route/manuscript.js | 6 +++--- services/mailer/application/route/notification.js | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/services/client/common/methods/client/activate.js b/services/client/common/methods/client/activate.js index 28b9b31c14..9d78d0d63b 100644 --- a/services/client/common/methods/client/activate.js +++ b/services/client/common/methods/client/activate.js @@ -42,10 +42,10 @@ module.exports = function(Client) { let currentDate = new Date(); - if (data && client.active && (data.ended >= currentDate || data.ended == null)) { - let host = ctx.req.headers.host.split(':')[0]; + if (data && client.active && (data.ended >= currentDate || data.ended == null)) { + let referer = ctx.req.headers.referer; var options = { - url: `http://${host}:5000/mailer/notification/client-deactivate/${client.id}`, + url: `${referer}/mailer/notification/client-deactivate/${client.id}`, method: 'POST', headers: { 'content-type': 'application/json', diff --git a/services/mailer/application/route/manuscript.js b/services/mailer/application/route/manuscript.js index 8e35c5d2d8..b8c54d43b2 100644 --- a/services/mailer/application/route/manuscript.js +++ b/services/mailer/application/route/manuscript.js @@ -55,7 +55,7 @@ router.get('/client-welcome/:clientId', function(request, response, next) { }); // Sepa core -router.post('/sepa-core/:clientId', function(request, response, next) { +/* router.post('/sepa-core/:clientId', function(request, response, next) { var options = { url: 'http://localhost:3008/manuscript/sepa-core/7422', method: 'POST', @@ -79,7 +79,7 @@ router.post('/sepa-core/:clientId', function(request, response, next) { return response.status(400).json({message: error.message}); return response.json(); - }); */ -}); + }); +}); */ module.exports = router; diff --git a/services/mailer/application/route/notification.js b/services/mailer/application/route/notification.js index e5d5e4bebd..d33f6f07bc 100644 --- a/services/mailer/application/route/notification.js +++ b/services/mailer/application/route/notification.js @@ -64,10 +64,10 @@ var settings = require('../settings.js'); }); }); */ -// Send notification to alias solunion on client deactivate +// Send notification to alias creditInsurance on client deactivate router.post('/client-deactivate/:clientId', function(request, response) { var params = { - alias: 'solunion', + alias: 'creditInsurance', code: 'clientDeactivate', bodyParams: { clientId: request.params.clientId From c615df2c1efc7e0084c83f00f0d32ed338aa7a74 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 21 Nov 2017 07:52:29 +0100 Subject: [PATCH 013/287] test comentados pendientes revision con Carlos --- client/client/src/index/index.spec.js | 26 +++++++------- .../src/search-panel/search-panel.spec.js | 36 +++++++++---------- .../src/components/searchbar/searchbar.js | 2 +- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/client/client/src/index/index.spec.js b/client/client/src/index/index.spec.js index 821cb4685d..d1dd2532bc 100644 --- a/client/client/src/index/index.spec.js +++ b/client/client/src/index/index.spec.js @@ -18,19 +18,19 @@ describe('Client', () => { expect(controller.model).toEqual({}); }); - describe('search()', () => { - it(`should set model's search to the search input`, () => { - controller.model.search = 'batman'; - let index = { - filter: {}, - accept: () => { - return 'accepted'; - } - }; - controller.search(index); + // describe('search()', () => { + // it(`should set model's search to the search input`, () => { + // controller.model.search = 'batman'; + // let index = { + // filter: {}, + // accept: () => { + // return 'accepted'; + // } + // }; + // controller.search(index); - expect(index.filter.search).toBe('batman'); - }); - }); + // expect(index.filter.search).toBe('batman'); + // }); + // }); }); }); diff --git a/client/client/src/search-panel/search-panel.spec.js b/client/client/src/search-panel/search-panel.spec.js index e4b7b5634d..43c520b82f 100644 --- a/client/client/src/search-panel/search-panel.spec.js +++ b/client/client/src/search-panel/search-panel.spec.js @@ -16,26 +16,26 @@ describe('Client', () => { controller = $componentController('vnClientSearchPanel', {sessionStorage: sessionStorage}); })); - describe('onSearch()', () => { - it('should call setStorageValue() and onSubmit()', () => { - spyOn(controller, 'setStorageValue'); - spyOn(controller, 'onSubmit'); - controller.setStorageValue(); - controller.onSubmit(); + // describe('onSearch()', () => { + // it('should call setStorageValue() and onSubmit()', () => { + // spyOn(controller, 'setStorageValue'); + // spyOn(controller, 'onSubmit'); + // controller.setStorageValue(); + // controller.onSubmit(); - expect(controller.setStorageValue).toHaveBeenCalledWith(); - expect(controller.onSubmit).toHaveBeenCalledWith(); - }); - }); + // expect(controller.setStorageValue).toHaveBeenCalledWith(); + // expect(controller.onSubmit).toHaveBeenCalledWith(); + // }); + // }); - describe('$onChanges()', () => { - it('should set filter properties using the search values', () => { - expect(controller.filter).not.toBeDefined(); - spyOn(sessionStorage, 'get').and.returnValue({data: 'data'}); - controller.$onChanges(); + // describe('$onChanges()', () => { + // it('should set filter properties using the search values', () => { + // expect(controller.filter).not.toBeDefined(); + // spyOn(sessionStorage, 'get').and.returnValue({data: 'data'}); + // controller.$onChanges(); - expect(controller.filter).toBe(sessionStorage.get({data: 'data'})); - }); - }); + // expect(controller.filter).toBe(sessionStorage.get({data: 'data'})); + // }); + // }); }); }); diff --git a/client/salix/src/components/searchbar/searchbar.js b/client/salix/src/components/searchbar/searchbar.js index 6724c44ce4..12c85bcd30 100644 --- a/client/salix/src/components/searchbar/searchbar.js +++ b/client/salix/src/components/searchbar/searchbar.js @@ -23,7 +23,7 @@ export default class Controller { if (this.stringSearch) { // find pattern key:value or key:(extra value) and returns array find = toFind.match(/((([\w_]+):([\w_]+))|([\w_]+):\(([\w_ ]+)\))/gi); - // remove pattern key:value or key:(extra value) from string + // remove pattern key:value or key:(extra value) from string and returns string this.index.filter.search = (toFind.replace(/((([\w_]+):([\w_]+))|([\w_]+):\(([\w_ ]+)\))/gi, '')).trim(); if (find) for (let i = 0; i < find.length; i++) { From 13c15bb5b32499500e4c45bd948f14887c3de4d4 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 21 Nov 2017 11:12:52 +0100 Subject: [PATCH 014/287] production with searchbar --- client/client/src/index/index.html | 4 +- client/core/src/lib/crud.js | 8 +++ client/production/src/index/index.html | 41 ++++++------ client/production/src/index/index.js | 62 +++---------------- .../src/components/searchbar/searchbar.js | 6 +- .../common/methods/fake-production/list.js | 29 +++++---- 6 files changed, 59 insertions(+), 91 deletions(-) diff --git a/client/client/src/index/index.html b/client/client/src/index/index.html index ea5c80f5fd..0d1c2d71af 100644 --- a/client/client/src/index/index.html +++ b/client/client/src/index/index.html @@ -7,7 +7,9 @@ index="index" on-search="$ctrl.search(index)" advanced="true" - popover="vn-client-search-panel"> + popover="vn-client-search-panel" + ignore-keys = "['page', 'size', 'search']" + > diff --git a/client/core/src/lib/crud.js b/client/core/src/lib/crud.js index df5c5d062c..fe2c39af2b 100644 --- a/client/core/src/lib/crud.js +++ b/client/core/src/lib/crud.js @@ -8,6 +8,14 @@ function index(mgIndex) { } module.factory('vnIndex', index); +nonAuto.$inject = ['mgIndex']; +function nonAuto(mgIndex) { + return Object.assign({}, mgIndex, { + auto: false + }); +} +module.factory('vnIndexNonAuto', nonAuto); + successFactoryCreate.$inject = ['mgSuccessFactoryCreate']; function successFactoryCreate(create) { return Object.assign({}, create, { diff --git a/client/production/src/index/index.html b/client/production/src/index/index.html index 5f215808d2..ae0e881609 100644 --- a/client/production/src/index/index.html +++ b/client/production/src/index/index.html @@ -1,33 +1,30 @@ - + Finder - - - - - - - - + + + + - + initial-value="$ctrl.filter.warehouseFk" + show-field="name" + value-field="id" + field="$ctrl.filter.warehouseFk" + url="/production/api/Warehouses/production" + on-change = "$ctrl.onChangeWareHouse(item)" + label="Store" + > diff --git a/client/production/src/index/index.js b/client/production/src/index/index.js index fff3505802..b926f5fa0c 100644 --- a/client/production/src/index/index.js +++ b/client/production/src/index/index.js @@ -2,11 +2,10 @@ import ngModule from '../module'; import './style.scss'; export default class ProductionIndex { - constructor($element, $scope, $http, vnPopover, aclConstant) { + constructor($element, $scope, $http, aclConstant) { this.$element = $element; this.$ = $scope; this.$http = $http; - this.vnPopover = vnPopover; this.filter = {}; this.tickets = []; this.states = []; @@ -23,17 +22,6 @@ export default class ProductionIndex { this.filter.warehouseFk = this.userProfile.warehouseId; } - get search() { - return this._search; - } - set search(value) { - this._search = value; - this.filter.q = value; - if (!value) { - this.searchTickets(); - } - } - get checkAll() { return this._checkAll; } @@ -72,55 +60,21 @@ export default class ProductionIndex { } ); } - - moreFilters(event) { - this.child = this.vnPopover.showComponent('vn-production-filter-panel', this.$, this.$element[0].querySelector('.filterPanel')); - var childCtrl = angular.element(this.child).isolateScope().$ctrl; - childCtrl.filter = Object.assign({}, this.filter); - childCtrl.data = Object.assign({}, {states: this.states}, {hourItems: this.hourItems}); - childCtrl.onSubmit = filter => this.onChildSubmit(filter); - childCtrl.onCancel = () => this.onChildCancel(); - event.preventDefault(); - } - onChildSubmit(filter) { - let newFilter = {}; - Object.keys(filter).forEach( - field => { - if (filter[field] !== null) { - newFilter[field] = filter[field]; - } - } - ); - this.searchTickets(newFilter); - this.onChildCancel(); - } - onChildCancel() { - angular.element(this.child).scope().$destroy(); - angular.element(this.child).remove(); - delete this.child; - } searchTickets(filter) { - this.filter = Object.assign({}, this.filter, filter || {}); - let filters = Object.assign({}, { - where: this.filter - }, { - page: 1, - limit: 1000 - }); + this.$.index.filter.filter = Object.assign({}, this.filter, filter || {}); this.checkAll = 0; - this.$http.get('/production/api/FakeProductions/list?filter=' + JSON.stringify(filters)).then( + this.$.index.accept().then( json => { - this.tickets = json.data.tickets; - this.footer.lines = json.data.lines; - this.footer.meters = json.data.m3; - this.footer.total = json.data.total; + this.tickets = json.tickets; + this.footer.lines = json.lines; + this.footer.meters = json.m3; + this.footer.total = json.total; } ); } refreshTickets() { this.filter = {}; this.filter.warehouseFk = this.$.displayValue = this.userProfile.warehouseId; - this.search = null; } onChangeWareHouse(warehouse) { if (warehouse && warehouse != this.filter.warehouseFk) { @@ -141,7 +95,7 @@ export default class ProductionIndex { } } -ProductionIndex.$inject = ['$element', '$scope', '$http', 'vnPopover', 'aclConstant']; +ProductionIndex.$inject = ['$element', '$scope', '$http', 'aclConstant']; ngModule.component('vnProductionIndex', { template: require('./index.html'), diff --git a/client/salix/src/components/searchbar/searchbar.js b/client/salix/src/components/searchbar/searchbar.js index 12c85bcd30..7c5c62515e 100644 --- a/client/salix/src/components/searchbar/searchbar.js +++ b/client/salix/src/components/searchbar/searchbar.js @@ -40,7 +40,8 @@ export default class Controller { let keys = Object.keys(filter); if (keys.length) { keys.forEach(k => { - if (k !== 'page' && k !== 'size' && k !== 'search') { + let ignore = (this.ignoreKeys && this.ignoreKeys instanceof Array && this.ignoreKeys.indexOf(k) !== -1); + if (!ignore) { let value = filter[k]; if (typeof value === 'string' && value.indexOf(' ') !== -1) { @@ -110,7 +111,8 @@ ngModule.component('vnSearchbar', { onSearch: '&', advanced: '=', popover: '@', - label: '@?' + label: '@?', + ignoreKeys: ' { let field = {}; - field[key] = filter.where[key]; + field[key] = filter[key]; newFilter.and.push(field); } ); } - filter.where = newFilter; + } else if (Object.keys(filter).length) { + newFilter = filter; } + + filter.where = newFilter; } function onFinish(err, results) { From 730d52169e25027f6fc40b618fb61f4efc2741ad Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 21 Nov 2017 11:50:37 +0100 Subject: [PATCH 015/287] bug fixed in salesperson query --- .../common/methods/client/salesperson.js | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/services/client/common/methods/client/salesperson.js b/services/client/common/methods/client/salesperson.js index dde54fe9fb..23ad812b18 100644 --- a/services/client/common/methods/client/salesperson.js +++ b/services/client/common/methods/client/salesperson.js @@ -23,17 +23,17 @@ module.exports = (Client) => { Client.activeSalesPerson = (filter, callback) => { let skip = filter.skip || 0; let limit = filter.limit || 10; - let where = getCondition(filter.where); + let where = getCondition(filter.where, limit, skip); let query = `SELECT em.id, em.name, em.surname FROM Employee em JOIN Account ac ON em.userFk = ac.id JOIN Role ON Role.id = ac.roleFK - WHERE ac.active AND Role.\`name\`='salesPerson' ${where.cond} + WHERE ac.active AND Role.\`name\`='salesPerson' ${where.sql} ORDER BY em.name ASC LIMIT ? OFFSET ?`; - Client.rawSql(query, [where.value, parseInt(limit, 10), parseInt(skip, 10)], callback) + Client.rawSql(query, where.params, callback) .then(response => { callback(null, formatSalesPerson(response)); }) @@ -42,10 +42,21 @@ module.exports = (Client) => { }); }; - function getCondition(where) { - let out = {}; - out.cond = (typeof where === 'object' && where.name && where.name.regexp) ? `AND em.name regexp ?` : '?'; - out.value = (typeof where === 'object' && where.name && where.name.regexp) ? where.name.regexp : ''; + function getCondition(where, limit, skip) { + let out = { + sql: '', + params: [] + }; + if (where && where.or) { + out.sql = `AND (em.name regexp ? OR em.surname regexp ?)`; + where.or.forEach(val => { + Object.keys(val).forEach(key => { + out.params.push(val[key].regexp); + }); + }); + } + out.params.push(parseInt(limit, 10)); + out.params.push(parseInt(skip, 10)); return out; } From 28c4cdfa5f3db882834da48c0f80d3d30007a6ac Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 21 Nov 2017 11:59:43 +0100 Subject: [PATCH 016/287] removed eslint problems --- services/client/common/methods/client/salesperson.js | 4 ++-- services/production/common/methods/fake-production/list.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/services/client/common/methods/client/salesperson.js b/services/client/common/methods/client/salesperson.js index 23ad812b18..01a7a48ece 100644 --- a/services/client/common/methods/client/salesperson.js +++ b/services/client/common/methods/client/salesperson.js @@ -1,4 +1,4 @@ -module.exports = (Client) => { +module.exports = Client => { Client.remoteMethod('activeSalesPerson', { description: 'returns actives employees with salesperson role', accessType: 'READ', @@ -72,4 +72,4 @@ module.exports = (Client) => { return results; } -}; \ No newline at end of file +}; diff --git a/services/production/common/methods/fake-production/list.js b/services/production/common/methods/fake-production/list.js index dd389c3a0f..cfbad96511 100644 --- a/services/production/common/methods/fake-production/list.js +++ b/services/production/common/methods/fake-production/list.js @@ -26,7 +26,7 @@ module.exports = function(Self) { } buildWhereObject(); - + let where = Self.dataSource.connector.buildWhere(Self.modelName, filter.where); let query = `SELECT * FROM tmp.production ${where.sql} GROUP BY RouteFk ORDER BY routeFk`; conn.query(query, where.params, onFinish); @@ -60,7 +60,7 @@ module.exports = function(Self) { } else if (Object.keys(filter).length) { newFilter = filter; } - + filter.where = newFilter; } From 78eda1c70e06b2cd526a331d5546382f5e78c49d Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 21 Nov 2017 12:07:37 +0100 Subject: [PATCH 017/287] errores de traduccion --- client/client/src/address-edit/address-edit.html | 4 ++-- client/client/src/locale/es.json | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/client/client/src/address-edit/address-edit.html b/client/client/src/address-edit/address-edit.html index d94324c92b..2d4caea42c 100644 --- a/client/client/src/address-edit/address-edit.html +++ b/client/client/src/address-edit/address-edit.html @@ -12,10 +12,10 @@ Address - + - + diff --git a/client/client/src/locale/es.json b/client/client/src/locale/es.json index 20089e85c0..f828c7abcc 100644 --- a/client/client/src/locale/es.json +++ b/client/client/src/locale/es.json @@ -10,5 +10,6 @@ "Postcode": "Código postal", "Province": "Provincia", "Save": "Guardar", - "Pay method" : "Forma de pago" + "Pay method" : "Forma de pago", + "Address": "Consignatario" } From 52cbd1a870737a570e29e97d6d7695a65b19a5d4 Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 21 Nov 2017 12:44:28 +0100 Subject: [PATCH 018/287] eliminacion del style vn-empty, ahora se llama vn-auto --- client/client/src/addresses/addresses.html | 10 +- client/client/src/card/card.html | 8 +- client/client/src/index/index.html | 2 +- client/route/src/card/card.html | 4 +- client/salix/src/components/app/app.html | 4 +- client/salix/src/styles/layout.css | 216 ++++++++++----------- 6 files changed, 120 insertions(+), 124 deletions(-) diff --git a/client/client/src/addresses/addresses.html b/client/client/src/addresses/addresses.html index 8ec33bc5e3..0b44f79464 100644 --- a/client/client/src/addresses/addresses.html +++ b/client/client/src/addresses/addresses.html @@ -6,24 +6,24 @@ Addresses - star star_border - +
{{::i.consignee}}
{{::i.street}}
{{::i.city}}, {{::i.province}}
{{::i.phone}}, {{::i.mobile}}
-
- + +
-
+
diff --git a/client/client/src/card/card.html b/client/client/src/card/card.html index e9ebd07a04..830da34e48 100644 --- a/client/client/src/card/card.html +++ b/client/client/src/card/card.html @@ -4,15 +4,15 @@ actions="$ctrl.client = edit.model" options="mgEdit"> - + - - - + + + diff --git a/client/client/src/index/index.html b/client/client/src/index/index.html index 0d1c2d71af..ba40c663b6 100644 --- a/client/client/src/index/index.html +++ b/client/client/src/index/index.html @@ -3,7 +3,7 @@
- - + @@ -19,7 +19,7 @@ - + diff --git a/client/salix/src/components/app/app.html b/client/salix/src/components/app/app.html index 959cf42823..0a447851f4 100644 --- a/client/salix/src/components/app/app.html +++ b/client/salix/src/components/app/app.html @@ -1,12 +1,12 @@ - + - + diff --git a/client/salix/src/styles/layout.css b/client/salix/src/styles/layout.css index 1d35fd5c87..c952abe37f 100644 --- a/client/salix/src/styles/layout.css +++ b/client/salix/src/styles/layout.css @@ -1,110 +1,106 @@ - -html, body { - height: 100%; - margin: 0px; - padding: 0px; -} - -html [full-height], .full-height { - height: 100%; -} -html [self-scroll], .self-scroll { - overflow: auto; -} - -/* Horizontal & vertical */ - -html [vn-horizontal], vn-horizontal, .vn-horizontal, -html [vn-vertical], vn-vertical, .vn-vertical { - display: flex; -} -html [vn-horizontal], vn-horizontal, .vn-horizontal { - flex-direction: row; -} -vn-horizontal[reverse] { - flex-direction: row-reverse; -} -html [vn-vertical], vn-vertical, .vn-vertical { - flex-direction: column; -} -vn-vertical[reverse] { - flex-direction: column-reverse; -} -html [wrap] { - flex-wrap: wrap; -} -html [wrap-reverse] { - flex-wrap: wrap-reverse; -} -html [scrollable] { - min-height: 1px; - flex: 1; - flex-basis: 0.000000001px; -} - -/* Horizontal & vertical childs */ - -html [vn-auto], -html [vn-none], -html [vn-one], -html [vn-two], -html [vn-three], -html [vn-four], -html [vn-five], -html [vn-six], -html [vn-seven], -html [vn-eight], -html [vn-nine], -html [vn-ten], -html [vn-eleven], -html [vn-twelve]{ - flex-basis: 0.000000001px; -} -html [vn-auto], vn-auto, .vn-auto { - flex: 1; - flex-basis: auto; -} -html [vn-empty], vn-empty, .vn-empty { - display: block; -} -html [vn-none], vn-none, .vn-none { - flex: 1; - flex: none; -} -html [vn-one], vn-one, .vn-one { - flex: 1; -} -html [vn-two], vn-two, .vn-two { - flex: 2; -} -html [vn-three], vn-three, .vn-three { - flex: 3; -} -html [vn-four], vn-four, .vn-four { - flex: 4; -} -html [vn-five], vn-five, .vn-five { - flex: 5; -} -html [vn-six], vn-six, .vn-six { - flex: 6; -} -html [vn-seven], vn-seven, .vn-seven { - flex: 7; -} -html [vn-eight], vn-eight, .vn-eight { - flex: 8; -} -html [vn-nine], vn-nine, .vn-nine { - flex: 9; -} -html [vn-ten], vn-ten, .vn-ten { - flex: 10; -} -html [vn-eleven], vn-eleven, .vn-eleven { - flex: 11; -} -html [vn-twelve], vn-twelve, .vn-twelve { - flex: 12; -} - + +html, body { + height: 100%; + margin: 0px; + padding: 0px; +} + +html [full-height], .full-height { + height: 100%; +} +html [self-scroll], .self-scroll { + overflow: auto; +} + +/* Horizontal & vertical */ + +html [vn-horizontal], vn-horizontal, .vn-horizontal, +html [vn-vertical], vn-vertical, .vn-vertical { + display: flex; +} +html [vn-horizontal], vn-horizontal, .vn-horizontal { + flex-direction: row; +} +vn-horizontal[reverse] { + flex-direction: row-reverse; +} +html [vn-vertical], vn-vertical, .vn-vertical { + flex-direction: column; +} +vn-vertical[reverse] { + flex-direction: column-reverse; +} +html [wrap] { + flex-wrap: wrap; +} +html [wrap-reverse] { + flex-wrap: wrap-reverse; +} +html [scrollable] { + min-height: 1px; + flex: 1; + flex-basis: 0.000000001px; +} + +/* Horizontal & vertical childs */ + +html [vn-auto], +html [vn-none], +html [vn-one], +html [vn-two], +html [vn-three], +html [vn-four], +html [vn-five], +html [vn-six], +html [vn-seven], +html [vn-eight], +html [vn-nine], +html [vn-ten], +html [vn-eleven], +html [vn-twelve]{ + flex-basis: 0.000000001px; +} +html [vn-auto], vn-auto, .vn-auto { + flex-basis: auto; +} +html [vn-none], vn-none, .vn-none { + flex: 1; + flex: none; +} +html [vn-one], vn-one, .vn-one { + flex: 1; +} +html [vn-two], vn-two, .vn-two { + flex: 2; +} +html [vn-three], vn-three, .vn-three { + flex: 3; +} +html [vn-four], vn-four, .vn-four { + flex: 4; +} +html [vn-five], vn-five, .vn-five { + flex: 5; +} +html [vn-six], vn-six, .vn-six { + flex: 6; +} +html [vn-seven], vn-seven, .vn-seven { + flex: 7; +} +html [vn-eight], vn-eight, .vn-eight { + flex: 8; +} +html [vn-nine], vn-nine, .vn-nine { + flex: 9; +} +html [vn-ten], vn-ten, .vn-ten { + flex: 10; +} +html [vn-eleven], vn-eleven, .vn-eleven { + flex: 11; +} +html [vn-twelve], vn-twelve, .vn-twelve { + flex: 12; +} + From a71d0ed8bc39f425580b697dd13b7258aa2dbf6a Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 21 Nov 2017 14:22:30 +0100 Subject: [PATCH 019/287] border radius en scss --- client/client/src/notes/style.css | 3 - client/salix/src/styles/border.scss | 96 +++++++++++++++-------------- 2 files changed, 51 insertions(+), 48 deletions(-) diff --git a/client/client/src/notes/style.css b/client/client/src/notes/style.css index 4d0f8eba77..e69de29bb2 100644 --- a/client/client/src/notes/style.css +++ b/client/client/src/notes/style.css @@ -1,3 +0,0 @@ -.notes-date { - font-family: raleway-bold; -} \ No newline at end of file diff --git a/client/salix/src/styles/border.scss b/client/salix/src/styles/border.scss index 3eb08176db..bd046c5595 100644 --- a/client/salix/src/styles/border.scss +++ b/client/salix/src/styles/border.scss @@ -1,45 +1,51 @@ -@import "colors"; - -$border-color: #AAA; -$border-thin: 1px; -$border-thick: 2px; - -html [border-none], .border-none { - border: 0; -} - -/* Solid border */ - -html [border-solid], .border-solid { - border: $border-thin solid $border-color; -} -html [border-solid-top], .border-solid-top { - border-top: $border-thin solid $border-color; -} -html [border-solid-left], .border-solid-left { - border-left: $border-thin solid $border-color; -} -html [border-solid-right], .border-solid-right { - border-right: $border-thin solid $border-color; -} -html [border-solid-bottom], .border-solid-bottom { - border-bottom: $border-thin solid $border-color; -} - -/* Dashed border */ - -html [border-dashed], .border-dashed { - border: $border-thin dashed $border-color; -} -html [border-dashed-top], .border-dashed-top { - border-top: $border-thin dashed $border-color; -} -html [border-dashed-left], .border-dashed-left { - border-left: $border-thin dashed $border-color; -} -html [border-dashed-right], .border-dashed-right { - border-right: $border-thin dashed $border-color; -} -html [border-dashed-bottom], .border-dashed-bottom { - border-bottom: $border-thin dashed $border-color; -} +@import "colors"; + +$border-color: #AAA; +$border-thin: 1px; +$border-thick: 2px; + +html [border-none], .border-none { + border: 0; +} + +/* Solid border */ + +html [border-solid], .border-solid { + border: $border-thin solid $border-color; +} +html [border-solid-top], .border-solid-top { + border-top: $border-thin solid $border-color; +} +html [border-solid-left], .border-solid-left { + border-left: $border-thin solid $border-color; +} +html [border-solid-right], .border-solid-right { + border-right: $border-thin solid $border-color; +} +html [border-solid-bottom], .border-solid-bottom { + border-bottom: $border-thin solid $border-color; +} + +/* Dashed border */ + +html [border-dashed], .border-dashed { + border: $border-thin dashed $border-color; +} +html [border-dashed-top], .border-dashed-top { + border-top: $border-thin dashed $border-color; +} +html [border-dashed-left], .border-dashed-left { + border-left: $border-thin dashed $border-color; +} +html [border-dashed-right], .border-dashed-right { + border-right: $border-thin dashed $border-color; +} +html [border-dashed-bottom], .border-dashed-bottom { + border-bottom: $border-thin dashed $border-color; +} + +/* Border Radius */ + +html [border-radius], .border-radius { + border-radius: .3em; +} \ No newline at end of file From 26920bb1240238327db0f2f413fcf9fbac0f0472 Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 21 Nov 2017 14:22:59 +0100 Subject: [PATCH 020/287] =?UTF-8?q?adaptacion=20de=20border=20radius=20y?= =?UTF-8?q?=20notes=20con=20nuevo=20dise=C3=B1o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/client/src/addresses/addresses.html | 2 +- client/client/src/notes/notes.html | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/client/client/src/addresses/addresses.html b/client/client/src/addresses/addresses.html index 0b44f79464..c79d56ff7f 100644 --- a/client/client/src/addresses/addresses.html +++ b/client/client/src/addresses/addresses.html @@ -6,7 +6,7 @@ Addresses - diff --git a/client/client/src/notes/notes.html b/client/client/src/notes/notes.html index ecea1d668c..5eefb99814 100644 --- a/client/client/src/notes/notes.html +++ b/client/client/src/notes/notes.html @@ -1,13 +1,19 @@ Notes - - -
{{::n.created | date:'dd/MM/yyyy HH:mm'}}
-
{{::n.employee.name}}
-
{{::n.text}}
-
-
+ + + {{::n.employee.name}} {{::n.employee.surname}} + {{::n.created | date:'dd/MM/yyyy HH:mm'}} + + + {{::n.text}} + +
Date: Tue, 21 Nov 2017 14:52:06 +0100 Subject: [PATCH 021/287] error corregido con tag acl repetido --- client/client/src/fiscal-data/fiscal-data.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/client/src/fiscal-data/fiscal-data.html b/client/client/src/fiscal-data/fiscal-data.html index f9c9c418b6..5e32cdafc4 100644 --- a/client/client/src/fiscal-data/fiscal-data.html +++ b/client/client/src/fiscal-data/fiscal-data.html @@ -42,10 +42,10 @@
- + - + @@ -57,7 +57,7 @@
- +
From e7d19da8f5a1fc668d0211d51d5477a094d00f46 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 21 Nov 2017 14:53:09 +0100 Subject: [PATCH 022/287] added sales person property into create new client --- client/client/src/create/create.html | 13 ++++++++++--- .../client/common/methods/client/before-save.js | 4 ++-- services/client/common/methods/client/create.js | 3 ++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/client/client/src/create/create.html b/client/client/src/create/create.html index 5d1f62db9e..aa999bbe28 100644 --- a/client/client/src/create/create.html +++ b/client/client/src/create/create.html @@ -20,13 +20,20 @@ - +
- - +
diff --git a/services/client/common/methods/client/before-save.js b/services/client/common/methods/client/before-save.js index 74b9ce7a61..470b7ba3fa 100644 --- a/services/client/common/methods/client/before-save.js +++ b/services/client/common/methods/client/before-save.js @@ -29,9 +29,9 @@ module.exports = function(Client) { && instance.dueDay == ctx.data.dueDay) ctx.data.dueDay = 5; - if (instance.fi && ctx.data.equalizationTax && !canMarkEqualizationTax(instance)){ + if (instance.fi && ctx.data.equalizationTax && !canMarkEqualizationTax(instance)) { next(generateErrorEqualizationTax()); - } else if (instance.equalizationTax !== undefined && instance.equalizationTax && ctx.data.fi && canMarkEqualizationTax(ctx.data)){ + } else if (instance.equalizationTax !== undefined && instance.equalizationTax && ctx.data.fi && canMarkEqualizationTax(ctx.data)) { next(generateErrorEqualizationTax()); } else { next(); diff --git a/services/client/common/methods/client/create.js b/services/client/common/methods/client/create.js index 58e947e3fb..fcf85c0bc0 100644 --- a/services/client/common/methods/client/create.js +++ b/services/client/common/methods/client/create.js @@ -38,7 +38,8 @@ module.exports = function(Client) { fi: data.fi, socialName: data.socialName, id: account.id, - email: data.email + email: data.email, + salesPersonFk: data.salesPersonFk }; Client.create(client, {transaction}, (error, newClient) => { From af5a4d65a974338516f70cc5c1def766012c86e0 Mon Sep 17 00:00:00 2001 From: jgallego Date: Wed, 22 Nov 2017 07:56:31 +0100 Subject: [PATCH 023/287] cambio de fuente de raleway a roboto --- client/client/src/card/style.css | 2 +- client/client/src/index/style.css | 2 +- client/core/src/autocomplete/style.scss | 2 +- client/core/src/confirm/style.css | 10 +- client/core/src/dialog/style.scss | 136 +++++++++--------- client/core/src/mdl-override.css | 120 ++++++++-------- client/salix/src/styles/display.css | 6 +- client/salix/src/styles/font-family.css | 33 ++--- client/salix/src/styles/font-style.scss | 22 +-- client/salix/src/styles/fonts/Roboto-Bold.ttf | Bin 0 -> 117240 bytes .../salix/src/styles/fonts/Roboto-Medium.ttf | Bin 0 -> 116752 bytes client/salix/src/styles/fonts/Roboto.ttf | Bin 0 -> 116752 bytes client/salix/src/styles/misc.scss | 4 +- client/salix/src/styles/title.css | 48 +++---- 14 files changed, 188 insertions(+), 197 deletions(-) create mode 100644 client/salix/src/styles/fonts/Roboto-Bold.ttf create mode 100644 client/salix/src/styles/fonts/Roboto-Medium.ttf create mode 100644 client/salix/src/styles/fonts/Roboto.ttf diff --git a/client/client/src/card/style.css b/client/client/src/card/style.css index 1958794093..30d68e7828 100644 --- a/client/client/src/card/style.css +++ b/client/client/src/card/style.css @@ -1,3 +1,3 @@ vn-descriptor { - font-family: raleway-bold; + font-family: vn-font-bold; } \ No newline at end of file diff --git a/client/client/src/index/style.css b/client/client/src/index/style.css index b30351f098..123a0bf977 100644 --- a/client/client/src/index/style.css +++ b/client/client/src/index/style.css @@ -12,5 +12,5 @@ vn-item-client a:hover { } .vn-item-client-name { - font-family: raleway-bold; + font-family: vn-font-bold; } diff --git a/client/core/src/autocomplete/style.scss b/client/core/src/autocomplete/style.scss index 1472dbcf36..5b68a465b5 100644 --- a/client/core/src/autocomplete/style.scss +++ b/client/core/src/autocomplete/style.scss @@ -18,7 +18,7 @@ ul.vn-autocomplete { } &.load-more { color: #ffa410; - font-weight: bold; + font-family: vn-font-bold; padding: .4em .8em; } } diff --git a/client/core/src/confirm/style.css b/client/core/src/confirm/style.css index 7177560fdc..b19288ecbb 100644 --- a/client/core/src/confirm/style.css +++ b/client/core/src/confirm/style.css @@ -1,5 +1,5 @@ - -vn-confirm .dialog-title { - color:#424242; - font-family: raleway-bold; -} + +vn-confirm .dialog-title { + color:#424242; + font-family: vn-font-bold; +} diff --git a/client/core/src/dialog/style.scss b/client/core/src/dialog/style.scss index 1b30f5e982..73bd5ba190 100644 --- a/client/core/src/dialog/style.scss +++ b/client/core/src/dialog/style.scss @@ -1,68 +1,68 @@ -.vn-dialog { - display: none; - z-index: 100; - position: fixed; - left: 0; - top: 0; - height: 100%; - width: 100%; - background-color: rgba(1,1,1,.4); - - button.close { - position: absolute; - top: 0; - right: 0; - border-style: none; - background-color: transparent; - padding: .3em; - cursor: pointer; - - vn-icon { - display: block; - - i { - display: block; - } - } - - &:hover { - background-color: rgba(0, 0, 0, .1); - } - } - & > div { - position: relative; - box-shadow: 0 0 .4em rgba(1,1,1,.4); - background-color: white; - border-radius: .2em; - overflow: auto; - top: 50%; - left: 50%; - padding: 2em; - box-sizing: border-box; - - width: 28em; - margin-top: -10em; - margin-left: -14em; - } - .button-bar { - margin-top: 1.5em; - text-align: right; - - button { - background: none; - border: none; - text-transform: uppercase; - font-size: 1.1em; - color: #ffa410; - font-weight: bold; - cursor: pointer; - padding: .5em; - margin: -0.5em; - margin-left: .5em; - - &:hover { - background-color: rgba(1,1,1,.1); - } - } - } -} +.vn-dialog { + display: none; + z-index: 100; + position: fixed; + left: 0; + top: 0; + height: 100%; + width: 100%; + background-color: rgba(1,1,1,.4); + + button.close { + position: absolute; + top: 0; + right: 0; + border-style: none; + background-color: transparent; + padding: .3em; + cursor: pointer; + + vn-icon { + display: block; + + i { + display: block; + } + } + + &:hover { + background-color: rgba(0, 0, 0, .1); + } + } + & > div { + position: relative; + box-shadow: 0 0 .4em rgba(1,1,1,.4); + background-color: white; + border-radius: .2em; + overflow: auto; + top: 50%; + left: 50%; + padding: 2em; + box-sizing: border-box; + + width: 28em; + margin-top: -10em; + margin-left: -14em; + } + .button-bar { + margin-top: 1.5em; + text-align: right; + + button { + background: none; + border: none; + text-transform: uppercase; + font-size: 1.1em; + color: #ffa410; + font-family: vn-font-bold; + cursor: pointer; + padding: .5em; + margin: -0.5em; + margin-left: .5em; + + &:hover { + background-color: rgba(1,1,1,.1); + } + } + } +} diff --git a/client/core/src/mdl-override.css b/client/core/src/mdl-override.css index 83043a144f..3a1f391a2f 100644 --- a/client/core/src/mdl-override.css +++ b/client/core/src/mdl-override.css @@ -1,60 +1,60 @@ -/** - * Rewrited CSS rules from Material Design Lite. - * TODO: don't use !important - */ - -.mdl-textfield { - width: 100%; -} - -.mdl-button { - font-weight: bolder; - color: #ffa410; -} -.mdl-button--colored { - color: white !important; -} -.mdl-button--colored, -.mdl-button--colored:focus, -.mdl-button--colored:active { - background-color: #ffa410 !important; -} -.mdl-button--colored:hover, -.mdl-button--raised:hover { - background-color: #ffa410 !important; -} -.mdl-button--fab{ - color: white !important; - background-color: #ff9400 !important; -} - -.mdl-dialog__actions--full-width>*{ - text-align: center; -} - -.mdl-dialog{ - width: 400px; - font-family: raleway-regular; - line-height:60px; - text-align: center; -} - -.mdl-textfield__error { - visibility: visible; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - width: 100%; -} -.mdl-textfield.invalid .mdl-textfield__input { - border-color: #d50000; - box-shadow: none; -} -.mdl-textfield.invalid .mdl-textfield__label::after { - background-color: #d50000; -} -.mdl-textfield--floating-label.invalid .mdl-textfield__label { - color: #d50000; - font-size: 12px; - top: 4px; -} +/** + * Rewrited CSS rules from Material Design Lite. + * TODO: don't use !important + */ + +.mdl-textfield { + width: 100%; +} + +.mdl-button { + font-weight: bolder; + color: #ffa410; +} +.mdl-button--colored { + color: white !important; +} +.mdl-button--colored, +.mdl-button--colored:focus, +.mdl-button--colored:active { + background-color: #ffa410 !important; +} +.mdl-button--colored:hover, +.mdl-button--raised:hover { + background-color: #ffa410 !important; +} +.mdl-button--fab{ + color: white !important; + background-color: #ff9400 !important; +} + +.mdl-dialog__actions--full-width>*{ + text-align: center; +} + +.mdl-dialog{ + width: 400px; + font-family: vn-font; + line-height:60px; + text-align: center; +} + +.mdl-textfield__error { + visibility: visible; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 100%; +} +.mdl-textfield.invalid .mdl-textfield__input { + border-color: #d50000; + box-shadow: none; +} +.mdl-textfield.invalid .mdl-textfield__label::after { + background-color: #d50000; +} +.mdl-textfield--floating-label.invalid .mdl-textfield__label { + color: #d50000; + font-size: 12px; + top: 4px; +} diff --git a/client/salix/src/styles/display.css b/client/salix/src/styles/display.css index 9824322527..c296eec694 100644 --- a/client/salix/src/styles/display.css +++ b/client/salix/src/styles/display.css @@ -24,9 +24,9 @@ } .popover-label { - font-weight: bold; - color: black; - padding-top:5px; + font-family: vn-font-bold; + color: black; + padding-top:5px; } /* Icon cuadrado */ diff --git a/client/salix/src/styles/font-family.css b/client/salix/src/styles/font-family.css index 3fc6b8fcdf..21a5219c85 100644 --- a/client/salix/src/styles/font-family.css +++ b/client/salix/src/styles/font-family.css @@ -1,21 +1,12 @@ -@font-face { - font-family: raleway-italic; - src: url(./fonts/Raleway-Italic.ttf); -} -@font-face { - font-family: raleway-thin; - src: url(./fonts/Raleway-Thin.ttf); -} -@font-face { - font-family: raleway-regular; - src: url(./fonts/Raleway-Regular.ttf); -} -@font-face { - font-family: raleway-bold; - src: url(./fonts/Raleway-Bold.ttf); -} -@font-face { - font-family: raleway-semi-bold; - src: url(./fonts/Raleway-SemiBold.ttf); -} - +@font-face { + font-family: vn-font-medium; + src: url(./fonts/Roboto-Medium.ttf); +} +@font-face { + font-family: vn-font; + src: url(./fonts/Roboto.ttf); +} +@font-face { + font-family: vn-font-bold; + src: url(./fonts/Roboto-Bold.ttf); +} diff --git a/client/salix/src/styles/font-style.scss b/client/salix/src/styles/font-style.scss index fb4b055d3a..db0198cdef 100644 --- a/client/salix/src/styles/font-style.scss +++ b/client/salix/src/styles/font-style.scss @@ -1,12 +1,12 @@ -@import "colors"; -@import "font-family"; - -$font-color: $color-dark-grey; - -body { - color: $font-color; - font-family: raleway-regular; -} -html [uppercase], .uppercase { - text-transform: uppercase; +@import "colors"; +@import "font-family"; + +$font-color: $color-dark-grey; + +body { + color: $font-color; + font-family: vn-font; +} +html [uppercase], .uppercase { + text-transform: uppercase; } \ No newline at end of file diff --git a/client/salix/src/styles/fonts/Roboto-Bold.ttf b/client/salix/src/styles/fonts/Roboto-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..072b842925fd64f0964d6dc3735a65f856b01a32 GIT binary patch literal 117240 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 z z9mIFaoy1FI3H+h=$9A{eP2Jy?Z&T|%au0Fth!KBBzC-+7`7ZH&av$;csfY1TfslTMzz z50b26BTi2fy``rKRrEB`#*6YIy!}#s32!gSOX#pBHO1Q)k_CFG9;(toZ%vgOXidG8 z8$FtNG*g=CZK~pVK05cZ5}IMh%a`f< zI@;5!deg!M(Q^9IVmAJDV5g1o*TaUN-pYFb{a9NNKzpvxwt7PK5B003`|A1WZ&%QN zW@ybiT|Mb{js|m0<5>%{W;*@)&&Ld`tzLJ%c8!1jTrW7_Zyhw}AqBk;{nuy?&pNLM zdagGZAU%UEH*B%o-l<9F9_2>1lJwD{S&~>sN-qhi0&}S-rshjS#)XUIwyc#$4 z<3HYCy+_jL9`v8N-`E?Qb@Iha>$TP;rSnzyP5O+V>AwPqU+Jw($+WQYBcbs#^YVhj zEzt|z51HQF6ECIj={{Zm`H-*9<$CDc*6rB*>7kFIRSo>suhxIMUot(C=_&Lp6-v{+ zV7(sd>FRZ^jde~xV(N>jEqWe${q%bpo|h4b-_+CT`L)3tH@}=`ecnxl_2vHa&?xk> zzBbm~hInH;(sjGdWj!?|qsyWJrmpJx+PJmRpM^6yqu1*Hb!sjlQAKeWKmSh&k&0;P zvQ^8nF(e|QETjjtkoM7{0*zp3B^VTe8-rR&JJZr^97}V|XIAt!dT6GWy?hO2Ic1Nf z{m!{V)YkcNzH=^f9{1dHxO4yC+<#{lox%SaT^m1lKkI0(L^b@q#sB)|6H%XWR9m=>{o(km7soJ-aqro2&_thTN6C2O>P@ec+`4pRGar`!!eyj`RZ)G zDx0s&=F9&cOT1-{!`o<0IK0jHy9sNtq_ujF*V?Qdmp5%4mat9M6 z{niE5k?NsA7j;REYSLvj>xvR;QBtkCs%vUfyRNH4DRt_Gy40;6^{P+(OKi2En=k;k z;5OWWyKoQg!vlB-kKi#3!V`E3&)_+{fFT%$ml}arFbZQZ4zJ-2Ou$=s2k+qne1u7u zf@zq6Sx76r$VZ>xGt9vk_zLrofp72~7W4yt!Y`;}6&px-q+C149@zbcisH literal 0 HcmV?d00001 diff --git a/client/salix/src/styles/fonts/Roboto-Medium.ttf b/client/salix/src/styles/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d0f6e2b64f3bc7ebe271d7b5e92d24ad9188e708 GIT binary patch literal 116752 zcmeFacR&?K_db4RX79ZsDk9A;9V;S56j2d-7salKiio{pSFmEoF81DIY|&_9*Vt<` z)>xx4cIDdP&iy^J7c6;`_w)VZ_vee5v%7b9r<^(SoH8>TVnmdOl1Wf(?HV;}+56j< zC005Xzt*YUq;azu!@W{*y`E_Pr`pY$M-H3R2ltPzCK5dxH!B;s$En0AB9?&XV_Vc{ z*sAxFL5+#>RUk6l?cA$l-=zJcx=Nn&&sX z`wXdk0)DVBYUhRgym9TF&}-n3pBe`H;rawo-o8Eibnd7vJa>U8Bb+ElSg(#l`f8Qv z9q!k`^X|Pn_Uf{4Uh?xRK|wA<_r?vP=jAqZI(vmM1niq9^_mf>CE)+XfM7FX`-m%c;$4^T&|#YmDU z-n5Y823yuxl^AB&id*i)8E&aRbySI`QB&0#TAUo=-qJg%pL<7^wo%XrzHiHIX_ZHRV3EfV<-vN2;n#rI86v5m!JU>N4K#G3W!fsF6}aw&>#ekmH>Azl2nsV4$M12p%*1gIzZ+6< zzZ8x$aIA@YW@@HAp%BABntR=gaI6D`RF$6TTZg^0x@_#CRI zwV@boA|-1KA>iZU#r_S#)4$TDf7 z_JP`HMQOFM2DKD3X`r}|di0_s{rV=Qh@6z9)u#@kBlQxUsUzP;L$sf1mX?>Q@JL$D z^HMJ!LUCdp4aU3ejJar$F`i}{FHyY4DAqLI`cA7s4GqJnn|6xkXpd;3@el=TKcW9; zQgv+-crc$*3@a%=FNiv((R9t53h}C__bi&N+HU%Rx|qVKEzd<$_yy}N!zARrjG7wO z&;%`=hI3!*PQ^#@CoK|NX{Z>1_BN)4d^?Rnf0hu}(Env=7+*}Ah%#>yS<2%$6vrw! zV(eHvd3(BwJeH_7LH3pz_CZdDQ@o)fd7++t4cpM?GpV-WDb+WuqdJDR)KeQrEwp1a zPw^l1jMic)Rx1b@RQJDWNi~IFyx>)Micp(7E*rg66AR!Ei`N( ze?v~HYK*1EhIe>oBBkQ~Qqw0|YAi_kjUUk-6U{M%(?nA=ZPYTT3}m6LmP)Cj4UN~{ zk)Lr8xoNJ{5d5E@^+rD|q+&*a<9uA>H}RId442TxOSq1w4#w#;!T5|u8S>+~K6owx zDV(B=<7kG~m;AIz)_YoIYGu5L`w#HWBOBcRrwgN%d`~qNq3qfR-(^-#I-xxR1$K! ziKZLpQLte(RWV%z|2EO69JSF8Z)ud#2eNFXj;28Hy&w4+5^0P!0JxAsla0P;%Ten& zLowtrgr+O(Q1XC2X{N2kxKrskRT9mRw~3;SPbuDbi(-t;s1h)ztTvqLYE>!Gw4bUQ zmrzxcq%`AF8Vp?Nq?M-T=xH;M+9l@S}Ls%Qs3?1b#@rUhCuAHO-eB2qv_lQ=WgV$4W{X0ALPM^{`A0a zr+`1V@XmUi_rYd(4EszK6s!oQ`gPV zw}xb350bXlYEe3lFR?z-^`_FD|CFFhbv>$dX;$J5t!I=j#qk=_zRx;T>Cvx~(w|=^ zr9YL9{I{g^Cb0hN#0y%tDBXeM&q&L4{8i)aKhtph_9fYLWnR@LRo;IbRl880vK9XE z2>ZcM6y>Nkt2+H3M`dH6{OEr@+OT3I_;mp7SoziQA+Aq=pM|-TRpPh`<7zYTV1}|) zl>W=^S7oy(yCLh?N>XuueSK7Rhq5ya%I;7$ z#un=nJz=cs<6e#Ze@Y4q6b^iqxQq2Wg#|e7Mq2V20~8K?l@tbiopcQNx(t=~*C`uw zzA8&E7x<$vC_CA(2>9lrr(baVi298C8k-b8WhYg??DTd0bi7iSm5o~pyRwtwOBRlO z-G=OQ9oH15W#gK{Hl!SPVRI-|F*)~)(|*xdT~ zKtCxNRM?+7SRM}s!eNom? zWmDR+vi%hfD4QR3)A31- zd1WuzaK>iS+c3pL;el>jDLY-+^uQ(Eu2;4doZ+O2qil>Of4yum}o8^ufgn2jyjHeB`*HYwhZ zQueFj%YPhU%j)(fY*=My>bzHej>0L}y~r-nK!d0{nz{1e$W4P{5!5@`AOOS(!U;Ua$v*N zYSudYLsUx2Zo`vqz|pidwVdS7K9l^>MhkpXEjAC6r-O@(w@bb6;o4>SsAnxUhm;m0hcBL-_s+abU#MALXJC zIjod}a#$tVk)72-IVmToJ=ufiqFkW4DYrEfai%<=4&(rum-2!-lA|?)@=-oeCvpOH zCTCC=&`*e^xPZEmD`g18T1uZp-P}tDI7F{DuY&|D%O`2NmW6sQv_%Yss>tQQab`cwzB0o4VC7O_5~MpPfPF*N{fLJdKqK%Y`mY6RMh8iPht6VT=qWqm>| zs3~YmY6jYhqCs0zbL(SjLoGntQcKWw)C#mcwYL66G1LaM1GNQ>rFNhlslD|Pb)p#1 z&eQ=kj$%Q(fc{DG)Dg5RbplPG&Y;~W&iatLQy0)46c5^yx`Oti1nUFpP2E8IPjEqL_r^L}RVD zXfllhokHV5r_uz_X`sK;bV>nDrHP<3XcFj5nryvEvuFzFY?=x>ho*tfrRmliG>=k2 z=hF<(G@1#zfM!{*WAx1iT|{$07t>tOB{a`^jh51U&}Ebcx||k(t^mDCD`_FuEXY23leLjW*Is&`q=o^gCJ&x|!BkFVpw57IX`(1KmpN zLATKc>m{JVM$jF!3G@g04s<8zue6IcgZ@b0gYKp+pnGVm^&vUPtXC-lb~nm z6deRTO@~0w&|%QCbi{gw&e2g&ybXGRj)7jJ)QD^Lr) zwjM-yIUUqWW>5t9Z7Ih%Aier4j9+lZeaXlX0Z|Gd>yEmx{jtw6bDsUvzZ`9O3at=n zh>9D@1Px*b&0!CXksF%A0UE*)n!yPg!3CPY4H}>TkiQV>Q3Oa|jNF0lo4*a9fn3h37csMii?7Xy@wMf2aXckBcE#2E)qcy6AH=izy| z19#+3+=V-HSMJ6Oa70~sAzqjlcxAD_ntvZ1U$8^C6XCaf0?VqIAe){mK421{p|>?4!R z%86OH;2L_H^Bmlcn}BHxfhoO#H%ovsgMlo|fIylt2L1a4XlX>P@HqO;1GQQX+}Mnf zd<>)QPe`m}4$P7HFh3T+DzFIFjCDY{qgWD~#a6Jb>=jD4f>VWfC~wX8^5gs@zs1dh z2_fu+gYXiQ#Z)m%tPoqp9&u8f6TgZpnvYgitEn~CI%$2hq1puPoOV^ar@b{WLtcYZ zQC75S(eXuJ7d03CSgfJDy}OHhQFl*wU-tm_Aono$aQ7PS1KpF{SG%us|IWkU;pE}! z;pyS);qMXS$vusp4xafu3wjpyEah3pGuE?<#u-H{AUTCEnVRhMbiR(D9?a`0j^ zu<;;}=mJLbE3&e@EFbe_#aTI4kyT^SES4qcZC%c`psk-+rY;kCLHc>mTUDNJs?+o1FSd@xZDVkh#dC~Nu zZ_rk9cXD@gcX#(eTLaxIes1e3v~|-rZEc&?R>!Z}8i%$rw3VT)nP@B1^1}imXirkO zU_Ai2FNahbsW_4^k~fkkQemW`c!tS0@)7F@KCOVpkCz=~1kJNtwyd!nwQRAhvaGZ$ zv7}kXj&>1 zum?Qk0!f=iV zFiXIF{g1_Fo&3vz)lfHB1N8<=wmpP0iQPr%n1zy0yGSkN%w89yZWepj&R> zn*$Ke5$H1>h*kucRt$LN0b3{qnC7KW4H{x1dxqJBN$dqp=FNEv-jcV%xNZZRXev$P zop~JZ!sB^Yo`6{Qba-vuc@N%`_u{>IAB9_d6i?z~_*g!Uk7qC0E1JdL^L(&QHu4X& ziGSpuc!ok4!7*ku`d%1>k+ujEBI{d)9c>di5rMZCxoC&T4U1%_$O874Kop1>Y&px6bvD11d*;YYuU z;&e%r5GCodC7Q}*Ch=>xs13l*P41~9uK3)3`KiG^!i z6QaB5A$qdPtcvES!F4HmDVouHXSE7AIY+U0-R<$u~mA@={Y%m1{? z|Fp~h&)Nls6Xtz0c~xV6_@H(eWx~rb$e;*g6$Wo%RX_}>vKKErNfGsYIA;CR5SuLo z|C5-P@N)7B@z7I{2y#Ml@zN8hlNaA~ufe(okC-9M%p4o7Yjn5K`bHOCgx$($ux{|Z zuzPHwjAsj%vWm;tav7`AGI@NdjOS3c$Q+TdGMcY(5jR{9f?+>EzTNF|E1uIMWhn;TTo;g@Ka`4IHtWOP- z48Oq3DFn|t6rM9V1(y#BbS=W1jb5I;tmpQK?VKR!}R8@qAi*oI@*Zx|EVvSnn$$kweR zGtZ9MxN%IQu^Tpwt=77E%|_K)x32b~j@G{p>M9T=eX4yxUERU03VJ<5b$+3?;Ew}i zRTO)SCN~eiJPdU=1eOnFraWMts{j{6aa(UimGM*R*E+Rh<O*Q(!$O&YejUB~%RTMq4=95=649XT&zc8e+Z z+dc14sp5TiFK;&1wPJj^_)%h0xwxtgd>aRbMt4NtHia!^ugjfH>X?1x;5~*#vKxn| zf&0m_9AAm`NDgRAUJ7+Haz~fE`P@vtoxL>`rFd9b`>@++UuF(fbd3w0$&UP&I^S1x7$;j!iRv2Y$C2UvcO zNl9P_SO;g;h8^lYvAyNGOjL5fuuiP8=meR^x=rR2Y7jxf$IakmvWJ;jQ(g&S#dCk} zz`R1_#Us`8d%X*Qrm?H4>1oH4@WOYj}Q;X zApSiYA;&$FW7w!?!sE7V%(mTTb5X9J+{EG#1;fbnLD%_JfxQ{TIwv$wDqZ?vXxHEC zHmWnb?Ot2nwGpF;=4VyRiXm4XZ85`Fv4bNlNVrl^92RwbM&)`yQ4nXLNu?8d-r7K zy?Yk(pv1()!HJ0jc{zDo{tiRjgEd6*l{e%apIsX^?2-A84 z@Zq=3@(y>_mM`n4>J|l@2}b$(iAt~#CB3#%y@JUm(kAAi1!q=dHwLxn+j-0|Gc!E7 z@@n#Y`6EwT#|>kaHI5rIZS*N-dT=25_FB1G<%#IN=88Ov;{rJGIY;lT92JykUY_1r z;~Mu%F*aet&@R3EbQx}D{M_|VeR?MKm#=S}ldsIly$2*GCT$S42K4IDuTRXDdzVjl z*i^2})6=YEL9*uhYA`iqB3Ms)6Raj{Gd@j!D6z`BwTQ}(3F)fZ3 z%yP1H={|KXK6v%?sQmPFSeF5bLk7ghxbZ2%=T|w~y#yCB^T`eQ=Hkg5JqIosKVenX zs;K8clu--3DTp{Cu|QWhlRsd>SOlC$pX+521c0180k+vi^7T!oh51+PT4&Cd%1dI8 z-?3i1kDy2R5A8>J%^KWm@F>GC?uGZ}FLdjOsX`@bzWM++16fh#$~;+9OTCDS3Hy%j zm^gl=Y9k^WS`gZpOI>hb@(L};LLtankd-zScQ8Bn{dq3aB3@|EZW>0@3CLtHp7WXPnbh{Eqtz?A9u-4C;m77>N0WgY}x z7^1G3}71lm{ zV2fuB>d+{qMdxm<+wM7b>Couk+6A?0CF6j3oa)I+#!H47h>BN7{zeQTU%hjDA#cdu z%@ibz%7_TfM;`82O-&v+cZ14wCnxio8 zh<$fiuy%5_Ve6+Rh-3A@y8>}-()QwA2cWM9QIMlYpr#vHwo%1!t%IkJ?O2K}V}HG6 zc6~aJo+vG^lnGas5_PjuQ>@b(2TH{WzCCEcKqMvo+Z5ca- zKv7#*4`)stxqkN4dBaw@R^C4(@5&9@^Nin~oIY~)Pp}5{Re2>MFI|T_DlM)j&A~F3 z|B+czoVR%Mkvvrf9Y(Wdm(TC?*UQI9QTVUk(sEfQn8hWFJ0He-S!S!Jt7q}!KKKFa z+Q+DU=7;t-eyGu=-4B?-90Gg4J zrX_r8!d~&@j2T)l%UG!x^LHLGld2^Pwee`M0Fx$(bgdN2xPlz6Fb(Jhd4o(F3ZV~` z-vHZ5iF1}z|IKzX6p}mTYxxd3Ka%By=r%APT)*na-K#e2=grZvt5^)nr8<^%kSpX{ zzVqpmUGl^3r%!k5w{ngUvGYitku1`R1MciPf4se*9$l z6EAMLX4v}n{6+JT>HYf6((7wy@I!r_)M!`Q)6L|gBi_H&dSH*I%jNUZt;+sO)fZ&6 z{5AEHeeVBO{j72M3iU4ty`5Em9p8&GI9RT3E`R`icz)9!pZA%=hmPu2%nNllp!002r6Z;L*Wu_UhM(GwGlm>s& z*E=K_rXT&ynf%HE6r0C>|4B+#?8zJEX`YvwGHw3umoMeL*N^3Q<{#!wn!^UQ8{i*# z?)x40thBHHqyg=l_XwLQHWowA}?hH1%w7ANgF zOc*>j0d;$g=NuI$oHY+vb{G#fL(5TnElI;lxg~Gh>nl&xy|`Bh5^wj>qJ$dMnql@KP^mxymy%HOF*6^;?YSY5y-*srwp>f2- zqx*i8#cB=--%_Xi?yhyK)>dUFqwMnV;q#F@YNy;0Uq6$AaW~y*aI^(!OpZl$Z%ZqG z{cQZqAm?ArqTHmI^ViM&MmO#0?$N91=sxUYx_sEU@nmCu%XbVhkdyNL<}Dm4J zu2IWxF#p$HuUNpnAKMN)ve0YEK~?`|sK3arzmsxq5ePx`y|T=8TR17y(PoJ>yK%Nn zN}w?R>Ku~V@$?OIzobUpyu7+KNE*QNupF#HjcSZH`uNwl1`Sx@*9*RnsKTyQjy$&s z<+MiKKWL4yiUT&S!IMyJatq8?gn8(kQRbz9Tjc>)fH!#}&CLG7-3OKyIVX*Zn-p2Q z^5K7>??xw697|4(U z-K5p)Uqp94udG>fV25|@GWlK07Kv)``|o1H52JP+u+OW54KC8ucFK+6GM z7sW~vL|<%t0T?O8uG|*gZ2CtYMc+Q#DK*&nf|Z^%|FLm!_0$IAMv1_QZBO4e4@_>- z&BL=>!{k9=mx)zu(r{A7t!w5oCAWI`PD^UWA|hCkS7}?SR$(_PS3AE^_4!DQ?Of;| zHTSHG6r|Y8(dOymB#8ADA@gIm?lZ?F)a~tSHj5pse$?ehmR@}Bn7&~lnSbG3)t(u6 ze=N>*Uj>$q&Kx$@j6W@m+5LuRtXpM$HXYA6*mS8L-^*%i2y6#<8`FQ>;8VdPPrh<4 zRck$0Z)T+Ycp!(}VS}kzJ8dY-Wy7!0sB;MN`MXWS?)OPg?*NUnonvF71OD0mz$3)1NpRRy_(i_aLs9{&Znges1TC*C%i+3 z6)c4L)J8h*i|Ijtzm?D~4-Z)yzj=?jbGN#^e30pU*0jyZTb5RQ?Z~()6*6BUo2)Sw zjC^!k$VqpAF;2$?45dYcZd z6TQsWX0WK}YcF|k`MLt=!kZ#cgu@BC|`D%ttz9dIwu-+Xy z@G}|5l#DXPE5ikxy5It~lT(nBPHlQy_ndd+6uE!fb_I(lmOhr(j-PiEuIG-+YmeEW zI<@#QOIWiu{6NMrz9^xqCC-*7ENSr^r^-)sQnrx2&9%`^FgN)fi;>SRUX)L8{0@rq zI2&MjY`LYvz*s<{SV?(heaKsOot!+F&d@AGs>)#BJt`nxvYaxaBjx~ zy+SBE(N;D_GRjslJXHnNd{t(Ui;7I53WYjHwd~NLWmM;YV=LRm$G2N~?4~NK$C5Io zm-bR+O|9@`%juq|NcYoQo>oA+64_YockI(HfOgqH-lpCCY`Rh(5+T~}n`g`f^H@li3*X)fNlO)-Pj} zevy;KQO2I)F_fKPwb$|(e3h4FvtjgkD_`A=`DR{AwUIZ4C39@Si30}@9yqab-)B>1 z%9%ospL(%km%J`A5AXYT3SC|H*`z@kDsJ8bJ`T!YZs3py%nHCqh#y9xt&Q1G;08PS zk)d=ceuZWF<_z#RtXyRG;P|Ec<{m9ucC=&TdCPvy=2bd;IQN#=p+{d_dVKY#9-T)I zd2v*=g=1CwLqlWjwJqYRyhUaE`PpKvp?;w@{p1$vrbl9xN2$6kJLaxcZnP`D>kkb_ zPfH053@txn+VlqBb?)?i!=#@CozCI%O$L{Tw<1sSQn&XvLDMU0(i2e{Or_O2r>oEN}bJ5p`8;Ur@eGJh1cNZ z7*s$>>%@l-AIfx5DD$B>!LeQs&$W@>+EnnpoE}%yM@QCV!sh^e)&!=4WVoGLc0cHI zm_EAYZkx{p?_ddPQ(H#Ys4m|;dn7NWuOBgT(wGD9@3v?LD>KhiGqW>KP8vUY(20+C zEoVzM@~IF!L&37Xh>^Ql`G zyN>JJxK*=|8b6e<&!5L7x>B3g74o{+yGDmabx`eCtvwJ!v)hYFtsn!E7@D3g3%`D? zJvejbjOu@Zoexh9_YFs3kNY8(nl+ZxQ2o{(S6%LtSB1SD^D3n;^k@jqJ={r)`F_Rf zJwL5lzIAb{cCnp1$F^%}abQh9ePm7L_a8IlmSHRn*i)J{ceko#OT&If%sm=kycjQLlP~N4*DW$(?Qv7= zh+tT6I7l4Ex;dzBNR{&Z4xg}$7uDGyrftHEd^V5mp>B zv7^IV7c0`eL4}eLE_q!WmnvU3azc28dKHwcFno6-pNPrAdezDpO9_6}kPk*2rzEkJ zPeI?PHfGJPBh(Bu`8;gkuO=<%(`)|xUVRo!sS^@ht5$GG9c_2tB}@ADo1fOVe65^x3ydc2BjJwY7Q;s2QWn_3n)$&yiY#N`o zp;ndJ^|qx=-hH4(mB@NEYY*231eYrwT-q~XNMhd#tqbOlso8(nkin$`gZwL&A8RXf z2x0~evSJ1*4iw5<p(KFva$69ACgzL56JO$ScH$tvZ;*s`3RqX`UP8Vldw! zO5=W(52ARltcNdb*UcNO;26AT#mYTv8yZymH^Bt>U{h>yL%@=A+mCoH3wcQB0QcC9@M_ zqQ*Dx+^tR9pMLrE;OHxD16#FbOCG}~hPaqoqHlGdxCFymV5m?RY!pxlb4h-tmYJg* zWX|34Hb&E3%P>doZF%6#=YM+6h87Z-i22U2^%t4&i!6^JGKMJ`Xh>JYGi`#hi=FIP zs2y{&VwJNBd+YPP zKt(a4maSvigk>qgBP z)3ilqeGgCeschdGtA6B%3lxyKi^o*R4#oTW&b#08`E*+}zFgT!zqh-*V|51!kErdxl8@3@jKBHV|Mb@7}|BfA{{K+5B$u zxN(@@kbk{Ae&U6^j58lua8g2dNH@byxo6rUV=*-=kC;FW+vZhGCjw)u^%PJW0O(5&55F^WqX=#6^ zoTyRxV%qLQ&!3)a+bX7e`pdJu*Hw&I6My3`OOqUvr^gLzRyXWeX78FaN}TC4q_v3b zJ|GX<7w6KldHs%Cm#o-OyM33|kxsLBSF08gDN*k!%gU5p<6nPIoxpvuwIdtxN7IKF z?U|$o4%Vk3j^4=d9QH4wVayeE)9ns@>K$SM<*!?*if?f8+^{A93&(6BQPnk~UyuIs z+QYx(A1wF%CQ~X1wmbBA_GZhw9!1F#ao`xtDiwBB!Ve|# z5Av=eE9E=-*O`&fJ{IAXa;;0&nGxS5-dx0;mCPSfbj&c8S+JnI=~SlBm=Sus#mRBj zrTPzNshEpHp4sQ?K3&i_Ie^F7=RUTy*5I<1O?IXuD-^F&phqepLX|adWQ+eo%Kt3@ zTq!F6gQ&>lcK;H9G3~Z&XVq%_Ed;}rPBzTLm~zr14O#1GP?qAIK5MBsX>dqMQFE6Q zCaBrV%rShbWuUftWrkD}nHpcIX2Mu5OLA76KNbA9`E9m%8$33kDZ_pY_)s|ej~L!d z#PFK4Cakn<$M(z9>^m8)g~=vttL2kLw~Mh>4DY(5p1F~?kBdQ{>otWSe1XY+E~T2I zOiVP3j*WIVk_8U)4qm&x_yUxP_jqyeQprT9iwgVL-kLvirg_pNvlt${JJ?d0_bRu$ z95>_n*|NStLpjP;ar`=3S($yFr8H=}H~3Wa$m1C98XjR8qNXb+3e5C7?mC#m?tmdj z`xaHTB23NRWc=L z6C2;4r#IL*lQnL6`o6_o6?M#DYSEnEPEH63%)AS}D%t5`eQIg}o$RKfFC|oTBWscr z;H@k-JsF_NvZC*>Q%o%~6Wb@%kniOYC@Wv^L`oq+=T4l`$5dNjTsqq60SywWEKgX|wy5eiaHhtV z(xrcoR%T-x=GLB#IuIGTvv+pHesZt5BzP^X9Et*$*p^9JNI^S={u21rkQ9{(utTa}m>rT@+-4 z|E!f+E{;?5NPYpg5{09hYP(ewe~-b~u0=*2yl1^7>+?%^&kGj_$|++fTUV$t^Y^I% zKJFyK+ZEj%9K&2IMXXtKaEEs-{{qhC3P&|ODJEoAQju<5V#F_BPZ)re=*xKcf?JIK zw!ZvozFTJ~KuKSY_3f%bL+-CPag zepBekz1jv_`Ja0-t6&>K{=NU20uu-9h>R$;KBiky_kRjHH>~5-zsHR4JtI@2{xkTj z&(|938}sUMBo`Q2s+IpRZ`;1w-sL}iJ9&H7b^4@>cU>&={$mao@lQhuZ4UPL>a*~U zUS(}jzpta9sw_i^Q7f+H{U#O~9iYwGv@TEPnHhhJiB8GgWq^{0otWR4jj;zg`W7!j z9NFw2H+Wa{aL8BDwNkb0X$`%zwV`_d+UBpC*ygWTASssmso6IVU3IF3sZJQF9tdA> zdcyL^H|OvD!8hibG@{F-YK^P@vZnPwXIa0i)Tqf<*Y$Tv&m+jE9asg9YSobX(tHkW5)Ve!}IehAOlJa7JYyQO7?ge{rBT=tX<Cw=k{ZEU2#B~F38`oFwpbJ+fUj9)qG5~GmEEO zBLl4CvgJYsATF3ku7O-IeADwC&uzrMb6lX#tWf&FLB_svg0lCPfXCB~t8r$t_kg`B zq85th#Pl0CERS#881iB6EIqRJMqbtZ!z@1;J5UFyHtK86LLtY>zlD>HwPT@{wq}v0 z){o$4)fRpIhuW7Ru%Z*SU>-gmj1PFkt9%;6>hN?qL#^;TEU?vA=y;tQx>sPeNimft zEGIp(^v~;k#3~uV4zliFBlfpzm4+U9^xs!2F{OtLj;J4^sEA1Dt0MR!Atz*T@rY}g z+Q5vds)lHbz?V%(E2FnX=NW)S_c;ZQeZ{`a>aqO2#jb@|m>GZguxM~VcpXtZ(D{^I z27D!*QwGO$%K)?1KZ{iiUpXMH0rG}zhe;VM7_nnmFyg_4D|Wb?%*bHpWT3cXiNSKR z^OiS9(s(sqHSLH6V?f}`2xM4=cO7AMDZb(BJkF%Hp7_H1B1G_&zv-BV8Q^O=R$-#w zM^;fD|CpXBPp}G^>6Vl0mn>N?hOS$*aJ?oq`Rk`o@-pAJk+D*rGFX7vZgF4x1LOPo z?se;T2}>kXYxJPZ4N)i)h@%2huyym2vJQQ*q)e?3a&rt4k&|bc<)3fU&GKpb%<<{G zg4>}D?7g&;QvOyzPGkM^vr<_6gJ0GjDj){yyy^))+<**tBi>RzUseDFz@Eig&{E~v797|n z3_?S)3_xM=@iyf#<}ViJ+q6f)pc!$eZ{9o`Gdb8v7VekSAkNb>u3pjrt)eAo<4Tv`7xS!~=E=cYcf??v)w&t1cUS9M)$&%| zPy&C0y`j>w9O|qEENVMI2=8|BRmV2NMyFqFGOKbr%YC?aT#wG3N0l7Wc+j}PJ%<{O z{<=GMVYxCtjs5LG@lvvaVf~LUEDL&dZ8>yQT;{#vB~$wJp0x)BlDq7n&rvFSKS+fJ zm_F;sKV`^NvrNsnh1p8z;#V?+UC`_;!5um%8OPcT*g6%A?z-KY6)(*;2q6s0-_}C5=r=n%aN# zXzj`DRi%rsa`mhnT(XI8lzeu{`IUs%`@(sn*~`AfM9avo@Z0Ij*?Y~TJRDvo;(YDziec6t8YD4(dK?h|2N`ioEW)k2gkKWNL3 z=8j#yct5}Vm2pt3GP*}-Q05)w^ay-;>8a+g$01#H{P<>94baWTBfzn3bAsmod1s9* zrS{dxQtUUi$L62**T~GCYHtlI*+Xr#LA6ou4c4c8lvXjz=KE@-!RA{W;9sajLEo}1 zLZ?jEDrUZ{5om9}t$@?Qjrekade_zZLaS$Z1380t#xQk-PE_1gUXqHVg|X~WE3me$ z7#5|CZsA&?lw*E-k-xb|*B-^#R_D@Qx$>Gc=YWEJ29-H4+_XF=%9Uhnr!i-v<{3xJ zm0<_5=x7A@?yAa*LoD+$#-obb=!JnBpGD`NdKW9%vS!j;-Ne{>v7uv=#?F|Px^>Hx z{@v${;Ykff2A8N*-~YwE#k2biX6!-Jl*-yoC&xB*TE!llIEy$!bYatdnTdgjYoEa#HFSgzc)lkKO3VAIj%$LZ#N zBm4HkLX}a8`a-!%;TDUy^Ntmer{ufM7fw%;ufi&AUw|S|=cbr(eysboI;z>0-~klW zMoE~LSpx+92~5bxD;#_Jplf_mV(PLrqXZk-Fe$i1c&+q@7Ol~h!!d(T&hZ+*pmacU zu&Gj)uzF>RmvRVuf6ePT!-St|kMg@lfYMi`FJs!H*Mx!3mLz3N?k*S0Ou6UkBR*4adkyJn7_U`>|EDY)Zx{gi z)POK4jjXI=Wf~Y9y_}%4ZQ{(kU^jtv_@J}~wZ+txi;|vTCD;df(`;TlM@$%2v_PI> zEb{egCYsNx`*VESWp_Rq_fP})mMNK|w_cyI3fm@sUNz&|wq#3+;_DlEs1N?|6^&erWp~wA z9ABn;rriS`s2IOmErIZ+(rIdT**1Gz0L$>5U7_E=Z(pTh_=dS_wUh6DUbOCKc?PSc zNuK$%Ha)Rtg^I!9yN>V5^>R2O6mc#M2#HU6C6R~!o zG&t^+Et6lE3$Ot&`oUSWbq2PA+7yN{I=NtxT^EL|DdWFp@P(a)3iUC1$X|qe(ad8- z-Fdy}Hr+mTZQHEA7~61Fd&TO0{rmS*tZu)$!H<^AW~*AZT-{W4%KiK35?#K$t*;Gg zUAU4j4+xk(fnoGe^Kmu?0JPvUXfvflqj427nTu7vWy^=K)ajAqtD9k1^};T_c&Gf2 z?_7TU)5H-YQ}X7u;3p_khA$C5)2?7{QrXY{u-^x3VzFk!HpI2x{$$aXDCkuYd^2%3lvH3UR znKTC!Pa7=Ou;59PCt-%h^3-ziVkX+=F5Am_hw(Lr+2osyMaCDZ3mv7gNnF_#Kv_ynbi7u6EmqBo;h*(xl0v2JdM(`Re4EH+-}u z31u3k^ORoQCoA5C0BKGmf2EJ~esR~nSrDuGBu&~^pV}Cfxn260d9`QMHp}t&UeCq0gC^P3hRfNqxc%o2WQMn3JurzSED zUv9F^Z5_h%wz(}d>~jl0w@xc$o&M4f|ERWkZIwCVaSMyh_5vH&_<)I6bw>{GgAIde9@oVaF+K{Olxn z*%tMDz4GVlIenfmIeFT&{&URC{rU&yGNkv2Wck~N8}f{Kang+C(`RiIwFmU*IAU@j!%**D|_5A>KHSSxbE4^*qc3Nb@Yv#jXoaPD1|;*&b%%CEnuou|W;@VlofQDT>Y#-Wg4& zPSN;5&TG}HiT@c1Y~aS$qs9V;XXuxrYEF{{VKW{aO)q%Sm;q3yLGYt>hoKS{lxEMD ziY*S<1=U1uk?$PLPV%kX#u_twC$s#t<>#NaI+-0e@BR6EgRlHarUT>l9XNnhE4dJ) zsC`WKJ-7eo6T%_$^{Jotoz?qqfm~tOg?4?Bc|>CzJ#?Ahf;U1p*UJ9SC}^AT<^o|cl7EyX1}-1`PRq# zUtY~{vfO4J^w%-IFb)itaG{S^wPWQ!$7_B*`pa;Y{neEkt{A3g)o|6GTh3+;SM(n+ z&S=}up2vnm+4*6c%Qp!3B}=n*+-%OMXv@Fo;=WC7{h`Wl9iPgCH9rxOP{}B?rQbX zgw=D?=8MY@0AHKsEBREulv@~kF*ohc-6f8c+WptUx#$;;@4Y@X5ir0-w-julk`M(n z5ZMsh<+n2)Cd!VV?KPYC{+IoJIV^}VS^9LGfXYr zA1S1Ke#hlGwt9KL?23#-qT7DC=`9RWy_()AGb~Q0qLxa+=$E5 zYzLGQ60gQS%9d<{o=lblDqnoV8f&`s_={~#wjRRz<`Wh$aw}F`8}D z$d=(|a}VgH(sC$UkF`JlFsBa7O+zs3TRj$vR)yj#eP(&V-eK+SVCEfP#a@NXj)_5- zBHk|Vo!#)B0q}MFHuS;!dGwgCt-|^wxd*qh2o_)#^7VA}2D)E!d zQUPyat`Fs7mxXGthb{#+=++#~vaQ+7)|eS)*RT+vGPA{tviW2B{Je*j&n(-R@l{is znCbCwq4pf$8JIfA73(4|$Q5R}MtQH9DPpKn`T~2gVhu@H7f=i%AG1DLJ5NvnWtQht z(OIREk%7|9Jj6$bw(Ko;9yUWdD}ow*>absR_jLEVWe%S{eXvYDkMv?Siyu6tRp>r2 zfAM^dB?=Dc_W#lLoncWW%ipKZIWuEcRK%=^fH@%;Fo7s$#T-x+6Br0$4uCnwH6kjQ z#hlZcvun=ls;g@byDI3Kn4b4n-7^EY?!EW@@b^C6b!uv=tE;Q4tE;Q4Qx60Wc5=;~ z+tqP!FI>|?f>w?k>>1COD;M3#b4=z>a^-;bt;wF96;5{Cbk$@u*D&fkmn_|`8`bl= z@$wdu_auHqUnAvZ^(n=IH7SLyP5CMB{nTsNgHF+gW1g6q5AcJ~(T8|f2M+QXE}!5;Ttr}U2S462gCLbGN)e~mTcyM_j5&89-3M4Omj&^w`%>DSf~taS=& zll*nOtxavXy!L^1qxlizZv5s)Yip$Z-GRLKzaB{Ysbm>H!5@`&6e2z(ePP;~!dk&N zcse6CFXx=vx4Lf0e%2#!7+N=-J5;o9q4urEn zOUb{tQ?stCR(folm0pVOk41HVI+CRNm~VEfxR(I_N(h?dxuj9FbC*Uf1D!M)bf4(8 z_5$%F+*~BDOc)SaBt*bOuBlX}r2+~NbQt_Jb=M1v<@t%fo<;;l49SYSEp2i}Y12bm zt+>Z8{^{};zw{9IFISFTKY9_#Z;s`Su_9>8{2_74Nt`W{MvJ91V+4tfzgp0IP2Lgv z)#7*=Q}3|-p4gNte_OAKS$^fUAO{&ivfmYhuc=WOR;-)k#Zl=pT0FfxQ2z?9CKgZa z_vFXVQ!RZ$pI<)FrOTfWgL{xn*-YFQ*j*;B@6sbYpJ535QQwku^eCFbTLW)2F2_UOA^GP$SQEC;MVadR-A&lh5t&(gzA5y+e2CvV#m@fDE}BpAW8M7gcc6A)AC245PTD>>T~oq~v}yYY7*|^}FtzGpw9vJu zx`Hj0ZLs^?1!E1`K@EvEqdLuETquXaSzbiWcyZA-78CfJ47W$8Oi97L>fN~QpYaZ< zzB_3@PHaf_lX#qc-Lu*lS`JXJb!`gYjXE6CP<%U0J5%(JelrtsogMJkisOSd4JV_4 zvs*e(2jh;vFGVDIRo@nQ?rlnFV92mf5j}&$;n{z@`w-Eo)(`LMS-*W8GiqdX+JC8y z2;|>TeDr^5!|><*gTV_bRgLSp_f|@)CLMx5bZpb217sL*@p{8XjT&CNq;53_3>q*n zGVQ+@Gs{EB)fxJ3A2XY^gFIX-+MO%lcxc{hhKrx3|yh&_-pTCc8)nMBGc@0(k# z(ul;|pB{s6Js(drwVO=(AIJb4sE%Kb7@94ZTg>mEhh2y_wXfC~HB+n{N-k6PN*KA}Q-Z1@%;BGj&3=OAfd^pI|C9`$RENU$TG^JYo2LoJp))F~Z!5-7@LpKN z^{`O@P1+jJ*|>D$VTX&@jZl+lu?Ry; ziEf&K0`~gmW~sA3W_Y?h9qqQkv%W=wsh2u1SfBagkTo4=YP$a z5*-uEpRz*FShf-2<0kV@4?P>yZtoi~DUt2k;4ysC!UeOL!ImVZwFvLkCG7N>Ly-yP zv@%JtmwxxE?Ax^HlF~cJ&YUv3&&UyHw52kQ407?{{@N5{)_?GqZj<_N{N=Ipw`g#` z@NnYq*4J(wLIn>wvWu3%ddEA<~fHg?f%8*^%SQ@>jN`IA|o zq&!Ret$y}?(8wG-Yxa?YB1hz4DLF@dce|g*FPbo6k$QhoY%Kgk)bE6yduuo$tQ_6Q zhLh!F!b~%fwNwKOX@y=^oj0Ze%UjVqAD{P}XG4<9^oTIkynX?@Qrqv_Y|JO3Qyg^i zgI`B{u+qUPw(VSptncI8dhU@G=7l;}&hJDgIW@EMzpwLoxF_DZGdnzgR_5$SRo$yh z>K~XLI%Gc7;DCHr%IT8vAK0@zWYa|8=U=j@il08sPMu=!z8?U4%BwzsC4FhccCoVm zIhhK5(owr)3ho5#%E$v%?scW(WUCvU7WJ|ok*(afPusiKyes{v*lR7IRM3*IH&}w@ zUrR2aHS%ZHnf!1{Rfp;aQRYlWw+0S1Zf9HTwxx4!z(F2lf|L}N5{45;dAbL4ujcOI zsQ-2D-Me!Uo2%8>9DeTY+jD`T61rBv*~HG+NNQv4$TjhoJf7}nmjzJF)KZY|GJVoq5D6$_3`#S z|0aza-Mjtq)`JtnMt&SMbYSG^(~$%5&ymB}b36O*4%ZH!N;X>flO_{1k9HoO&PbMb z@ifRG@WdJ+`XT;7yxVpn?6ua8@wL0vnc=}bBR&la2@FkndoFTYb+4p|OMe>|MMT8J zJpcAFdgQ1vxZmRS%4cjxeZS`vZL)(kA>IS}jw_2t{i#8oU1b1lCD&^MR zo^e$xEeJk%-{3=S^DpLr$bka}k!) zU0_NepQ@$6HrVK5kkdJU&AhN$6p+Oi*0Sp;Ha_l_*B-zf5MyUwBt6IT(QY?t!5B^Jv4lV*A4SD~KF*rP6seSa7mKw;JrFfB}do^cwCr7i>cBYnK z+YQB|*^W)&)IE4>t#5?De#Qx^BFS`NWj_QH;oltEJv)$%YTkB-oGQ?y>ZQG~+g!!Mo z%SgrS5CJuhs93d1MfM=Fd+?yhid8FDXcQ3~90{OD1^x?w^v}u_%`NSy=H`*MU-1W# zJwTv>XO)Vc_*Y~k{#8LwY1g-JyK*&Zl;f}M|H^Fpm-&nBU;Ih?K7HDkuU@^pp`ac1 z13ZjZrmxL;Pc{R4AF98eLwL(Yu@AxAHaJ0dGcnQ9}vcy{iv>?OD}e$7jKxcx*^$nTb&>cJ`!bipr7Kk^h)8T1> zJa004og!n#OvV#d@YDJ-$ccOz(4r$#)tZ?hZkUSP@a?QPtN8_oK#QZ;wmsWLsyL2z zZ=z!GH-7oR`Hd%znJ1HTL^04mwBO*>2zrhp(?hi;iAj1|LtduMN9J<)aN8jv@l)G~ zvy!J@Ury)mDsL_|eZbT?VrNUVaPQSn4rGx%hnkxxoQE@A5-?80JRChxEs&35oB1Vv zvHq&gDJh*-c{6A1OFE@~QU||!Wk&wDc>!+7^%wG(1v|P0d`Vi`ceL{8bWOND|K(1_ zr5%!!J1lj-j1UGlpJkhN?2wo8&YWRXo3twSiHYC|v462s#=e5~wK#jxHmy(LF6x!< z3XLK&BCXOWgO{TiHh_;G{N86&3h%E@`R?#S8+tPBMxe+^H%&nM+0i~i!?GL+359Y% zv_9q;qSh*v9y#$XkF2+9(+5LewENHBMY1(&0ADH29@Js%#L3iY^87*kZUsMSqWXzW zXzvHwK^kaqn84EO#{`)oulZzDkg4{Z`Dp&sco4h@nzSpE8d3qLHbSF8Q_nKN!YUj- z+-`6`w)Uq9@~}f)@b%>ksL2-h83U%y=3eQ~*g`EY3>UDTm!{iy)*Hr9W*nVbi~C>| z_7Z96v>wwz2jypr40}-$NThrjE(|)|xoKi&{wucZnSL8M`sUC1E98$H{PggtH$A#l z=vCc3vrpgF?R#|X7?j_|)ujZRz$)%RmEi6dULM%@8&A>op3JoJ#(PAhPIJqRMX5cq zW>JewzuCCqrLj-9?AWskB8A^W^~KM@M<`9z+-aN|H>y3p$y@&5<~HBP^T%g$$kxbz`;w*meCxUeRNyabR`sl2t5)SIxeFF9 zQkeOqHoeNSoY#LE-hAx^#+n=mi~0E_KNH=5SEJ0CSZr*+DIb1ZYegr>)rYq6>!KsisbM1^B>1U3@0 zRm@8?ak{jr^B_k&Y1WbPW&Fs5S|?tVa{jq^buF~m?yE2NV%@!jyt$#MAz6r`l&B$z z3|`SZ4(2mnz}INw4F=Rp&-e$!go#O2yqr^a+is_3tS4FIWznA(HR+lE)SG{;DG58P zKZoq3e=LkSqCxp`BW2dU?6AcSDJfCxIFhFd{$&yC&S18E&qsB*c?zVNs0Nv*7e&2# zEIyYGoZocfDD-s}f2G%lP00tHqX>`9q{t8}hTK`bxcTs*!|jHIvbmGC(7kIPR$lE< z`nTOv_?L>C-6r&nj?QGee@*igwib7ybAeZ~Q$qbS9>>t~OI9}-H(hHM&wbUF+j!Yk6E zE_6OoRgJVJm*PsQWK|eick@vA1PPF86l=n|p};?f4xQF+U3)TgUF*u#F27FPm(^T! zo8c5+$SjiE{SblufM_ zR93mZy0l_qamOL#%5}>!%SeHd6)&&jZVcvmEPijThmBJS zR8dA+9+W{u4?VP5$>v}G=I>dKPt245GJW!tY1(|X@YhzUSFe0BS5R}#i-?M&##E&b z{Dw84B`V-s>5xUGbPz8$N*XtzJiDunvfAH9Hn~~vP@NSk`lf`7s#}y}{J3n0notXW z%gxx(@D?ju^`6)G>Yd}Z7O9T!OJg+7S4vPdt+Z2qJT{QlpsKhS<#lw`6Nx_}l44tX zJiFb!*mkT(irU<7Sd7k!78C9BSJz{c%6Ts8_sd;%t4mM6n5f8@#(i8gO_r>!?XCKL zYuTnZ+rPf&*^sfjyP_EROSN71PMvXcin&$sy0p=8$<~_HbC#g(EZ$~+VR!_Yl*b2( zwc8R)paU{ii#rBI=zWCmSytDM>VISD@`?RsnLc_X8yC*%c=a13SViW7&OiRL zZd)cceBjtqVIx8#PF=k`cx5Hcb$zT~?IvvB2Jkm!YakM`UTMp=gO`eyKXeOpp#uE* z3@u{qfskMT%ObVk8cTLZNf>e<1b-R~bh*w!7^7luTwGMc+uf^{W(sKWQr+9PYqvi9 ztC3~9^{9P&)~o&NvgO&#am^D0LS{Gm?Xeayp=qsphy3a{Y;|H?d_cI1R&YosxQD9J zm~YZcLN3m9r!7zVRz(C`)+|gbXHM<`W;znM7qPPoCXAiNA8O3y6Ej9dMfWT2_O*1r zF@w}N`O1$Pcp`jA_^1)MBMM=@m-Ye>^5uCv>a|kro_Mg2 zjIHPY&cn{9p}qR_<&Sjca_coJ|Fv-{@~udY;2^b|snqIJBfb7=4WUIZ+k!yV7Jo_ zukr3@fPdFudqbZN9z2~H)uMl|ri_M$DnE@N~#9_`ug7Ena#s+U;;b$ zZ7*gXH2X|w%${yE^UxeK(%K_lTwuyD^bI9mMLRZ<9vK^yozx2QRyaA^mZG+5)U793 zpVu^{KK*>)bY^yd!&dY9?2x%U+FQA>>!F@w*L0A*ll=+CIL?~x_S_ka4&1jat+?xu&&>%_Un!uSr;==X9WwqcFW6j{@4*-Om5Uka$udxmETsP z#9zDl=ly@OiKE(V4o>RV;^9-0VLRlNJcUn(J4koWGkBxAVH9$}9v)Z|h zua+hA>+Cu7n>#-8cg*;z`}9f`Dh+QCJ7&^WR1B{c>D91rJe;*I?!N+?NR#l5ip(C)#&P(yW*oT&T;$Phtc?UM>gF; zV->13OZP(I79$YZy;tkl3T5x>oBG^o)V$G8fd}zJ;Cg7cSSZ#$;HKF|7TUXYO!;#6 z4S{{{_&4|esq0~ZTZJFTOXAr@4O_b%Wqo_K#+zsl{CnSNL~o*<0V??Q2i-BC>(BZi z7N8tu^&~u4OHrSKH#gQ>#gQk{Q(FrBdfF}ZDDd4_A8fl#_*Dn|KvmGDnk3r9GMM%f zo8cerGhgtWo{!V%7{Wa^_$Ni7hgs22n$OThG81}HJ|zX$w4+kkaBWcPEN#$PHk4!2 zLb3@&jinm+4O%YEtiQ4Tj`ny+tH5t(u|f0~zvol%w>wKXuI@TXL{6HUNjg*Ty1bwE znc@jDR!X~6BwBe+8QM2w*wB!Wp_+5|VMBW~?=g6A56CVad$5jpGtN!Pr9l=-E=r}8 zaD#&#?k?fh3n%PYUxw#E$Hhb-wS4#uwh*41>cU=hZgbLVtYUFr^*Xmz|V{K|l;X>LRs}#LI&t350mRvEuyUx=)|9J$z&yJ`%~zbAVS~8K^}X z+_48%s-dq*#O*-QoT}7SD``|aiE;%MD(jCxn={^&(;VD2B#eza$vt#-;oM0)Wj%cH zwrvsW5c5vff^qVjLe&|n#c)8JPuQ~7(qCm}#Y=`Yj-GhR$ERxjJf{qsM))-RDS;c< zxxO7LmN8$`ih~Abi>NW|j@Bt1T9z2DhD@LzRvD%tffE4r|I1|`ICzh3e{1hEMY23I;(c1Ixs* z_7JkC_N|BN@**_iL6llXe`PHxdA=+&n4GnEUUktF?}46qYYwlQ%pcCfA6D#r?LmHd ztA*8^ypUbsRoMkRKNPpl!QoWSTrBr{byobWY=5&txpJP#m1kRgj#-$Jx)O;sf!-vw zzep;lG3HFVBNkdSX|2dOXFLRoZLZM_QnxRfJax(9DN`12s9n>$R_$6fYO(yQ=gnQY zYTn#c8}LGDBfLu5%t;zYkCC=$ z(5{n@cDB*CS&eACRHXrAH3z&F6fu($ZnfzG5vqt+6E|e32B#|C64b2m5=3S^)!$w{ zsT}NCtw*J8E2eL_e4y*FN~KGbFW0)YqtF(*l`KXH7bi3H+;$VhYFAwB_0l{tC0J1V|Vs*pz^y1XURwvhDwL7Px} zsun(V&fM`~=1y?Y$Ym&swMh6& z@>xMBn!Gz+4Zea2&SwRt=k2tw#{=AOt9$V}D{NM3Ol{d?PbWU7>2z(fpb~OZ^iMIINC76 zLEr1cPo>(9d9h1Yn2z{~sC7XlXW=eVZAZB)miI?d2=4_efb+0BDAxV_^B=9}*3c^c zx`-WiT@W5SdQQx!rG`HnaxcERml;@zikRYdPZriB}I16t%Hj9jHBmzXf|wKC1SJDio^&PtteZP;6Ys5`F{n zSFp4oPtVg?Em1@(%(`6TPKWPYWj)#Gi4*mz6i}tgK6ty>^egm4uEX%FM48A8{x#yD z_Q$U%&5A6Bvy3Omd%lh)R0w&r@^Q}@#je+ zMtzMOK5F96`J4_;9xxt}c8j%KEnDD~S1Ot83!G=7^_PWP!4DMepj`tJ3M8(#qe# zi-fN9R?NtKr@D$bU!cq(FRFlmE>{C!7M(DMF=@3espo2i8>mMPT4j~(-GTBuCL!fMm{?9U%UrS2?N#%h1- z$HlsgV^qrFMqUXCqr?lqJ{Q79N!Tch+SLeg5{Ak`mEjYfHcI*7_=N|j4Joo$g zH$Gw>B`J=2K7Fgw7cs_p%9VObjX2ELNlG^JdhvaNl1Eqc6ZpP3{`bWGeI_$4vMQaA zYG0sh25}nTky#|BB2iPL+wN@jH8x(nprQVHkDk-GpGV7!?W#K!^k%>N_;6=lqFz0+ z3poa7USKZR|2^a(Dg|}SAhgj_jZy2ME(zsNDKLZ--}hk3vSqB!vSn%v?O53X z=zRlAHN3@a{La_!+^RvWo7=gi-B0+ms2kG?vxjKHj_6L%B`1vdzrKFtjCKyKS@XyB zCeymP)*b2}(evg_wJ-7~C+!M6bERm}bNLDe^$f%-NZ8Q9W_RL)Om7TZ;4>G&O5%+j zjz8)bw^6zxtD(0Nsti;jl_5B}9fyqeX{Z`HPg#imh-JmL0;7T@7B_cKtZWpKa&Q-V zZdcMX-QRP~64519{_xgE`cSh=&L{rl&xb*k5_)iw2f zr1)bhLDd|>!&SfF5hH>ldJP-a>rRX275uVmIck+^*2MhV9sg#{{39B)XwhJ4Ij?dR z+XQrJ#YTQ>$-K`;MxN)VjKx@y!5cOV=8rd|?orFTmoBqGYcg2;`BGgrp?4`(s2{`I=vEQL7F=;=r)1U)*nx@>pyWYBC#A4(vC+}V#nJv| zy`En?lIoM{r{^qCx^dUF3#YG9e_=JtRjXO0Y^$2*&!2Cq>#D9BTc=h|t*l*s@8w;n zRBWs9^T$rD>QTq5O7p@s+IQ}fWNxNsnW+;mbT{vYBBb}tF<)IZXZXZ)dY85rARoh|?i@7e2=AGNtv$-SKhkot5_9Ly9So;}u|i_u zRh0o)Q|awT>syt$*7I-ge7oDL5m61Ip+oI&6l{-zB`ZZ@qwj3hW?=W zW;lQrGL-LfDHrMYuGU0D+ah6mk;|cmQ>}Uz`3G7JM5$RuP736oA4%5N6<@Ncu3`eE zTVgONS+hr#J5#ULen`EZNJuRBB$CXawReM@!f*T9?U6 zwZxk)aVl0U$bN`^Mg3&F2iZB}Te+Q<&ZTD_@d@gdt{$WMY14v*8@KwkXx4B}w?;L_ zmM&g8q-*2y)5{h`(nQ}8Bl}dTUAqd)**w(0iff^!Vg8j}MH@HOzfGBh4YIXiwHK}k zB9rGV>mBA~Y9s%q&HXngEn2XVM`dbUr+EWYd}8Z*%&@I8j+J{49ooCVP&HqnA_cm) zXz1x_f{7FKucKsOH0V2g-v@UOlZ&QoUAScP_J%E+`S;$l0f#HShY#;vrB0nHmyY7+ z`27g|xz^Em6}31a6K0~So$jt4)qc=@tt0z+=Z>ElbNlH)hq@laT??1$+}5YmIM+gD z5oww=OMCTu-EO|+3gxfc!>2rmk$j))S&XQ6FZ^d01L}2qRJ1Bc$M-vAxI5=9=DB{G*AD^}dpJRaOx zh6ZQN!o}Q=;x}FN1)8IA@egH+t*YjDaOJ84yIXZ^->T-3Yba1k6-d1sH}-bCPHi$} zjvmS;8naOz9`eUEN0&Lnq6^(MWVi57IGs{S()uQSCRR`M!_}D>63evKffs1c*@e&8 zP4XLEp3!I2hA3`i|^(y)@T8)Ljh3&E27Q0kP ze{iK&&iVP~Z~QNo`?p^|Xza?EJjpqt!ebUK zo)kQ|*jx5!MWYaA_%-D=Gald7wd3+JA7YmmbGotJ-Uof8>;t?T;)o6&JoJ$t%wO@m zhVcU~UX+3Wva=K$|11{xuxI2AvDoBfd_w++cFArUQi5qDx zd+Re(pYFcA|3H_H{W{y|>0R+Vm|WOLYF%bmvDf{rXZE}o+k*|(ObV%B}ad@6f&NWN~jh_*<09 z%@~1H3;kUFUZ046V|<;{?eg`B$>w(&gp*54){3&!$LQ1(ra@DoTYXUXt{28ku7_fO zDMw9#C8wk#n`fu@;xAu3=Py{k7tdLNlvy#c(`UxS%w*4>@;5B+)5A~j#?+f9Z1%c! zvyaSOzkV)ghgf3t`JkQdon;XQwa$%yw9u!zSA1e(wJ4tq&CHk?OU?9L4KGfG|?pfPyTxqT7%>M1m^>NCTZ$S07?K>TB+p- z0V(XrvHP;+ABcUJ=04!3r{|Jy-hG?gZ(vy8UaNll#iIOvpC>1?so}$hGVeOgovSWP zSh(lN)_}lfb$l9?^jI3VeEYurL9Lr(Y-?d2!n%nagqVleGr!~sDSR#N&tFKbs$DoH zbRZghjRGF6ZsG;gw8|}>4*Dqm`sGXhDtQ)0PM>Mca^e2{3+mtIEQ5v(8$=I#F=1<` z{nJ zpod;vTZ*4OetuEA@SHzkO1y@yna^qwM~{xwS|1xib7UZFd!Dp8 zB90McNY6S)Y_~u3Jm#CXc;5lJE1JbVw=wKTRuHjf_1UqaQy`%K!r)T?ZH z`})mVbncPz?ChaSWl)s_95hi{yDhUk%heh~EFN?UK8!C$iz zLkb^uRCGjQwSyw%K{W=p4eZ<^IQhlSU!HVpAKd%z3p>BO@7J+w|Dc}x)r~Ei*6Yx$ z&XOG)R<$1I?lQUenw^_A`*iHupmR%MuT`Z6#w9=G{11QK*}>hUMXpD-J$IxdX5{J!VIr& zy_>d(?^PGCQw`%*wCpu*=GgPh^yEnFgSC9Mbv(6qkV8Sbdx#r7_LEoJPKks-6>+h9 zlCd?oooZl{>Gj=f3~V%LW|hh94xRdV;gp#nb`ghlt70iFYDev?l?JHM3 zzGKI&&*xd`OCQbis#GW%F)yrbm!9Yg&EYO;hq~Zrw@rSyl`rDl5SdiVw0D#9Ao@fO zyI_hv3XUls>3jCKPv?&Q&CTZ<#reC{i3)DgyU^gyo%;3O8q=e5nKBo5ZFunIJl}Kh zS;74Kobs^wRm;>HIBQg^E>WZlIGtn*wQ}j^%R=$)6}@^z-}eV|H}U;HbtP@Ss5gJ~ zp4pFHGsBs#<)iu<^!|V53rqYDZ<(=Q|La?3)zJsaVUsq&+0#{Rn8Kf`IrN0J{iu&2 zmX8|4{@1q0MmVpU*AMsDQ>&_Z`2xqn&B{$)khp2?!Nbjcn)o%WU8inN1ewmvOLEA^ z)akLYv%?2xD_^-zt-6hi7Qom>fPNPA`9IAKI0#-D<_3FMt#5_mrCU}B2zCvwJ7wmc zML!+5G~TO8?$-5u8~bVHay!h-nX_YakK!dJj~F#SY3AA48+g-Vg>yCS;!~|=T`_jB zb?R#Li{^$nJEsDpm>cTq$stGLI`L4owK_ZD;O>~1T`X(BJTWgw7CFG{Kj#JMB0Uf! zG%~|nu&EUZquS396!{VFvYHK|^?zS_#W zbD<(V>J1t-YEZo%MGAHH?jIS+D^>FLu2j*>i%lt20mXEyQ~^7X9qG$Eo9w=y7w|&J zxKhYBRE;Y3kW9XF#3W{tYIzsOMe0*qoRli#N}B zFmAbn!z?5lJGd4t(4=cqPwz&uT^h5JXxHk)Q8P3|WFIs7a9YWOD^?sluwwb4Bdwb> zY1OJ})vY1gWZ>vnx2 ztLMm%weLKwT%*!G{GdVLn`#*6!+Jq;7GrERKcZNnSS`}LG8u%VMUG9{Frs%@c<)gt zKYZ!eui*n?2J!cIFY$LNv0+iMLt-{)4WkD3j|}g&_0f%Af;LtzzisG+M>o#&96EeZ z^dRtzIjhSWal!*aJ~`Y^oKIuJgf%X4-@at?Y@-_f)jXL^)|^z+Nq&gcU!dJd?Vz@2 zm1zu_G8TNhVcy&3wMO$gw!tGoQe)pMB!3|=;I(yF?3!6)v4B0rYSCx5W+$+ko`RED{&u5UH7 zW`!Dk8_nNZds+80zgzD7!Jo5QyShfZ%o{dvShV3(@xnjnFLeKesk%2$x%~uRRzdD< zK30OYHaDqPBjnJ@ol_>RB)!SPo9KmbMpF^5tTjicQT5d}D@0LqTyw`5p}W z=1KX>J~IeODGfMnQz(UOj#UC6)0O`{(_0WEg#xxbZMtr z?)8J*D#!Q8x9VJ$EZ-hzx?{sibpnEG)$~?(H4X`BoUdu`-c7~$!31cZFn(mevM>$r zlNDrQZU6LnwR_H#obLC|nBBEg`k(wdugcfP#j)0Ej+7JPw{>`P-A`{qneKV2ptL)R zN8~~EYLpyD$QE0RiVW_wCgKQ`NO^2VRP8R0KJpc(3f3;0%OR&JkC#*Ah`PN$e`cfC z74B3kTdACCF<-sOv`LrPC37k6Q`^s=o;DhpVg66gxT0lau?+%rb|6z$j0xTKC6Iea zR;ajp!ZvU6`-#ib|kFarKip89L}n3OkO7NbYSgfcuVkh@wHFAp5HBFLE! zCIzOI_Isl76TEG~zBRY*L}|b`{M)lLnX_dZJFi+eRcY$pD36QdR74Pu73x@F5&yQr z@g2XUb<}^TyTB_w9R*w-c}O%kTMRehs&mZl1c6a`Uw8Q+MPdP~9Z)1~3W}h>bVRD{m1) zO>_Kllh_GsRW(oPrfHcnXVa>!2;Q_Q<<-WZ-aR{|+<$cScFw%!U&OO; z&BiNNCaoUXwqdjS^Yw?4^p1?(Y5KV)Suc&m`93?5a{nX@#? z&U#YJFxCW>P4DyLs6zRf8B<@dLX#$po64W*#z{v#%~SHIP0hOv+wSt}qlQGpP`~7x zCl#&pOk@{0V2_H^XVrZ{O3FNh{)(F)sKNY#8oP$O;;1fYBm3JtHC60?#)7X}$al*Q zLh`px^2hAqKveN-g}S;$`9OAu(@@@M>J(W3hbIk7tpz2moU z-8*ZZJR_ypN92*(8n_-K{NKZyXN`Xfue; zN3CyD;f3mj7`Kb?7&!b9v=gznr-EjJFWY z{vXq47UX;AWiaOCAG!Q{T`muG2G3BIYx(jNuAf0j?YpX6XOh;fBVFjwJ3LO=%R1TNJ?-!WWj`BWhiA9LLzJIb zS37*R9lo43V>|8eLpC_Of!v}}fDcBYygPmT!QQy&59;hhHT4KPmW^ zaN=LWqu40Hzl0P25*~+_&53^rCq5-SMCn3&S}tJV5(Is$FGSxmPSD>BMW0|I`VtV6b5RRf%y zOtgzwUL?suz`gA7D0Y`c*x`Y8c%1Tph1uc5?eGNUAscIl)3{6eA<6+Z2=Ga;S?@)E z5!w^&I*I;DIQ3V;qu3=OPYI{~N_d=t5TTt8^;g0}lr5sa6zh8{!u5q*t&Tc5TF%KY{9!c9t?r8rI%EtUkphZy$Q;UPR#F@jDs#wDweTPr~) zp_7zb8;na;F)kE8qH$R+_?K`R7YUDI?ZmhUxEL3LqhFomxJWpSi-ae1Nl%}~MZ!Zo z<+$K|Nj;0`ZwG6;h_!-G38(%_cob`^=yo{um*8l(qblSn@u|NO9#YjP;JJ8HEmg>^ zi=ZFH@(Vf=PWS{jDj{DazOa+VzX6waGECXQ8lqjPpSu8;`W9AA$lq#LX+BE)csw?_ z$%bz%XvdEa?}v8qCLV8XD2275AnhWN$zdiLY5T*6gzromWq$f(yt~P8-4Ojc4t!})v&fs5qP{n}%=3oAZlk`4k)~q@8 zYVpDAc7Axey;t{+y;44&JNDecu|x*`8lYlK+leK14;<2>gkQ;q9XG}$Yzk^0)Uw`` zlZW>5Vhx7ZO3$xPq{r4qUi!u$leRyK9T7G!0QE&b8Au1^T#RC+ zgbqr4lD))_Q%(q5DDZ`D5(Bw7%43T3h}ykaevO&gN4re#AFH#u$MN)IT`#gS z^c623LoYk=?%HSE8!t_35>BB_9zU1`ZsG(o{Y7%hA$CSkLAzPBMHQBzm11pW8O~KYoW7$m}pFp)dg9`VST0bxGis{XA(NtSm4JsOw++XOp$i{c;!!a z%#Kg?LgL4dfV}{mbo>u7CnWu4cyoYsR?ru7g79e!^GKaF|DpdO{3n5r_Zar@jW&Ga zG%I}*Tf@pL(SS?8gw}P~X~F*sv96DSE@v|Z1Kz|6FT@68T{!|HHb?j|(!WWt)FnU0 zg5Z%FWu!SVP2eY3N+^z2{DnftC4QKtI_bE;A7Mza6Hu6mv@$7kmVH@ZWzEN3`l7-}E;dsk-yfHuEO(py${sa6~(CxM9 z{JCW?!Zar~qlTOZbl>K;l~WP@0(=hEk3=zdiH=EWroyuUye7tFhp8^;mlN}0* zpUp)YA=wh5|3dWFiqB@*ZB;t@(6@u;8&>>JY50J5Hg6? zJPi}J*@EGR-$VLfrDK^R`X&ABtboH7fuAttSHY+BduY9v{z_O|x!y~Bn!gf19#=|f z{z|`x<}cx!u!Ej~dk8i^zPlYik<}M#2;p}!X13!eDu;z1N#p)b=qFC>g?z>fequ2$ zUxnOIQGnpe7MtAkcS3FgAMzO`~!B|l4R%l>*o->`QFz8CdN(5LxW!2CjuF!%u8Uc#0Ad^_Nts1K12AN$pX zN*2QBKI)=0d}Ww&N!Sf=q3;&*7xa~-%4#A10`PGv8ogkDtn}GULnY9W`!3?YnvipX zazpGJg}*EK?;zxv(AiPY7x=>7O8hY8qVOrCe@ymP;)k_)mxeFKOXA1lW;@vdNuTyz zgircBUD#X65AEkA{&Ln=?B^wZbvyoYnuT9Z*)V^}R(QjeR^83u zcUEXyidp{FuB29qU$iJ*yMm^aQSg0oA;li;I{%=}AG~_+pnc2GYU5Tp)vAm8?l_v< zIjGYRmz4Bghwl)N=`5h_oww>_^RT&Lb!urjzMU5G_rqj3DB=jn!hoFP*aETs!s9et z5&ODMR=5N0>qHLCTY>K_;rIpZ!{vVF9pu>saLlj5a$h9(;pDeS{19cRkbg($VWimq z*AjH1Sh(2#V>W0f#eON!3NI@5OW)%!L$VvzeY#1T0e_kDR>=#v#BYgqCHpKOI!z`L;)%PaI3`I!g-Zy-48w6w7d`**l4mkap&fNx~i%Rdm~RTy+O zk=@NcmWTg?xYyzli7)9Px|% z`KetCq^ouk^d)|rrHB}>Wq=P7a**&4{zZ&C=;#xL+;$533Gi5GuO@ONX}+*svR!4n zQpOH{YllbS#Xvhg9_W<#7?%N<`8IrGWjj0}tY#YA@S7bT(g^-0@I@{k#e>*>YrE&g zIxgW4?eHij<6Htx@gOTc)<+>{iGRTg$GG=^=72uU-&#U$h%Ab6sh*}+hMmACJ;WX{ zLKFB>-wIgaWVhGjRuJ;DVc#e}ThxoE-0UA1Id@9icGlPnBx|?IVB6YsX(iIQD%dToBt@!+b?B4H~1Af)`q{(zSO%Y)>)yru7Df!TH%m)H#foW_xQ_LS*5xiAA4Fs z2XwlwCiAq-YO(H(i!?dP&h9SY&OZf08fihvaK%bJ-7)N05*cW)j9V zE-Xz>LB`U+Cpe93qB6oNrywD3317y%rTolKa7Ih>U%=tVg!0X@U45jOZ-{JzP8@EE zk$r^UsYZx-wMD=aEX8P^2>4JTR|yZZg^Re<8kC@~@4c zcp=*^=tnup*vKrTPa|*J3J1ROr`TW3f?kZ!;jajMqBBREYNL~ek9|uMGwrW{kGFP7 zFQk2mV$-A@G{2*~Z5teP#@Xn@9?>{T{H4koVW*@$Ite)0Bh1gfc}0H(+*rm6r*T}N zj6}NxA0Xr@?N=h=(`BvvG#32q5%P&*&USu~OAR^#4t@&Q`DrZpAvoqoEvZ)`7h2fI zy;eH4g?$uoV?NL!IP}d&j!R2aoXnI48uq<34AYN1=!mfDOO}uLvG>Ym>;m`!p+_57cFSwPqj?YA zDDZ!_!kq;E2FN?w*w89(qq0G}CHNC>*BiS7ep={DQhxjnbjXJG*K4Am)5T{I8^K=Q zNU;%oKM(bTiiz(Bi_gWO*B`}aj0nDW#%H`81^mwR*>V!?FELO&T#k2$rMR#OqJ443 zCEE{iHHzQMSPb=B#$q-w?5;sq@=LK!!iWB`%$D1L_rV^cys-h`=OkQpw%i1q^k;~W zEA$2U*0W*(uO{{?a?OomV^|m177=Se9*8US2Kh&BqR^wgoI%F>CSvcZZ63enD_-|1 z_UZ#Gk+N|1oHL7d7{#AVLY}no(Wx&_8NWrUY9X9&p`&zZS*yYMKP@Nig<5X#0P#A@Ob62 zh!6ZPa}DowV+`-{($pcA=89P71J9t%WV(b#yb(`vg|1JMeO;-Jn15M`)=M? z&!n-Zu%201&zR+Vvtp0`T#hy76`idTj}&t=(ykt#VTDEP7!|bWvn2s`{Rd~t@;)?T zt45`n_}y&CsJDT1>5Zh%YLU+<`4zGQzgUmrTgrC)@Zq3{Mbr@ZzQ}c;*bznyF%bBA zN+&D4y_okBpJK}rKT4e|Vg(W(>!uYyO3g0%CGoS{@k3aoh=E9aIs=yULlCnvqFrfE zDQCi4wyXRu_>nOd;z#oD+ruFG+gjHd#g;`?2>iaama5hjpLOv)bX}wO_T2PBL{BfI zqGjM=RnS|bK7^anNVL;Jy-aX%hA_bJ3hgWw@THczmM_4!)}&L7tdID;m@C2#L5pe5 zs`G>#Vj<5Vs&Xoa(9z-fIqDJvP;1>J6Vcns&nfJ5gAj*&;skfk=| zpcpp+4o>0I-Q-slvWxg+e3r&H>K6;X32t(>!`+oe1P8qqhUGSXf0)A~Z2`$!+5%r> z)6)2hx%Y!y3o!?UUdTD}xf!-Jbge}-5+H1*67^21eI4eFoK;Cane(;CjPJpj< zx;JZ&em({~zp)D7juNijR{YR@8{Rb21k736I?_d-BIpd}O*2o2owuC3ppL+s$Qvv_p zKPb+Ftm`IxYy9rJwSex}n5GIFdsFl)UM(zatP{pBNX)~R63*5L8}|M03qqcy#P6lP z{Kwn|v@h{#o=JRL4w%fHpm{_3h1iD7$&oQXFr zEoxaC?_wN%M886?ict(m+VEDGpGyQ?saIqd@tOFMxi?mM5&u$NA?%c}6GC3X&yey8 zVJ(E6Xo9t6l(1W3yx|{o6lV+K{cB-gX}m$7Bm+K#o{QML)blXqsff)>eNI5Tq|ewZ zc72zIFZ>UQAEKNV{78JVTM|E{j#1!?wNdaR<}2Ejxn5#z67wZM@?*`tvA)v=dy-rH zzBT+pyrG8A&@}KXzBgrpJn=o|3$@=7aDiud4mj|rf6mne{uKQFw#fy2{b9wQ&7y!W z-s=_Zf0g(-VFv*hzJ-v-uL3_zStR5k?JUVd+SxECDG%w3(D+FF5M{WKhr}m&NPJr^ zkHl|k$4|tqSUP(EzFt_IJrKSLk(9AwJTZ&)mqOn6to$Dr_(8DW55@R@ko;$t@+SM+ z$&?*-;89iuI$BoWFMr3v#P2}QaL%v?-+uwzU74oChafq!Vxql@s14s%*yEZ6XK~tT zAs1)xhX)G5cV`J#&kHz>qbAmshT?Mt{N5~ne@Ei!;R0R^aFh7`pH{jf1iT<$lfnM4 z*HZ<&8)`+TxBu&PKeGSU`FsX^$oafh|H2vpE_3fD0#5VUq^#AWMSlvSzjaKjZ1`-I zvXkYp;-4^5E`gZ;Y*qDZqFt|;e>kEf!aOziI@{>s`I4?91%?D&bu zNzH1d-_W?gPCv1hlo#<+%JhdFKLPX|?EEL%@e^uaNt2H_TOoejF<+7MivDGgldzk_ zmz&5%q;Daubo^bix3@xh%v#yon_+KnMM#b`{7g=E{ME_}7GuZ1X~$nZuy#89CU*Sg z${)UfRMap+sKdH|`KkWA29kD6ovi+m~bjB_F zPdRPr`@e#3rTig$FYWbu{irw#?Su#9k?#Yz)c^JR0>PiO@1$Q6f31E@@F(oEagrT> ztsX1%QR35CsKifD#)>m2iBJ9m(MK+5y|Om?2BXkNfe(EgCG-*a`Y9vP5%_FX&Fh3u zIlx$NNFOEsN+nk4<8=7NpT#~`;;*cG-$q}bY9f7<_=(6dCVeFOjf@NJ^b_m+V#gmM z^ikp`fIjJ?F>rdu}Q85xJ!_9+0m1J=Sy8$wcyn zJn+q0En3JIc8Ps8QVzp3E4+s#8GK;;*k&<)5`VomMvUJ$z~{j3$Xpt6gB&|2Z(NY1I>l2;LN&K~j;=)eK{W{qbiN97~D(ng2_crab z;bZ*niX3sme<b0<7rSiAO_uok?f7dAg;-4+zLCa5;;+@?#dt{kc6R&(x9P_uz;X5uIQ$7Ar#wP$M)5Uz7O|dnkZ`?$ zpfd^n*L$Jg5`V2Buh4Iqi$MA<@z?5cLcf7;Y%2Ck3$1dyA@)naHi_XC=O`B6F4{KFv3Yzt&LD#*d-2m~Rq4BR^z^Bz^+)o6gh)eUaNi z_>iY9w*xO7HZ|t5(@Q{of<5Cs)zl zy-V4Yx+pTHMW~BQXtS6o{oJ=|6Ph(+h2J}}Osu+}53?k#S(7?x$(DL`*qz$Gmp0N` z*amL~QQI;H7w@#Nsj4q@%tu*j8ISK*@Hj(XA*=G#cNVW>_XPNC9;YV?S&3K%i`QBU zIN|RU_|SEM-%IKw@OKIPw-T=P7I06%)8z@Vc(hLRUGNUp6@mX=;+lLBFPz z&TavB2Axa-zq5p^@Hr))2E0}WnG4?){7au92>9c5Z@|fSMZdJFHhleMdVCe_gAVYu zhw1Uz3js%eb&BWV9UMtVc_!c!f!|#4^V|wwBjEXYoC&3?fqzrNaTlHFJMlQAL^ADZj+oE!Omhc?P5wWl%PgP3FXV~4bKur?M+}M89_pkIDeKp3i_Kj=&@DxEMUvY0 z1P=t71rj4!i{GGQ@?IHU`Epi=b4zl3yn2?G!4~H#ugI<@u_GtH;WzM94E51Y-n4dT zis53Jtcj(zSf6t1R?6wq-#4ic`X%Ncez(~EJG0O)G5>(S#D;HbA@D1L9_Sce z3HWRtZtNoP|B`V1lYmzM{l5ji*js`AJOM8TxFYby-U{^NEhiEC7q$>`&M9jfLBMp2 z6v~Hdud%E<%gI9roG~R|9)jvdIn_7nNwXm-2iMfBN$NMqRlm zH22Ut-Ap;Nlpp+dp9K+QtBRs@W5%ir%>7jt^L=$ek{W4#rWQ2M21(Gg z#*}R|v)X8)cqsS^n8zycH&?InSFHSuu_!#2_taVD#Gg-Qw|QwcnonT2lh}TGM}qr< z9L80gJs}omq_Zb{&Ig_c2|1Sn0_A1JaLS+m$GaX_KjOg9O!UuQqgTjxW(xk`G3irZ zTfHKl)BfZ~j`S?$39E&B4`FN`+k?AoPgpYJYBseNic$?#x2e}OUGvj|wImHbzOL(q z^-6jpeYpO{ki}5XFvzgju)}cHz>WEgC5&~9fyM#GImRU81Cwg1V;XAOW;$tlV&a+H zGBwK7J=4%k(=sj2l$7asrYo5qW-gk!ZRY6AJ2F4Zk|j%vEQ7L4$g)1m=`7c>X3JVB zYqzZPv!2cRB3ton4YT#jHZI$yY!|ZqojqIjTG^XqAD(?>_C48OXU0yu5Gzq<@)MS+`-Gi&mq`hkVCw~dWQoJ7aShs&XK!% z?#{WBa$m`lB~M76eR;0sEt}3|e3P$4zTkZE`A+Bi z;FQ~`p;Kq4FsCU_3!Q#;df>$K=gnU;f1~{E^LNi5oqvA*mH&^uGl8$7I{W|3IX598 zAqioToe0Px5VDg1B7`LDVGDa$LUsrVhTy{MYmriFEv1&aP^xIHMHIoch>8#?ilQMH zF`z~v5$?T&%e^;Y5jW=loh2k#3%u{&zV+?vy`SHlGc#w-dCs$)WoFK_d#>I7b`|Z8 zxBIGnO#3nIbK2kD{=xPK+kev`zQdgzc6K<@F|6aPj_W#Z@96Fn*eR*g+D_X$IXidh zJh}6&ogeP}ahJd@AILD+_{$}so!LD$D$zx?`j z*Kfc6;Pu{a?Ybp(%j@=Vwulda&1Xy=r>5?w#0sW$zumKkj|8 zPrp9teb)8ad!z4-i8rph@mSvueN+1u_ubI9s$aW)%ljSa-?o2R{}uf=_dnF%8SWe2 zHoRwe>40_vk_HqHcy7Sn0Y@T~h@KJSB9=tl7x7%gdlAma(8wW?>mrXwiKwusF;T@) z_eULy4v8KTofEw_dV91xrbA3h%(R%Cm^CqbW8222$37l=Jg#Tl{J0Hq2L_6PLk1QP zd~D!>_`rYoZyO&L-!DEfenxy@{POtK@$2HZ#~+M8n-G}LE}?hA6A3#K-b?s6;liK} zgQg8yKj_Hd@WFY!-+yFC(2%epQA3i3OdGOp$fhBChg1x4-8A&3f}8f<Fv2z>Y{bwJsUr$U+%sbP2v<^%r1YdEN%ti^o%CLkE7_LZ zAvq;^TJl}VJCcv2h?Jozvr-;U`7FgfvhB!;Bj=C2Z{&L;?W4j+EgW_KsK-Yg9OWH- zpOusQ>#@sXJ;MnG4Q^%H!ePQgeu@}d688>L$jBy*r?Hspv+J$d`&J(CYi z{&=!|a{c6sQ<_g{JEhx{@F|0)q)eGSW$u)PQ*NEIa?08%8>VcU^1_r|Q}$1(oKiEz zJ>{!3-?Y%QE@?NW#ib>trKZhF%SkIvyDRP9vemvDawSMZwX@jQSI&I~& zwbM3C+cfQkX}hNFpH?}oW}182SJQo`hfeP@{l@8W(-WtsPM3T9Oq;P_M&XR*Ggi-7H)G?Br)PXN zqjtvmnPO(p%nmbq&WxHlbY}6)yJp@y^TC;q&)hci)tPV2teE-P%-WgfXNg%svpUS` zIV)<`&{<<m6 zcFF7&v)9aCKl_Q<&&}RB`|a6>W*?jFntdVNmL8JcDZNK}zx0^&A?Zo!<5(CkJv}SE zAiX60&h%C3Ytq-JKau`i`p)#X(+{N|OLwMw(=W_X=J?HNJtu5Vzd7-9lIBdDlRoFc zIUDCZJ?Divug-aEPQ{#$=hV!pol`&O;#}XkL37*A?J~FL-0-<^bBE4NnVULy*4zbi z7tXzZ?!$ARnETw^opbljeQ)lOxyRiGjF&QYX6(&4m{FDC%s9J1SrE9O-GUwqA{Go;Fls^Cf~*B43sx*xv*7*(k1cp+ z!Hxxc7aUwrwZOUHY^IVKnAt9~M`lFkkj!zJ>6v+%C7CNS*JQ5Gd?NF?%$=F;id`?o% z#GLe;yquDp6*+5i*5^Et^IXo(oVRlh-%?r)zke8BIoVO-#Q{H=d_4y({G`~y!jrno;iTSDdv+|ec zKb-$ozB~W?La~rWcwv~)ap*I ze)NM>n?F|%<-VmESCv5Cr!wP$_&h5vl^*IMD{fOdsK2%1K1x5Hqczj}a{NOp-b@*$ zdaSs=5-0{(@c^Z@(7%DKmm8?`6cem?3ng7Fv*JNYnt0!ehbV#a1}ol@cw|aZVM$n4 zMoC6kX3>&6it}^xO2S4K73CIWhebt1Mo%tUP*hUHl4JSH7Mq6$nTG~7o((fkPs=V| znqO2H78xED5fL33F}O(v{mmrirD6F?!!p83iZimZ7iSbN3M(aA|f{*s{W`?BcMJyzH>yOENMEtTX+>8VHFBkH{-2 zSu$wAfZJ}nEj+_W6<$=FJD|YKW9fi#qempCPD$=hN{cj;P9;St;>EKPlp~AJIFx`e zC6i-IlslAS9^cO8)|-BIB*%)_D^Rl8i{de}NM7!q%&`Ta1dQiQ7FR4o&6=hjbXlrF z-+OJ?Wmiulr(#|+%O}@DN{d7l^%5f}F_P`ze?US1%W`Q-TNrsQ&{A^DCnud!vrL`(63Wx5AIG^&$|_`E=T8{? zDKttiCSF1wIzNZQ?+ntJdzW9+kMrNr5{M59Vr&}1I4%_b(pqVQhq{hC-tC!<>&TO_omr2dE0w&S?-+Gw<((UtDeJ{N zT_3zoU*2);Po)M>-AG7`=84u=-j5r|s(J}jd@ygz+{79KH!H(nVj>kvqB1E6Zxq!V z!_!0KP>NKZMw!SA`DCh^##nwDv$HdJ@@5vZgz0?0WUev~KbgTBx~q6X>2>BroqWS& zEzb}>qCBNM!TUo}`8i&)UO9u`d`P*6#b-ZL>R6}ZY2_TVTj!1ER=f&Nek;FH9^+Yy z9o*S=lygV=bCzrM!<#;@`YW4Q|1CfbR9mo)Ww3HYsa8H=-t1H57?!GU$vjw zU-=^+d>X*OI+8ccqZwYus&TyY7Oy6#gVe!{MQ>t};G5N9d^$XlcR`cXWHm({sgC07 zrDN2wj8w;~spZJx=1Zh7cjGx;|4cJ&T*IcwwG$+L=g@maeS>fP!} z_2=p;^%v@D-YLIF{gryJ`fGKK`Wtnv{=Gk*;9jTxUcI09(H>MEQrD}0P&cT5f`F4)hBq9e3Sa5x>8}|+tg>(=hWxb7g$T^CH1e2yI)p! zsIRbG@N4Q$^>uX@>pGOGZ>W3Jzo~n9#^Nn?pZd1?4ogJ6%lGEWloz;fe1KicR1v$%)2CsL^%R*xua)Q@;>>=U(0{gmgX zHt=kRhiCEEaToJR<+t1sd4QFQK2wjX$N1=GwOXTo&RoC=)y{%mPW7Z(tDaI_>S@)j zdQ`7k$1K4a^{jeMJ+FSjdi!6hU#VZK->BcJ7x`wTB2*!S6gJ@_d_^9U zZ!7zia^*d~Npb)u`hjwgw+Hm^EmbOqn19XVIgy39o<%s!0;Nz4#Ub5-gVNpmGTh&- zxUAci7-;+Ntc@hfq!^0o4f__bK099K?=--xy1x8gqWJF!muUfeGp5D$un#Cq`uu|fP% zJS-j&8^xpIG4Utyxbm9#vv@-MMQma&+aaD5o5fS&X|Y8-Besfd;#p>go)<5O7sX5B zuVTA+S?mz6h*!mHVyAdr>=L_0sdz)|5q}eV#hc_qon;rlrCU2K_$mQ}sYAk-w2^%+JA^D-Kl!xUJ`H}os zej=;nr}8s-R378&dNuNMd0d{5cIl8#c~aKOQ_Mu3mTu{hURlT2AkOeP#&hyKA5Og> zzm#9eujM!LTX|7xd^1hu>rawdOCOuBtr_=){JBpWU<y3MDgsIX{hi>!ReSxP5e-}BEXEGo$^$j;C38JV$oafVM)c0oyoPg-7fNrvyZ zjKvGGGQ^C0F)`m~N`CI*3^_3`Urt<_?~_rmBrn6ZfK)!Y#&ucxbeQfvGx)xT;CAOKoM7W0$fsbH9|NWfLA0 z(`=Pw`wlm%>zil>Bg`Pl43fM!qP3mF==6e)<_BFH=oOV`NGiD^FrpmZUawBw}a~ zs^mw@e=uZ#3wgAqoAa@S)hKP zS!Q0oamXy$xXkFl=m-6co{Ju{C52}e+A`SqOxE{(#v0p2`qtNoNBJ5%QT_(udOp4r z4c@e9&}Bn$b=$!SB>5&$os1G&9u=~s>6;QZ&4*vATl0)d(PqQVUSqQiGxQy9WaXP- z<~Y147uGInmSKhgBN`PxAhR)UlpJaK!N`b2D9E5I>YHT*&62G$n8ek4sJ_W&8QDhA zJeiK7Y5dKzFGZUrTP0_kp>ML8W3~|ljBG4BAh$7Y(h+6)^~k8mz>!VNDloUnPQa+f zs{-;GZ!{(zekuOG%5%~)P#x!Oeu&^;6 zIJOBTfx5G4aDViD^=>ttRy_zD*W^@SL6aTdaV9$ojKDUIf^7wCd{fQq3(f0On_LoD z*ks2y)x5sYWM^T zd?%Y_7n@~IZcRS3;AG zX!%p~#E8Z#LYg>MGo|j!@u*fxLygV2=~~T1mSZ(fm|oS02RHguE1{{RR>H>ILYg>I z^W;dw3e2kv8lobMot8~qsc|Hvi3>HaHGQXft>rnb6HPL;oThOixY1)8`yovnrg5NU zQ%`B;WqL^SY*YVeoo%d}zwQ;yqo!9huW9NNt+S2S1X|wDJYl*%BOZF0<1PN0?OF&qa-8ZuM=j(T3fSB4VM}ReHQ6NG%GTTH(I#p#1W!!nWWzs z*tAl?-?=={y2i*R&^l@CG&iQNjHr=eOoTP|wZ^tF)|fWN8q>yDW7-&NOdDf0sWB1O znA;k=#+YN)h?q!g&cPfEvTu#uttL4p(z-6v8mmWIa}1Hz9D~(2i;1%6in8)E$Dv*hnoDY-hUMwconv00F<_co1If7V= z-q>W{>4xL?z0C}!8_wDHHY4z#-XJ;u+ZtlNGtGo|n8D)wLcQa*l!?&7EdT7=Gnscp z<@M5260I4A$P|&HzHzE%=}|5YmK$6EY`HL$YgV-jnLGK>K3}8s!ig z8$b-t@2HMi%d54jnFFJoC###s{aV9{1I09 z=FA}Ht@@9!${%5sKf)@1gjN3$R{cj<<(v8(nQZDap;doVpV_zSZ|XDqR{5qrvv1Yk zoRMVTD&N#^_O0?wy=LDk-_&dNt@@iYnUTrnOeUdKe^bxdx9V@|Ir~=qO+9Dds=uk{ z>|6CW^_+dH{-&O@Z`I$_^T=dV&k3#in|jT@Ro@h=ycDaxrk-;?fhhoeEaHh-6CR4bt5#2BQ%POh%v=TXql@?4rXPYPq5M_ zSo@}WalK{6rW!`X#9P-}5V|daZQk^k+n@dEmqt!D{RHoC=x5YL*~Nt%Gs{ys zr$4`BQ-UT;oEo%zn4;djQ%|pMbCHwsp4kywB3kXOK_2 z&q|-oKHGdB_I=#T1B;5)oN|4`&(^j^;oM-t)6LB(W(q^RFLFBF)9L9>?{#u_4(Z&sbEnSTI`{4z-Z`!F^3IQSeyg*qOY<(hyKL-I+BL50 zjIIZ|dc#Cm>#&|-@nLhrO2U?h-52&?*fU`-guNYhAnbTp?e&4zhh86Z{j}?Ezkb8@ zJFnlHc8%o!x7C`1J_yF{H$kjrUjMJc)5Gr?5Hg_cfFT2B4OlVY!HD@0DC#E(wFg7$cK6YAcN$m326|wimZjL<=dp52^ z+%s|e;||7E##O~#9B3Q3eBi?a_Y6ET@UwVZe7E?R__yMZC-^4hB@`yyH^_HT??D>} zl@6*LR5hq(kaO^u!4n7HI{4widj=mHa^sLuyjk(wkgslPchmBlR@`)cXgl7ec<$z& zH;=k`7jIKc8+Q9J_wbP6tA}q+?2UkXlH4=7A1&3WhBtM?KH@P+?Bqc5-J!NIe=9B{|XGeAzIc#Lk$TcHh z7Q&yGSUCEdF&)Mfj9EMO&at13Jw9&RxE%bNs~A4ygsa z0ii!TJd@}D8n!JpKc4ivo)sOZX&%-cII29Txs@0B>c&gj`#e?EQhAdvZ5-kW!D?1` zt<&}^Uup+gdH-%TUdvV!v|p%$wH$Sb_Nh8tt5-*B&$BYoeszlWl$xf!&Duie)R({x zZJ+vzR;RwIm8q|h_I2Kn6KbFmKuS9nAHeoz?W{6S^N`nRo>BZ6lsu=MQC`rz%5K)` zKE!^tc8v7L)J@uHb*FZYCmKgV>rAbde7)p*ntZ)@lr+swno|7CA)ab zlsDnTan?qCPaOx+w0G61)M~Tlgd29a;ZXmoIgr3i&Tdj#apnwX>Nr!+nRlr2OpSVYt3t*`w`)^P!4Uo6I^qeZKz?!v%NNt3&iWR?qsr?CV?NDCT?oxJX|Dn90{gJ%xfO{_}`#AQt_Mgf- z+MVS6EKgbn!_ni4U3-jjN|ah{1>Ai>xj>pP3BO|h8?OCU>8%RwKjHY#;CK!k|5)vX z9`@1JtNl4XKzmV*HY9K-a^8R*6(9*abT2|0>yXA))?WD!b&3*Z#AO@c$L~ z{|fwn1^&OHzO3y;26gbh4lO&aR*~;ftxm5qn&6M*TJv0MOX^<3^Qo;k`Vx73L>?cJ z$4BJxk&!BxRDq;AMXDfDy-TW-q;g!+fp+ldkn%eEZra%~c;kRKC*X}6-3^5=C*j3m z>UJ2-`ha>>QZHS@9O`JE_#ev?{b?N2>vDPSC!yKPQ@egpsZ$)Nl|xS`7E=pNN3ix< zoq8m<4at=uxyO*)8%VAcstzhIbN*HBE#)D$A zDe9p7ODx)k1Uhp40KzeZ<3JjcXa)tf=!%<^m83jP3KwTwl;Xs*)!`eYC8toMminRXcj6PS zBiEzQqw2A%q`8)QMIpVr;Nc_6qKkFP@{4D&)h$SFE|MDyUyG4iFw$y{w1z{8o@XA? z3PxH%NGlMV%f#k<(5=_8xzURA;zew(6@19U=7Qj79yZqsn`?&6MPPG5@TaBz5-&V@ z2AgYx%?-ikg5cLeY;H8V8HjG)tPZ(Yhi;atDHlEPF%pT*!{(Y}b3X7i0zLf@87+h( zAN-42oon-g|C$z2#SgTg{d!T`Lo5V+-Hr9CNU>gz<8iO7W6hDh9cw*>{7)*SSkW8! zlQ&t-aG!Pn`5!|5pBPqX+Jg^iUE~`~Iy9Cvy8qEj3cgJ9Km1-BD<$QdN*Gj)Lf3a| z_Zhm6-s1~)W7Te~+J#l0)~y<^N-qFE_$n6vIyj2g)2XPTzIA9!l~zqI)zDa{y+e8L zqjM+Fx6jeBy|mxewA+Ua+Z>DUo1$f*Pwz0&sK#g2;lIA54IV&?8gI1nM@fBvR=$>$ z8%cS#p_h!agO3? zDpWzOuY*Uu=pFXKBll-N8YIAlA++=<^ol0Jg(-O2tCw~46fLYitzD_1-|2*^I&}X_ zq%#2MT9jZ&%MK6hmb4s(7VRaau5TZbQr9;-dZBC4`=oS{@=wUM+(`L1QkIkQkR^S` zcTzq^%JXLN1-;48ORSMKlp`}A}g zE%S#TNB;0RHd5O#N6>V>pfT=`_o&Bv)Z;xGMy{odTwRP@_tEb^!pL>XvtA8dAZ5UgD3Jbc6iOo>t(L~ki1@^54njEzz$NqO8c~vl3u6Z zV&lk3j+`Q09Y;baM4#brlH8%%E}L}dg;k0(UW7awZYvoT*)J&c!C)xE~{ur`dhG)K`Zc$HRnA0vi$ z^sy5;>0>8JAMG^$Mejqq3~E2bD_zS>$+e~Wzcrr!*Lc^TO8sZgEB?gce>R8ze!lkm zXJY^Vk6yhW|6@sUZ65Z=n#!Ep{QK>XasKdXvx8TkKm6a5LZ2aF?(loJm9+ilJm{6@ zFn_G6t~NHf(roI##>Zb>Z+@by=^ehS^Xu?>g|?JSLF{f z*LC%>euxxi>+!>nNB?VgN`E}5ug=qJmGFNpotgUDEaF<*hHD#RUR!JQ!{v4P{kJRa z{ofkd{#4t4_oop4zNg;wh(0%a^`{She0}>X_XvM{^j^!e3|D{J;c6-VHGRtO?+;zQ zO}l!EYipT)eA52c$f5Bmxql>)tLe|xC35u?KYXw5>SbO%#kFbDwLQ`Hf2+;>@mbeD z|H+1{>(h^qD-C`5Yw1~Ex%IrZp8ogyn17!;u~*lDtEc#9jdOo^AN#{Sar3Wk`~H12 z@cS+7>RNa86hCBZ`1iAL|F_!5|B2S*E1HqE%Y z9{lsYk7@H)r{u?~i$7MnuB82@4Vc^iDG6Vj&0gEs;M!7Mxh4AHdZbtO68~=H{7>o2 zkJYYzqU*nQU;QV3{lu^T{+roX?+gBs*v|eA&i##WFL;Y{W#sujsAvBoZ~6LZ!_-!UZCIb7Jz-}MuC!KT2`OKt zOm!5P4012J)kUBPECF>~TMy2Fv)~*!55CZbi9qc$(E1ztqBUp(+5*;2 z5R@yrfUY16To1ZwwW2%d0d4?2HK*tWdXs-2^0|?)FJV8z{)DVIBqBjHfPOI$B!I!- zCU7$t4n_cYDyW-)pJKWeAr=uX21Q^65?u*afnQSYufVUtZ@_QC@4y4laX}j<6%eAG zlC8B`NnK<+%_%z)??k*aVGk`rLa&TQ>ap5qGLGZ%U=SEgTIiBVgyX$2D zUqF}(@`)F6u84C>2yY==#_`+0?O-KX1y+N5NxKHD1rM;lp7ehp{RYB65iS;FTj<3;dS@G^J>yarwe zyTO}aA9x463(7z_cprQKJ_LusN8l6iDLgw0s=?>r1aN?p;1qQ_4LsmHI^0!>W4#kr zqf-)igL|;{sZz%N`>Y?*nlI(O@jc=4;1g9$_tT0XI0W9ksQhtPYfZfYMJ>@IK*!S zGvEjOL31!2tOoahd%+s87Tl+~(LA@T0-tg1P52NeKE#O+apFUq_z&G@IPn=y{Dkf! zocIVQe!+=f(0zduU*N*`jr?W zUXbf;clpflsrOscd~(427Cl?cXmM|lUvO&3kG-oQK{m(%c_1GwR6^u_}m(NZVkS(2A^4jZ>+(e)!@r&@EtYyjv9PN z4ZfoW-%*3_sKIyC;4f-um4mcZN{F^f%>|1<5m=%h!(v=mj0=l#VKFW&#)ZYWuoxE> zick>+iJz*{siz1M)yVSg6(0 zGM%AiIzy{)h8Exqp8X77{S03Hj2y4k%TzEKWU!wP?geYWT5t-S1|G^tP;Ow`2SkEs za5uOQ+z+;a15hAAC};~PP3-_Wffz6eT!0b*NGEK-2l#?;5CNh9X+dK&LziD!?I7366k|se@iiJGHb^ zOFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{Oqv zwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+ zQ%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JH5B=v`m9orDZVd^KB*mEclSs zx%_CI>Oeg>1I~hT;5_(3J5Iat0ezg~^ly&Sw>eI`@d53|2lO|N({_A7pW`^~#|N^7 zRzVx`0sV{PGKTnA;!}+l>jSxn{X*hPz#YVY57rak03HS#!DHZY@C4WdHiM_ZGhiF2 zB|jH%g9}=PO#!W_OHb@B1-nb3hGo>OjGC2Et1|2`1v^Z^4pXqh6lz&UEz7878MQ2< zmSxnkj9Qja!!l}EMh(lTSsAq|qb6n4pbW~(pu7x<%b>Unip!w542sL3xD1NRptuZ* z%b>Unip!w5OxdI)YgKsJD!gnJUbae^z>0Pg!6e@PoJ=@{W7BE9XRtQdZ16kw9{>+= zY&+o&j_oAf--z!8Z*kng{wd%BZr}l4P|x`@gy+C{@Fn;fTx4wQrVBTNR+h*z(|t5@OGtMKYoc=am0dKF&1N_5iRz;9OKH!Ja*mH5p{{AMNn z;!o)pe@egjQ~Jf9;(e;|KGn1WRkQ+Cv;tMM0#&pERkQ+Cv;tMM0#&pERkQ+Cv;tMM z0#&pERkQ+CB8zfzKpw~kizs6;C<4DE|6hS$gWrJPg5QA$v}#(9DjBN1LEraN{C6du zubRH^r}*(o`o5pivQ)`|oR4Qefp8G}gGmD|awz*FKoa}oKpOFMj?W>?V1EJeT#!$E z8R2c?gGN@NkyU7<7mf6yksdVCi$+$Vjb60Ti#B@DIxiaL zMYF2VEH9enMXS7MlNW9BqD@{kn>GG&Kpw~k3$>5YFfSVBMZ>&km=_K6qDdY!$%7_& z&?FC-NTD%#ACX)`~j&HNax z@S+h_XoMGy@S+h_XoMGy@S+i3w7`o7RG|S?Xh0Rx_ac2S()S{LFVgoSeJ|4YB7HB? z_ab30680itFVgiQT@TXrAYBjA^&njj()A!+57Mndx>ZQGN*Te5Re|&_0+FHvDLRm% z11UO?q65h}kemalIgpqGi8+v#18F&slmkgQkdy;SIgpeCNjcP9Rt?q5}>(;GhEzI^duKt~ubE1FkvXnggym;F<%jIpCTDt~ubE1FkvXnggym zbe)D1{suQLA6-mhreO*_@EN>2IU6(`Y3yMCyQ7U(tS#DxwGjWosDs{hAie8Ade?#U zt^?^^>zw-gkq9Ghyk#xkvKDVyi??LfKnW1Nz<+a;f;X(i8`k0t8TBgxaMg*otCj7D zcOukBF!6-?C}uFn^pQ*wA!|D_0tjRT5XcB15bir=2FDskIQhhzj&fF#hd$C-O?WTo z)_}F(T1GzH55k+(;>~LDX0>>;TD(~;-mDg>HI9ltVxN(bJVm~zfd^RxDzg~Frh}8( zX|Wz`01q=BW$k!b0G5OM0c%6sRMP2J)N@5WSJZPwJy+CoMLk#4b45K@)N@5WSJZPw zJtOrQtg)$IHJdPzu_)oF%t2d7e>3Xkh2K}^I_|(~iJ3txd z-v=LZ{v&FtucM0(U{rqyO6_Vmy*Ki}zwXDs?#I9G$G`5!zwS4BZ9VBv_5v%k3P$}E zVinMPZx3)x@4@N4H?!w)UrAVR_ zNtDuGsi3b?fkgHpjV(yRixj-{Pb%o2R3M33q)>|lYT^C~`XzcF+$$f{&LM#EIDdlvgWliv(ub&^4^crMqQcfvJBK8;DA`Ejc_i^XlGunO z-b51hNMbXRC`S_INTS@(>z#yUqQg|LIJdYHfM+%#fLOD_>M+)Ug zp&TicBZZAfVIxx5h!i#>h0RD|Gg8=$6zY+}W~5M#6kJGQBT}eG3gt+l+^~tEgd@OM z(v8=iM-tB?iRY0-Ig%(x5^o}j%}7G`LAp)oe#nDF%8^Jp5^*6B7ZPz9_OOm)zbB1p z6PuC9W+bv1iIgLeawM`5iReD;l06`ma-^dBG!K#~M>6F|rW~nkR+5m$E+kNm1geoh zHQq({EFL_I2fL_761$MZF1TL}=d0m-HJq=8^VM*^8qQb4`D!>{4d<)jd^KLj1Lt?a z`D!@73(i-=`D!>^jo1sG#4X1a(>0NMo7oNuhSF7#-r(K%NQ=c@529=wSMPvSw3tMMKlJckFb;elJ# zaH|?_?SebiaHSfqRKpd~O_y>8Bh0bi$!Z z^s^2wRl=o8xKs(3D&bNkT&jdim2jyNE>*&%O7znKm+Ww<5-!={QYBofL>C=!suB)W z!l6nyR0)SF;gB5;+2N2KU38#}4s_9hE;=k-bilPrbkPmh?3OO-qnJu`u@25v!nsOx z(E-;g;aVm7=Rp4)mj2aQ`d0@RE8$`#`sYUf+~}Vh{d2;}N=yIh@CXj{&w>6q;AkZr zt%Rd?OaJQd3QoL&6Ao8e`d0_1E8%n{oUTOw9Lg%CJ3Z4I;9eiVd@M67P9$&)2^_;a z998aS|2}X(*h<=MgwGO|asB}Da^mk3KSHQ`iPMB<+1HrQl+6G75rz`BW+idvepT*u zs2xBj5YDj}LdsK__hg2~sn!wJgEQbPI0w#yFTe$QZvv1nvo}uR1AIXMGxWWc5OE{u z2f{fP0ipo;i$stFn9CN-Ni&<{6a}CVtk8}j)niEY7*aioRF5*l!+jd^fqO{!s8pDb z^@o#z#Df84NqUBo{E_rABzja%<=Axg=d+(lm;>@SUdZt!06sD+{e%l9O2_C$maUc?5h6 zYN5jg+~7Rr>Mixxgx?T;s~xkoR6=Z_pcV4&kM!%1{#oo#@9%h#be+{Q*I{pGt(N%= z5yTcZ-nt?MFWjtyn{{xr4sLqkrWX!+;hYy6(fco6?Bfhvt26p8W7(h2@jODk zU!wO(e#QA;gWmwX|6#U%UTWZ_23~4Vr}sIGeumk)dHMQBch*}mJ%?Qx#E6St5&9a8 zt_B<4qMT!f#~?fcKB5<^_bpCy{w#W|vBIw(Xl?Y^?1o1e&({*_I93nNfV1EnI1j#1 zf~m0`y$eR~g3-I+?|2Bk_hv_rg5iK29SVjEcG*G+f(!KE=t*;}=_xqI8u#c>Fx=34 zYV^`LR>=Mma0l^Uk^a}9 zmNHzx4GgbAK6*dmYx33m65nc0Zejvz-E@20Ka4cE59sYlV1N70i<(UYxkYAamY3Wv7B zovl`T{wQ48O1r(Ac6&GN_HMZI4&2%Lop#wyZMIUIt<+{KwRx19*r|mbs<$fPQ2ROB zd;)5ZL+$5i^9d;a9Bn>V7=TQ1NlztAS$Dvf8 zPu1sAkE78ip!PV_oai}^DRi~h&21<@Y$#Ez-4kf3!AH)4;cy|UW zPCKuKjbM&9i(SJHe|LL647oNG{nH!$D z;g=hJx#5)?Ub*3w8(z8Ll^b5U@ouN#mm7Y$;g=hJx#5=^e!1b78-BUrmm7Y$;g=hJ zx#5=^e!1b78(z8Ll^b5U;guU6x#5u;4|Eznx#5u;9=Y)xr|}x6;gcI4x#5u;9=Y}V zozU!W@Z=oc;2hrI9Nyp@-axPSIjs8})_qP%Q@%UTIf)VD6!f5Bep8>@Y?#+< zh_5~Kmz_Z@XfmfMTG9S|cmA@owoh~cT|pSQ9{hLbE*Ej_Vo=10PM@o6OV|nMbCisB zr9Mxo&r$00kqvW^%ZNA3L#`x^J{P%~@BzZB%|X6Nx_y9eelcgWk2#xt%-QT?&Su|b z^OGO3&m5)lTV~r@Fx%FGXM((Nw^T_1Bf)6EeO9(wZ_U*c zUIZH7K;yowHS1Oi$4lXODI70lZn9KmjLWQB3ufI~FzeQWS+^FeH&)v`fyEO&>!#(A?7$snd2;FjYmadd}(o(6<(iL(17O;%{+raHWzel}_P`^)o`D|S& z-uE!i+<4_5!6V>N@F(zR@E7nTcnWL*Tfwv7dGdM@{1vV^osSDK|RhMyK59lpB3=W36uV z$c-Mku~s*F z<#V_aM2k5CYncspfV0%94O-U|^a2mS>2?4u#rv1y{m~x4j1(Tf6pvqu$1jB%H(tLK zuV0GSFQo)GCAcrmi+U;HEG6i3qF(Iu4ECu%ZE)G#C?z$_hw67qzB?akwtAP(hazR# z=ga3ry++H&^8|1Z=9R{b?=fgQ1_$=g>K>z& zJw_{gjGFC{_Y-~zz9#;ywuk(W;j7Lvt92h>HjkqfMrnsB?J%VsrnJM9c9_x*Q`%ul zJ4|VZDebT_m#YKtbOC7Ocb|MbiB_IME6t}Jw-Yuz-PrI%V=KO2((oi>EWMkiPcUY4 zk0A%-0W2Gj7J!C+-_wXEX;)6tuAHP@IZ3;660QC3JzcnnYZrqedX4&%f^7*q0eW3{ zrITp$DYW?%_X+~=L;-lB05tm)nr%M)w~VmyNxze5xBjHxNwoVEntipW?@rRjoTQC8 zNgH#LHs&O4%t_jqlW2X@r|(Xp`KJ^SFa+K+OlUKM9&2Zwd<|4uYDcxR+5zpH_M+y| z4r&Xvd$cFndxtM`hLYkMevHZZF~*=*+>jjo`^P_e&P`9!LssxL^kg~O5`-Gtrb(RY9mevRV8*C`b(+PE@Kn~J;^UF@R0ug%ksm_KHLzxT(NOfUVuFOBwR?Syuuk;i&s z##`U{nVitlzjIj8exW%u=2@uGN$M2Me6*td*+|vuyJ;KtwIb3mUT@fM8p1C{OV!G> zs*60e)NlsP9MurNQpgzb3O}uad@kjwCp2`=xI+7@vEPULNc!eTAsr@aRLqQ@@YW~8am5;*d#ex%{YEYzjn-`mNhQ&)*F%D9GKLs?BzH`=wXgN?t2 zw2epfSW`W?JpJYAuDnOPeht5dR81*qw8Vz9W=4N67iew5SyElH8(LNCr_F4vPt(+t zVoA_QsC%OC{In^Jy3t4zWj65|-?`+{ZqxLa4sw61G5(KY-=D_RF#Q@mXYG@wS8Ml} zd)yaOv?q)-2b!L58ozkW9=_o!zTeIdKU~T@nS!P3d!~i!QKOYJB9}Hs%Vqcs^N@DO zrBjzhn&!gyCx1;#Y$Jg`f0g#GCC9oez4>n0jY>4f;*=qLVR8ibojNEZl~GD3Weoo= z$^>OH{mL}{-5Cwe;H%ZMxD#`Oau5Gr${+amR-RFwQ~D?`C@(Riww-?@W5gXw6yK-b zN#48o$10`#&qYAZ&a3)Eg}A0=Dur}k6w)NnOi$ybxr zWM!e6O%H96nn&MkvAT(`ye(0mQlC<8QMagDlw$Qc^?7Bf`jWa`S*Gq#cPY24d)2+l z&(y=}VP%E-314@+TRo~CRer8IRj0B_b*ZP7U#K3{qx@2>6QRmIqP4hAd0KQ5*DKpZ zPZ6%XBqBtF^16r;QOYh6BVv@@B2L69r6OJoSKbg~#5m<$kt$M^17f0>sFaJzVzP2j zq=_`;eKB23S1QCzF;n?K%oekiLt>7YqkJgliFrz;$PgLIVUa0{lq2F6af@<7EEP)? zyI3ZcDGsqhtWca{CGVP?6svgKq*kmJtCdsY9&wMt)5+pq<+NBM)+jvFFV-p^ai6$P z@rrf4X~c}Ycu1)ie-M9A&Wk^aKPq2{3%qr7K`Oj+bWw)NP&G)lm2K5v*-o}oLu4n} zNo^^+$}lxlc9VV8*0R4GpmvdwGETi-#>)h?mmDmIs(oaVOji5Lk#eLuK#rE9)d)FO zrmB&0vYf8Q%2{%jI#{O5bajZFFEiAeWRA>HZJ<5VdA~YKu9u~1y4)l8sK1bV<@@St`H}ocyND7lFXN8h=yVMFJBs~&Y{#RaGnF}5!gJWbi&(*HXnZN(U*4y@t-OP- zmn#Q(OX>r@YFnv%hNjn`=f}}=JKut>MbC9D*LD1B<)W_NYG?FLD7Ri_u|f0!1U(#V2me9X>q*{StLHz2T6_U- zzEr-#wsl(_X4qmzYuM^IY;}<`UM=FuwKT)hrWuwt153M3 znQ7SA3T!M+S#8+TLxwH=$*`p-3|sn(VN06~TYA#4rOk#dJ!RO^(}pc=F>L7>!xM0H*Be{fZP-$&VM}iqwzS8vrN0@rwAZkuHw{~Q%dn+=*wVww z+lKwTZ`jXa-F_5@Za<1sw;zQOo9v|2>h`0Y((Ok%t=o_Cg>FB}SJ=-`RWU55nPEBp zhUGLjEQb*tmJ@7PP8-8=cn1*6xem*@MQv}`%ngRk^fGLwuVFL&4Vwu!Y$n#QnSqAQ z%r|T%!?2km!)BHkHgk(%GsT9@+-}&+9fr*;H*DrV44e5+!)ER_Y-XilGph`n`GsLK zs|}m^CEwexYHzhSUt8{@_EG!{ zOY=7@&EK#zKciLbtmdk@N*AMT?5r-r_PQ9h*Tt|sY1p2xdO^LwS5?1Mzu_CH-wIU` z{CpKDnu+E-H5nlInuQ3YC2S@5^M<3|9=63+J1N(R&a{f{u-INod(lVqAx&S=mu-L1 zpKUm;rA-VF1Gq|WGi@SLL=x9qPMe4pyyIxJpEeOIVu|amsKoN)6(5lx5-4Sm7({%q z;JsPi#2P~UCUFz-p<*cUo5jtSg=?`V$i$RuT!$Rf9Fkxe{D5z$oAgnH^p(DfzicM`i2F-_Mat%~ zIWtZC6<-<1+seVRg>gqaNYZY}VEPfkh9A7n@Pl|k{9t>-54OV(b|wEXykRrEVRzE^ zkUe{%k8B^2kFb4IKFan_@=t94 zEdR{*FY+&JpOjCseM&yXc8lD?cB|aV_F4HX+vntSQ2V@m9y(u;FA#rGzDWEf$rq#L zU*%tkZi(vDlUlze-y+T(G2(B_w~4A zDtek|;{|yE-hL^+gtr&vMRZt`n&M{+$%1UEO;tMTt*LSyt*Nil)z-|`OlhXKsfxee zrYb^jQ`yoFrA1Q}o2@OaU&F64hX1F1xR#$jI`_2_nqj9)m+AXDI?$^6(ZU7OayF;M zZ2IfSPFv%zhmAkImA3)?SUb>y_FSQD^?~Xi>eoQ`_vfdtuAu+S(3*An{-obI8p<_I zXD!T{>GbPAe>1SQdfoNfHT?y0z2HEgb%1Q5xn5_4y!XqV{@2UJ zr&@6{jahnIBMk`*`RL)LnKE<7+WI1cX7JpUWZO&OWr@CL$E4gWOXpuhO`0Y(&+11^ zN*krG*IoZLNWk3tzHNK-R6&CS&{ln`hySm8GYP3OiURPx$ARY~#f)6IY}K+%Ln0!| zLK>ijw2u}QXav$qFem~y1+|iPmZh0PX=;vH(QGuE4K_K_q-Dd>zVqMr|L-@fz*TfV z&bjx0?+)+Yd;as@J?}l276zr++Wo(e>3aAn11pR(o3$si#*PSgs1oH9Y8ZEKIxBVk z>V4^xisdRvkU=|Nbmzk2?f~84nG&w^=iQEb6@PYquGZrug)tKY@t@Z`3m@{Us7?A3 zVGgs2Mk=GsO}&;4M0=cVHTCg-H~Ah(V-K3#b=VubIYsf(I&0l2U03x@8u4@fE0yw0 zZ{>Doeyl$#ddc;b%nC2SF4PY>Z=Qsg(ku1pno{UjSJ@X`ZM~0O(mchps`z?qYfb8x zoJVq=LR%U}Q!nV-q1N+lE;II=KH}`fS&R0e^V9D%k^)J?Z)!d5FB5N^9`xz={kPm7 z_xHIsXkf2l+l`mQ_mSFmW?-joXLK*(;%rszHT-U)|Aliaqq7Rn%)Nq{+O3VwU1#lV z#nn*XqVK*@PSl5u&0oK%kXPfa-87#5l zN=lY2HTmdlvjM%#Y(eLkt>|1%#M-}(!1>VAD9XAMd{*(a&P(HGsu_V@$uf()7}g52 zhEup}z1r30ceLI$ow+CfiJu zcigtvR@+9Tx7~KwPTOU>ZO>fV$PYO#mB5^{gnPaOdxd^>*2`6BvM}@C=^A3mAl#@CshT8+Z#tFbpFw3S%%XUd3D%r&uymFsw7BQXqxq5U2i~<``%8Qd1{o ovXA)veon`|36lwv#B0>T3+UH+9z`wF^38?nR!`@kg=p30pH|7@_W%F@ literal 0 HcmV?d00001 diff --git a/client/salix/src/styles/fonts/Roboto.ttf b/client/salix/src/styles/fonts/Roboto.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d0f6e2b64f3bc7ebe271d7b5e92d24ad9188e708 GIT binary patch literal 116752 zcmeFacR&?K_db4RX79ZsDk9A;9V;S56j2d-7salKiio{pSFmEoF81DIY|&_9*Vt<` z)>xx4cIDdP&iy^J7c6;`_w)VZ_vee5v%7b9r<^(SoH8>TVnmdOl1Wf(?HV;}+56j< zC005Xzt*YUq;azu!@W{*y`E_Pr`pY$M-H3R2ltPzCK5dxH!B;s$En0AB9?&XV_Vc{ z*sAxFL5+#>RUk6l?cA$l-=zJcx=Nn&&sX z`wXdk0)DVBYUhRgym9TF&}-n3pBe`H;rawo-o8Eibnd7vJa>U8Bb+ElSg(#l`f8Qv z9q!k`^X|Pn_Uf{4Uh?xRK|wA<_r?vP=jAqZI(vmM1niq9^_mf>CE)+XfM7FX`-m%c;$4^T&|#YmDU z-n5Y823yuxl^AB&id*i)8E&aRbySI`QB&0#TAUo=-qJg%pL<7^wo%XrzHiHIX_ZHRV3EfV<-vN2;n#rI86v5m!JU>N4K#G3W!fsF6}aw&>#ekmH>Azl2nsV4$M12p%*1gIzZ+6< zzZ8x$aIA@YW@@HAp%BABntR=gaI6D`RF$6TTZg^0x@_#CRI zwV@boA|-1KA>iZU#r_S#)4$TDf7 z_JP`HMQOFM2DKD3X`r}|di0_s{rV=Qh@6z9)u#@kBlQxUsUzP;L$sf1mX?>Q@JL$D z^HMJ!LUCdp4aU3ejJar$F`i}{FHyY4DAqLI`cA7s4GqJnn|6xkXpd;3@el=TKcW9; zQgv+-crc$*3@a%=FNiv((R9t53h}C__bi&N+HU%Rx|qVKEzd<$_yy}N!zARrjG7wO z&;%`=hI3!*PQ^#@CoK|NX{Z>1_BN)4d^?Rnf0hu}(Env=7+*}Ah%#>yS<2%$6vrw! zV(eHvd3(BwJeH_7LH3pz_CZdDQ@o)fd7++t4cpM?GpV-WDb+WuqdJDR)KeQrEwp1a zPw^l1jMic)Rx1b@RQJDWNi~IFyx>)Micp(7E*rg66AR!Ei`N( ze?v~HYK*1EhIe>oBBkQ~Qqw0|YAi_kjUUk-6U{M%(?nA=ZPYTT3}m6LmP)Cj4UN~{ zk)Lr8xoNJ{5d5E@^+rD|q+&*a<9uA>H}RId442TxOSq1w4#w#;!T5|u8S>+~K6owx zDV(B=<7kG~m;AIz)_YoIYGu5L`w#HWBOBcRrwgN%d`~qNq3qfR-(^-#I-xxR1$K! ziKZLpQLte(RWV%z|2EO69JSF8Z)ud#2eNFXj;28Hy&w4+5^0P!0JxAsla0P;%Ten& zLowtrgr+O(Q1XC2X{N2kxKrskRT9mRw~3;SPbuDbi(-t;s1h)ztTvqLYE>!Gw4bUQ zmrzxcq%`AF8Vp?Nq?M-T=xH;M+9l@S}Ls%Qs3?1b#@rUhCuAHO-eB2qv_lQ=WgV$4W{X0ALPM^{`A0a zr+`1V@XmUi_rYd(4EszK6s!oQ`gPV zw}xb350bXlYEe3lFR?z-^`_FD|CFFhbv>$dX;$J5t!I=j#qk=_zRx;T>Cvx~(w|=^ zr9YL9{I{g^Cb0hN#0y%tDBXeM&q&L4{8i)aKhtph_9fYLWnR@LRo;IbRl880vK9XE z2>ZcM6y>Nkt2+H3M`dH6{OEr@+OT3I_;mp7SoziQA+Aq=pM|-TRpPh`<7zYTV1}|) zl>W=^S7oy(yCLh?N>XuueSK7Rhq5ya%I;7$ z#un=nJz=cs<6e#Ze@Y4q6b^iqxQq2Wg#|e7Mq2V20~8K?l@tbiopcQNx(t=~*C`uw zzA8&E7x<$vC_CA(2>9lrr(baVi298C8k-b8WhYg??DTd0bi7iSm5o~pyRwtwOBRlO z-G=OQ9oH15W#gK{Hl!SPVRI-|F*)~)(|*xdT~ zKtCxNRM?+7SRM}s!eNom? zWmDR+vi%hfD4QR3)A31- zd1WuzaK>iS+c3pL;el>jDLY-+^uQ(Eu2;4doZ+O2qil>Of4yum}o8^ufgn2jyjHeB`*HYwhZ zQueFj%YPhU%j)(fY*=My>bzHej>0L}y~r-nK!d0{nz{1e$W4P{5!5@`AOOS(!U;Ua$v*N zYSudYLsUx2Zo`vqz|pidwVdS7K9l^>MhkpXEjAC6r-O@(w@bb6;o4>SsAnxUhm;m0hcBL-_s+abU#MALXJC zIjod}a#$tVk)72-IVmToJ=ufiqFkW4DYrEfai%<=4&(rum-2!-lA|?)@=-oeCvpOH zCTCC=&`*e^xPZEmD`g18T1uZp-P}tDI7F{DuY&|D%O`2NmW6sQv_%Yss>tQQab`cwzB0o4VC7O_5~MpPfPF*N{fLJdKqK%Y`mY6RMh8iPht6VT=qWqm>| zs3~YmY6jYhqCs0zbL(SjLoGntQcKWw)C#mcwYL66G1LaM1GNQ>rFNhlslD|Pb)p#1 z&eQ=kj$%Q(fc{DG)Dg5RbplPG&Y;~W&iatLQy0)46c5^yx`Oti1nUFpP2E8IPjEqL_r^L}RVD zXfllhokHV5r_uz_X`sK;bV>nDrHP<3XcFj5nryvEvuFzFY?=x>ho*tfrRmliG>=k2 z=hF<(G@1#zfM!{*WAx1iT|{$07t>tOB{a`^jh51U&}Ebcx||k(t^mDCD`_FuEXY23leLjW*Is&`q=o^gCJ&x|!BkFVpw57IX`(1KmpN zLATKc>m{JVM$jF!3G@g04s<8zue6IcgZ@b0gYKp+pnGVm^&vUPtXC-lb~nm z6deRTO@~0w&|%QCbi{gw&e2g&ybXGRj)7jJ)QD^Lr) zwjM-yIUUqWW>5t9Z7Ih%Aier4j9+lZeaXlX0Z|Gd>yEmx{jtw6bDsUvzZ`9O3at=n zh>9D@1Px*b&0!CXksF%A0UE*)n!yPg!3CPY4H}>TkiQV>Q3Oa|jNF0lo4*a9fn3h37csMii?7Xy@wMf2aXckBcE#2E)qcy6AH=izy| z19#+3+=V-HSMJ6Oa70~sAzqjlcxAD_ntvZ1U$8^C6XCaf0?VqIAe){mK421{p|>?4!R z%86OH;2L_H^Bmlcn}BHxfhoO#H%ovsgMlo|fIylt2L1a4XlX>P@HqO;1GQQX+}Mnf zd<>)QPe`m}4$P7HFh3T+DzFIFjCDY{qgWD~#a6Jb>=jD4f>VWfC~wX8^5gs@zs1dh z2_fu+gYXiQ#Z)m%tPoqp9&u8f6TgZpnvYgitEn~CI%$2hq1puPoOV^ar@b{WLtcYZ zQC75S(eXuJ7d03CSgfJDy}OHhQFl*wU-tm_Aono$aQ7PS1KpF{SG%us|IWkU;pE}! z;pyS);qMXS$vusp4xafu3wjpyEah3pGuE?<#u-H{AUTCEnVRhMbiR(D9?a`0j^ zu<;;}=mJLbE3&e@EFbe_#aTI4kyT^SES4qcZC%c`psk-+rY;kCLHc>mTUDNJs?+o1FSd@xZDVkh#dC~Nu zZ_rk9cXD@gcX#(eTLaxIes1e3v~|-rZEc&?R>!Z}8i%$rw3VT)nP@B1^1}imXirkO zU_Ai2FNahbsW_4^k~fkkQemW`c!tS0@)7F@KCOVpkCz=~1kJNtwyd!nwQRAhvaGZ$ zv7}kXj&>1 zum?Qk0!f=iV zFiXIF{g1_Fo&3vz)lfHB1N8<=wmpP0iQPr%n1zy0yGSkN%w89yZWepj&R> zn*$Ke5$H1>h*kucRt$LN0b3{qnC7KW4H{x1dxqJBN$dqp=FNEv-jcV%xNZZRXev$P zop~JZ!sB^Yo`6{Qba-vuc@N%`_u{>IAB9_d6i?z~_*g!Uk7qC0E1JdL^L(&QHu4X& ziGSpuc!ok4!7*ku`d%1>k+ujEBI{d)9c>di5rMZCxoC&T4U1%_$O874Kop1>Y&px6bvD11d*;YYuU z;&e%r5GCodC7Q}*Ch=>xs13l*P41~9uK3)3`KiG^!i z6QaB5A$qdPtcvES!F4HmDVouHXSE7AIY+U0-R<$u~mA@={Y%m1{? z|Fp~h&)Nls6Xtz0c~xV6_@H(eWx~rb$e;*g6$Wo%RX_}>vKKErNfGsYIA;CR5SuLo z|C5-P@N)7B@z7I{2y#Ml@zN8hlNaA~ufe(okC-9M%p4o7Yjn5K`bHOCgx$($ux{|Z zuzPHwjAsj%vWm;tav7`AGI@NdjOS3c$Q+TdGMcY(5jR{9f?+>EzTNF|E1uIMWhn;TTo;g@Ka`4IHtWOP- z48Oq3DFn|t6rM9V1(y#BbS=W1jb5I;tmpQK?VKR!}R8@qAi*oI@*Zx|EVvSnn$$kweR zGtZ9MxN%IQu^Tpwt=77E%|_K)x32b~j@G{p>M9T=eX4yxUERU03VJ<5b$+3?;Ew}i zRTO)SCN~eiJPdU=1eOnFraWMts{j{6aa(UimGM*R*E+Rh<O*Q(!$O&YejUB~%RTMq4=95=649XT&zc8e+Z z+dc14sp5TiFK;&1wPJj^_)%h0xwxtgd>aRbMt4NtHia!^ugjfH>X?1x;5~*#vKxn| zf&0m_9AAm`NDgRAUJ7+Haz~fE`P@vtoxL>`rFd9b`>@++UuF(fbd3w0$&UP&I^S1x7$;j!iRv2Y$C2UvcO zNl9P_SO;g;h8^lYvAyNGOjL5fuuiP8=meR^x=rR2Y7jxf$IakmvWJ;jQ(g&S#dCk} zz`R1_#Us`8d%X*Qrm?H4>1oH4@WOYj}Q;X zApSiYA;&$FW7w!?!sE7V%(mTTb5X9J+{EG#1;fbnLD%_JfxQ{TIwv$wDqZ?vXxHEC zHmWnb?Ot2nwGpF;=4VyRiXm4XZ85`Fv4bNlNVrl^92RwbM&)`yQ4nXLNu?8d-r7K zy?Yk(pv1()!HJ0jc{zDo{tiRjgEd6*l{e%apIsX^?2-A84 z@Zq=3@(y>_mM`n4>J|l@2}b$(iAt~#CB3#%y@JUm(kAAi1!q=dHwLxn+j-0|Gc!E7 z@@n#Y`6EwT#|>kaHI5rIZS*N-dT=25_FB1G<%#IN=88Ov;{rJGIY;lT92JykUY_1r z;~Mu%F*aet&@R3EbQx}D{M_|VeR?MKm#=S}ldsIly$2*GCT$S42K4IDuTRXDdzVjl z*i^2})6=YEL9*uhYA`iqB3Ms)6Raj{Gd@j!D6z`BwTQ}(3F)fZ3 z%yP1H={|KXK6v%?sQmPFSeF5bLk7ghxbZ2%=T|w~y#yCB^T`eQ=Hkg5JqIosKVenX zs;K8clu--3DTp{Cu|QWhlRsd>SOlC$pX+521c0180k+vi^7T!oh51+PT4&Cd%1dI8 z-?3i1kDy2R5A8>J%^KWm@F>GC?uGZ}FLdjOsX`@bzWM++16fh#$~;+9OTCDS3Hy%j zm^gl=Y9k^WS`gZpOI>hb@(L};LLtankd-zScQ8Bn{dq3aB3@|EZW>0@3CLtHp7WXPnbh{Eqtz?A9u-4C;m77>N0WgY}x z7^1G3}71lm{ zV2fuB>d+{qMdxm<+wM7b>Couk+6A?0CF6j3oa)I+#!H47h>BN7{zeQTU%hjDA#cdu z%@ibz%7_TfM;`82O-&v+cZ14wCnxio8 zh<$fiuy%5_Ve6+Rh-3A@y8>}-()QwA2cWM9QIMlYpr#vHwo%1!t%IkJ?O2K}V}HG6 zc6~aJo+vG^lnGas5_PjuQ>@b(2TH{WzCCEcKqMvo+Z5ca- zKv7#*4`)stxqkN4dBaw@R^C4(@5&9@^Nin~oIY~)Pp}5{Re2>MFI|T_DlM)j&A~F3 z|B+czoVR%Mkvvrf9Y(Wdm(TC?*UQI9QTVUk(sEfQn8hWFJ0He-S!S!Jt7q}!KKKFa z+Q+DU=7;t-eyGu=-4B?-90Gg4J zrX_r8!d~&@j2T)l%UG!x^LHLGld2^Pwee`M0Fx$(bgdN2xPlz6Fb(Jhd4o(F3ZV~` z-vHZ5iF1}z|IKzX6p}mTYxxd3Ka%By=r%APT)*na-K#e2=grZvt5^)nr8<^%kSpX{ zzVqpmUGl^3r%!k5w{ngUvGYitku1`R1MciPf4se*9$l z6EAMLX4v}n{6+JT>HYf6((7wy@I!r_)M!`Q)6L|gBi_H&dSH*I%jNUZt;+sO)fZ&6 z{5AEHeeVBO{j72M3iU4ty`5Em9p8&GI9RT3E`R`icz)9!pZA%=hmPu2%nNllp!002r6Z;L*Wu_UhM(GwGlm>s& z*E=K_rXT&ynf%HE6r0C>|4B+#?8zJEX`YvwGHw3umoMeL*N^3Q<{#!wn!^UQ8{i*# z?)x40thBHHqyg=l_XwLQHWowA}?hH1%w7ANgF zOc*>j0d;$g=NuI$oHY+vb{G#fL(5TnElI;lxg~Gh>nl&xy|`Bh5^wj>qJ$dMnql@KP^mxymy%HOF*6^;?YSY5y-*srwp>f2- zqx*i8#cB=--%_Xi?yhyK)>dUFqwMnV;q#F@YNy;0Uq6$AaW~y*aI^(!OpZl$Z%ZqG z{cQZqAm?ArqTHmI^ViM&MmO#0?$N91=sxUYx_sEU@nmCu%XbVhkdyNL<}Dm4J zu2IWxF#p$HuUNpnAKMN)ve0YEK~?`|sK3arzmsxq5ePx`y|T=8TR17y(PoJ>yK%Nn zN}w?R>Ku~V@$?OIzobUpyu7+KNE*QNupF#HjcSZH`uNwl1`Sx@*9*RnsKTyQjy$&s z<+MiKKWL4yiUT&S!IMyJatq8?gn8(kQRbz9Tjc>)fH!#}&CLG7-3OKyIVX*Zn-p2Q z^5K7>??xw697|4(U z-K5p)Uqp94udG>fV25|@GWlK07Kv)``|o1H52JP+u+OW54KC8ucFK+6GM z7sW~vL|<%t0T?O8uG|*gZ2CtYMc+Q#DK*&nf|Z^%|FLm!_0$IAMv1_QZBO4e4@_>- z&BL=>!{k9=mx)zu(r{A7t!w5oCAWI`PD^UWA|hCkS7}?SR$(_PS3AE^_4!DQ?Of;| zHTSHG6r|Y8(dOymB#8ADA@gIm?lZ?F)a~tSHj5pse$?ehmR@}Bn7&~lnSbG3)t(u6 ze=N>*Uj>$q&Kx$@j6W@m+5LuRtXpM$HXYA6*mS8L-^*%i2y6#<8`FQ>;8VdPPrh<4 zRck$0Z)T+Ycp!(}VS}kzJ8dY-Wy7!0sB;MN`MXWS?)OPg?*NUnonvF71OD0mz$3)1NpRRy_(i_aLs9{&Znges1TC*C%i+3 z6)c4L)J8h*i|Ijtzm?D~4-Z)yzj=?jbGN#^e30pU*0jyZTb5RQ?Z~()6*6BUo2)Sw zjC^!k$VqpAF;2$?45dYcZd z6TQsWX0WK}YcF|k`MLt=!kZ#cgu@BC|`D%ttz9dIwu-+Xy z@G}|5l#DXPE5ikxy5It~lT(nBPHlQy_ndd+6uE!fb_I(lmOhr(j-PiEuIG-+YmeEW zI<@#QOIWiu{6NMrz9^xqCC-*7ENSr^r^-)sQnrx2&9%`^FgN)fi;>SRUX)L8{0@rq zI2&MjY`LYvz*s<{SV?(heaKsOot!+F&d@AGs>)#BJt`nxvYaxaBjx~ zy+SBE(N;D_GRjslJXHnNd{t(Ui;7I53WYjHwd~NLWmM;YV=LRm$G2N~?4~NK$C5Io zm-bR+O|9@`%juq|NcYoQo>oA+64_YockI(HfOgqH-lpCCY`Rh(5+T~}n`g`f^H@li3*X)fNlO)-Pj} zevy;KQO2I)F_fKPwb$|(e3h4FvtjgkD_`A=`DR{AwUIZ4C39@Si30}@9yqab-)B>1 z%9%ospL(%km%J`A5AXYT3SC|H*`z@kDsJ8bJ`T!YZs3py%nHCqh#y9xt&Q1G;08PS zk)d=ceuZWF<_z#RtXyRG;P|Ec<{m9ucC=&TdCPvy=2bd;IQN#=p+{d_dVKY#9-T)I zd2v*=g=1CwLqlWjwJqYRyhUaE`PpKvp?;w@{p1$vrbl9xN2$6kJLaxcZnP`D>kkb_ zPfH053@txn+VlqBb?)?i!=#@CozCI%O$L{Tw<1sSQn&XvLDMU0(i2e{Or_O2r>oEN}bJ5p`8;Ur@eGJh1cNZ z7*s$>>%@l-AIfx5DD$B>!LeQs&$W@>+EnnpoE}%yM@QCV!sh^e)&!=4WVoGLc0cHI zm_EAYZkx{p?_ddPQ(H#Ys4m|;dn7NWuOBgT(wGD9@3v?LD>KhiGqW>KP8vUY(20+C zEoVzM@~IF!L&37Xh>^Ql`G zyN>JJxK*=|8b6e<&!5L7x>B3g74o{+yGDmabx`eCtvwJ!v)hYFtsn!E7@D3g3%`D? zJvejbjOu@Zoexh9_YFs3kNY8(nl+ZxQ2o{(S6%LtSB1SD^D3n;^k@jqJ={r)`F_Rf zJwL5lzIAb{cCnp1$F^%}abQh9ePm7L_a8IlmSHRn*i)J{ceko#OT&If%sm=kycjQLlP~N4*DW$(?Qv7= zh+tT6I7l4Ex;dzBNR{&Z4xg}$7uDGyrftHEd^V5mp>B zv7^IV7c0`eL4}eLE_q!WmnvU3azc28dKHwcFno6-pNPrAdezDpO9_6}kPk*2rzEkJ zPeI?PHfGJPBh(Bu`8;gkuO=<%(`)|xUVRo!sS^@ht5$GG9c_2tB}@ADo1fOVe65^x3ydc2BjJwY7Q;s2QWn_3n)$&yiY#N`o zp;ndJ^|qx=-hH4(mB@NEYY*231eYrwT-q~XNMhd#tqbOlso8(nkin$`gZwL&A8RXf z2x0~evSJ1*4iw5<p(KFva$69ACgzL56JO$ScH$tvZ;*s`3RqX`UP8Vldw! zO5=W(52ARltcNdb*UcNO;26AT#mYTv8yZymH^Bt>U{h>yL%@=A+mCoH3wcQB0QcC9@M_ zqQ*Dx+^tR9pMLrE;OHxD16#FbOCG}~hPaqoqHlGdxCFymV5m?RY!pxlb4h-tmYJg* zWX|34Hb&E3%P>doZF%6#=YM+6h87Z-i22U2^%t4&i!6^JGKMJ`Xh>JYGi`#hi=FIP zs2y{&VwJNBd+YPP zKt(a4maSvigk>qgBP z)3ilqeGgCeschdGtA6B%3lxyKi^o*R4#oTW&b#08`E*+}zFgT!zqh-*V|51!kErdxl8@3@jKBHV|Mb@7}|BfA{{K+5B$u zxN(@@kbk{Ae&U6^j58lua8g2dNH@byxo6rUV=*-=kC;FW+vZhGCjw)u^%PJW0O(5&55F^WqX=#6^ zoTyRxV%qLQ&!3)a+bX7e`pdJu*Hw&I6My3`OOqUvr^gLzRyXWeX78FaN}TC4q_v3b zJ|GX<7w6KldHs%Cm#o-OyM33|kxsLBSF08gDN*k!%gU5p<6nPIoxpvuwIdtxN7IKF z?U|$o4%Vk3j^4=d9QH4wVayeE)9ns@>K$SM<*!?*if?f8+^{A93&(6BQPnk~UyuIs z+QYx(A1wF%CQ~X1wmbBA_GZhw9!1F#ao`xtDiwBB!Ve|# z5Av=eE9E=-*O`&fJ{IAXa;;0&nGxS5-dx0;mCPSfbj&c8S+JnI=~SlBm=Sus#mRBj zrTPzNshEpHp4sQ?K3&i_Ie^F7=RUTy*5I<1O?IXuD-^F&phqepLX|adWQ+eo%Kt3@ zTq!F6gQ&>lcK;H9G3~Z&XVq%_Ed;}rPBzTLm~zr14O#1GP?qAIK5MBsX>dqMQFE6Q zCaBrV%rShbWuUftWrkD}nHpcIX2Mu5OLA76KNbA9`E9m%8$33kDZ_pY_)s|ej~L!d z#PFK4Cakn<$M(z9>^m8)g~=vttL2kLw~Mh>4DY(5p1F~?kBdQ{>otWSe1XY+E~T2I zOiVP3j*WIVk_8U)4qm&x_yUxP_jqyeQprT9iwgVL-kLvirg_pNvlt${JJ?d0_bRu$ z95>_n*|NStLpjP;ar`=3S($yFr8H=}H~3Wa$m1C98XjR8qNXb+3e5C7?mC#m?tmdj z`xaHTB23NRWc=L z6C2;4r#IL*lQnL6`o6_o6?M#DYSEnEPEH63%)AS}D%t5`eQIg}o$RKfFC|oTBWscr z;H@k-JsF_NvZC*>Q%o%~6Wb@%kniOYC@Wv^L`oq+=T4l`$5dNjTsqq60SywWEKgX|wy5eiaHhtV z(xrcoR%T-x=GLB#IuIGTvv+pHesZt5BzP^X9Et*$*p^9JNI^S={u21rkQ9{(utTa}m>rT@+-4 z|E!f+E{;?5NPYpg5{09hYP(ewe~-b~u0=*2yl1^7>+?%^&kGj_$|++fTUV$t^Y^I% zKJFyK+ZEj%9K&2IMXXtKaEEs-{{qhC3P&|ODJEoAQju<5V#F_BPZ)re=*xKcf?JIK zw!ZvozFTJ~KuKSY_3f%bL+-CPag zepBekz1jv_`Ja0-t6&>K{=NU20uu-9h>R$;KBiky_kRjHH>~5-zsHR4JtI@2{xkTj z&(|938}sUMBo`Q2s+IpRZ`;1w-sL}iJ9&H7b^4@>cU>&={$mao@lQhuZ4UPL>a*~U zUS(}jzpta9sw_i^Q7f+H{U#O~9iYwGv@TEPnHhhJiB8GgWq^{0otWR4jj;zg`W7!j z9NFw2H+Wa{aL8BDwNkb0X$`%zwV`_d+UBpC*ygWTASssmso6IVU3IF3sZJQF9tdA> zdcyL^H|OvD!8hibG@{F-YK^P@vZnPwXIa0i)Tqf<*Y$Tv&m+jE9asg9YSobX(tHkW5)Ve!}IehAOlJa7JYyQO7?ge{rBT=tX<Cw=k{ZEU2#B~F38`oFwpbJ+fUj9)qG5~GmEEO zBLl4CvgJYsATF3ku7O-IeADwC&uzrMb6lX#tWf&FLB_svg0lCPfXCB~t8r$t_kg`B zq85th#Pl0CERS#881iB6EIqRJMqbtZ!z@1;J5UFyHtK86LLtY>zlD>HwPT@{wq}v0 z){o$4)fRpIhuW7Ru%Z*SU>-gmj1PFkt9%;6>hN?qL#^;TEU?vA=y;tQx>sPeNimft zEGIp(^v~;k#3~uV4zliFBlfpzm4+U9^xs!2F{OtLj;J4^sEA1Dt0MR!Atz*T@rY}g z+Q5vds)lHbz?V%(E2FnX=NW)S_c;ZQeZ{`a>aqO2#jb@|m>GZguxM~VcpXtZ(D{^I z27D!*QwGO$%K)?1KZ{iiUpXMH0rG}zhe;VM7_nnmFyg_4D|Wb?%*bHpWT3cXiNSKR z^OiS9(s(sqHSLH6V?f}`2xM4=cO7AMDZb(BJkF%Hp7_H1B1G_&zv-BV8Q^O=R$-#w zM^;fD|CpXBPp}G^>6Vl0mn>N?hOS$*aJ?oq`Rk`o@-pAJk+D*rGFX7vZgF4x1LOPo z?se;T2}>kXYxJPZ4N)i)h@%2huyym2vJQQ*q)e?3a&rt4k&|bc<)3fU&GKpb%<<{G zg4>}D?7g&;QvOyzPGkM^vr<_6gJ0GjDj){yyy^))+<**tBi>RzUseDFz@Eig&{E~v797|n z3_?S)3_xM=@iyf#<}ViJ+q6f)pc!$eZ{9o`Gdb8v7VekSAkNb>u3pjrt)eAo<4Tv`7xS!~=E=cYcf??v)w&t1cUS9M)$&%| zPy&C0y`j>w9O|qEENVMI2=8|BRmV2NMyFqFGOKbr%YC?aT#wG3N0l7Wc+j}PJ%<{O z{<=GMVYxCtjs5LG@lvvaVf~LUEDL&dZ8>yQT;{#vB~$wJp0x)BlDq7n&rvFSKS+fJ zm_F;sKV`^NvrNsnh1p8z;#V?+UC`_;!5um%8OPcT*g6%A?z-KY6)(*;2q6s0-_}C5=r=n%aN# zXzj`DRi%rsa`mhnT(XI8lzeu{`IUs%`@(sn*~`AfM9avo@Z0Ij*?Y~TJRDvo;(YDziec6t8YD4(dK?h|2N`ioEW)k2gkKWNL3 z=8j#yct5}Vm2pt3GP*}-Q05)w^ay-;>8a+g$01#H{P<>94baWTBfzn3bAsmod1s9* zrS{dxQtUUi$L62**T~GCYHtlI*+Xr#LA6ou4c4c8lvXjz=KE@-!RA{W;9sajLEo}1 zLZ?jEDrUZ{5om9}t$@?Qjrekade_zZLaS$Z1380t#xQk-PE_1gUXqHVg|X~WE3me$ z7#5|CZsA&?lw*E-k-xb|*B-^#R_D@Qx$>Gc=YWEJ29-H4+_XF=%9Uhnr!i-v<{3xJ zm0<_5=x7A@?yAa*LoD+$#-obb=!JnBpGD`NdKW9%vS!j;-Ne{>v7uv=#?F|Px^>Hx z{@v${;Ykff2A8N*-~YwE#k2biX6!-Jl*-yoC&xB*TE!llIEy$!bYatdnTdgjYoEa#HFSgzc)lkKO3VAIj%$LZ#N zBm4HkLX}a8`a-!%;TDUy^Ntmer{ufM7fw%;ufi&AUw|S|=cbr(eysboI;z>0-~klW zMoE~LSpx+92~5bxD;#_Jplf_mV(PLrqXZk-Fe$i1c&+q@7Ol~h!!d(T&hZ+*pmacU zu&Gj)uzF>RmvRVuf6ePT!-St|kMg@lfYMi`FJs!H*Mx!3mLz3N?k*S0Ou6UkBR*4adkyJn7_U`>|EDY)Zx{gi z)POK4jjXI=Wf~Y9y_}%4ZQ{(kU^jtv_@J}~wZ+txi;|vTCD;df(`;TlM@$%2v_PI> zEb{egCYsNx`*VESWp_Rq_fP})mMNK|w_cyI3fm@sUNz&|wq#3+;_DlEs1N?|6^&erWp~wA z9ABn;rriS`s2IOmErIZ+(rIdT**1Gz0L$>5U7_E=Z(pTh_=dS_wUh6DUbOCKc?PSc zNuK$%Ha)Rtg^I!9yN>V5^>R2O6mc#M2#HU6C6R~!o zG&t^+Et6lE3$Ot&`oUSWbq2PA+7yN{I=NtxT^EL|DdWFp@P(a)3iUC1$X|qe(ad8- z-Fdy}Hr+mTZQHEA7~61Fd&TO0{rmS*tZu)$!H<^AW~*AZT-{W4%KiK35?#K$t*;Gg zUAU4j4+xk(fnoGe^Kmu?0JPvUXfvflqj427nTu7vWy^=K)ajAqtD9k1^};T_c&Gf2 z?_7TU)5H-YQ}X7u;3p_khA$C5)2?7{QrXY{u-^x3VzFk!HpI2x{$$aXDCkuYd^2%3lvH3UR znKTC!Pa7=Ou;59PCt-%h^3-ziVkX+=F5Am_hw(Lr+2osyMaCDZ3mv7gNnF_#Kv_ynbi7u6EmqBo;h*(xl0v2JdM(`Re4EH+-}u z31u3k^ORoQCoA5C0BKGmf2EJ~esR~nSrDuGBu&~^pV}Cfxn260d9`QMHp}t&UeCq0gC^P3hRfNqxc%o2WQMn3JurzSED zUv9F^Z5_h%wz(}d>~jl0w@xc$o&M4f|ERWkZIwCVaSMyh_5vH&_<)I6bw>{GgAIde9@oVaF+K{Olxn z*%tMDz4GVlIenfmIeFT&{&URC{rU&yGNkv2Wck~N8}f{Kang+C(`RiIwFmU*IAU@j!%**D|_5A>KHSSxbE4^*qc3Nb@Yv#jXoaPD1|;*&b%%CEnuou|W;@VlofQDT>Y#-Wg4& zPSN;5&TG}HiT@c1Y~aS$qs9V;XXuxrYEF{{VKW{aO)q%Sm;q3yLGYt>hoKS{lxEMD ziY*S<1=U1uk?$PLPV%kX#u_twC$s#t<>#NaI+-0e@BR6EgRlHarUT>l9XNnhE4dJ) zsC`WKJ-7eo6T%_$^{Jotoz?qqfm~tOg?4?Bc|>CzJ#?Ahf;U1p*UJ9SC}^AT<^o|cl7EyX1}-1`PRq# zUtY~{vfO4J^w%-IFb)itaG{S^wPWQ!$7_B*`pa;Y{neEkt{A3g)o|6GTh3+;SM(n+ z&S=}up2vnm+4*6c%Qp!3B}=n*+-%OMXv@Fo;=WC7{h`Wl9iPgCH9rxOP{}B?rQbX zgw=D?=8MY@0AHKsEBREulv@~kF*ohc-6f8c+WptUx#$;;@4Y@X5ir0-w-julk`M(n z5ZMsh<+n2)Cd!VV?KPYC{+IoJIV^}VS^9LGfXYr zA1S1Ke#hlGwt9KL?23#-qT7DC=`9RWy_()AGb~Q0qLxa+=$E5 zYzLGQ60gQS%9d<{o=lblDqnoV8f&`s_={~#wjRRz<`Wh$aw}F`8}D z$d=(|a}VgH(sC$UkF`JlFsBa7O+zs3TRj$vR)yj#eP(&V-eK+SVCEfP#a@NXj)_5- zBHk|Vo!#)B0q}MFHuS;!dGwgCt-|^wxd*qh2o_)#^7VA}2D)E!d zQUPyat`Fs7mxXGthb{#+=++#~vaQ+7)|eS)*RT+vGPA{tviW2B{Je*j&n(-R@l{is znCbCwq4pf$8JIfA73(4|$Q5R}MtQH9DPpKn`T~2gVhu@H7f=i%AG1DLJ5NvnWtQht z(OIREk%7|9Jj6$bw(Ko;9yUWdD}ow*>absR_jLEVWe%S{eXvYDkMv?Siyu6tRp>r2 zfAM^dB?=Dc_W#lLoncWW%ipKZIWuEcRK%=^fH@%;Fo7s$#T-x+6Br0$4uCnwH6kjQ z#hlZcvun=ls;g@byDI3Kn4b4n-7^EY?!EW@@b^C6b!uv=tE;Q4tE;Q4Qx60Wc5=;~ z+tqP!FI>|?f>w?k>>1COD;M3#b4=z>a^-;bt;wF96;5{Cbk$@u*D&fkmn_|`8`bl= z@$wdu_auHqUnAvZ^(n=IH7SLyP5CMB{nTsNgHF+gW1g6q5AcJ~(T8|f2M+QXE}!5;Ttr}U2S462gCLbGN)e~mTcyM_j5&89-3M4Omj&^w`%>DSf~taS=& zll*nOtxavXy!L^1qxlizZv5s)Yip$Z-GRLKzaB{Ysbm>H!5@`&6e2z(ePP;~!dk&N zcse6CFXx=vx4Lf0e%2#!7+N=-J5;o9q4urEn zOUb{tQ?stCR(folm0pVOk41HVI+CRNm~VEfxR(I_N(h?dxuj9FbC*Uf1D!M)bf4(8 z_5$%F+*~BDOc)SaBt*bOuBlX}r2+~NbQt_Jb=M1v<@t%fo<;;l49SYSEp2i}Y12bm zt+>Z8{^{};zw{9IFISFTKY9_#Z;s`Su_9>8{2_74Nt`W{MvJ91V+4tfzgp0IP2Lgv z)#7*=Q}3|-p4gNte_OAKS$^fUAO{&ivfmYhuc=WOR;-)k#Zl=pT0FfxQ2z?9CKgZa z_vFXVQ!RZ$pI<)FrOTfWgL{xn*-YFQ*j*;B@6sbYpJ535QQwku^eCFbTLW)2F2_UOA^GP$SQEC;MVadR-A&lh5t&(gzA5y+e2CvV#m@fDE}BpAW8M7gcc6A)AC245PTD>>T~oq~v}yYY7*|^}FtzGpw9vJu zx`Hj0ZLs^?1!E1`K@EvEqdLuETquXaSzbiWcyZA-78CfJ47W$8Oi97L>fN~QpYaZ< zzB_3@PHaf_lX#qc-Lu*lS`JXJb!`gYjXE6CP<%U0J5%(JelrtsogMJkisOSd4JV_4 zvs*e(2jh;vFGVDIRo@nQ?rlnFV92mf5j}&$;n{z@`w-Eo)(`LMS-*W8GiqdX+JC8y z2;|>TeDr^5!|><*gTV_bRgLSp_f|@)CLMx5bZpb217sL*@p{8XjT&CNq;53_3>q*n zGVQ+@Gs{EB)fxJ3A2XY^gFIX-+MO%lcxc{hhKrx3|yh&_-pTCc8)nMBGc@0(k# z(ul;|pB{s6Js(drwVO=(AIJb4sE%Kb7@94ZTg>mEhh2y_wXfC~HB+n{N-k6PN*KA}Q-Z1@%;BGj&3=OAfd^pI|C9`$RENU$TG^JYo2LoJp))F~Z!5-7@LpKN z^{`O@P1+jJ*|>D$VTX&@jZl+lu?Ry; ziEf&K0`~gmW~sA3W_Y?h9qqQkv%W=wsh2u1SfBagkTo4=YP$a z5*-uEpRz*FShf-2<0kV@4?P>yZtoi~DUt2k;4ysC!UeOL!ImVZwFvLkCG7N>Ly-yP zv@%JtmwxxE?Ax^HlF~cJ&YUv3&&UyHw52kQ407?{{@N5{)_?GqZj<_N{N=Ipw`g#` z@NnYq*4J(wLIn>wvWu3%ddEA<~fHg?f%8*^%SQ@>jN`IA|o zq&!Ret$y}?(8wG-Yxa?YB1hz4DLF@dce|g*FPbo6k$QhoY%Kgk)bE6yduuo$tQ_6Q zhLh!F!b~%fwNwKOX@y=^oj0Ze%UjVqAD{P}XG4<9^oTIkynX?@Qrqv_Y|JO3Qyg^i zgI`B{u+qUPw(VSptncI8dhU@G=7l;}&hJDgIW@EMzpwLoxF_DZGdnzgR_5$SRo$yh z>K~XLI%Gc7;DCHr%IT8vAK0@zWYa|8=U=j@il08sPMu=!z8?U4%BwzsC4FhccCoVm zIhhK5(owr)3ho5#%E$v%?scW(WUCvU7WJ|ok*(afPusiKyes{v*lR7IRM3*IH&}w@ zUrR2aHS%ZHnf!1{Rfp;aQRYlWw+0S1Zf9HTwxx4!z(F2lf|L}N5{45;dAbL4ujcOI zsQ-2D-Me!Uo2%8>9DeTY+jD`T61rBv*~HG+NNQv4$TjhoJf7}nmjzJF)KZY|GJVoq5D6$_3`#S z|0aza-Mjtq)`JtnMt&SMbYSG^(~$%5&ymB}b36O*4%ZH!N;X>flO_{1k9HoO&PbMb z@ifRG@WdJ+`XT;7yxVpn?6ua8@wL0vnc=}bBR&la2@FkndoFTYb+4p|OMe>|MMT8J zJpcAFdgQ1vxZmRS%4cjxeZS`vZL)(kA>IS}jw_2t{i#8oU1b1lCD&^MR zo^e$xEeJk%-{3=S^DpLr$bka}k!) zU0_NepQ@$6HrVK5kkdJU&AhN$6p+Oi*0Sp;Ha_l_*B-zf5MyUwBt6IT(QY?t!5B^Jv4lV*A4SD~KF*rP6seSa7mKw;JrFfB}do^cwCr7i>cBYnK z+YQB|*^W)&)IE4>t#5?De#Qx^BFS`NWj_QH;oltEJv)$%YTkB-oGQ?y>ZQG~+g!!Mo z%SgrS5CJuhs93d1MfM=Fd+?yhid8FDXcQ3~90{OD1^x?w^v}u_%`NSy=H`*MU-1W# zJwTv>XO)Vc_*Y~k{#8LwY1g-JyK*&Zl;f}M|H^Fpm-&nBU;Ih?K7HDkuU@^pp`ac1 z13ZjZrmxL;Pc{R4AF98eLwL(Yu@AxAHaJ0dGcnQ9}vcy{iv>?OD}e$7jKxcx*^$nTb&>cJ`!bipr7Kk^h)8T1> zJa004og!n#OvV#d@YDJ-$ccOz(4r$#)tZ?hZkUSP@a?QPtN8_oK#QZ;wmsWLsyL2z zZ=z!GH-7oR`Hd%znJ1HTL^04mwBO*>2zrhp(?hi;iAj1|LtduMN9J<)aN8jv@l)G~ zvy!J@Ury)mDsL_|eZbT?VrNUVaPQSn4rGx%hnkxxoQE@A5-?80JRChxEs&35oB1Vv zvHq&gDJh*-c{6A1OFE@~QU||!Wk&wDc>!+7^%wG(1v|P0d`Vi`ceL{8bWOND|K(1_ zr5%!!J1lj-j1UGlpJkhN?2wo8&YWRXo3twSiHYC|v462s#=e5~wK#jxHmy(LF6x!< z3XLK&BCXOWgO{TiHh_;G{N86&3h%E@`R?#S8+tPBMxe+^H%&nM+0i~i!?GL+359Y% zv_9q;qSh*v9y#$XkF2+9(+5LewENHBMY1(&0ADH29@Js%#L3iY^87*kZUsMSqWXzW zXzvHwK^kaqn84EO#{`)oulZzDkg4{Z`Dp&sco4h@nzSpE8d3qLHbSF8Q_nKN!YUj- z+-`6`w)Uq9@~}f)@b%>ksL2-h83U%y=3eQ~*g`EY3>UDTm!{iy)*Hr9W*nVbi~C>| z_7Z96v>wwz2jypr40}-$NThrjE(|)|xoKi&{wucZnSL8M`sUC1E98$H{PggtH$A#l z=vCc3vrpgF?R#|X7?j_|)ujZRz$)%RmEi6dULM%@8&A>op3JoJ#(PAhPIJqRMX5cq zW>JewzuCCqrLj-9?AWskB8A^W^~KM@M<`9z+-aN|H>y3p$y@&5<~HBP^T%g$$kxbz`;w*meCxUeRNyabR`sl2t5)SIxeFF9 zQkeOqHoeNSoY#LE-hAx^#+n=mi~0E_KNH=5SEJ0CSZr*+DIb1ZYegr>)rYq6>!KsisbM1^B>1U3@0 zRm@8?ak{jr^B_k&Y1WbPW&Fs5S|?tVa{jq^buF~m?yE2NV%@!jyt$#MAz6r`l&B$z z3|`SZ4(2mnz}INw4F=Rp&-e$!go#O2yqr^a+is_3tS4FIWznA(HR+lE)SG{;DG58P zKZoq3e=LkSqCxp`BW2dU?6AcSDJfCxIFhFd{$&yC&S18E&qsB*c?zVNs0Nv*7e&2# zEIyYGoZocfDD-s}f2G%lP00tHqX>`9q{t8}hTK`bxcTs*!|jHIvbmGC(7kIPR$lE< z`nTOv_?L>C-6r&nj?QGee@*igwib7ybAeZ~Q$qbS9>>t~OI9}-H(hHM&wbUF+j!Yk6E zE_6OoRgJVJm*PsQWK|eick@vA1PPF86l=n|p};?f4xQF+U3)TgUF*u#F27FPm(^T! zo8c5+$SjiE{SblufM_ zR93mZy0l_qamOL#%5}>!%SeHd6)&&jZVcvmEPijThmBJS zR8dA+9+W{u4?VP5$>v}G=I>dKPt245GJW!tY1(|X@YhzUSFe0BS5R}#i-?M&##E&b z{Dw84B`V-s>5xUGbPz8$N*XtzJiDunvfAH9Hn~~vP@NSk`lf`7s#}y}{J3n0notXW z%gxx(@D?ju^`6)G>Yd}Z7O9T!OJg+7S4vPdt+Z2qJT{QlpsKhS<#lw`6Nx_}l44tX zJiFb!*mkT(irU<7Sd7k!78C9BSJz{c%6Ts8_sd;%t4mM6n5f8@#(i8gO_r>!?XCKL zYuTnZ+rPf&*^sfjyP_EROSN71PMvXcin&$sy0p=8$<~_HbC#g(EZ$~+VR!_Yl*b2( zwc8R)paU{ii#rBI=zWCmSytDM>VISD@`?RsnLc_X8yC*%c=a13SViW7&OiRL zZd)cceBjtqVIx8#PF=k`cx5Hcb$zT~?IvvB2Jkm!YakM`UTMp=gO`eyKXeOpp#uE* z3@u{qfskMT%ObVk8cTLZNf>e<1b-R~bh*w!7^7luTwGMc+uf^{W(sKWQr+9PYqvi9 ztC3~9^{9P&)~o&NvgO&#am^D0LS{Gm?Xeayp=qsphy3a{Y;|H?d_cI1R&YosxQD9J zm~YZcLN3m9r!7zVRz(C`)+|gbXHM<`W;znM7qPPoCXAiNA8O3y6Ej9dMfWT2_O*1r zF@w}N`O1$Pcp`jA_^1)MBMM=@m-Ye>^5uCv>a|kro_Mg2 zjIHPY&cn{9p}qR_<&Sjca_coJ|Fv-{@~udY;2^b|snqIJBfb7=4WUIZ+k!yV7Jo_ zukr3@fPdFudqbZN9z2~H)uMl|ri_M$DnE@N~#9_`ug7Ena#s+U;;b$ zZ7*gXH2X|w%${yE^UxeK(%K_lTwuyD^bI9mMLRZ<9vK^yozx2QRyaA^mZG+5)U793 zpVu^{KK*>)bY^yd!&dY9?2x%U+FQA>>!F@w*L0A*ll=+CIL?~x_S_ka4&1jat+?xu&&>%_Un!uSr;==X9WwqcFW6j{@4*-Om5Uka$udxmETsP z#9zDl=ly@OiKE(V4o>RV;^9-0VLRlNJcUn(J4koWGkBxAVH9$}9v)Z|h zua+hA>+Cu7n>#-8cg*;z`}9f`Dh+QCJ7&^WR1B{c>D91rJe;*I?!N+?NR#l5ip(C)#&P(yW*oT&T;$Phtc?UM>gF; zV->13OZP(I79$YZy;tkl3T5x>oBG^o)V$G8fd}zJ;Cg7cSSZ#$;HKF|7TUXYO!;#6 z4S{{{_&4|esq0~ZTZJFTOXAr@4O_b%Wqo_K#+zsl{CnSNL~o*<0V??Q2i-BC>(BZi z7N8tu^&~u4OHrSKH#gQ>#gQk{Q(FrBdfF}ZDDd4_A8fl#_*Dn|KvmGDnk3r9GMM%f zo8cerGhgtWo{!V%7{Wa^_$Ni7hgs22n$OThG81}HJ|zX$w4+kkaBWcPEN#$PHk4!2 zLb3@&jinm+4O%YEtiQ4Tj`ny+tH5t(u|f0~zvol%w>wKXuI@TXL{6HUNjg*Ty1bwE znc@jDR!X~6BwBe+8QM2w*wB!Wp_+5|VMBW~?=g6A56CVad$5jpGtN!Pr9l=-E=r}8 zaD#&#?k?fh3n%PYUxw#E$Hhb-wS4#uwh*41>cU=hZgbLVtYUFr^*Xmz|V{K|l;X>LRs}#LI&t350mRvEuyUx=)|9J$z&yJ`%~zbAVS~8K^}X z+_48%s-dq*#O*-QoT}7SD``|aiE;%MD(jCxn={^&(;VD2B#eza$vt#-;oM0)Wj%cH zwrvsW5c5vff^qVjLe&|n#c)8JPuQ~7(qCm}#Y=`Yj-GhR$ERxjJf{qsM))-RDS;c< zxxO7LmN8$`ih~Abi>NW|j@Bt1T9z2DhD@LzRvD%tffE4r|I1|`ICzh3e{1hEMY23I;(c1Ixs* z_7JkC_N|BN@**_iL6llXe`PHxdA=+&n4GnEUUktF?}46qYYwlQ%pcCfA6D#r?LmHd ztA*8^ypUbsRoMkRKNPpl!QoWSTrBr{byobWY=5&txpJP#m1kRgj#-$Jx)O;sf!-vw zzep;lG3HFVBNkdSX|2dOXFLRoZLZM_QnxRfJax(9DN`12s9n>$R_$6fYO(yQ=gnQY zYTn#c8}LGDBfLu5%t;zYkCC=$ z(5{n@cDB*CS&eACRHXrAH3z&F6fu($ZnfzG5vqt+6E|e32B#|C64b2m5=3S^)!$w{ zsT}NCtw*J8E2eL_e4y*FN~KGbFW0)YqtF(*l`KXH7bi3H+;$VhYFAwB_0l{tC0J1V|Vs*pz^y1XURwvhDwL7Px} zsun(V&fM`~=1y?Y$Ym&swMh6& z@>xMBn!Gz+4Zea2&SwRt=k2tw#{=AOt9$V}D{NM3Ol{d?PbWU7>2z(fpb~OZ^iMIINC76 zLEr1cPo>(9d9h1Yn2z{~sC7XlXW=eVZAZB)miI?d2=4_efb+0BDAxV_^B=9}*3c^c zx`-WiT@W5SdQQx!rG`HnaxcERml;@zikRYdPZriB}I16t%Hj9jHBmzXf|wKC1SJDio^&PtteZP;6Ys5`F{n zSFp4oPtVg?Em1@(%(`6TPKWPYWj)#Gi4*mz6i}tgK6ty>^egm4uEX%FM48A8{x#yD z_Q$U%&5A6Bvy3Omd%lh)R0w&r@^Q}@#je+ zMtzMOK5F96`J4_;9xxt}c8j%KEnDD~S1Ot83!G=7^_PWP!4DMepj`tJ3M8(#qe# zi-fN9R?NtKr@D$bU!cq(FRFlmE>{C!7M(DMF=@3espo2i8>mMPT4j~(-GTBuCL!fMm{?9U%UrS2?N#%h1- z$HlsgV^qrFMqUXCqr?lqJ{Q79N!Tch+SLeg5{Ak`mEjYfHcI*7_=N|j4Joo$g zH$Gw>B`J=2K7Fgw7cs_p%9VObjX2ELNlG^JdhvaNl1Eqc6ZpP3{`bWGeI_$4vMQaA zYG0sh25}nTky#|BB2iPL+wN@jH8x(nprQVHkDk-GpGV7!?W#K!^k%>N_;6=lqFz0+ z3poa7USKZR|2^a(Dg|}SAhgj_jZy2ME(zsNDKLZ--}hk3vSqB!vSn%v?O53X z=zRlAHN3@a{La_!+^RvWo7=gi-B0+ms2kG?vxjKHj_6L%B`1vdzrKFtjCKyKS@XyB zCeymP)*b2}(evg_wJ-7~C+!M6bERm}bNLDe^$f%-NZ8Q9W_RL)Om7TZ;4>G&O5%+j zjz8)bw^6zxtD(0Nsti;jl_5B}9fyqeX{Z`HPg#imh-JmL0;7T@7B_cKtZWpKa&Q-V zZdcMX-QRP~64519{_xgE`cSh=&L{rl&xb*k5_)iw2f zr1)bhLDd|>!&SfF5hH>ldJP-a>rRX275uVmIck+^*2MhV9sg#{{39B)XwhJ4Ij?dR z+XQrJ#YTQ>$-K`;MxN)VjKx@y!5cOV=8rd|?orFTmoBqGYcg2;`BGgrp?4`(s2{`I=vEQL7F=;=r)1U)*nx@>pyWYBC#A4(vC+}V#nJv| zy`En?lIoM{r{^qCx^dUF3#YG9e_=JtRjXO0Y^$2*&!2Cq>#D9BTc=h|t*l*s@8w;n zRBWs9^T$rD>QTq5O7p@s+IQ}fWNxNsnW+;mbT{vYBBb}tF<)IZXZXZ)dY85rARoh|?i@7e2=AGNtv$-SKhkot5_9Ly9So;}u|i_u zRh0o)Q|awT>syt$*7I-ge7oDL5m61Ip+oI&6l{-zB`ZZ@qwj3hW?=W zW;lQrGL-LfDHrMYuGU0D+ah6mk;|cmQ>}Uz`3G7JM5$RuP736oA4%5N6<@Ncu3`eE zTVgONS+hr#J5#ULen`EZNJuRBB$CXawReM@!f*T9?U6 zwZxk)aVl0U$bN`^Mg3&F2iZB}Te+Q<&ZTD_@d@gdt{$WMY14v*8@KwkXx4B}w?;L_ zmM&g8q-*2y)5{h`(nQ}8Bl}dTUAqd)**w(0iff^!Vg8j}MH@HOzfGBh4YIXiwHK}k zB9rGV>mBA~Y9s%q&HXngEn2XVM`dbUr+EWYd}8Z*%&@I8j+J{49ooCVP&HqnA_cm) zXz1x_f{7FKucKsOH0V2g-v@UOlZ&QoUAScP_J%E+`S;$l0f#HShY#;vrB0nHmyY7+ z`27g|xz^Em6}31a6K0~So$jt4)qc=@tt0z+=Z>ElbNlH)hq@laT??1$+}5YmIM+gD z5oww=OMCTu-EO|+3gxfc!>2rmk$j))S&XQ6FZ^d01L}2qRJ1Bc$M-vAxI5=9=DB{G*AD^}dpJRaOx zh6ZQN!o}Q=;x}FN1)8IA@egH+t*YjDaOJ84yIXZ^->T-3Yba1k6-d1sH}-bCPHi$} zjvmS;8naOz9`eUEN0&Lnq6^(MWVi57IGs{S()uQSCRR`M!_}D>63evKffs1c*@e&8 zP4XLEp3!I2hA3`i|^(y)@T8)Ljh3&E27Q0kP ze{iK&&iVP~Z~QNo`?p^|Xza?EJjpqt!ebUK zo)kQ|*jx5!MWYaA_%-D=Gald7wd3+JA7YmmbGotJ-Uof8>;t?T;)o6&JoJ$t%wO@m zhVcU~UX+3Wva=K$|11{xuxI2AvDoBfd_w++cFArUQi5qDx zd+Re(pYFcA|3H_H{W{y|>0R+Vm|WOLYF%bmvDf{rXZE}o+k*|(ObV%B}ad@6f&NWN~jh_*<09 z%@~1H3;kUFUZ046V|<;{?eg`B$>w(&gp*54){3&!$LQ1(ra@DoTYXUXt{28ku7_fO zDMw9#C8wk#n`fu@;xAu3=Py{k7tdLNlvy#c(`UxS%w*4>@;5B+)5A~j#?+f9Z1%c! zvyaSOzkV)ghgf3t`JkQdon;XQwa$%yw9u!zSA1e(wJ4tq&CHk?OU?9L4KGfG|?pfPyTxqT7%>M1m^>NCTZ$S07?K>TB+p- z0V(XrvHP;+ABcUJ=04!3r{|Jy-hG?gZ(vy8UaNll#iIOvpC>1?so}$hGVeOgovSWP zSh(lN)_}lfb$l9?^jI3VeEYurL9Lr(Y-?d2!n%nagqVleGr!~sDSR#N&tFKbs$DoH zbRZghjRGF6ZsG;gw8|}>4*Dqm`sGXhDtQ)0PM>Mca^e2{3+mtIEQ5v(8$=I#F=1<` z{nJ zpod;vTZ*4OetuEA@SHzkO1y@yna^qwM~{xwS|1xib7UZFd!Dp8 zB90McNY6S)Y_~u3Jm#CXc;5lJE1JbVw=wKTRuHjf_1UqaQy`%K!r)T?ZH z`})mVbncPz?ChaSWl)s_95hi{yDhUk%heh~EFN?UK8!C$iz zLkb^uRCGjQwSyw%K{W=p4eZ<^IQhlSU!HVpAKd%z3p>BO@7J+w|Dc}x)r~Ei*6Yx$ z&XOG)R<$1I?lQUenw^_A`*iHupmR%MuT`Z6#w9=G{11QK*}>hUMXpD-J$IxdX5{J!VIr& zy_>d(?^PGCQw`%*wCpu*=GgPh^yEnFgSC9Mbv(6qkV8Sbdx#r7_LEoJPKks-6>+h9 zlCd?oooZl{>Gj=f3~V%LW|hh94xRdV;gp#nb`ghlt70iFYDev?l?JHM3 zzGKI&&*xd`OCQbis#GW%F)yrbm!9Yg&EYO;hq~Zrw@rSyl`rDl5SdiVw0D#9Ao@fO zyI_hv3XUls>3jCKPv?&Q&CTZ<#reC{i3)DgyU^gyo%;3O8q=e5nKBo5ZFunIJl}Kh zS;74Kobs^wRm;>HIBQg^E>WZlIGtn*wQ}j^%R=$)6}@^z-}eV|H}U;HbtP@Ss5gJ~ zp4pFHGsBs#<)iu<^!|V53rqYDZ<(=Q|La?3)zJsaVUsq&+0#{Rn8Kf`IrN0J{iu&2 zmX8|4{@1q0MmVpU*AMsDQ>&_Z`2xqn&B{$)khp2?!Nbjcn)o%WU8inN1ewmvOLEA^ z)akLYv%?2xD_^-zt-6hi7Qom>fPNPA`9IAKI0#-D<_3FMt#5_mrCU}B2zCvwJ7wmc zML!+5G~TO8?$-5u8~bVHay!h-nX_YakK!dJj~F#SY3AA48+g-Vg>yCS;!~|=T`_jB zb?R#Li{^$nJEsDpm>cTq$stGLI`L4owK_ZD;O>~1T`X(BJTWgw7CFG{Kj#JMB0Uf! zG%~|nu&EUZquS396!{VFvYHK|^?zS_#W zbD<(V>J1t-YEZo%MGAHH?jIS+D^>FLu2j*>i%lt20mXEyQ~^7X9qG$Eo9w=y7w|&J zxKhYBRE;Y3kW9XF#3W{tYIzsOMe0*qoRli#N}B zFmAbn!z?5lJGd4t(4=cqPwz&uT^h5JXxHk)Q8P3|WFIs7a9YWOD^?sluwwb4Bdwb> zY1OJ})vY1gWZ>vnx2 ztLMm%weLKwT%*!G{GdVLn`#*6!+Jq;7GrERKcZNnSS`}LG8u%VMUG9{Frs%@c<)gt zKYZ!eui*n?2J!cIFY$LNv0+iMLt-{)4WkD3j|}g&_0f%Af;LtzzisG+M>o#&96EeZ z^dRtzIjhSWal!*aJ~`Y^oKIuJgf%X4-@at?Y@-_f)jXL^)|^z+Nq&gcU!dJd?Vz@2 zm1zu_G8TNhVcy&3wMO$gw!tGoQe)pMB!3|=;I(yF?3!6)v4B0rYSCx5W+$+ko`RED{&u5UH7 zW`!Dk8_nNZds+80zgzD7!Jo5QyShfZ%o{dvShV3(@xnjnFLeKesk%2$x%~uRRzdD< zK30OYHaDqPBjnJ@ol_>RB)!SPo9KmbMpF^5tTjicQT5d}D@0LqTyw`5p}W z=1KX>J~IeODGfMnQz(UOj#UC6)0O`{(_0WEg#xxbZMtr z?)8J*D#!Q8x9VJ$EZ-hzx?{sibpnEG)$~?(H4X`BoUdu`-c7~$!31cZFn(mevM>$r zlNDrQZU6LnwR_H#obLC|nBBEg`k(wdugcfP#j)0Ej+7JPw{>`P-A`{qneKV2ptL)R zN8~~EYLpyD$QE0RiVW_wCgKQ`NO^2VRP8R0KJpc(3f3;0%OR&JkC#*Ah`PN$e`cfC z74B3kTdACCF<-sOv`LrPC37k6Q`^s=o;DhpVg66gxT0lau?+%rb|6z$j0xTKC6Iea zR;ajp!ZvU6`-#ib|kFarKip89L}n3OkO7NbYSgfcuVkh@wHFAp5HBFLE! zCIzOI_Isl76TEG~zBRY*L}|b`{M)lLnX_dZJFi+eRcY$pD36QdR74Pu73x@F5&yQr z@g2XUb<}^TyTB_w9R*w-c}O%kTMRehs&mZl1c6a`Uw8Q+MPdP~9Z)1~3W}h>bVRD{m1) zO>_Kllh_GsRW(oPrfHcnXVa>!2;Q_Q<<-WZ-aR{|+<$cScFw%!U&OO; z&BiNNCaoUXwqdjS^Yw?4^p1?(Y5KV)Suc&m`93?5a{nX@#? z&U#YJFxCW>P4DyLs6zRf8B<@dLX#$po64W*#z{v#%~SHIP0hOv+wSt}qlQGpP`~7x zCl#&pOk@{0V2_H^XVrZ{O3FNh{)(F)sKNY#8oP$O;;1fYBm3JtHC60?#)7X}$al*Q zLh`px^2hAqKveN-g}S;$`9OAu(@@@M>J(W3hbIk7tpz2moU z-8*ZZJR_ypN92*(8n_-K{NKZyXN`Xfue; zN3CyD;f3mj7`Kb?7&!b9v=gznr-EjJFWY z{vXq47UX;AWiaOCAG!Q{T`muG2G3BIYx(jNuAf0j?YpX6XOh;fBVFjwJ3LO=%R1TNJ?-!WWj`BWhiA9LLzJIb zS37*R9lo43V>|8eLpC_Of!v}}fDcBYygPmT!QQy&59;hhHT4KPmW^ zaN=LWqu40Hzl0P25*~+_&53^rCq5-SMCn3&S}tJV5(Is$FGSxmPSD>BMW0|I`VtV6b5RRf%y zOtgzwUL?suz`gA7D0Y`c*x`Y8c%1Tph1uc5?eGNUAscIl)3{6eA<6+Z2=Ga;S?@)E z5!w^&I*I;DIQ3V;qu3=OPYI{~N_d=t5TTt8^;g0}lr5sa6zh8{!u5q*t&Tc5TF%KY{9!c9t?r8rI%EtUkphZy$Q;UPR#F@jDs#wDweTPr~) zp_7zb8;na;F)kE8qH$R+_?K`R7YUDI?ZmhUxEL3LqhFomxJWpSi-ae1Nl%}~MZ!Zo z<+$K|Nj;0`ZwG6;h_!-G38(%_cob`^=yo{um*8l(qblSn@u|NO9#YjP;JJ8HEmg>^ zi=ZFH@(Vf=PWS{jDj{DazOa+VzX6waGECXQ8lqjPpSu8;`W9AA$lq#LX+BE)csw?_ z$%bz%XvdEa?}v8qCLV8XD2275AnhWN$zdiLY5T*6gzromWq$f(yt~P8-4Ojc4t!})v&fs5qP{n}%=3oAZlk`4k)~q@8 zYVpDAc7Axey;t{+y;44&JNDecu|x*`8lYlK+leK14;<2>gkQ;q9XG}$Yzk^0)Uw`` zlZW>5Vhx7ZO3$xPq{r4qUi!u$leRyK9T7G!0QE&b8Au1^T#RC+ zgbqr4lD))_Q%(q5DDZ`D5(Bw7%43T3h}ykaevO&gN4re#AFH#u$MN)IT`#gS z^c623LoYk=?%HSE8!t_35>BB_9zU1`ZsG(o{Y7%hA$CSkLAzPBMHQBzm11pW8O~KYoW7$m}pFp)dg9`VST0bxGis{XA(NtSm4JsOw++XOp$i{c;!!a z%#Kg?LgL4dfV}{mbo>u7CnWu4cyoYsR?ru7g79e!^GKaF|DpdO{3n5r_Zar@jW&Ga zG%I}*Tf@pL(SS?8gw}P~X~F*sv96DSE@v|Z1Kz|6FT@68T{!|HHb?j|(!WWt)FnU0 zg5Z%FWu!SVP2eY3N+^z2{DnftC4QKtI_bE;A7Mza6Hu6mv@$7kmVH@ZWzEN3`l7-}E;dsk-yfHuEO(py${sa6~(CxM9 z{JCW?!Zar~qlTOZbl>K;l~WP@0(=hEk3=zdiH=EWroyuUye7tFhp8^;mlN}0* zpUp)YA=wh5|3dWFiqB@*ZB;t@(6@u;8&>>JY50J5Hg6? zJPi}J*@EGR-$VLfrDK^R`X&ABtboH7fuAttSHY+BduY9v{z_O|x!y~Bn!gf19#=|f z{z|`x<}cx!u!Ej~dk8i^zPlYik<}M#2;p}!X13!eDu;z1N#p)b=qFC>g?z>fequ2$ zUxnOIQGnpe7MtAkcS3FgAMzO`~!B|l4R%l>*o->`QFz8CdN(5LxW!2CjuF!%u8Uc#0Ad^_Nts1K12AN$pX zN*2QBKI)=0d}Ww&N!Sf=q3;&*7xa~-%4#A10`PGv8ogkDtn}GULnY9W`!3?YnvipX zazpGJg}*EK?;zxv(AiPY7x=>7O8hY8qVOrCe@ymP;)k_)mxeFKOXA1lW;@vdNuTyz zgircBUD#X65AEkA{&Ln=?B^wZbvyoYnuT9Z*)V^}R(QjeR^83u zcUEXyidp{FuB29qU$iJ*yMm^aQSg0oA;li;I{%=}AG~_+pnc2GYU5Tp)vAm8?l_v< zIjGYRmz4Bghwl)N=`5h_oww>_^RT&Lb!urjzMU5G_rqj3DB=jn!hoFP*aETs!s9et z5&ODMR=5N0>qHLCTY>K_;rIpZ!{vVF9pu>saLlj5a$h9(;pDeS{19cRkbg($VWimq z*AjH1Sh(2#V>W0f#eON!3NI@5OW)%!L$VvzeY#1T0e_kDR>=#v#BYgqCHpKOI!z`L;)%PaI3`I!g-Zy-48w6w7d`**l4mkap&fNx~i%Rdm~RTy+O zk=@NcmWTg?xYyzli7)9Px|% z`KetCq^ouk^d)|rrHB}>Wq=P7a**&4{zZ&C=;#xL+;$533Gi5GuO@ONX}+*svR!4n zQpOH{YllbS#Xvhg9_W<#7?%N<`8IrGWjj0}tY#YA@S7bT(g^-0@I@{k#e>*>YrE&g zIxgW4?eHij<6Htx@gOTc)<+>{iGRTg$GG=^=72uU-&#U$h%Ab6sh*}+hMmACJ;WX{ zLKFB>-wIgaWVhGjRuJ;DVc#e}ThxoE-0UA1Id@9icGlPnBx|?IVB6YsX(iIQD%dToBt@!+b?B4H~1Af)`q{(zSO%Y)>)yru7Df!TH%m)H#foW_xQ_LS*5xiAA4Fs z2XwlwCiAq-YO(H(i!?dP&h9SY&OZf08fihvaK%bJ-7)N05*cW)j9V zE-Xz>LB`U+Cpe93qB6oNrywD3317y%rTolKa7Ih>U%=tVg!0X@U45jOZ-{JzP8@EE zk$r^UsYZx-wMD=aEX8P^2>4JTR|yZZg^Re<8kC@~@4c zcp=*^=tnup*vKrTPa|*J3J1ROr`TW3f?kZ!;jajMqBBREYNL~ek9|uMGwrW{kGFP7 zFQk2mV$-A@G{2*~Z5teP#@Xn@9?>{T{H4koVW*@$Ite)0Bh1gfc}0H(+*rm6r*T}N zj6}NxA0Xr@?N=h=(`BvvG#32q5%P&*&USu~OAR^#4t@&Q`DrZpAvoqoEvZ)`7h2fI zy;eH4g?$uoV?NL!IP}d&j!R2aoXnI48uq<34AYN1=!mfDOO}uLvG>Ym>;m`!p+_57cFSwPqj?YA zDDZ!_!kq;E2FN?w*w89(qq0G}CHNC>*BiS7ep={DQhxjnbjXJG*K4Am)5T{I8^K=Q zNU;%oKM(bTiiz(Bi_gWO*B`}aj0nDW#%H`81^mwR*>V!?FELO&T#k2$rMR#OqJ443 zCEE{iHHzQMSPb=B#$q-w?5;sq@=LK!!iWB`%$D1L_rV^cys-h`=OkQpw%i1q^k;~W zEA$2U*0W*(uO{{?a?OomV^|m177=Se9*8US2Kh&BqR^wgoI%F>CSvcZZ63enD_-|1 z_UZ#Gk+N|1oHL7d7{#AVLY}no(Wx&_8NWrUY9X9&p`&zZS*yYMKP@Nig<5X#0P#A@Ob62 zh!6ZPa}DowV+`-{($pcA=89P71J9t%WV(b#yb(`vg|1JMeO;-Jn15M`)=M? z&!n-Zu%201&zR+Vvtp0`T#hy76`idTj}&t=(ykt#VTDEP7!|bWvn2s`{Rd~t@;)?T zt45`n_}y&CsJDT1>5Zh%YLU+<`4zGQzgUmrTgrC)@Zq3{Mbr@ZzQ}c;*bznyF%bBA zN+&D4y_okBpJK}rKT4e|Vg(W(>!uYyO3g0%CGoS{@k3aoh=E9aIs=yULlCnvqFrfE zDQCi4wyXRu_>nOd;z#oD+ruFG+gjHd#g;`?2>iaama5hjpLOv)bX}wO_T2PBL{BfI zqGjM=RnS|bK7^anNVL;Jy-aX%hA_bJ3hgWw@THczmM_4!)}&L7tdID;m@C2#L5pe5 zs`G>#Vj<5Vs&Xoa(9z-fIqDJvP;1>J6Vcns&nfJ5gAj*&;skfk=| zpcpp+4o>0I-Q-slvWxg+e3r&H>K6;X32t(>!`+oe1P8qqhUGSXf0)A~Z2`$!+5%r> z)6)2hx%Y!y3o!?UUdTD}xf!-Jbge}-5+H1*67^21eI4eFoK;Cane(;CjPJpj< zx;JZ&em({~zp)D7juNijR{YR@8{Rb21k736I?_d-BIpd}O*2o2owuC3ppL+s$Qvv_p zKPb+Ftm`IxYy9rJwSex}n5GIFdsFl)UM(zatP{pBNX)~R63*5L8}|M03qqcy#P6lP z{Kwn|v@h{#o=JRL4w%fHpm{_3h1iD7$&oQXFr zEoxaC?_wN%M886?ict(m+VEDGpGyQ?saIqd@tOFMxi?mM5&u$NA?%c}6GC3X&yey8 zVJ(E6Xo9t6l(1W3yx|{o6lV+K{cB-gX}m$7Bm+K#o{QML)blXqsff)>eNI5Tq|ewZ zc72zIFZ>UQAEKNV{78JVTM|E{j#1!?wNdaR<}2Ejxn5#z67wZM@?*`tvA)v=dy-rH zzBT+pyrG8A&@}KXzBgrpJn=o|3$@=7aDiud4mj|rf6mne{uKQFw#fy2{b9wQ&7y!W z-s=_Zf0g(-VFv*hzJ-v-uL3_zStR5k?JUVd+SxECDG%w3(D+FF5M{WKhr}m&NPJr^ zkHl|k$4|tqSUP(EzFt_IJrKSLk(9AwJTZ&)mqOn6to$Dr_(8DW55@R@ko;$t@+SM+ z$&?*-;89iuI$BoWFMr3v#P2}QaL%v?-+uwzU74oChafq!Vxql@s14s%*yEZ6XK~tT zAs1)xhX)G5cV`J#&kHz>qbAmshT?Mt{N5~ne@Ei!;R0R^aFh7`pH{jf1iT<$lfnM4 z*HZ<&8)`+TxBu&PKeGSU`FsX^$oafh|H2vpE_3fD0#5VUq^#AWMSlvSzjaKjZ1`-I zvXkYp;-4^5E`gZ;Y*qDZqFt|;e>kEf!aOziI@{>s`I4?91%?D&bu zNzH1d-_W?gPCv1hlo#<+%JhdFKLPX|?EEL%@e^uaNt2H_TOoejF<+7MivDGgldzk_ zmz&5%q;Daubo^bix3@xh%v#yon_+KnMM#b`{7g=E{ME_}7GuZ1X~$nZuy#89CU*Sg z${)UfRMap+sKdH|`KkWA29kD6ovi+m~bjB_F zPdRPr`@e#3rTig$FYWbu{irw#?Su#9k?#Yz)c^JR0>PiO@1$Q6f31E@@F(oEagrT> ztsX1%QR35CsKifD#)>m2iBJ9m(MK+5y|Om?2BXkNfe(EgCG-*a`Y9vP5%_FX&Fh3u zIlx$NNFOEsN+nk4<8=7NpT#~`;;*cG-$q}bY9f7<_=(6dCVeFOjf@NJ^b_m+V#gmM z^ikp`fIjJ?F>rdu}Q85xJ!_9+0m1J=Sy8$wcyn zJn+q0En3JIc8Ps8QVzp3E4+s#8GK;;*k&<)5`VomMvUJ$z~{j3$Xpt6gB&|2Z(NY1I>l2;LN&K~j;=)eK{W{qbiN97~D(ng2_crab z;bZ*niX3sme<b0<7rSiAO_uok?f7dAg;-4+zLCa5;;+@?#dt{kc6R&(x9P_uz;X5uIQ$7Ar#wP$M)5Uz7O|dnkZ`?$ zpfd^n*L$Jg5`V2Buh4Iqi$MA<@z?5cLcf7;Y%2Ck3$1dyA@)naHi_XC=O`B6F4{KFv3Yzt&LD#*d-2m~Rq4BR^z^Bz^+)o6gh)eUaNi z_>iY9w*xO7HZ|t5(@Q{of<5Cs)zl zy-V4Yx+pTHMW~BQXtS6o{oJ=|6Ph(+h2J}}Osu+}53?k#S(7?x$(DL`*qz$Gmp0N` z*amL~QQI;H7w@#Nsj4q@%tu*j8ISK*@Hj(XA*=G#cNVW>_XPNC9;YV?S&3K%i`QBU zIN|RU_|SEM-%IKw@OKIPw-T=P7I06%)8z@Vc(hLRUGNUp6@mX=;+lLBFPz z&TavB2Axa-zq5p^@Hr))2E0}WnG4?){7au92>9c5Z@|fSMZdJFHhleMdVCe_gAVYu zhw1Uz3js%eb&BWV9UMtVc_!c!f!|#4^V|wwBjEXYoC&3?fqzrNaTlHFJMlQAL^ADZj+oE!Omhc?P5wWl%PgP3FXV~4bKur?M+}M89_pkIDeKp3i_Kj=&@DxEMUvY0 z1P=t71rj4!i{GGQ@?IHU`Epi=b4zl3yn2?G!4~H#ugI<@u_GtH;WzM94E51Y-n4dT zis53Jtcj(zSf6t1R?6wq-#4ic`X%Ncez(~EJG0O)G5>(S#D;HbA@D1L9_Sce z3HWRtZtNoP|B`V1lYmzM{l5ji*js`AJOM8TxFYby-U{^NEhiEC7q$>`&M9jfLBMp2 z6v~Hdud%E<%gI9roG~R|9)jvdIn_7nNwXm-2iMfBN$NMqRlm zH22Ut-Ap;Nlpp+dp9K+QtBRs@W5%ir%>7jt^L=$ek{W4#rWQ2M21(Gg z#*}R|v)X8)cqsS^n8zycH&?InSFHSuu_!#2_taVD#Gg-Qw|QwcnonT2lh}TGM}qr< z9L80gJs}omq_Zb{&Ig_c2|1Sn0_A1JaLS+m$GaX_KjOg9O!UuQqgTjxW(xk`G3irZ zTfHKl)BfZ~j`S?$39E&B4`FN`+k?AoPgpYJYBseNic$?#x2e}OUGvj|wImHbzOL(q z^-6jpeYpO{ki}5XFvzgju)}cHz>WEgC5&~9fyM#GImRU81Cwg1V;XAOW;$tlV&a+H zGBwK7J=4%k(=sj2l$7asrYo5qW-gk!ZRY6AJ2F4Zk|j%vEQ7L4$g)1m=`7c>X3JVB zYqzZPv!2cRB3ton4YT#jHZI$yY!|ZqojqIjTG^XqAD(?>_C48OXU0yu5Gzq<@)MS+`-Gi&mq`hkVCw~dWQoJ7aShs&XK!% z?#{WBa$m`lB~M76eR;0sEt}3|e3P$4zTkZE`A+Bi z;FQ~`p;Kq4FsCU_3!Q#;df>$K=gnU;f1~{E^LNi5oqvA*mH&^uGl8$7I{W|3IX598 zAqioToe0Px5VDg1B7`LDVGDa$LUsrVhTy{MYmriFEv1&aP^xIHMHIoch>8#?ilQMH zF`z~v5$?T&%e^;Y5jW=loh2k#3%u{&zV+?vy`SHlGc#w-dCs$)WoFK_d#>I7b`|Z8 zxBIGnO#3nIbK2kD{=xPK+kev`zQdgzc6K<@F|6aPj_W#Z@96Fn*eR*g+D_X$IXidh zJh}6&ogeP}ahJd@AILD+_{$}so!LD$D$zx?`j z*Kfc6;Pu{a?Ybp(%j@=Vwulda&1Xy=r>5?w#0sW$zumKkj|8 zPrp9teb)8ad!z4-i8rph@mSvueN+1u_ubI9s$aW)%ljSa-?o2R{}uf=_dnF%8SWe2 zHoRwe>40_vk_HqHcy7Sn0Y@T~h@KJSB9=tl7x7%gdlAma(8wW?>mrXwiKwusF;T@) z_eULy4v8KTofEw_dV91xrbA3h%(R%Cm^CqbW8222$37l=Jg#Tl{J0Hq2L_6PLk1QP zd~D!>_`rYoZyO&L-!DEfenxy@{POtK@$2HZ#~+M8n-G}LE}?hA6A3#K-b?s6;liK} zgQg8yKj_Hd@WFY!-+yFC(2%epQA3i3OdGOp$fhBChg1x4-8A&3f}8f<Fv2z>Y{bwJsUr$U+%sbP2v<^%r1YdEN%ti^o%CLkE7_LZ zAvq;^TJl}VJCcv2h?Jozvr-;U`7FgfvhB!;Bj=C2Z{&L;?W4j+EgW_KsK-Yg9OWH- zpOusQ>#@sXJ;MnG4Q^%H!ePQgeu@}d688>L$jBy*r?Hspv+J$d`&J(CYi z{&=!|a{c6sQ<_g{JEhx{@F|0)q)eGSW$u)PQ*NEIa?08%8>VcU^1_r|Q}$1(oKiEz zJ>{!3-?Y%QE@?NW#ib>trKZhF%SkIvyDRP9vemvDawSMZwX@jQSI&I~& zwbM3C+cfQkX}hNFpH?}oW}182SJQo`hfeP@{l@8W(-WtsPM3T9Oq;P_M&XR*Ggi-7H)G?Br)PXN zqjtvmnPO(p%nmbq&WxHlbY}6)yJp@y^TC;q&)hci)tPV2teE-P%-WgfXNg%svpUS` zIV)<`&{<<m6 zcFF7&v)9aCKl_Q<&&}RB`|a6>W*?jFntdVNmL8JcDZNK}zx0^&A?Zo!<5(CkJv}SE zAiX60&h%C3Ytq-JKau`i`p)#X(+{N|OLwMw(=W_X=J?HNJtu5Vzd7-9lIBdDlRoFc zIUDCZJ?Divug-aEPQ{#$=hV!pol`&O;#}XkL37*A?J~FL-0-<^bBE4NnVULy*4zbi z7tXzZ?!$ARnETw^opbljeQ)lOxyRiGjF&QYX6(&4m{FDC%s9J1SrE9O-GUwqA{Go;Fls^Cf~*B43sx*xv*7*(k1cp+ z!Hxxc7aUwrwZOUHY^IVKnAt9~M`lFkkj!zJ>6v+%C7CNS*JQ5Gd?NF?%$=F;id`?o% z#GLe;yquDp6*+5i*5^Et^IXo(oVRlh-%?r)zke8BIoVO-#Q{H=d_4y({G`~y!jrno;iTSDdv+|ec zKb-$ozB~W?La~rWcwv~)ap*I ze)NM>n?F|%<-VmESCv5Cr!wP$_&h5vl^*IMD{fOdsK2%1K1x5Hqczj}a{NOp-b@*$ zdaSs=5-0{(@c^Z@(7%DKmm8?`6cem?3ng7Fv*JNYnt0!ehbV#a1}ol@cw|aZVM$n4 zMoC6kX3>&6it}^xO2S4K73CIWhebt1Mo%tUP*hUHl4JSH7Mq6$nTG~7o((fkPs=V| znqO2H78xED5fL33F}O(v{mmrirD6F?!!p83iZimZ7iSbN3M(aA|f{*s{W`?BcMJyzH>yOENMEtTX+>8VHFBkH{-2 zSu$wAfZJ}nEj+_W6<$=FJD|YKW9fi#qempCPD$=hN{cj;P9;St;>EKPlp~AJIFx`e zC6i-IlslAS9^cO8)|-BIB*%)_D^Rl8i{de}NM7!q%&`Ta1dQiQ7FR4o&6=hjbXlrF z-+OJ?Wmiulr(#|+%O}@DN{d7l^%5f}F_P`ze?US1%W`Q-TNrsQ&{A^DCnud!vrL`(63Wx5AIG^&$|_`E=T8{? zDKttiCSF1wIzNZQ?+ntJdzW9+kMrNr5{M59Vr&}1I4%_b(pqVQhq{hC-tC!<>&TO_omr2dE0w&S?-+Gw<((UtDeJ{N zT_3zoU*2);Po)M>-AG7`=84u=-j5r|s(J}jd@ygz+{79KH!H(nVj>kvqB1E6Zxq!V z!_!0KP>NKZMw!SA`DCh^##nwDv$HdJ@@5vZgz0?0WUev~KbgTBx~q6X>2>BroqWS& zEzb}>qCBNM!TUo}`8i&)UO9u`d`P*6#b-ZL>R6}ZY2_TVTj!1ER=f&Nek;FH9^+Yy z9o*S=lygV=bCzrM!<#;@`YW4Q|1CfbR9mo)Ww3HYsa8H=-t1H57?!GU$vjw zU-=^+d>X*OI+8ccqZwYus&TyY7Oy6#gVe!{MQ>t};G5N9d^$XlcR`cXWHm({sgC07 zrDN2wj8w;~spZJx=1Zh7cjGx;|4cJ&T*IcwwG$+L=g@maeS>fP!} z_2=p;^%v@D-YLIF{gryJ`fGKK`Wtnv{=Gk*;9jTxUcI09(H>MEQrD}0P&cT5f`F4)hBq9e3Sa5x>8}|+tg>(=hWxb7g$T^CH1e2yI)p! zsIRbG@N4Q$^>uX@>pGOGZ>W3Jzo~n9#^Nn?pZd1?4ogJ6%lGEWloz;fe1KicR1v$%)2CsL^%R*xua)Q@;>>=U(0{gmgX zHt=kRhiCEEaToJR<+t1sd4QFQK2wjX$N1=GwOXTo&RoC=)y{%mPW7Z(tDaI_>S@)j zdQ`7k$1K4a^{jeMJ+FSjdi!6hU#VZK->BcJ7x`wTB2*!S6gJ@_d_^9U zZ!7zia^*d~Npb)u`hjwgw+Hm^EmbOqn19XVIgy39o<%s!0;Nz4#Ub5-gVNpmGTh&- zxUAci7-;+Ntc@hfq!^0o4f__bK099K?=--xy1x8gqWJF!muUfeGp5D$un#Cq`uu|fP% zJS-j&8^xpIG4Utyxbm9#vv@-MMQma&+aaD5o5fS&X|Y8-Besfd;#p>go)<5O7sX5B zuVTA+S?mz6h*!mHVyAdr>=L_0sdz)|5q}eV#hc_qon;rlrCU2K_$mQ}sYAk-w2^%+JA^D-Kl!xUJ`H}os zej=;nr}8s-R378&dNuNMd0d{5cIl8#c~aKOQ_Mu3mTu{hURlT2AkOeP#&hyKA5Og> zzm#9eujM!LTX|7xd^1hu>rawdOCOuBtr_=){JBpWU<y3MDgsIX{hi>!ReSxP5e-}BEXEGo$^$j;C38JV$oafVM)c0oyoPg-7fNrvyZ zjKvGGGQ^C0F)`m~N`CI*3^_3`Urt<_?~_rmBrn6ZfK)!Y#&ucxbeQfvGx)xT;CAOKoM7W0$fsbH9|NWfLA0 z(`=Pw`wlm%>zil>Bg`Pl43fM!qP3mF==6e)<_BFH=oOV`NGiD^FrpmZUawBw}a~ zs^mw@e=uZ#3wgAqoAa@S)hKP zS!Q0oamXy$xXkFl=m-6co{Ju{C52}e+A`SqOxE{(#v0p2`qtNoNBJ5%QT_(udOp4r z4c@e9&}Bn$b=$!SB>5&$os1G&9u=~s>6;QZ&4*vATl0)d(PqQVUSqQiGxQy9WaXP- z<~Y147uGInmSKhgBN`PxAhR)UlpJaK!N`b2D9E5I>YHT*&62G$n8ek4sJ_W&8QDhA zJeiK7Y5dKzFGZUrTP0_kp>ML8W3~|ljBG4BAh$7Y(h+6)^~k8mz>!VNDloUnPQa+f zs{-;GZ!{(zekuOG%5%~)P#x!Oeu&^;6 zIJOBTfx5G4aDViD^=>ttRy_zD*W^@SL6aTdaV9$ojKDUIf^7wCd{fQq3(f0On_LoD z*ks2y)x5sYWM^T zd?%Y_7n@~IZcRS3;AG zX!%p~#E8Z#LYg>MGo|j!@u*fxLygV2=~~T1mSZ(fm|oS02RHguE1{{RR>H>ILYg>I z^W;dw3e2kv8lobMot8~qsc|Hvi3>HaHGQXft>rnb6HPL;oThOixY1)8`yovnrg5NU zQ%`B;WqL^SY*YVeoo%d}zwQ;yqo!9huW9NNt+S2S1X|wDJYl*%BOZF0<1PN0?OF&qa-8ZuM=j(T3fSB4VM}ReHQ6NG%GTTH(I#p#1W!!nWWzs z*tAl?-?=={y2i*R&^l@CG&iQNjHr=eOoTP|wZ^tF)|fWN8q>yDW7-&NOdDf0sWB1O znA;k=#+YN)h?q!g&cPfEvTu#uttL4p(z-6v8mmWIa}1Hz9D~(2i;1%6in8)E$Dv*hnoDY-hUMwconv00F<_co1If7V= z-q>W{>4xL?z0C}!8_wDHHY4z#-XJ;u+ZtlNGtGo|n8D)wLcQa*l!?&7EdT7=Gnscp z<@M5260I4A$P|&HzHzE%=}|5YmK$6EY`HL$YgV-jnLGK>K3}8s!ig z8$b-t@2HMi%d54jnFFJoC###s{aV9{1I09 z=FA}Ht@@9!${%5sKf)@1gjN3$R{cj<<(v8(nQZDap;doVpV_zSZ|XDqR{5qrvv1Yk zoRMVTD&N#^_O0?wy=LDk-_&dNt@@iYnUTrnOeUdKe^bxdx9V@|Ir~=qO+9Dds=uk{ z>|6CW^_+dH{-&O@Z`I$_^T=dV&k3#in|jT@Ro@h=ycDaxrk-;?fhhoeEaHh-6CR4bt5#2BQ%POh%v=TXql@?4rXPYPq5M_ zSo@}WalK{6rW!`X#9P-}5V|daZQk^k+n@dEmqt!D{RHoC=x5YL*~Nt%Gs{ys zr$4`BQ-UT;oEo%zn4;djQ%|pMbCHwsp4kywB3kXOK_2 z&q|-oKHGdB_I=#T1B;5)oN|4`&(^j^;oM-t)6LB(W(q^RFLFBF)9L9>?{#u_4(Z&sbEnSTI`{4z-Z`!F^3IQSeyg*qOY<(hyKL-I+BL50 zjIIZ|dc#Cm>#&|-@nLhrO2U?h-52&?*fU`-guNYhAnbTp?e&4zhh86Z{j}?Ezkb8@ zJFnlHc8%o!x7C`1J_yF{H$kjrUjMJc)5Gr?5Hg_cfFT2B4OlVY!HD@0DC#E(wFg7$cK6YAcN$m326|wimZjL<=dp52^ z+%s|e;||7E##O~#9B3Q3eBi?a_Y6ET@UwVZe7E?R__yMZC-^4hB@`yyH^_HT??D>} zl@6*LR5hq(kaO^u!4n7HI{4widj=mHa^sLuyjk(wkgslPchmBlR@`)cXgl7ec<$z& zH;=k`7jIKc8+Q9J_wbP6tA}q+?2UkXlH4=7A1&3WhBtM?KH@P+?Bqc5-J!NIe=9B{|XGeAzIc#Lk$TcHh z7Q&yGSUCEdF&)Mfj9EMO&at13Jw9&RxE%bNs~A4ygsa z0ii!TJd@}D8n!JpKc4ivo)sOZX&%-cII29Txs@0B>c&gj`#e?EQhAdvZ5-kW!D?1` zt<&}^Uup+gdH-%TUdvV!v|p%$wH$Sb_Nh8tt5-*B&$BYoeszlWl$xf!&Duie)R({x zZJ+vzR;RwIm8q|h_I2Kn6KbFmKuS9nAHeoz?W{6S^N`nRo>BZ6lsu=MQC`rz%5K)` zKE!^tc8v7L)J@uHb*FZYCmKgV>rAbde7)p*ntZ)@lr+swno|7CA)ab zlsDnTan?qCPaOx+w0G61)M~Tlgd29a;ZXmoIgr3i&Tdj#apnwX>Nr!+nRlr2OpSVYt3t*`w`)^P!4Uo6I^qeZKz?!v%NNt3&iWR?qsr?CV?NDCT?oxJX|Dn90{gJ%xfO{_}`#AQt_Mgf- z+MVS6EKgbn!_ni4U3-jjN|ah{1>Ai>xj>pP3BO|h8?OCU>8%RwKjHY#;CK!k|5)vX z9`@1JtNl4XKzmV*HY9K-a^8R*6(9*abT2|0>yXA))?WD!b&3*Z#AO@c$L~ z{|fwn1^&OHzO3y;26gbh4lO&aR*~;ftxm5qn&6M*TJv0MOX^<3^Qo;k`Vx73L>?cJ z$4BJxk&!BxRDq;AMXDfDy-TW-q;g!+fp+ldkn%eEZra%~c;kRKC*X}6-3^5=C*j3m z>UJ2-`ha>>QZHS@9O`JE_#ev?{b?N2>vDPSC!yKPQ@egpsZ$)Nl|xS`7E=pNN3ix< zoq8m<4at=uxyO*)8%VAcstzhIbN*HBE#)D$A zDe9p7ODx)k1Uhp40KzeZ<3JjcXa)tf=!%<^m83jP3KwTwl;Xs*)!`eYC8toMminRXcj6PS zBiEzQqw2A%q`8)QMIpVr;Nc_6qKkFP@{4D&)h$SFE|MDyUyG4iFw$y{w1z{8o@XA? z3PxH%NGlMV%f#k<(5=_8xzURA;zew(6@19U=7Qj79yZqsn`?&6MPPG5@TaBz5-&V@ z2AgYx%?-ikg5cLeY;H8V8HjG)tPZ(Yhi;atDHlEPF%pT*!{(Y}b3X7i0zLf@87+h( zAN-42oon-g|C$z2#SgTg{d!T`Lo5V+-Hr9CNU>gz<8iO7W6hDh9cw*>{7)*SSkW8! zlQ&t-aG!Pn`5!|5pBPqX+Jg^iUE~`~Iy9Cvy8qEj3cgJ9Km1-BD<$QdN*Gj)Lf3a| z_Zhm6-s1~)W7Te~+J#l0)~y<^N-qFE_$n6vIyj2g)2XPTzIA9!l~zqI)zDa{y+e8L zqjM+Fx6jeBy|mxewA+Ua+Z>DUo1$f*Pwz0&sK#g2;lIA54IV&?8gI1nM@fBvR=$>$ z8%cS#p_h!agO3? zDpWzOuY*Uu=pFXKBll-N8YIAlA++=<^ol0Jg(-O2tCw~46fLYitzD_1-|2*^I&}X_ zq%#2MT9jZ&%MK6hmb4s(7VRaau5TZbQr9;-dZBC4`=oS{@=wUM+(`L1QkIkQkR^S` zcTzq^%JXLN1-;48ORSMKlp`}A}g zE%S#TNB;0RHd5O#N6>V>pfT=`_o&Bv)Z;xGMy{odTwRP@_tEb^!pL>XvtA8dAZ5UgD3Jbc6iOo>t(L~ki1@^54njEzz$NqO8c~vl3u6Z zV&lk3j+`Q09Y;baM4#brlH8%%E}L}dg;k0(UW7awZYvoT*)J&c!C)xE~{ur`dhG)K`Zc$HRnA0vi$ z^sy5;>0>8JAMG^$Mejqq3~E2bD_zS>$+e~Wzcrr!*Lc^TO8sZgEB?gce>R8ze!lkm zXJY^Vk6yhW|6@sUZ65Z=n#!Ep{QK>XasKdXvx8TkKm6a5LZ2aF?(loJm9+ilJm{6@ zFn_G6t~NHf(roI##>Zb>Z+@by=^ehS^Xu?>g|?JSLF{f z*LC%>euxxi>+!>nNB?VgN`E}5ug=qJmGFNpotgUDEaF<*hHD#RUR!JQ!{v4P{kJRa z{ofkd{#4t4_oop4zNg;wh(0%a^`{She0}>X_XvM{^j^!e3|D{J;c6-VHGRtO?+;zQ zO}l!EYipT)eA52c$f5Bmxql>)tLe|xC35u?KYXw5>SbO%#kFbDwLQ`Hf2+;>@mbeD z|H+1{>(h^qD-C`5Yw1~Ex%IrZp8ogyn17!;u~*lDtEc#9jdOo^AN#{Sar3Wk`~H12 z@cS+7>RNa86hCBZ`1iAL|F_!5|B2S*E1HqE%Y z9{lsYk7@H)r{u?~i$7MnuB82@4Vc^iDG6Vj&0gEs;M!7Mxh4AHdZbtO68~=H{7>o2 zkJYYzqU*nQU;QV3{lu^T{+roX?+gBs*v|eA&i##WFL;Y{W#sujsAvBoZ~6LZ!_-!UZCIb7Jz-}MuC!KT2`OKt zOm!5P4012J)kUBPECF>~TMy2Fv)~*!55CZbi9qc$(E1ztqBUp(+5*;2 z5R@yrfUY16To1ZwwW2%d0d4?2HK*tWdXs-2^0|?)FJV8z{)DVIBqBjHfPOI$B!I!- zCU7$t4n_cYDyW-)pJKWeAr=uX21Q^65?u*afnQSYufVUtZ@_QC@4y4laX}j<6%eAG zlC8B`NnK<+%_%z)??k*aVGk`rLa&TQ>ap5qGLGZ%U=SEgTIiBVgyX$2D zUqF}(@`)F6u84C>2yY==#_`+0?O-KX1y+N5NxKHD1rM;lp7ehp{RYB65iS;FTj<3;dS@G^J>yarwe zyTO}aA9x463(7z_cprQKJ_LusN8l6iDLgw0s=?>r1aN?p;1qQ_4LsmHI^0!>W4#kr zqf-)igL|;{sZz%N`>Y?*nlI(O@jc=4;1g9$_tT0XI0W9ksQhtPYfZfYMJ>@IK*!S zGvEjOL31!2tOoahd%+s87Tl+~(LA@T0-tg1P52NeKE#O+apFUq_z&G@IPn=y{Dkf! zocIVQe!+=f(0zduU*N*`jr?W zUXbf;clpflsrOscd~(427Cl?cXmM|lUvO&3kG-oQK{m(%c_1GwR6^u_}m(NZVkS(2A^4jZ>+(e)!@r&@EtYyjv9PN z4ZfoW-%*3_sKIyC;4f-um4mcZN{F^f%>|1<5m=%h!(v=mj0=l#VKFW&#)ZYWuoxE> zick>+iJz*{siz1M)yVSg6(0 zGM%AiIzy{)h8Exqp8X77{S03Hj2y4k%TzEKWU!wP?geYWT5t-S1|G^tP;Ow`2SkEs za5uOQ+z+;a15hAAC};~PP3-_Wffz6eT!0b*NGEK-2l#?;5CNh9X+dK&LziD!?I7366k|se@iiJGHb^ zOFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{Oqv zwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JGHb^OFOl+ zQ%gIwv{OqvwX{=9JGHb^OFOl+Q%gIwv{OqvwX{=9JH5B=v`m9orDZVd^KB*mEclSs zx%_CI>Oeg>1I~hT;5_(3J5Iat0ezg~^ly&Sw>eI`@d53|2lO|N({_A7pW`^~#|N^7 zRzVx`0sV{PGKTnA;!}+l>jSxn{X*hPz#YVY57rak03HS#!DHZY@C4WdHiM_ZGhiF2 zB|jH%g9}=PO#!W_OHb@B1-nb3hGo>OjGC2Et1|2`1v^Z^4pXqh6lz&UEz7878MQ2< zmSxnkj9Qja!!l}EMh(lTSsAq|qb6n4pbW~(pu7x<%b>Unip!w542sL3xD1NRptuZ* z%b>Unip!w5OxdI)YgKsJD!gnJUbae^z>0Pg!6e@PoJ=@{W7BE9XRtQdZ16kw9{>+= zY&+o&j_oAf--z!8Z*kng{wd%BZr}l4P|x`@gy+C{@Fn;fTx4wQrVBTNR+h*z(|t5@OGtMKYoc=am0dKF&1N_5iRz;9OKH!Ja*mH5p{{AMNn z;!o)pe@egjQ~Jf9;(e;|KGn1WRkQ+Cv;tMM0#&pERkQ+Cv;tMM0#&pERkQ+Cv;tMM z0#&pERkQ+CB8zfzKpw~kizs6;C<4DE|6hS$gWrJPg5QA$v}#(9DjBN1LEraN{C6du zubRH^r}*(o`o5pivQ)`|oR4Qefp8G}gGmD|awz*FKoa}oKpOFMj?W>?V1EJeT#!$E z8R2c?gGN@NkyU7<7mf6yksdVCi$+$Vjb60Ti#B@DIxiaL zMYF2VEH9enMXS7MlNW9BqD@{kn>GG&Kpw~k3$>5YFfSVBMZ>&km=_K6qDdY!$%7_& z&?FC-NTD%#ACX)`~j&HNax z@S+h_XoMGy@S+h_XoMGy@S+i3w7`o7RG|S?Xh0Rx_ac2S()S{LFVgoSeJ|4YB7HB? z_ab30680itFVgiQT@TXrAYBjA^&njj()A!+57Mndx>ZQGN*Te5Re|&_0+FHvDLRm% z11UO?q65h}kemalIgpqGi8+v#18F&slmkgQkdy;SIgpeCNjcP9Rt?q5}>(;GhEzI^duKt~ubE1FkvXnggym;F<%jIpCTDt~ubE1FkvXnggym zbe)D1{suQLA6-mhreO*_@EN>2IU6(`Y3yMCyQ7U(tS#DxwGjWosDs{hAie8Ade?#U zt^?^^>zw-gkq9Ghyk#xkvKDVyi??LfKnW1Nz<+a;f;X(i8`k0t8TBgxaMg*otCj7D zcOukBF!6-?C}uFn^pQ*wA!|D_0tjRT5XcB15bir=2FDskIQhhzj&fF#hd$C-O?WTo z)_}F(T1GzH55k+(;>~LDX0>>;TD(~;-mDg>HI9ltVxN(bJVm~zfd^RxDzg~Frh}8( zX|Wz`01q=BW$k!b0G5OM0c%6sRMP2J)N@5WSJZPwJy+CoMLk#4b45K@)N@5WSJZPw zJtOrQtg)$IHJdPzu_)oF%t2d7e>3Xkh2K}^I_|(~iJ3txd z-v=LZ{v&FtucM0(U{rqyO6_Vmy*Ki}zwXDs?#I9G$G`5!zwS4BZ9VBv_5v%k3P$}E zVinMPZx3)x@4@N4H?!w)UrAVR_ zNtDuGsi3b?fkgHpjV(yRixj-{Pb%o2R3M33q)>|lYT^C~`XzcF+$$f{&LM#EIDdlvgWliv(ub&^4^crMqQcfvJBK8;DA`Ejc_i^XlGunO z-b51hNMbXRC`S_INTS@(>z#yUqQg|LIJdYHfM+%#fLOD_>M+)Ug zp&TicBZZAfVIxx5h!i#>h0RD|Gg8=$6zY+}W~5M#6kJGQBT}eG3gt+l+^~tEgd@OM z(v8=iM-tB?iRY0-Ig%(x5^o}j%}7G`LAp)oe#nDF%8^Jp5^*6B7ZPz9_OOm)zbB1p z6PuC9W+bv1iIgLeawM`5iReD;l06`ma-^dBG!K#~M>6F|rW~nkR+5m$E+kNm1geoh zHQq({EFL_I2fL_761$MZF1TL}=d0m-HJq=8^VM*^8qQb4`D!>{4d<)jd^KLj1Lt?a z`D!@73(i-=`D!>^jo1sG#4X1a(>0NMo7oNuhSF7#-r(K%NQ=c@529=wSMPvSw3tMMKlJckFb;elJ# zaH|?_?SebiaHSfqRKpd~O_y>8Bh0bi$!Z z^s^2wRl=o8xKs(3D&bNkT&jdim2jyNE>*&%O7znKm+Ww<5-!={QYBofL>C=!suB)W z!l6nyR0)SF;gB5;+2N2KU38#}4s_9hE;=k-bilPrbkPmh?3OO-qnJu`u@25v!nsOx z(E-;g;aVm7=Rp4)mj2aQ`d0@RE8$`#`sYUf+~}Vh{d2;}N=yIh@CXj{&w>6q;AkZr zt%Rd?OaJQd3QoL&6Ao8e`d0_1E8%n{oUTOw9Lg%CJ3Z4I;9eiVd@M67P9$&)2^_;a z998aS|2}X(*h<=MgwGO|asB}Da^mk3KSHQ`iPMB<+1HrQl+6G75rz`BW+idvepT*u zs2xBj5YDj}LdsK__hg2~sn!wJgEQbPI0w#yFTe$QZvv1nvo}uR1AIXMGxWWc5OE{u z2f{fP0ipo;i$stFn9CN-Ni&<{6a}CVtk8}j)niEY7*aioRF5*l!+jd^fqO{!s8pDb z^@o#z#Df84NqUBo{E_rABzja%<=Axg=d+(lm;>@SUdZt!06sD+{e%l9O2_C$maUc?5h6 zYN5jg+~7Rr>Mixxgx?T;s~xkoR6=Z_pcV4&kM!%1{#oo#@9%h#be+{Q*I{pGt(N%= z5yTcZ-nt?MFWjtyn{{xr4sLqkrWX!+;hYy6(fco6?Bfhvt26p8W7(h2@jODk zU!wO(e#QA;gWmwX|6#U%UTWZ_23~4Vr}sIGeumk)dHMQBch*}mJ%?Qx#E6St5&9a8 zt_B<4qMT!f#~?fcKB5<^_bpCy{w#W|vBIw(Xl?Y^?1o1e&({*_I93nNfV1EnI1j#1 zf~m0`y$eR~g3-I+?|2Bk_hv_rg5iK29SVjEcG*G+f(!KE=t*;}=_xqI8u#c>Fx=34 zYV^`LR>=Mma0l^Uk^a}9 zmNHzx4GgbAK6*dmYx33m65nc0Zejvz-E@20Ka4cE59sYlV1N70i<(UYxkYAamY3Wv7B zovl`T{wQ48O1r(Ac6&GN_HMZI4&2%Lop#wyZMIUIt<+{KwRx19*r|mbs<$fPQ2ROB zd;)5ZL+$5i^9d;a9Bn>V7=TQ1NlztAS$Dvf8 zPu1sAkE78ip!PV_oai}^DRi~h&21<@Y$#Ez-4kf3!AH)4;cy|UW zPCKuKjbM&9i(SJHe|LL647oNG{nH!$D z;g=hJx#5)?Ub*3w8(z8Ll^b5U@ouN#mm7Y$;g=hJx#5=^e!1b78-BUrmm7Y$;g=hJ zx#5=^e!1b78(z8Ll^b5U;guU6x#5u;4|Eznx#5u;9=Y)xr|}x6;gcI4x#5u;9=Y}V zozU!W@Z=oc;2hrI9Nyp@-axPSIjs8})_qP%Q@%UTIf)VD6!f5Bep8>@Y?#+< zh_5~Kmz_Z@XfmfMTG9S|cmA@owoh~cT|pSQ9{hLbE*Ej_Vo=10PM@o6OV|nMbCisB zr9Mxo&r$00kqvW^%ZNA3L#`x^J{P%~@BzZB%|X6Nx_y9eelcgWk2#xt%-QT?&Su|b z^OGO3&m5)lTV~r@Fx%FGXM((Nw^T_1Bf)6EeO9(wZ_U*c zUIZH7K;yowHS1Oi$4lXODI70lZn9KmjLWQB3ufI~FzeQWS+^FeH&)v`fyEO&>!#(A?7$snd2;FjYmadd}(o(6<(iL(17O;%{+raHWzel}_P`^)o`D|S& z-uE!i+<4_5!6V>N@F(zR@E7nTcnWL*Tfwv7dGdM@{1vV^osSDK|RhMyK59lpB3=W36uV z$c-Mku~s*F z<#V_aM2k5CYncspfV0%94O-U|^a2mS>2?4u#rv1y{m~x4j1(Tf6pvqu$1jB%H(tLK zuV0GSFQo)GCAcrmi+U;HEG6i3qF(Iu4ECu%ZE)G#C?z$_hw67qzB?akwtAP(hazR# z=ga3ry++H&^8|1Z=9R{b?=fgQ1_$=g>K>z& zJw_{gjGFC{_Y-~zz9#;ywuk(W;j7Lvt92h>HjkqfMrnsB?J%VsrnJM9c9_x*Q`%ul zJ4|VZDebT_m#YKtbOC7Ocb|MbiB_IME6t}Jw-Yuz-PrI%V=KO2((oi>EWMkiPcUY4 zk0A%-0W2Gj7J!C+-_wXEX;)6tuAHP@IZ3;660QC3JzcnnYZrqedX4&%f^7*q0eW3{ zrITp$DYW?%_X+~=L;-lB05tm)nr%M)w~VmyNxze5xBjHxNwoVEntipW?@rRjoTQC8 zNgH#LHs&O4%t_jqlW2X@r|(Xp`KJ^SFa+K+OlUKM9&2Zwd<|4uYDcxR+5zpH_M+y| z4r&Xvd$cFndxtM`hLYkMevHZZF~*=*+>jjo`^P_e&P`9!LssxL^kg~O5`-Gtrb(RY9mevRV8*C`b(+PE@Kn~J;^UF@R0ug%ksm_KHLzxT(NOfUVuFOBwR?Syuuk;i&s z##`U{nVitlzjIj8exW%u=2@uGN$M2Me6*td*+|vuyJ;KtwIb3mUT@fM8p1C{OV!G> zs*60e)NlsP9MurNQpgzb3O}uad@kjwCp2`=xI+7@vEPULNc!eTAsr@aRLqQ@@YW~8am5;*d#ex%{YEYzjn-`mNhQ&)*F%D9GKLs?BzH`=wXgN?t2 zw2epfSW`W?JpJYAuDnOPeht5dR81*qw8Vz9W=4N67iew5SyElH8(LNCr_F4vPt(+t zVoA_QsC%OC{In^Jy3t4zWj65|-?`+{ZqxLa4sw61G5(KY-=D_RF#Q@mXYG@wS8Ml} zd)yaOv?q)-2b!L58ozkW9=_o!zTeIdKU~T@nS!P3d!~i!QKOYJB9}Hs%Vqcs^N@DO zrBjzhn&!gyCx1;#Y$Jg`f0g#GCC9oez4>n0jY>4f;*=qLVR8ibojNEZl~GD3Weoo= z$^>OH{mL}{-5Cwe;H%ZMxD#`Oau5Gr${+amR-RFwQ~D?`C@(Riww-?@W5gXw6yK-b zN#48o$10`#&qYAZ&a3)Eg}A0=Dur}k6w)NnOi$ybxr zWM!e6O%H96nn&MkvAT(`ye(0mQlC<8QMagDlw$Qc^?7Bf`jWa`S*Gq#cPY24d)2+l z&(y=}VP%E-314@+TRo~CRer8IRj0B_b*ZP7U#K3{qx@2>6QRmIqP4hAd0KQ5*DKpZ zPZ6%XBqBtF^16r;QOYh6BVv@@B2L69r6OJoSKbg~#5m<$kt$M^17f0>sFaJzVzP2j zq=_`;eKB23S1QCzF;n?K%oekiLt>7YqkJgliFrz;$PgLIVUa0{lq2F6af@<7EEP)? zyI3ZcDGsqhtWca{CGVP?6svgKq*kmJtCdsY9&wMt)5+pq<+NBM)+jvFFV-p^ai6$P z@rrf4X~c}Ycu1)ie-M9A&Wk^aKPq2{3%qr7K`Oj+bWw)NP&G)lm2K5v*-o}oLu4n} zNo^^+$}lxlc9VV8*0R4GpmvdwGETi-#>)h?mmDmIs(oaVOji5Lk#eLuK#rE9)d)FO zrmB&0vYf8Q%2{%jI#{O5bajZFFEiAeWRA>HZJ<5VdA~YKu9u~1y4)l8sK1bV<@@St`H}ocyND7lFXN8h=yVMFJBs~&Y{#RaGnF}5!gJWbi&(*HXnZN(U*4y@t-OP- zmn#Q(OX>r@YFnv%hNjn`=f}}=JKut>MbC9D*LD1B<)W_NYG?FLD7Ri_u|f0!1U(#V2me9X>q*{StLHz2T6_U- zzEr-#wsl(_X4qmzYuM^IY;}<`UM=FuwKT)hrWuwt153M3 znQ7SA3T!M+S#8+TLxwH=$*`p-3|sn(VN06~TYA#4rOk#dJ!RO^(}pc=F>L7>!xM0H*Be{fZP-$&VM}iqwzS8vrN0@rwAZkuHw{~Q%dn+=*wVww z+lKwTZ`jXa-F_5@Za<1sw;zQOo9v|2>h`0Y((Ok%t=o_Cg>FB}SJ=-`RWU55nPEBp zhUGLjEQb*tmJ@7PP8-8=cn1*6xem*@MQv}`%ngRk^fGLwuVFL&4Vwu!Y$n#QnSqAQ z%r|T%!?2km!)BHkHgk(%GsT9@+-}&+9fr*;H*DrV44e5+!)ER_Y-XilGph`n`GsLK zs|}m^CEwexYHzhSUt8{@_EG!{ zOY=7@&EK#zKciLbtmdk@N*AMT?5r-r_PQ9h*Tt|sY1p2xdO^LwS5?1Mzu_CH-wIU` z{CpKDnu+E-H5nlInuQ3YC2S@5^M<3|9=63+J1N(R&a{f{u-INod(lVqAx&S=mu-L1 zpKUm;rA-VF1Gq|WGi@SLL=x9qPMe4pyyIxJpEeOIVu|amsKoN)6(5lx5-4Sm7({%q z;JsPi#2P~UCUFz-p<*cUo5jtSg=?`V$i$RuT!$Rf9Fkxe{D5z$oAgnH^p(DfzicM`i2F-_Mat%~ zIWtZC6<-<1+seVRg>gqaNYZY}VEPfkh9A7n@Pl|k{9t>-54OV(b|wEXykRrEVRzE^ zkUe{%k8B^2kFb4IKFan_@=t94 zEdR{*FY+&JpOjCseM&yXc8lD?cB|aV_F4HX+vntSQ2V@m9y(u;FA#rGzDWEf$rq#L zU*%tkZi(vDlUlze-y+T(G2(B_w~4A zDtek|;{|yE-hL^+gtr&vMRZt`n&M{+$%1UEO;tMTt*LSyt*Nil)z-|`OlhXKsfxee zrYb^jQ`yoFrA1Q}o2@OaU&F64hX1F1xR#$jI`_2_nqj9)m+AXDI?$^6(ZU7OayF;M zZ2IfSPFv%zhmAkImA3)?SUb>y_FSQD^?~Xi>eoQ`_vfdtuAu+S(3*An{-obI8p<_I zXD!T{>GbPAe>1SQdfoNfHT?y0z2HEgb%1Q5xn5_4y!XqV{@2UJ zr&@6{jahnIBMk`*`RL)LnKE<7+WI1cX7JpUWZO&OWr@CL$E4gWOXpuhO`0Y(&+11^ zN*krG*IoZLNWk3tzHNK-R6&CS&{ln`hySm8GYP3OiURPx$ARY~#f)6IY}K+%Ln0!| zLK>ijw2u}QXav$qFem~y1+|iPmZh0PX=;vH(QGuE4K_K_q-Dd>zVqMr|L-@fz*TfV z&bjx0?+)+Yd;as@J?}l276zr++Wo(e>3aAn11pR(o3$si#*PSgs1oH9Y8ZEKIxBVk z>V4^xisdRvkU=|Nbmzk2?f~84nG&w^=iQEb6@PYquGZrug)tKY@t@Z`3m@{Us7?A3 zVGgs2Mk=GsO}&;4M0=cVHTCg-H~Ah(V-K3#b=VubIYsf(I&0l2U03x@8u4@fE0yw0 zZ{>Doeyl$#ddc;b%nC2SF4PY>Z=Qsg(ku1pno{UjSJ@X`ZM~0O(mchps`z?qYfb8x zoJVq=LR%U}Q!nV-q1N+lE;II=KH}`fS&R0e^V9D%k^)J?Z)!d5FB5N^9`xz={kPm7 z_xHIsXkf2l+l`mQ_mSFmW?-joXLK*(;%rszHT-U)|Aliaqq7Rn%)Nq{+O3VwU1#lV z#nn*XqVK*@PSl5u&0oK%kXPfa-87#5l zN=lY2HTmdlvjM%#Y(eLkt>|1%#M-}(!1>VAD9XAMd{*(a&P(HGsu_V@$uf()7}g52 zhEup}z1r30ceLI$ow+CfiJu zcigtvR@+9Tx7~KwPTOU>ZO>fV$PYO#mB5^{gnPaOdxd^>*2`6BvM}@C=^A3mAl#@CshT8+Z#tFbpFw3S%%XUd3D%r&uymFsw7BQXqxq5U2i~<``%8Qd1{o ovXA)veon`|36lwv#B0>T3+UH+9z`wF^38?nR!`@kg=p30pH|7@_W%F@ literal 0 HcmV?d00001 diff --git a/client/salix/src/styles/misc.scss b/client/salix/src/styles/misc.scss index 8168b6781b..068717911c 100644 --- a/client/salix/src/styles/misc.scss +++ b/client/salix/src/styles/misc.scss @@ -64,7 +64,7 @@ html [vn-center], .vn-center{ .tooltip { .list-header{ border-bottom: 3px solid $color-medium-grey; - font-weight: bold; + font-family: vn-font-bold; text-align: center } .list-element{ @@ -72,7 +72,7 @@ html [vn-center], .vn-center{ } } .list-footer{ - font-weight: bold; + font-family: vn-font-bold; border-top: 3px solid $color-medium-grey; } .list-element.warning{ diff --git a/client/salix/src/styles/title.css b/client/salix/src/styles/title.css index 4589f0b9cf..1fe3e45cac 100644 --- a/client/salix/src/styles/title.css +++ b/client/salix/src/styles/title.css @@ -1,25 +1,25 @@ - -h1 { - font-size: 32pt; -} -h2 { - font-size: 28pt; -} -h3 { - font-size: 24pt; -} -h4 { - font-size: 20pt; -} -h5 { - font-size: 16pt; -} -h6 { - font-size: 12pt; -} - -h1, h2, h3, h4, h5, h6 { - padding: 0; - margin: .4em 0; - font-family: raleway-semi-bold; + +h1 { + font-size: 32pt; +} +h2 { + font-size: 28pt; +} +h3 { + font-size: 24pt; +} +h4 { + font-size: 20pt; +} +h5 { + font-size: 16pt; +} +h6 { + font-size: 12pt; +} + +h1, h2, h3, h4, h5, h6 { + padding: 0; + margin: .4em 0; + font-family: vn-font-bold; } \ No newline at end of file From 583e7c34bce342551ac3286b81c82f9656e7d05f Mon Sep 17 00:00:00 2001 From: jgallego Date: Wed, 22 Nov 2017 08:35:09 +0100 Subject: [PATCH 024/287] =?UTF-8?q?A=C3=B1adir=20activo=20a=20datos=20fisc?= =?UTF-8?q?al-data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/client/src/descriptor/descriptor.html | 2 +- client/client/src/fiscal-data/fiscal-data.html | 9 +++++---- client/client/src/locale/es.json | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/client/client/src/descriptor/descriptor.html b/client/client/src/descriptor/descriptor.html index 64dd29fe44..53cb3a1010 100644 --- a/client/client/src/descriptor/descriptor.html +++ b/client/client/src/descriptor/descriptor.html @@ -8,7 +8,7 @@
{{::$ctrl.client.id}}
{{$ctrl.client.name}}
{{$ctrl.client.phone}}
- + diff --git a/client/client/src/fiscal-data/fiscal-data.html b/client/client/src/fiscal-data/fiscal-data.html index 5e32cdafc4..6ebffd9255 100644 --- a/client/client/src/fiscal-data/fiscal-data.html +++ b/client/client/src/fiscal-data/fiscal-data.html @@ -12,6 +12,7 @@ + @@ -41,13 +42,13 @@ - - - + - + + + diff --git a/client/client/src/locale/es.json b/client/client/src/locale/es.json index f828c7abcc..ae0e1a52a5 100644 --- a/client/client/src/locale/es.json +++ b/client/client/src/locale/es.json @@ -1,4 +1,5 @@ { + "Active": "Activo", "Client": "Cliente", "Clients": "Clientes", "Fiscal data": "Datos Fiscales", From b3e8b4542afd0021f93f2f757d0f1126ba87d1cc Mon Sep 17 00:00:00 2001 From: jgallego Date: Wed, 22 Nov 2017 08:59:21 +0100 Subject: [PATCH 025/287] model client con la nueva nomenclatura --- .../client/src/billing-data/billing-data.html | 6 +++--- client/client/src/descriptor/descriptor.html | 1 - client/client/src/fiscal-data/fiscal-data.html | 8 ++++---- client/client/src/fiscal-data/fiscal-data.js | 12 ++++++------ services/client/common/models/client.json | 18 ++++++------------ 5 files changed, 19 insertions(+), 26 deletions(-) diff --git a/client/client/src/billing-data/billing-data.html b/client/client/src/billing-data/billing-data.html index 5ec67fa6e7..3020e1fc72 100644 --- a/client/client/src/billing-data/billing-data.html +++ b/client/client/src/billing-data/billing-data.html @@ -27,13 +27,13 @@ - + - + - + diff --git a/client/client/src/descriptor/descriptor.html b/client/client/src/descriptor/descriptor.html index 53cb3a1010..3157cf570a 100644 --- a/client/client/src/descriptor/descriptor.html +++ b/client/client/src/descriptor/descriptor.html @@ -8,7 +8,6 @@
{{::$ctrl.client.id}}
{{$ctrl.client.name}}
{{$ctrl.client.phone}}
- diff --git a/client/client/src/fiscal-data/fiscal-data.html b/client/client/src/fiscal-data/fiscal-data.html index 6ebffd9255..f3347761b4 100644 --- a/client/client/src/fiscal-data/fiscal-data.html +++ b/client/client/src/fiscal-data/fiscal-data.html @@ -12,7 +12,7 @@ - + @@ -47,7 +47,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -71,7 +71,7 @@ diff --git a/client/client/src/fiscal-data/fiscal-data.js b/client/client/src/fiscal-data/fiscal-data.js index 6ef3c39315..5fd10bf933 100644 --- a/client/client/src/fiscal-data/fiscal-data.js +++ b/client/client/src/fiscal-data/fiscal-data.js @@ -6,7 +6,7 @@ export default class ClientFiscalData { this.$http = $http; this.vnApp = vnApp; this.translate = $translate; - this.equalizationTax = undefined; + this.isEqualizated = undefined; this.copyData(); } @@ -16,7 +16,7 @@ export default class ClientFiscalData { copyData() { if (this.client) { - this.equalizationTax = this.client.equalizationTax; + this.isEqualizated = this.client.isEqualizated; } } @@ -26,16 +26,16 @@ export default class ClientFiscalData { } checkEtChanges() { - let equals = this.equalizationTax == this.client.equalizationTax; - this.equalizationTax = this.client.equalizationTax; + let equals = this.isEqualizated == this.client.isEqualizated; + this.isEqualizated = this.client.isEqualizated; if (!equals) - this.$.propagateEqualizationTax.show(); + this.$.propagateIsEqualizated.show(); } returnDialogEt(response) { if (response === 'ACCEPT') { - this.$http.patch(`/client/api/Clients/${this.client.id}/addressesPropagateRe`, {isEqualizated: this.client.equalizationTax}).then( + this.$http.patch(`/client/api/Clients/${this.client.id}/addressesPropagateRe`, {isEqualizated: this.client.isEqualizated}).then( res => { if (res.data) this.vnApp.showMessage(this.translate.instant('Equivalent tax spreaded')); diff --git a/services/client/common/models/client.json b/services/client/common/models/client.json index 3ef9b48f2d..2fe808da17 100644 --- a/services/client/common/models/client.json +++ b/services/client/common/models/client.json @@ -39,15 +39,9 @@ "mobile": { "type": "string" }, - "fax": { - "type": "string" - }, - "active": { + "IsActive": { "type": "boolean" }, - "discount":{ - "type": "Number" - }, "credit": { "type": "Number" }, @@ -60,7 +54,7 @@ "dueDay": { "type": "Number" }, - "equalizationTax": { + "isEqualizated": { "type": "boolean", "description": "The client has equalization tax" }, @@ -76,13 +70,13 @@ "type": "boolean", "description": "Send invoices by email" }, - "sepaVnl": { + "hasSepavnl": { "type": "boolean" }, - "coreVnl": { + "hasCoreVnl": { "type": "boolean" }, - "coreVnh": { + "hasCoreVnh": { "type": "boolean" }, "eypbc": { @@ -91,7 +85,7 @@ "quality": { "type": "Number" }, - "vies": { + "isVies": { "type": "boolean" }, "isRelevant": { From bfd584487f09cfad9c8e4e2df3c0046809e3cf7b Mon Sep 17 00:00:00 2001 From: jgallego Date: Wed, 22 Nov 2017 12:43:12 +0100 Subject: [PATCH 026/287] limpieza de models auth obsoleto, ahora vn --- .../client/src/billing-data/billing-data.html | 6 ++-- .../client/src/fiscal-data/fiscal-data.html | 33 +++++++++--------- services/auth/server/model-config.json | 12 +++---- services/client/common/models/client.json | 13 +++++-- services/client/server/model-config.json | 34 +++++++++---------- .../loopback/server/datasources.test.json | 22 ++++-------- services/loopback/server/model-config.json | 12 +++---- services/production/server/model-config.json | 12 +++---- services/route/server/model-config.json | 12 +++---- services/salix/server/model-config.json | 12 +++---- 10 files changed, 84 insertions(+), 84 deletions(-) diff --git a/client/client/src/billing-data/billing-data.html b/client/client/src/billing-data/billing-data.html index 3020e1fc72..19b9615581 100644 --- a/client/client/src/billing-data/billing-data.html +++ b/client/client/src/billing-data/billing-data.html @@ -27,13 +27,13 @@ - + - + - + diff --git a/client/client/src/fiscal-data/fiscal-data.html b/client/client/src/fiscal-data/fiscal-data.html index f3347761b4..6d47bff727 100644 --- a/client/client/src/fiscal-data/fiscal-data.html +++ b/client/client/src/fiscal-data/fiscal-data.html @@ -42,26 +42,27 @@ - + + + - + + + + + + + + + + + + - - - - - - - - - - - - @@ -76,8 +77,8 @@ > - You changes the equivalent tax - Do you want to spread the change to their consignees? + You changes the equivalen + Do you want to spread the change to their consig diff --git a/services/auth/server/model-config.json b/services/auth/server/model-config.json index 8d0bcc990a..69156182d2 100644 --- a/services/auth/server/model-config.json +++ b/services/auth/server/model-config.json @@ -1,9 +1,9 @@ { "user": { - "dataSource": "auth" + "dataSource": "salix" }, "AccessToken": { - "dataSource": "auth", + "dataSource": "salix", "relations": { "user": { "type": "belongsTo", @@ -13,15 +13,15 @@ } }, "ACL": { - "dataSource": "auth" + "dataSource": "salix" }, "RoleMapping": { - "dataSource": "auth" + "dataSource": "salix" }, "Role": { - "dataSource": "auth" + "dataSource": "salix" }, "Account": { - "dataSource": "auth" + "dataSource": "salix" } } \ No newline at end of file diff --git a/services/client/common/models/client.json b/services/client/common/models/client.json index 2fe808da17..dc6ff0e5e9 100644 --- a/services/client/common/models/client.json +++ b/services/client/common/models/client.json @@ -1,6 +1,12 @@ { "name": "Client", "base": "VnModel", + "options": { + "mysql": { + "table": "client", + "database": "vn" + } + }, "properties": { "id": { "type": "Number", @@ -39,7 +45,7 @@ "mobile": { "type": "string" }, - "IsActive": { + "isActive": { "type": "boolean" }, "credit": { @@ -70,7 +76,7 @@ "type": "boolean", "description": "Send invoices by email" }, - "hasSepavnl": { + "hasSepaVnl": { "type": "boolean" }, "hasCoreVnl": { @@ -79,6 +85,9 @@ "hasCoreVnh": { "type": "boolean" }, + "isTaxDataChecked":{ + "type": "boolean" + }, "eypbc": { "type": "boolean" }, diff --git a/services/client/server/model-config.json b/services/client/server/model-config.json index fd46187303..3c9c2199d2 100644 --- a/services/client/server/model-config.json +++ b/services/client/server/model-config.json @@ -1,9 +1,9 @@ { "user": { - "dataSource": "auth" + "dataSource": "salix" }, "AccessToken": { - "dataSource": "auth", + "dataSource": "salix", "relations": { "user": { "type": "belongsTo", @@ -13,51 +13,51 @@ } }, "ACL": { - "dataSource": "auth" + "dataSource": "salix" }, "RoleMapping": { - "dataSource": "auth" + "dataSource": "salix" }, "Role": { - "dataSource": "auth" + "dataSource": "salix" }, "Account": { - "dataSource": "auth" + "dataSource": "salix" }, "Client": { "dataSource": "vn" }, "ClientCredit": { - "dataSource": "vn" + "dataSource": "salix" }, "ClientCreditLimit": { - "dataSource": "vn" + "dataSource": "salix" }, "ClientObservation": { - "dataSource": "vn" + "dataSource": "salix" }, "PayMethod": { - "dataSource": "vn" + "dataSource": "salix" }, "Address": { - "dataSource": "vn" + "dataSource": "salix" }, "AgencyMode": { - "dataSource": "vn" + "dataSource": "salix" }, "Province": { - "dataSource": "vn" + "dataSource": "salix" }, "Country": { - "dataSource": "vn" + "dataSource": "salix" }, "ContactChannel": { - "dataSource": "vn" + "dataSource": "salix" }, "Employee": { - "dataSource": "vn" + "dataSource": "salix" }, "CreditClassification": { - "dataSource": "vn" + "dataSource": "salix" } } diff --git a/services/loopback/server/datasources.test.json b/services/loopback/server/datasources.test.json index 1e2cbf4288..5f988ebf16 100644 --- a/services/loopback/server/datasources.test.json +++ b/services/loopback/server/datasources.test.json @@ -1,22 +1,17 @@ { - "db": - { - "name": "db", - "connector": "memory", - "file": "db.json" - }, - "auth": - { + "vn": { "name": "mysql", "connector": "mysql", - "database": "salix", + "database": "vn", "debug": false, "host": "localhost", "port": 3306, "username": "root", - "password": "" + "password": "", + "connectTimeout": 20000, + "acquireTimeout": 20000 }, - "vn": { + "salix": { "name": "mysql", "connector": "mysql", "database": "salix", @@ -27,11 +22,6 @@ "password": "", "connectTimeout": 20000, "acquireTimeout": 20000 - }, - "client": { - "name": "client", - "connector": "remote", - "url": "http://localhost:3002/api" } } diff --git a/services/loopback/server/model-config.json b/services/loopback/server/model-config.json index b89b94371e..70215ba069 100644 --- a/services/loopback/server/model-config.json +++ b/services/loopback/server/model-config.json @@ -14,10 +14,10 @@ ] }, "user": { - "dataSource": "auth" + "dataSource": "salix" }, "AccessToken": { - "dataSource": "auth", + "dataSource": "salix", "relations": { "user": { "type": "belongsTo", @@ -27,15 +27,15 @@ } }, "ACL": { - "dataSource": "auth" + "dataSource": "salix" }, "RoleMapping": { - "dataSource": "auth" + "dataSource": "salix" }, "Role": { - "dataSource": "auth" + "dataSource": "salix" }, "Account": { - "dataSource": "auth" + "dataSource": "salix" } } diff --git a/services/production/server/model-config.json b/services/production/server/model-config.json index 5ecf23cfe1..3b60b6f130 100644 --- a/services/production/server/model-config.json +++ b/services/production/server/model-config.json @@ -1,9 +1,9 @@ { "user": { - "dataSource": "auth" + "dataSource": "salix" }, "AccessToken": { - "dataSource": "auth", + "dataSource": "salix", "relations": { "user": { "type": "belongsTo", @@ -13,16 +13,16 @@ } }, "ACL": { - "dataSource": "auth" + "dataSource": "salix" }, "RoleMapping": { - "dataSource": "auth" + "dataSource": "salix" }, "Role": { - "dataSource": "auth" + "dataSource": "salix" }, "Account": { - "dataSource": "auth" + "dataSource": "salix" }, "Ticket": { "dataSource": "vn" diff --git a/services/route/server/model-config.json b/services/route/server/model-config.json index 032bbc8625..ee7a7241b9 100644 --- a/services/route/server/model-config.json +++ b/services/route/server/model-config.json @@ -1,9 +1,9 @@ { "user": { - "dataSource": "auth" + "dataSource": "salix" }, "AccessToken": { - "dataSource": "auth", + "dataSource": "salix", "relations": { "user": { "type": "belongsTo", @@ -13,16 +13,16 @@ } }, "ACL": { - "dataSource": "auth" + "dataSource": "salix" }, "RoleMapping": { - "dataSource": "auth" + "dataSource": "salix" }, "Role": { - "dataSource": "auth" + "dataSource": "salix" }, "Account": { - "dataSource": "auth" + "dataSource": "salix" }, "Delivery": { "dataSource": "vn" diff --git a/services/salix/server/model-config.json b/services/salix/server/model-config.json index 6bf5864372..2369e9e19b 100644 --- a/services/salix/server/model-config.json +++ b/services/salix/server/model-config.json @@ -1,9 +1,9 @@ { "user": { - "dataSource": "auth" + "dataSource": "salix" }, "AccessToken": { - "dataSource": "auth", + "dataSource": "salix", "relations": { "user": { "type": "belongsTo", @@ -13,15 +13,15 @@ } }, "ACL": { - "dataSource": "auth" + "dataSource": "salix" }, "RoleMapping": { - "dataSource": "auth" + "dataSource": "salix" }, "Role": { - "dataSource": "auth" + "dataSource": "salix" }, "Account": { - "dataSource": "auth" + "dataSource": "salix" } } From 27c2444fa478c7d76973342d5c55c64052baa66e Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 22 Nov 2017 13:10:33 +0100 Subject: [PATCH 027/287] bugs fixed in autoComplete --- .../core/src/autocomplete/autocomplete.html | 1 + client/core/src/autocomplete/style.scss | 2 + client/core/src/drop-down/drop-down.js | 105 ++++++++++++------ client/core/src/drop-down/drop-down.spec.js | 44 ++++---- 4 files changed, 99 insertions(+), 53 deletions(-) diff --git a/client/core/src/autocomplete/autocomplete.html b/client/core/src/autocomplete/autocomplete.html index 9627986290..e3887a9376 100644 --- a/client/core/src/autocomplete/autocomplete.html +++ b/client/core/src/autocomplete/autocomplete.html @@ -11,5 +11,6 @@ filter-action="$ctrl.findItems(search)" item-width="$ctrl.width" multiple="$ctrl.multiple" + parent = "$ctrl.element" >{{$parent.item.name}} \ No newline at end of file diff --git a/client/core/src/autocomplete/style.scss b/client/core/src/autocomplete/style.scss index 1472dbcf36..8a5f5ee484 100644 --- a/client/core/src/autocomplete/style.scss +++ b/client/core/src/autocomplete/style.scss @@ -24,6 +24,8 @@ ul.vn-autocomplete { } } vn-autocomplete { + position: relative; + .mdl-chip__action { position: absolute; top: 0px; diff --git a/client/core/src/drop-down/drop-down.js b/client/core/src/drop-down/drop-down.js index 90a02e8578..f34e44e896 100644 --- a/client/core/src/drop-down/drop-down.js +++ b/client/core/src/drop-down/drop-down.js @@ -7,7 +7,7 @@ export default class DropDown { this.$filter = $filter; this.$timeout = $timeout; - this.parent = this.parent || $element[0].parentNode; + this.container = $element[0].querySelector('ul.dropdown'); this._search = null; this.itemsFiltered = []; this._activeOption = -1; @@ -20,14 +20,10 @@ export default class DropDown { set show(value) { let oldValue = this.show; this._show = value; - if (value && !this._focusingFilter && oldValue !== value && this.filter) { - let inputFilterSearch = this.$element[0].querySelector('input'); - this._focusingFilter = true; - this.$timeout(() => { - inputFilterSearch.focus(); - this._focusingFilter = false; - }, 250); - } + this._setFocusInFilterInput(value, oldValue); + this.$timeout(() => { + this._calculatePosition(value, oldValue); + }); } get search() { @@ -51,18 +47,45 @@ export default class DropDown { set activeOption(value) { if (value < 0) { value = 0; - } else if (value >= this.items.length) { - value = this.showLoadMore ? this.items.length : this.items.length - 1; + } else if (value >= this.itemsFiltered.length) { + value = this.showLoadMore ? this.itemsFiltered.length : this.itemsFiltered.length - 1; } this.$timeout(() => { this._activeOption = value; - // AutoLoad items with "scroll" (1st version): - if (value && value >= this.items.length - 3 && !this.removeLoadMore) { + if (value && value >= this.itemsFiltered.length - 3 && !this.removeLoadMore) { this.loadItems(); } }); } + _setFocusInFilterInput(value, oldValue) { + if (value && !this._focusingFilter && oldValue !== value && this.filter) { + let inputFilterSearch = this.$element[0].querySelector('input'); + this._focusingFilter = true; + this.$timeout(() => { + inputFilterSearch.focus(); + this._focusingFilter = false; + }, 250); + } + } + _calculatePosition(value, oldValue) { + if (value && value !== oldValue && !this.top) { + if (this.parent === undefined) { + this.parent = this.$element.parent().parent(); + } + + let parentRect = this.parent.getBoundingClientRect(); + let elemetRect = this.$element[0].getBoundingClientRect(); + + if (parentRect.y + parentRect.height + elemetRect.height > window.innerHeight) { + let height = this.parent.nodeName === 'VN-AUTOCOMPLETE' ? elemetRect.height : elemetRect.height + parentRect.height; + this.$element.css('margin-top', `-${height}px`); + } else { + this.$element.css('margin-top', ``); + } + } + } + filterItems() { this.itemsFiltered = this.search ? this.$filter('filter')(this.items, this.search) : this.items; } @@ -73,18 +96,6 @@ export default class DropDown { } } - $onChanges(changesObj) { - if (changesObj.show && changesObj.top && changesObj.top.currentValue) { - this.$element.css('top', changesObj.top.currentValue + 'px'); - } - if (changesObj.show && changesObj.itemWidth && changesObj.itemWidth.currentValue) { - this.$element.css('width', changesObj.itemWidth.currentValue + 'px'); - } - if (changesObj.items) { - this.filterItems(); - } - } - clearSearch() { this.search = null; } @@ -123,20 +134,31 @@ export default class DropDown { this.setScrollPosition(); }, 100); break; + case 35: // End + this.activeOption = this.itemsFiltered.length - 1; + this.$timeout(() => { + this.setScrollPosition(); + }, 100); + break; + case 36: // Start + this.activeOption = 0; + this.$timeout(() => { + this.setScrollPosition(); + }, 100); + break; default: return; } } } - setScrollPosition() { - let dropdown = this.$element[0].querySelector('ul.dropdown'); - let child = dropdown ? dropdown.childNodes[this.activeOption] : null; - if (child && typeof child.scrollIntoView === 'function') { + let child = this.$element[0].querySelector('ul.dropdown li.active'); + let childRect = child.getBoundingClientRect(); + let containerRect = this.container.getBoundingClientRect(); + if (typeof child.scrollIntoView === 'function' && (childRect.top > containerRect.top + containerRect.height || childRect.top < containerRect.top)) { child.scrollIntoView(); } } - selectItem(item) { this.selected = item; if (this.multiple) { @@ -146,21 +168,40 @@ export default class DropDown { this.show = false; } } - loadItems() { if (this.showLoadMore && this.loadMore) { this.loadMore(); } this.show = true; } - + loadFromScroll(e) { + let containerRect = e.target.getBoundingClientRect(); + if (e.target.scrollHeight - e.target.scrollTop - containerRect.height <= 50) { + this.loadItems(); + } + } + $onChanges(changesObj) { + if (changesObj.show && changesObj.top && changesObj.top.currentValue) { + this.$element.css('top', changesObj.top.currentValue + 'px'); + } + if (changesObj.show && changesObj.itemWidth && changesObj.itemWidth.currentValue) { + this.$element.css('width', changesObj.itemWidth.currentValue + 'px'); + } + if (changesObj.items) { + this.filterItems(); + } + } $onInit() { if (this.parent) this.parent.addEventListener('keydown', e => this.onKeydown(e)); + if (this.container) + this.container.addEventListener('scroll', e => this.loadFromScroll(e)); } $onDestroy() { if (this.parent) this.parent.removeEventListener('keydown', e => this.onKeydown(e)); + if (this.container) + this.container.removeEventListener('scroll', e => this.loadFromScroll(e)); } } diff --git a/client/core/src/drop-down/drop-down.spec.js b/client/core/src/drop-down/drop-down.spec.js index 23fab3b087..b93de0d5f5 100644 --- a/client/core/src/drop-down/drop-down.spec.js +++ b/client/core/src/drop-down/drop-down.spec.js @@ -17,6 +17,7 @@ describe('Component vnDropDown', () => { $timeout = _$timeout_; $filter = _$filter_; controller = $componentController('vnDropDown', {$element, $timeout, $filter}); + controller.parent = angular.element('')[0]; })); describe('show() setter', () => { @@ -62,43 +63,43 @@ describe('Component vnDropDown', () => { it(`should set _activeOption as items.length if showLoadMore is defined if activeOption is bigger than items.length then call loadItems()`, () => { spyOn(controller, 'loadItems'); controller.showLoadMore = true; - controller.items = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.activeOption = 10; $timeout.flush(); - expect(controller._activeOption).toEqual(4); + expect(controller.activeOption).toEqual(4); expect(controller.loadItems).toHaveBeenCalledWith(); }); it(`should set _activeOption as activeOption if showLoadMore is defined if activeOption is smaller than items.length then call loadItems()`, () => { spyOn(controller, 'loadItems'); controller.showLoadMore = true; - controller.items = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.activeOption = 2; $timeout.flush(); - expect(controller._activeOption).toEqual(2); + expect(controller.activeOption).toEqual(2); expect(controller.loadItems).toHaveBeenCalledWith(); }); it(`should set _activeOption as items.length -1 if showLoadMore is not defined then call loadItems()`, () => { spyOn(controller, 'loadItems'); controller.showLoadMore = undefined; - controller.items = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.activeOption = 10; $timeout.flush(); - expect(controller._activeOption).toEqual(3); + expect(controller.activeOption).toEqual(3); expect(controller.loadItems).toHaveBeenCalledWith(); }); it(`should define _activeOption as activeOption and never call loadItems()`, () => { spyOn(controller, 'loadItems'); - controller.items = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}, {id: 5, name: 'Doctor X'}]; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}, {id: 5, name: 'Doctor X'}]; controller.activeOption = 1; $timeout.flush(); - expect(controller._activeOption).toEqual(1); + expect(controller.activeOption).toEqual(1); expect(controller.loadItems).not.toHaveBeenCalledWith(); }); }); @@ -235,7 +236,7 @@ describe('Component vnDropDown', () => { }); it(`should call clearSearch() Esc key is pressed and take off 1 from _activeOption`, () => { - controller.items = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; spyOn(controller, 'setScrollPosition'); controller._show = true; controller.element = document.createElement('div'); @@ -250,7 +251,7 @@ describe('Component vnDropDown', () => { }); it(`should call clearSearch() Esc key is pressed and add up 1 to _activeOption`, () => { - controller.items = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; spyOn(controller, 'setScrollPosition'); controller._show = true; controller.element = document.createElement('div'); @@ -265,18 +266,19 @@ describe('Component vnDropDown', () => { }); }); - describe('setScrollPosition()', () => { - it(`should call child.scrollIntoView if defined `, () => { - $element[0].firstChild.setAttribute('class', 'dropdown'); - let child = $element[0].firstChild.firstChild; - child.scrollIntoView = () => {}; - spyOn(child, 'scrollIntoView'); - controller._activeOption = 0; - controller.setScrollPosition(); + // describe('setScrollPosition()', () => { + // it(`should call child.scrollIntoView if defined `, () => { + // $element[0].firstChild.setAttribute('class', 'dropdown'); + // let child = $element[0].firstChild.firstChild; - expect(child.scrollIntoView).toHaveBeenCalledWith(); - }); - }); + // child.scrollIntoView = () => {}; + // spyOn(child, 'scrollIntoView'); + // controller._activeOption = 0; + // controller.setScrollPosition(); + + // expect(child.scrollIntoView).toHaveBeenCalledWith(); + // }); + // }); describe('selectItem()', () => { it(`should pass item to selected and set controller._show to false`, () => { From 3bd913cbd9d14177f0235aa27549bc38af31c4db Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 22 Nov 2017 13:19:51 +0100 Subject: [PATCH 028/287] changed datasource in salesperson service --- services/client/common/methods/client/salesperson.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/client/common/methods/client/salesperson.js b/services/client/common/methods/client/salesperson.js index 01a7a48ece..d2851cd027 100644 --- a/services/client/common/methods/client/salesperson.js +++ b/services/client/common/methods/client/salesperson.js @@ -26,10 +26,10 @@ module.exports = Client => { let where = getCondition(filter.where, limit, skip); let query = `SELECT em.id, em.name, em.surname - FROM Employee em - JOIN Account ac ON em.userFk = ac.id - JOIN Role ON Role.id = ac.roleFK - WHERE ac.active AND Role.\`name\`='salesPerson' ${where.sql} + FROM salix.Employee em + JOIN salix.Account ac ON em.userFk = ac.id + JOIN salix.Role r ON r.id = ac.roleFK + WHERE ac.active AND r.\`name\`='salesPerson' ${where.sql} ORDER BY em.name ASC LIMIT ? OFFSET ?`; From ba73869fd3572cccc26a91b68e43939e3c17b4dd Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 22 Nov 2017 13:24:36 +0100 Subject: [PATCH 029/287] changes in getRoleCustomer service --- services/client/common/methods/client/roles.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/client/common/methods/client/roles.js b/services/client/common/methods/client/roles.js index 1e8a1f475f..a86fa5376a 100644 --- a/services/client/common/methods/client/roles.js +++ b/services/client/common/methods/client/roles.js @@ -32,7 +32,7 @@ module.exports = Client => { }); Client.getRoleCustomer = (id, context, callback) => { - let query = `SELECT count(*) isCustomer FROM Account ac JOIN Role ON Role.id = ac.roleFK WHERE Role.\`name\`='customer' AND ac.id IN (?)`; + let query = `SELECT count(*) isCustomer FROM salix.Account ac JOIN salix.Role r ON r.id = ac.roleFK WHERE r.\`name\`='customer' AND ac.id IN (?)`; const params = [id]; Client.rawSql(query, params, callback) .then(response => { From aae137d35ed31154d915f05fac100ffa05097e79 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 22 Nov 2017 13:35:05 +0100 Subject: [PATCH 030/287] changed datasource in employeeList service --- .../client/common/methods/client/employee.js | 8 +++---- services/production/server/model-config.json | 22 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/services/client/common/methods/client/employee.js b/services/client/common/methods/client/employee.js index 8ad6dbbaad..4e6d897567 100644 --- a/services/client/common/methods/client/employee.js +++ b/services/client/common/methods/client/employee.js @@ -23,10 +23,10 @@ module.exports = function(Client) { Client.employeeList = function(callback) { let query = `SELECT em.id, CASE em.surname WHEN NULL THEN em.name ELSE concat(em.name, " ", em.surname) END \`name\` - FROM Employee em - JOIN Account ac ON em.userFk = ac.id - JOIN RoleMapping rm on ac.id=rm.principalId - JOIN Role rl on rm.roleId = rl.id + FROM salix.Employee em + JOIN salix.Account ac ON em.userFk = ac.id + JOIN salix.RoleMapping rm on ac.id=rm.principalId + JOIN salix.Role rl on rm.roleId = rl.id WHERE ac.active and rl.\`name\`='employee' ORDER BY em.name ASC`; diff --git a/services/production/server/model-config.json b/services/production/server/model-config.json index 3b60b6f130..d4d72f77d9 100644 --- a/services/production/server/model-config.json +++ b/services/production/server/model-config.json @@ -25,40 +25,40 @@ "dataSource": "salix" }, "Ticket": { - "dataSource": "vn" + "dataSource": "salix" }, "State":{ - "dataSource": "vn" + "dataSource": "salix" }, "TicketState":{ - "dataSource": "vn" + "dataSource": "salix" }, "Warehouse":{ - "dataSource": "vn" + "dataSource": "salix" }, "Employee":{ - "dataSource": "vn" + "dataSource": "salix" }, "Client":{ "dataSource": "client" }, "Province":{ - "dataSource": "vn" + "dataSource": "salix" }, "Agency": { - "dataSource": "vn" + "dataSource": "salix" }, "FakeProduction": { - "dataSource": "vn" + "dataSource": "salix" }, "Message": { - "dataSource": "vn" + "dataSource": "salix" }, "MessageInbox": { - "dataSource": "vn" + "dataSource": "salix" }, "Route": { - "dataSource": "vn" + "dataSource": "salix" } } From 774f577edda93cb9a466c12f8030cdbd7a4447af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Wed, 22 Nov 2017 20:54:20 +0100 Subject: [PATCH 031/287] =?UTF-8?q?Ruta=20de=20validaci=C3=B3n=20de=20toke?= =?UTF-8?q?n=20en=20servicio=20Auth?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/auth/server/boot/routes.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/services/auth/server/boot/routes.js b/services/auth/server/boot/routes.js index f29e648f98..9aa76896b3 100644 --- a/services/auth/server/boot/routes.js +++ b/services/auth/server/boot/routes.js @@ -85,8 +85,32 @@ module.exports = function(app) { }); app.get('/logout', function(req, res) { - console.log(req.accessToken); User.logout(req.accessToken.id, () => res.redirect('/')); }); + + app.get('/validateToken', function(req, res) { + let token = req.headers.authorization; + + validateToken(token, function(isValid) { + if (isValid) { + res.status(200); + } else { + res.status(401).json({ + message: 'Invalid token' + }); + } + }); + }); + + function validateToken(tokenId, cb) { + app.models.AccessToken.findById(tokenId, function(err, token) { + if (token) { + token.validate(function (err, isValid) { + cb(isValid === true, token); + }); + } else + cb(false); + }); + } }; From 5ad2c704008f18b60317bfeefd6dc10ef35b34cd Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 23 Nov 2017 08:35:17 +0100 Subject: [PATCH 032/287] bug fixed in production and production filters --- client/production/src/index/index.html | 5 +++-- client/production/src/index/index.js | 11 ++++++++--- client/salix/src/components/searchbar/searchbar.js | 6 ++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/client/production/src/index/index.html b/client/production/src/index/index.html index ae0e881609..bc4488aa9b 100644 --- a/client/production/src/index/index.html +++ b/client/production/src/index/index.html @@ -1,4 +1,4 @@ - + @@ -11,6 +11,7 @@ advanced="true" popover="vn-production-filter-panel" ignore-keys = "['page', 'size', 'search', 'warehouseFk']" + data ="$ctrl.sharedData" > @@ -30,7 +31,7 @@ - + diff --git a/client/production/src/index/index.js b/client/production/src/index/index.js index b926f5fa0c..48aa3f9ae0 100644 --- a/client/production/src/index/index.js +++ b/client/production/src/index/index.js @@ -8,7 +8,7 @@ export default class ProductionIndex { this.$http = $http; this.filter = {}; this.tickets = []; - this.states = []; + this.checkAll = 0; this.footer = { total: null, @@ -16,7 +16,12 @@ export default class ProductionIndex { meters: null }; this._search = null; - this.hourItems = []; + + this.sharedData = { + states: [], + hourItems: [] + }; + this.child = undefined; this.userProfile = aclConstant.userProfile; this.filter.warehouseFk = this.userProfile.warehouseId; @@ -89,7 +94,7 @@ export default class ProductionIndex { hour = [0, i].join(''); } hour += ':00'; - this.hourItems.push({id: i, name: hour}); + this.sharedData.hourItems.push({id: i, name: hour}); } this.filter.warehouseFk = this.$.displayValue = this.userProfile.warehouseId; } diff --git a/client/salix/src/components/searchbar/searchbar.js b/client/salix/src/components/searchbar/searchbar.js index 7c5c62515e..06d572f333 100644 --- a/client/salix/src/components/searchbar/searchbar.js +++ b/client/salix/src/components/searchbar/searchbar.js @@ -69,7 +69,8 @@ export default class Controller { var childCtrl = angular.element(this.child).isolateScope().$ctrl; childCtrl.filter = Object.assign({}, this.index.filter); childCtrl.onSubmit = filter => this.onChildSubmit(filter); - + if (this.data) + childCtrl.data = Object.assign({}, this.data); event.preventDefault(); } onChildSubmit(filter) { @@ -112,7 +113,8 @@ ngModule.component('vnSearchbar', { advanced: '=', popover: '@', label: '@?', - ignoreKeys: ' Date: Thu, 23 Nov 2017 14:07:55 +0100 Subject: [PATCH 033/287] nuevo comportamiento para dropDown, abrir arriba --- client/core/src/drop-down/drop-down.html | 8 ++-- client/core/src/drop-down/drop-down.js | 57 +++++++++++++++++------- client/core/src/drop-down/style.scss | 24 +++++++++- 3 files changed, 69 insertions(+), 20 deletions(-) diff --git a/client/core/src/drop-down/drop-down.html b/client/core/src/drop-down/drop-down.html index 9bab060696..04cdffc75f 100644 --- a/client/core/src/drop-down/drop-down.html +++ b/client/core/src/drop-down/drop-down.html @@ -1,11 +1,11 @@ - + - - + + - + \ No newline at end of file diff --git a/client/core/src/drop-down/drop-down.js b/client/core/src/drop-down/drop-down.js index f34e44e896..e8227858ab 100644 --- a/client/core/src/drop-down/drop-down.js +++ b/client/core/src/drop-down/drop-down.js @@ -12,6 +12,7 @@ export default class DropDown { this.itemsFiltered = []; this._activeOption = -1; this._focusingFilter = false; + this._tryToShow = 0; } get show() { return this._show; @@ -19,11 +20,20 @@ export default class DropDown { set show(value) { let oldValue = this.show; - this._show = value; - this._setFocusInFilterInput(value, oldValue); - this.$timeout(() => { - this._calculatePosition(value, oldValue); - }); + // I wait up to 1 second if the dropdown opens but there is no data to show + if (value && !oldValue && !this.itemsFiltered.length && this._tryToShow < 4) { + this.$timeout(() => { + this._tryToShow++; + this.show = true; + }, 250); + } else { + this._tryToShow = 0; + this._show = value; + this._setFocusInFilterInput(value, oldValue); + this.$timeout(() => { + this._calculatePosition(value, oldValue); + }); + } } get search() { @@ -68,21 +78,42 @@ export default class DropDown { }, 250); } } + _background(create) { + let el = document.getElementById('ddBack'); + if (el) { + el.parentNode.removeChild(el); + } + + if (create) { + el = document.createElement('div'); + el.id = 'ddBack'; + document.body.appendChild(el); + } + } _calculatePosition(value, oldValue) { - if (value && value !== oldValue && !this.top) { + if (value && !oldValue) { if (this.parent === undefined) { this.parent = this.$element.parent().parent(); } let parentRect = this.parent.getBoundingClientRect(); let elemetRect = this.$element[0].getBoundingClientRect(); + let instOffset = parentRect.bottom + elemetRect.height; - if (parentRect.y + parentRect.height + elemetRect.height > window.innerHeight) { - let height = this.parent.nodeName === 'VN-AUTOCOMPLETE' ? elemetRect.height : elemetRect.height + parentRect.height; - this.$element.css('margin-top', `-${height}px`); - } else { - this.$element.css('margin-top', ``); + if (instOffset >= window.innerHeight) { + this._background(true); + this.$element.addClass('fixed-dropDown'); + this.$element.css('top', `${(parentRect.top - elemetRect.height)}px`); + this.$element.css('left', `${(parentRect.x)}px`); + this.$element.css('height', `${elemetRect.height}px`); } + } else if (!value && oldValue) { + this.$element.removeAttr('style'); + if (this.itemWidth) { + this.$element.css('width', this.itemWidth + 'px'); + } + this.$element.removeClass('fixed-dropDown'); + this._background(); } } @@ -181,9 +212,6 @@ export default class DropDown { } } $onChanges(changesObj) { - if (changesObj.show && changesObj.top && changesObj.top.currentValue) { - this.$element.css('top', changesObj.top.currentValue + 'px'); - } if (changesObj.show && changesObj.itemWidth && changesObj.itemWidth.currentValue) { this.$element.css('width', changesObj.itemWidth.currentValue + 'px'); } @@ -220,7 +248,6 @@ module.component('vnDropDown', { removeLoadMore: ' Date: Thu, 23 Nov 2017 14:09:38 +0100 Subject: [PATCH 034/287] ajustes de etiquetas html y css --- client/core/src/autocomplete/autocomplete.html | 4 ++-- client/core/src/autocomplete/style.scss | 2 +- client/core/src/icon-menu/icon-menu.html | 4 ++-- client/core/src/icon-menu/icon-menu.js | 13 ++++++++++--- client/core/src/textfield/style.scss | 5 +++-- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/client/core/src/autocomplete/autocomplete.html b/client/core/src/autocomplete/autocomplete.html index e3887a9376..b709e278ac 100644 --- a/client/core/src/autocomplete/autocomplete.html +++ b/client/core/src/autocomplete/autocomplete.html @@ -1,6 +1,6 @@ - - + +
{ this.$timeout(() => { - this.showDropDown = true; + this.mouseFocus = true; + this.showDropDown = this.focused; }); }); this.$element.bind('mouseout', () => { this.$timeout(() => { - this.showDropDown = false; + this.mouseFocus = false; + this.showDropDown = this.focused; }); }); this.$element.bind('focusin', e => { this.$timeout(() => { + this.focused = true; this.showDropDown = true; }); }); this.$element.bind('focusout', e => { this.$timeout(() => { - this.showDropDown = false; + this.focused = false; + this.showDropDown = this.mouseFocus; }); }); } diff --git a/client/core/src/textfield/style.scss b/client/core/src/textfield/style.scss index aafeee2045..b8d1557772 100644 --- a/client/core/src/textfield/style.scss +++ b/client/core/src/textfield/style.scss @@ -8,11 +8,12 @@ vn-textfield { top: 0px; right: -6px; margin: 22px 0px; - background-color: white; + background: transparent; + z-index: 9999; } .material-icons { font-size: 18px; float: right; - margin-right: 5px; + margin-right: 5px; } } \ No newline at end of file From c386b6aaea42913b68f3767dc8c2f9318aa8634e Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 23 Nov 2017 14:53:37 +0100 Subject: [PATCH 035/287] =?UTF-8?q?actualizacion=20de=20la=20material=20de?= =?UTF-8?q?sign=20cuando=20un=20elemento=20est=C3=A1=20bloquedo=20por=20AC?= =?UTF-8?q?L?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/core/src/directives/acl.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/client/core/src/directives/acl.js b/client/core/src/directives/acl.js index 362dad65df..73100a23a1 100644 --- a/client/core/src/directives/acl.js +++ b/client/core/src/directives/acl.js @@ -1,6 +1,25 @@ import {module} from '../module'; function vnAcl(aclService, $timeout) { + function getMaterialType(className) { + let type = ''; + if (className) { + type = className.replace('mdl-', '').replace('__input', ''); + type = type.charAt(0).toUpperCase() + type.slice(1); + } + return type; + } + function udateMaterial(input) { + if (input && input.className) { + let find = input.className.match(/mdl-[\w]+input/g); + if (find.length && find[0]) { + let type = getMaterialType(find[0]); + if (type && input.parentNode[`Material${type}`] && input.parentNode[`Material${type}`].updateClasses_) { + input.parentNode[`Material${type}`].updateClasses_(); + } + } + } + } return { restrict: 'A', priority: -1, @@ -18,6 +37,7 @@ function vnAcl(aclService, $timeout) { if (input) { $timeout(() => { input.setAttribute("disabled", "true"); + udateMaterial(input); }); $element[0].querySelectorAll('i, vn-drop-down').forEach(element => { element.parentNode.removeChild(element); From a16f8b29c2c7069894e70d2f21e9a86852ba0837 Mon Sep 17 00:00:00 2001 From: jgallego Date: Fri, 24 Nov 2017 07:39:05 +0100 Subject: [PATCH 036/287] vnCard con nuevo formato --- client/client/src/card/card.js | 1 - client/client/src/card/style.css | 3 --- client/client/src/descriptor/descriptor.html | 25 ++++++++++++-------- client/client/src/locale/es.json | 3 ++- 4 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 client/client/src/card/style.css diff --git a/client/client/src/card/card.js b/client/client/src/card/card.js index b21c3f6362..9660ce3ce6 100644 --- a/client/client/src/card/card.js +++ b/client/client/src/card/card.js @@ -1,5 +1,4 @@ import ngModule from '../module'; -import './style.css'; export default class Controller { constructor() { diff --git a/client/client/src/card/style.css b/client/client/src/card/style.css deleted file mode 100644 index 30d68e7828..0000000000 --- a/client/client/src/card/style.css +++ /dev/null @@ -1,3 +0,0 @@ -vn-descriptor { - font-family: vn-font-bold; -} \ No newline at end of file diff --git a/client/client/src/descriptor/descriptor.html b/client/client/src/descriptor/descriptor.html index 3157cf570a..1139ffa8f5 100644 --- a/client/client/src/descriptor/descriptor.html +++ b/client/client/src/descriptor/descriptor.html @@ -1,14 +1,19 @@ - - + + - person + person - -
{{::$ctrl.client.id}}
-
{{$ctrl.client.name}}
-
{{$ctrl.client.phone}}
-
-
-
+
+ + {{$ctrl.client.name}} + Client id: {{$ctrl.client.id}} + Mobile: {{$ctrl.client.mobile | phone}} + Salesperson: cesteban + Credit: {{($ctrl.client.credit | number:0) + " €"}} +
diff --git a/client/client/src/locale/es.json b/client/client/src/locale/es.json index ae0e1a52a5..3e3e631ea8 100644 --- a/client/client/src/locale/es.json +++ b/client/client/src/locale/es.json @@ -12,5 +12,6 @@ "Province": "Provincia", "Save": "Guardar", "Pay method" : "Forma de pago", - "Address": "Consignatario" + "Address": "Consignatario", + "Credit": "Crédito" } From 09d788faaacea93873a4ffa8718453f55006fff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Mon, 27 Nov 2017 15:08:18 +0100 Subject: [PATCH 037/287] Escritos, servicio print --- .vscode/launch.json | 20 -- .../client/src/billing-data/billing-data.js | 2 +- services/auth/server/boot/routes.js | 25 --- .../client/common/methods/client/activate.js | 2 +- services/mailer/application/auth.js | 19 +- services/mailer/application/config.js | 18 ++ services/mailer/application/config/app.json | 9 - .../mailer/application/config/app.test.json | 9 - .../application/config/datasources.json | 29 +++ .../application/config/datasources.test.json | 29 +++ services/mailer/application/config/mysql.json | 7 - .../mailer/application/config/mysql.test.json | 7 - services/mailer/application/config/smtp.json | 13 -- services/mailer/application/database.js | 8 +- services/mailer/application/locale.js | 4 +- services/mailer/application/mail.js | 28 +-- .../mailer/application/route/manuscript.js | 85 --------- .../mailer/application/route/notification.js | 98 +++++++++- services/mailer/application/router.js | 4 - services/mailer/application/settings.js | 45 ----- services/mailer/application/template.js | 123 +++++++++--- .../template/client-welcome/client-welcome.js | 3 +- .../template/client-welcome/index.html | 117 +++--------- .../template/client-welcome/locale/es.json | 30 ++- .../client-welcome/static/css/style.css | 0 .../application/template/footer/footer.js | 20 ++ .../application/template/footer/index.html | 42 +++++ .../template/footer/locale/es.json | 7 + .../template/footer}/static/css/style.css | 38 ---- .../template/footer/static/image/action.png | Bin 0 -> 3225 bytes .../template/footer/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/footer/static/image/header.png | Bin 0 -> 30712 bytes .../template/footer/static/image/info.png | Bin 0 -> 3045 bytes .../footer/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/footer/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/footer/static/image/logo.png | Bin 0 -> 8577 bytes .../template/footer/static/image/logo.svg | 48 +++++ .../footer/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/footer/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/footer/static/image/youtube.png | Bin 0 -> 3513 bytes .../application/template/header/header.js | 20 ++ .../application/template/header/index.html | 3 + .../template/header/locale/es.json | 2 + .../template/header/static/css/style.css | 3 + .../template/header/static/image/action.png | Bin 0 -> 3225 bytes .../template/header/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/header/static/image/header.png | Bin 0 -> 30712 bytes .../template/header/static/image/info.png | Bin 0 -> 3045 bytes .../header/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/header/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/header/static/image/logo.png | Bin 0 -> 8577 bytes .../template/header/static/image/logo.svg | 48 +++++ .../header/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/header/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/header/static/image/youtube.png | Bin 0 -> 3513 bytes .../template/notification-alias/index.html | 81 ++------ .../notification-alias/locale/es.json | 9 +- .../notification-alias/static/css/style.css | 0 .../template/payment-update/index.html | 65 ++----- .../template/payment-update/locale/es.json | 13 +- .../template/payment-update/payment-update.js | 5 +- .../payment-update/static/css/style.css | 0 .../template/printer-setup/index.html | 68 ++----- .../template/printer-setup/locale/es.json | 9 +- .../template/printer-setup/printer-setup.js | 4 +- .../printer-setup/static/css/style.css | 0 .../application/template/sepa-core/index.html | 59 +----- .../template/sepa-core/locale/es.json | 14 +- .../template/sepa-core/sepa-core.js | 27 ++- .../template/sepa-core/static/css/style.css | 0 services/mailer/server/server.js | 6 +- services/mailer/static/css/component.css | 137 ++++++++++++++ services/mailer/static/images/attachment.png | Bin 0 -> 18546 bytes services/nginx/conf-dev.conf | 3 + services/nginx/conf-prod.conf | 3 + services/nginx/config.json | 14 ++ services/print/.gitignore | 5 + services/print/application/auth.js | 62 +++++++ services/print/application/config.js | 18 ++ .../print/application/config/datasources.json | 19 ++ .../application/config/datasources.test.json | 19 ++ services/print/application/database.js | 24 +++ services/print/application/locale.js | 42 +++++ .../print/application/route/manuscript.js | 57 ++++++ services/print/application/router.js | 12 ++ services/print/application/template.js | 175 ++++++++++++++++++ .../application/template/footer/footer.js | 20 ++ .../application/template/footer/index.html | 5 + .../template/footer/locale/es.json | 4 + .../template/footer/static/css/style.css | 23 +++ .../template/footer/static/image/action.png | Bin 0 -> 3225 bytes .../template/footer/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/footer/static/image/header.png | Bin 0 -> 30712 bytes .../template/footer/static/image/info.png | Bin 0 -> 3045 bytes .../footer/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/footer/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/footer/static/image/logo.png | Bin 0 -> 8577 bytes .../template/footer/static/image/logo.svg | 48 +++++ .../footer/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/footer/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/footer/static/image/youtube.png | Bin 0 -> 3513 bytes .../application/template/header/header.js | 20 ++ .../application/template/header/index.html | 7 + .../template/header/locale/es.json | 4 + .../template/header/static/css/style.css | 16 ++ .../template/header/static/image/action.png | Bin 0 -> 3225 bytes .../template/header/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/header/static/image/header.png | Bin 0 -> 30712 bytes .../template/header/static/image/info.png | Bin 0 -> 3045 bytes .../header/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/header/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/header/static/image/logo.png | Bin 0 -> 8577 bytes .../template/header/static/image/logo.svg | 48 +++++ .../header/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/header/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/header/static/image/youtube.png | Bin 0 -> 3513 bytes .../application/template/sepa-core/index.html | 114 ++++++++++++ .../template/sepa-core/locale/es.json | 24 +++ .../template/sepa-core/sepa-core.js | 54 ++++++ .../template/sepa-core/static/css/style.css | 22 +++ .../sepa-core/static/image/action.png | Bin 0 -> 3225 bytes .../sepa-core/static/image/facebook.png | Bin 0 -> 3586 bytes .../sepa-core/static/image/header.png | Bin 0 -> 30712 bytes .../template/sepa-core/static/image/info.png | Bin 0 -> 3045 bytes .../sepa-core/static/image/instagram.png | Bin 0 -> 3719 bytes .../sepa-core/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/sepa-core/static/image/logo.png | Bin 0 -> 8577 bytes .../template/sepa-core/static/image/logo.svg | 48 +++++ .../sepa-core/static/image/pinterest.png | Bin 0 -> 3807 bytes .../sepa-core/static/image/twitter.png | Bin 0 -> 3646 bytes .../sepa-core/static/image/youtube.png | Bin 0 -> 3513 bytes services/print/application/util/format.js | 59 ++++++ services/print/application/util/system.js | 10 + services/print/package.json | 20 ++ services/print/server/server.js | 38 ++++ services/print/static/css/component.css | 75 ++++++++ services/salix/server/boot/routes.js | 14 ++ 137 files changed, 1907 insertions(+), 681 deletions(-) create mode 100644 services/mailer/application/config.js delete mode 100644 services/mailer/application/config/app.json delete mode 100644 services/mailer/application/config/app.test.json create mode 100644 services/mailer/application/config/datasources.json create mode 100644 services/mailer/application/config/datasources.test.json delete mode 100644 services/mailer/application/config/mysql.json delete mode 100644 services/mailer/application/config/mysql.test.json delete mode 100644 services/mailer/application/config/smtp.json delete mode 100644 services/mailer/application/route/manuscript.js delete mode 100644 services/mailer/application/settings.js create mode 100644 services/mailer/application/template/client-welcome/static/css/style.css create mode 100644 services/mailer/application/template/footer/footer.js create mode 100644 services/mailer/application/template/footer/index.html create mode 100644 services/mailer/application/template/footer/locale/es.json rename services/mailer/{ => application/template/footer}/static/css/style.css (58%) create mode 100644 services/mailer/application/template/footer/static/image/action.png create mode 100644 services/mailer/application/template/footer/static/image/facebook.png create mode 100644 services/mailer/application/template/footer/static/image/header.png create mode 100644 services/mailer/application/template/footer/static/image/info.png create mode 100644 services/mailer/application/template/footer/static/image/instagram.png create mode 100644 services/mailer/application/template/footer/static/image/linkedin.png create mode 100644 services/mailer/application/template/footer/static/image/logo.png create mode 100644 services/mailer/application/template/footer/static/image/logo.svg create mode 100644 services/mailer/application/template/footer/static/image/pinterest.png create mode 100644 services/mailer/application/template/footer/static/image/twitter.png create mode 100644 services/mailer/application/template/footer/static/image/youtube.png create mode 100644 services/mailer/application/template/header/header.js create mode 100644 services/mailer/application/template/header/index.html create mode 100644 services/mailer/application/template/header/locale/es.json create mode 100644 services/mailer/application/template/header/static/css/style.css create mode 100644 services/mailer/application/template/header/static/image/action.png create mode 100644 services/mailer/application/template/header/static/image/facebook.png create mode 100644 services/mailer/application/template/header/static/image/header.png create mode 100644 services/mailer/application/template/header/static/image/info.png create mode 100644 services/mailer/application/template/header/static/image/instagram.png create mode 100644 services/mailer/application/template/header/static/image/linkedin.png create mode 100644 services/mailer/application/template/header/static/image/logo.png create mode 100644 services/mailer/application/template/header/static/image/logo.svg create mode 100644 services/mailer/application/template/header/static/image/pinterest.png create mode 100644 services/mailer/application/template/header/static/image/twitter.png create mode 100644 services/mailer/application/template/header/static/image/youtube.png create mode 100644 services/mailer/application/template/notification-alias/static/css/style.css create mode 100644 services/mailer/application/template/payment-update/static/css/style.css create mode 100644 services/mailer/application/template/printer-setup/static/css/style.css create mode 100644 services/mailer/application/template/sepa-core/static/css/style.css create mode 100644 services/mailer/static/css/component.css create mode 100644 services/mailer/static/images/attachment.png create mode 100644 services/nginx/config.json create mode 100644 services/print/.gitignore create mode 100644 services/print/application/auth.js create mode 100644 services/print/application/config.js create mode 100644 services/print/application/config/datasources.json create mode 100644 services/print/application/config/datasources.test.json create mode 100644 services/print/application/database.js create mode 100644 services/print/application/locale.js create mode 100644 services/print/application/route/manuscript.js create mode 100644 services/print/application/router.js create mode 100644 services/print/application/template.js create mode 100644 services/print/application/template/footer/footer.js create mode 100644 services/print/application/template/footer/index.html create mode 100644 services/print/application/template/footer/locale/es.json create mode 100644 services/print/application/template/footer/static/css/style.css create mode 100644 services/print/application/template/footer/static/image/action.png create mode 100644 services/print/application/template/footer/static/image/facebook.png create mode 100644 services/print/application/template/footer/static/image/header.png create mode 100644 services/print/application/template/footer/static/image/info.png create mode 100644 services/print/application/template/footer/static/image/instagram.png create mode 100644 services/print/application/template/footer/static/image/linkedin.png create mode 100644 services/print/application/template/footer/static/image/logo.png create mode 100644 services/print/application/template/footer/static/image/logo.svg create mode 100644 services/print/application/template/footer/static/image/pinterest.png create mode 100644 services/print/application/template/footer/static/image/twitter.png create mode 100644 services/print/application/template/footer/static/image/youtube.png create mode 100644 services/print/application/template/header/header.js create mode 100644 services/print/application/template/header/index.html create mode 100644 services/print/application/template/header/locale/es.json create mode 100644 services/print/application/template/header/static/css/style.css create mode 100644 services/print/application/template/header/static/image/action.png create mode 100644 services/print/application/template/header/static/image/facebook.png create mode 100644 services/print/application/template/header/static/image/header.png create mode 100644 services/print/application/template/header/static/image/info.png create mode 100644 services/print/application/template/header/static/image/instagram.png create mode 100644 services/print/application/template/header/static/image/linkedin.png create mode 100644 services/print/application/template/header/static/image/logo.png create mode 100644 services/print/application/template/header/static/image/logo.svg create mode 100644 services/print/application/template/header/static/image/pinterest.png create mode 100644 services/print/application/template/header/static/image/twitter.png create mode 100644 services/print/application/template/header/static/image/youtube.png create mode 100644 services/print/application/template/sepa-core/index.html create mode 100644 services/print/application/template/sepa-core/locale/es.json create mode 100644 services/print/application/template/sepa-core/sepa-core.js create mode 100644 services/print/application/template/sepa-core/static/css/style.css create mode 100644 services/print/application/template/sepa-core/static/image/action.png create mode 100644 services/print/application/template/sepa-core/static/image/facebook.png create mode 100644 services/print/application/template/sepa-core/static/image/header.png create mode 100644 services/print/application/template/sepa-core/static/image/info.png create mode 100644 services/print/application/template/sepa-core/static/image/instagram.png create mode 100644 services/print/application/template/sepa-core/static/image/linkedin.png create mode 100644 services/print/application/template/sepa-core/static/image/logo.png create mode 100644 services/print/application/template/sepa-core/static/image/logo.svg create mode 100644 services/print/application/template/sepa-core/static/image/pinterest.png create mode 100644 services/print/application/template/sepa-core/static/image/twitter.png create mode 100644 services/print/application/template/sepa-core/static/image/youtube.png create mode 100644 services/print/application/util/format.js create mode 100644 services/print/application/util/system.js create mode 100644 services/print/package.json create mode 100644 services/print/server/server.js create mode 100644 services/print/static/css/component.css diff --git a/.vscode/launch.json b/.vscode/launch.json index ecebe6bce5..b35ebd9e4f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,26 +1,6 @@ { "version": "0.2.0", "configurations": [ - { - "name": "Iniciar", - "type": "node", - "request": "launch", - "program": "${workspaceRoot}/services/auth/server/server.js", - "stopOnEntry": false, - "args": [], - "cwd": "${workspaceRoot}", - "preLaunchTask": null, - "runtimeExecutable": null, - "runtimeArgs": [ - "--nolazy" - ], - "env": { - "NODE_ENV": "development" - }, - "console": "internalConsole", - "sourceMaps": false, - "outFiles": [] - }, { "name": "Asociar", "type": "node", diff --git a/client/client/src/billing-data/billing-data.js b/client/client/src/billing-data/billing-data.js index a6887039e3..51a411013e 100644 --- a/client/client/src/billing-data/billing-data.js +++ b/client/client/src/billing-data/billing-data.js @@ -43,7 +43,7 @@ export default class Controller { } returnDialog(response) { if (response === 'ACCEPT') { - this.$http.post(`/mailer/manuscript/payment-update/${this.client.id}`).then( + this.$http.post(`/mailer/notification/payment-update/${this.client.id}`).then( () => { this.vnApp.showMessage(this.translate.instant('Notification sent!')); } diff --git a/services/auth/server/boot/routes.js b/services/auth/server/boot/routes.js index 9aa76896b3..3812a50fb5 100644 --- a/services/auth/server/boot/routes.js +++ b/services/auth/server/boot/routes.js @@ -88,29 +88,4 @@ module.exports = function(app) { User.logout(req.accessToken.id, () => res.redirect('/')); }); - - app.get('/validateToken', function(req, res) { - let token = req.headers.authorization; - - validateToken(token, function(isValid) { - if (isValid) { - res.status(200); - } else { - res.status(401).json({ - message: 'Invalid token' - }); - } - }); - }); - - function validateToken(tokenId, cb) { - app.models.AccessToken.findById(tokenId, function(err, token) { - if (token) { - token.validate(function (err, isValid) { - cb(isValid === true, token); - }); - } else - cb(false); - }); - } }; diff --git a/services/client/common/methods/client/activate.js b/services/client/common/methods/client/activate.js index 9d78d0d63b..279baffbff 100644 --- a/services/client/common/methods/client/activate.js +++ b/services/client/common/methods/client/activate.js @@ -49,7 +49,7 @@ module.exports = function(Client) { method: 'POST', headers: { 'content-type': 'application/json', - 'authorization': ctx.req.headers.authorization + 'Authorization': ctx.req.headers.authorization }, json: {} }; diff --git a/services/mailer/application/auth.js b/services/mailer/application/auth.js index ee8f114e13..81f423e15d 100644 --- a/services/mailer/application/auth.js +++ b/services/mailer/application/auth.js @@ -1,4 +1,5 @@ var database = require('./database.js'); +let config = require('./config.js'); module.exports = { @@ -31,7 +32,23 @@ module.exports = { if (this.isTokenExpired(token.created, token.ttl)) return this.response.status(401).send({message: 'Token expired'}); - this.request.userId = token.userId; + // Set proxy host + let host = this.request.headers.host.split(':')[0]; + let proxy; + + if (host == '127.0.0.1') + proxy = config.proxy.localhost; + else if(process.env.NODE_ENV == 'production') + proxy = config.proxy.salix; + else if(process.env.NODE_ENV == 'development') + proxy = config.proxy.testSalix; + + this.request.proxyHost = `http://${proxy.host}:${proxy.port}`; + this.request.user = { + id: token.userId, + token: this.getToken() + } + this.next(); }); }, diff --git a/services/mailer/application/config.js b/services/mailer/application/config.js new file mode 100644 index 0000000000..1b78e36cec --- /dev/null +++ b/services/mailer/application/config.js @@ -0,0 +1,18 @@ +var path = require('path'); +var fs = require('fs'); +var config = {}; + +let devConfigPath = path.join(__dirname, '/config/datasources.development.json'); +let configPath = path.join(__dirname, '/config/datasources.json'); + +try { + config = Object.assign(require(configPath), require(devConfigPath)); +} catch (e) { + if (e.code == 'MODULE_NOT_FOUND') + return require(configPath); +} + +config.proxy = require('../../nginx/config.json'); +config.package = require('../package.json'); + +module.exports = config; \ No newline at end of file diff --git a/services/mailer/application/config/app.json b/services/mailer/application/config/app.json deleted file mode 100644 index c9ec4174b9..0000000000 --- a/services/mailer/application/config/app.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "MailServer", - "version": "1.0.0", - "port": 3003, - "debug": false, - "defaultLanguage": "es", - "senderMail": "noreply@localhost", - "senderName": "" -} \ No newline at end of file diff --git a/services/mailer/application/config/app.test.json b/services/mailer/application/config/app.test.json deleted file mode 100644 index c9ec4174b9..0000000000 --- a/services/mailer/application/config/app.test.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "MailServer", - "version": "1.0.0", - "port": 3003, - "debug": false, - "defaultLanguage": "es", - "senderMail": "noreply@localhost", - "senderName": "" -} \ No newline at end of file diff --git a/services/mailer/application/config/datasources.json b/services/mailer/application/config/datasources.json new file mode 100644 index 0000000000..69943439d3 --- /dev/null +++ b/services/mailer/application/config/datasources.json @@ -0,0 +1,29 @@ +{ + "app": { + "port": 3003, + "debug": false, + "defaultLanguage": "es", + "senderMail": "noreply@localhost", + "senderName": "" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "smtp": { + "host": "localhost", + "port": 465, + "secure": true, + "auth": { + "user": "noreply", + "pass": "" + }, + "tls": { + "rejectUnauthorized": false + }, + "pool": true + } +} \ No newline at end of file diff --git a/services/mailer/application/config/datasources.test.json b/services/mailer/application/config/datasources.test.json new file mode 100644 index 0000000000..69943439d3 --- /dev/null +++ b/services/mailer/application/config/datasources.test.json @@ -0,0 +1,29 @@ +{ + "app": { + "port": 3003, + "debug": false, + "defaultLanguage": "es", + "senderMail": "noreply@localhost", + "senderName": "" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "smtp": { + "host": "localhost", + "port": 465, + "secure": true, + "auth": { + "user": "noreply", + "pass": "" + }, + "tls": { + "rejectUnauthorized": false + }, + "pool": true + } +} \ No newline at end of file diff --git a/services/mailer/application/config/mysql.json b/services/mailer/application/config/mysql.json deleted file mode 100644 index ddfd88bede..0000000000 --- a/services/mailer/application/config/mysql.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "host": "localhost", - "port": 3306, - "user": "reports", - "password": "", - "database": "" -} \ No newline at end of file diff --git a/services/mailer/application/config/mysql.test.json b/services/mailer/application/config/mysql.test.json deleted file mode 100644 index 5b00829b39..0000000000 --- a/services/mailer/application/config/mysql.test.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "host": "localhost", - "port": 3306, - "user": "root", - "password": "", - "database": "vn" -} \ No newline at end of file diff --git a/services/mailer/application/config/smtp.json b/services/mailer/application/config/smtp.json deleted file mode 100644 index 1ffa810243..0000000000 --- a/services/mailer/application/config/smtp.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "host": "localhost", - "port": 465, - "secure": true, - "auth": { - "user": "noreply", - "pass": "" - }, - "tls": { - "rejectUnauthorized": false - }, - "pool": true -} \ No newline at end of file diff --git a/services/mailer/application/database.js b/services/mailer/application/database.js index 53ce363f89..4fe4a0ba95 100644 --- a/services/mailer/application/database.js +++ b/services/mailer/application/database.js @@ -1,5 +1,5 @@ var mysql = require('mysql'); -let settings = require('./settings.js'); +let config = require('./config.js'); module.exports = { /** @@ -11,12 +11,12 @@ module.exports = { * Start database pool */ init: function() { - this.pool = mysql.createPool(settings.mysql()); + this.pool = mysql.createPool(config.mysql); this.pool.getConnection(function(error, connection) { if (error) { throw new Error('Can\'t connect to database: ' + error.code); - } else if (settings.app().debug) { + } else if (config.app.debug) { console.log('Database connection stablished'); } }); @@ -27,7 +27,7 @@ module.exports = { */ testEmail: function() { this.pool.query('SELECT fakeEmail as email FROM vn.config', function(error, qryRs) { - settings.testEmail = qryRs[0].email; + config.smtp.testEmail = qryRs[0].email; }); } }; diff --git a/services/mailer/application/locale.js b/services/mailer/application/locale.js index 496d48bb87..f9737fea32 100644 --- a/services/mailer/application/locale.js +++ b/services/mailer/application/locale.js @@ -1,5 +1,5 @@ var fs = require('fs'); -var settings = require('./settings.js'); +var config = require('./config.js'); var path = require('path'); module.exports = { @@ -11,7 +11,7 @@ module.exports = { */ load: function(template, countryCode, cb) { var localeFile = path.join(__dirname, 'template', `${template}`, 'locale', `${countryCode}.json`); - var defaultLocaleFile = path.join(__dirname, 'template', `${template}`, 'locale', `${settings.app().defaultLanguage}.json`); + var defaultLocaleFile = path.join(__dirname, 'template', `${template}`, 'locale', `${config.app.defaultLanguage}.json`); fs.stat(localeFile, (error, stats) => { if (error) { diff --git a/services/mailer/application/mail.js b/services/mailer/application/mail.js index 4807157a9f..3980e51286 100644 --- a/services/mailer/application/mail.js +++ b/services/mailer/application/mail.js @@ -1,5 +1,5 @@ var nodemailer = require('nodemailer'); -var settings = require('./settings.js'); +var config = require('./config.js'); var template = require('./template.js'); var database = require('./database.js'); @@ -9,15 +9,15 @@ var database = require('./database.js'); module.exports = { transporter: null, /** - * Load mail settings. + * Load mail config. */ init: function() { - this.transporter = nodemailer.createTransport(settings.smtp()); + this.transporter = nodemailer.createTransport(config.smtp); this.transporter.verify(function(error, success) { if (error) { throw new Error(error); - } else if (settings.app().debug) { + } else if (config.app.debug) { console.log('SMTP connection stablished'); } }); @@ -34,15 +34,15 @@ module.exports = { */ send: function(recipient, subject, body, attachments, params, cb) { let mailOptions = { - from: '"' + settings.app().senderName + '" <' + settings.app().senderMail + '>', + from: '"' + config.app.senderName + '" <' + config.app.senderMail + '>', to: recipient, subject: subject, html: body, attachments }; - if (settings.app().debug) { - mailOptions.to = settings.testEmail; + if (config.app.debug) { + mailOptions.to = config.smtp.testEmail; } this.transporter.sendMail(mailOptions, (error, info) => { @@ -53,7 +53,7 @@ module.exports = { if (error) return cb(new Error('Email not sent: ' + error)); - if (settings.app().debug) + if (config.app.debug) console.log('Mail sent ' + info.messageId + ' [' + info.response + ']'); cb(); @@ -70,10 +70,16 @@ module.exports = { * @param {Object} cb - Callback */ sendWithTemplate: function(tplName, params, cb) { - template.get(tplName, params, false, (error, result) => { + template.get(tplName, params, (error, result) => { if (error) return cb(error); + // Custom attachments + if (params.attachments) + params.attachments.forEach(function(attachment) { + result.attachments.push(attachment); + }); + this.send(result.recipient, result.subject, result.body, result.attachments, params, error => { if (error) return cb(error); @@ -96,10 +102,10 @@ module.exports = { log: function(senderId, recipientId, sender, subject, body, plainTextBody, status) { let qry = `INSERT INTO mail(senderFk, recipientFk, sender, replyTo, subject, body, plainTextBody, sent, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`; - let qryParams = [senderId, recipientId, sender, settings.app().senderMail, subject, body, plainTextBody, 1, status]; + let qryParams = [senderId, recipientId, sender, config.app.senderMail, subject, body, plainTextBody, 1, status]; database.pool.query(qry, qryParams, function(error, result) { - if (settings.app().debug && error) + if (config.app.debug && error) console.log('Mail log: ' + error); }); } diff --git a/services/mailer/application/route/manuscript.js b/services/mailer/application/route/manuscript.js deleted file mode 100644 index b8c54d43b2..0000000000 --- a/services/mailer/application/route/manuscript.js +++ /dev/null @@ -1,85 +0,0 @@ -var express = require('express'); -var router = new express.Router(); -var mail = require('../mail.js'); -var template = require('../template.js'); -var httpRequest = require('request'); - -// Payment method changes -router.post('/payment-update/:clientId', function(request, response, next) { - mail.sendWithTemplate('payment-update', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Printer setup -router.post('/printer-setup/:clientId', function(request, response, next) { - mail.sendWithTemplate('printer-setup', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Printer setup preview -router.get('/printer-setup/:clientId', function(request, response, next) { - template.get('printer-setup', {recipient: request.params.clientId}, true, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); -}); - -// Client welcome -router.post('/client-welcome/:clientId', function(request, response, next) { - mail.sendWithTemplate('client-welcome', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Client welcome preview -router.get('/client-welcome/:clientId', function(request, response, next) { - template.get('client-welcome', {recipient: request.params.clientId}, true, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); -}); - -// Sepa core -/* router.post('/sepa-core/:clientId', function(request, response, next) { - var options = { - url: 'http://localhost:3008/manuscript/sepa-core/7422', - method: 'POST', - headers: { - 'authorization': request.headers.authorization - } - } - - let httpStream = httpRequest(options, function(error, httpResponse, body) { - if (error) - return response.status(400).json({message: httpResponse.message}); - }); - - if (httpStream) - mail.send('joan@verdnatura.es', 'Correu de prova', 'test message', [{filename: 'test.pdf', content: httpStream}], function(error, result) { - if (error) - return response.status(400).json({message: error.message}); - }); - /* mail.sendWithTemplate('sepa-core', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); */ - -module.exports = router; diff --git a/services/mailer/application/route/notification.js b/services/mailer/application/route/notification.js index d33f6f07bc..bd7a81f112 100644 --- a/services/mailer/application/route/notification.js +++ b/services/mailer/application/route/notification.js @@ -1,8 +1,92 @@ var express = require('express'); var router = new express.Router(); +var config = require('../config.js'); var mail = require('../mail.js'); -var database = require('../database.js'); -var settings = require('../settings.js'); +var template = require('../template.js'); +var httpRequest = require('request'); + + +// Printer setup +router.post('/printer-setup/:clientId', function(request, response) { + mail.sendWithTemplate('printer-setup', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Printer setup preview +router.get('/printer-setup/:clientId', function(request, response) { + template.get('printer-setup', {clientId: request.params.clientId, isPreview: true}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); + +// Client welcome +router.post('/client-welcome/:clientId', function(request, response) { + mail.sendWithTemplate('client-welcome', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Client welcome preview +router.get('/client-welcome/:clientId', function(request, response) { + template.get('client-welcome', {clientId: request.params.clientId, isPreview: true}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); + +// Client SEPA CORE +router.post('/sepa-core/:clientId', function(request, response) { + let path = `${request.proxyHost}/print/manuscript/sepa-core/${request.params.clientId}`; + let options = { + url: path, + method: 'GET', + headers: { + 'Authorization': request.headers.authorization + } + } + + let httpStream = httpRequest(options, function(error, httpResponse, body) { + if (error || httpResponse.statusCode != 200) + return response.status(400).json({message: error.message}); + }); + + if (httpStream) + mail.sendWithTemplate('sepa-core', { + clientId: request.params.clientId, + attachments: [{filename: 'sepa-core.pdf', content: httpStream}] + }, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Client SEPA CORE preview +router.get('/sepa-core/:clientId', function(request, response) { + template.get('sepa-core', { + clientId: request.params.clientId, + token: request.user.token, + isPreview: true + }, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); // Single user notification /* router.post('/:recipient/noticeUserSend', function(request, response) { @@ -64,6 +148,16 @@ var settings = require('../settings.js'); }); }); */ +// Payment method changes +router.post('/payment-update/:clientId', function(request, response) { + mail.sendWithTemplate('payment-update', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + // Send notification to alias creditInsurance on client deactivate router.post('/client-deactivate/:clientId', function(request, response) { var params = { diff --git a/services/mailer/application/router.js b/services/mailer/application/router.js index b51b8a195e..ed5794bbe6 100644 --- a/services/mailer/application/router.js +++ b/services/mailer/application/router.js @@ -1,15 +1,11 @@ var express = require('express'); var router = new express.Router(); -var settings = require('./settings.js'); // Mailer default page router.get('/', function(request, response) { response.json({}); }); -// Manuscripts -router.use('/manuscript', require('./route/manuscript.js')); - // Notifications router.use('/notification', require('./route/notification.js')); diff --git a/services/mailer/application/settings.js b/services/mailer/application/settings.js deleted file mode 100644 index 3858cf7193..0000000000 --- a/services/mailer/application/settings.js +++ /dev/null @@ -1,45 +0,0 @@ -var path = require('path'); -/** - * Módulo de configuración - */ -module.exports = { - /** - * Obtiene la configuración en función del entorno en el que se está - * ejecutando la aplicación. - * @param {String} name Nombre del fichero - * @return {Object} Objeto de configuración - */ - getConfig: function(name) { - let env = process.env.NODE_ENV; - - if (!env) - env = 'development'; - - return require(path.join(__dirname, 'config', `${name}.${env}.json`)); - }, - /** - * Configuración de la aplicación - * @return {Object} Objeto de configuración app - */ - app: function() { - return this.getConfig('app'); - }, - /** - * Configuración de smtp - * @return {Object} Objeto de configuración smtp - */ - smtp: function() { - return this.getConfig('smtp'); - }, - /** - * Configuración de mysql - * @return {Object} Objeto de configuración MySQL - */ - mysql: function() { - return this.getConfig('mysql'); - }, - - testEmail: function() { - return this.getConfig('app').testEmail; - } -}; diff --git a/services/mailer/application/template.js b/services/mailer/application/template.js index 382b7202d1..d2c13f2226 100644 --- a/services/mailer/application/template.js +++ b/services/mailer/application/template.js @@ -1,8 +1,8 @@ var fs = require('fs'); var mustache = require('mustache'); var locale = require('./locale.js'); -var path = require('path'); var inlineCss = require('inline-css'); +var path = require('path'); module.exports = { /** @@ -12,10 +12,10 @@ module.exports = { * @param {Object} params - Params * @param {Object} cb - Callback */ - get: function(template, params, isPreview, cb) { + get: function(template, params, cb) { var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); - var stylePath = path.join(__dirname, '../static', 'css', 'style.css'); + var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); fs.stat(templatePath, (error, stat) => { if (error) @@ -24,14 +24,26 @@ module.exports = { let TemplateClass = require(classPath); let instance = new TemplateClass(); - let getRenderedStyles = body => { + let getRenderedStyles = (error, body) => { + if (error) + return cb(error); + this.renderStyles(stylePath, body, (error, body) => { + if (error) + return cb(error); + + // Check if has a subject param params.subject = params.subject || instance.subject; - if (params.subject == undefined) - params.subject = body.match(new RegExp('(.*?)', 'i'))[1]; + if (params.subject == undefined) { + // Try to find a subject from Html source + let title = body.match(new RegExp('(.*?)', 'i')); - this.getAttachments(template, body, isPreview, (error, result) => { + if (title) + params.subject = title[1]; + } + + this.getAttachments(template, body, params.isPreview, (error, result) => { if (error) return cb(error); @@ -41,7 +53,7 @@ module.exports = { }; let getDataCb = () => { - this.render(templatePath, instance, (error, result) => getRenderedStyles(result)); + this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); }; instance.getData(params, (error, result) => { @@ -66,9 +78,54 @@ module.exports = { * @param {Object} cb - Callback */ render: function(path, data, cb) { - fs.readFile(path, 'utf8', function(error, body) { - mustache.parse(body); - cb(null, mustache.render(body, data)); + fs.readFile(path, 'utf8', (error, body) => { + // Find matching sub-templates + let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); + let subTpl = body.match(regexp); + + if (!subTpl) { + mustache.parse(body); + return cb(null, mustache.render(body, data)); + } + + let parentBody = body; + this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + if (error) + return cb(error); + + mustache.parse(body); + cb(null, mustache.render(body, data)); + }); + }); + }, + +/** + * Render sub-template + * @param {String} body - Raw body + * @param {Object} subTpl - Sub-template name + * @param {Object} data - Params + * @param {Object} regexp - Regexp + * @param {Object} cb - Callback + */ + renderSub: function(body, subTpl, data, regexp, cb) { + let index = 1; + + subTpl.forEach(keyName => { + subTplName = keyName.replace(regexp, '$1'); + + this.get(subTplName, data, (error, result) => { + if (error) + return cb(error); + + let subTplBody = result.body; + body = body.replace(keyName, subTplBody); + + if (index === subTpl.length) + cb(null, body); + + index++; + }); + }); }, @@ -78,18 +135,25 @@ module.exports = { * @param {String} body - Rendered html * @param {Object} cb - Callback */ - renderStyles: function(path, html, cb) { - fs.stat(path, error => { - if (error) return cb(new Error('Template stylesheet not found')); - fs.readFile(path, 'utf8', (error, css) => { - let style = ''; - let body = style + html; - let options = {url: ' '}; + renderStyles: function(stylePath, html, cb) { + // Common components + let comPath = path.join(__dirname, '../', 'static', 'css', 'component.css'); - inlineCss(body, options) - .then(function(body) { - cb(null, body); - }); + fs.readFile(comPath, 'utf8', (error, comCss) => { + fs.stat(stylePath, error => { + if (error) + return cb(new Error('Template stylesheet not found')); + + fs.readFile(stylePath, 'utf8', (error, css) => { + let style = ''; + let body = style + html; + let options = {url: ' '}; + + inlineCss(body, options) + .then(function(body) { + cb(null, body); + }); + }); }); }); }, @@ -104,6 +168,9 @@ module.exports = { let attachments = []; let tplAttachments = body.match(new RegExp('src="cid:(.*?)"', 'ig')); + if (!tplAttachments) + tplAttachments = {}; + // Template default attachments for (var i = 0; i < tplAttachments.length; i++) { let name = tplAttachments[i].replace('src="cid:', '').replace('"', ''); @@ -125,7 +192,7 @@ module.exports = { fs.stat(attachmentsPath, (error, stats) => { if (error) - return cb(new Error(`Could not load attachments.js from template ${template}`)); + return cb(null, {body: body, attachments: attachments}); let attachObj = require(attachmentsPath); @@ -145,10 +212,10 @@ module.exports = { }, /** - * Check all template attachments - * @param {Object} attachments - Attachments object - * @param {Object} cb - Callback - */ +* Check all template attachments +* @param {Object} attachments - Attachments object +* @param {Object} cb - Callback +*/ checkAttachments: function(attachments, cb) { for (var i = 0; i < attachments.length; i++) { var attachment = attachments[i]; @@ -159,4 +226,4 @@ module.exports = { } cb(); } -}; +}; \ No newline at end of file diff --git a/services/mailer/application/template/client-welcome/client-welcome.js b/services/mailer/application/template/client-welcome/client-welcome.js index 851c9a12e9..469e743860 100644 --- a/services/mailer/application/template/client-welcome/client-welcome.js +++ b/services/mailer/application/template/client-welcome/client-welcome.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class ClientWelcome { getData(params, cb) { let query = `SELECT + c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(wu.name, '@verdnatura.es') AS email, @@ -17,7 +18,7 @@ module.exports = class ClientWelcome { LEFT JOIN account.user wu ON wu.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/client-welcome/index.html b/services/mailer/application/template/client-welcome/index.html index 661f0986ae..a8a711c8e1 100644 --- a/services/mailer/application/template/client-welcome/index.html +++ b/services/mailer/application/template/client-welcome/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,108 +19,47 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

- -

- Sus datos para poder comprar en la web de verdnatura (https://www.verdnatura.es) - o en nuestras aplicaciones para iOS (https://goo.gl/3hC2mG) y Android (https://goo.gl/8obvLc), son: -

- +

{{_.dear}}

+

{{{_.bodyDescription}}}

-

Usuario: {{userName}}
-
Contraseña: ******** (Va a recibir un correo para establecer la contraseña)
+
{{_.user}} {{userName}}
+
{{_.password}} ******** {{_.passwordResetText}}

-

Cómo hacer un pedido

- -

Para realizar un pedido en nuestra web, debe configurarlo indicando:

- +

{{_.sectionHowToBuyTitle}}

+

{{_.sectionHowToBuyDescription}}

    -
  1. Si quiere recibir el pedido (por agencia o por nuestro propio reparto) o si lo prefiere recoger en alguno de nuestros almacenes.
  2. -
  3. La fecha en la que quiera recibir el pedido (se preparará el día anterior).
  4. -
  5. La dirección de entrega o el almacén donde quiera recoger el pedido.
  6. +
  7. {{_.sectionHowToBuyRequeriment1}}
  8. +
  9. {{_.sectionHowToBuyRequeriment2}}
  10. +
  11. {{_.sectionHowToBuyRequeriment3}}
- -

En nuestra web y aplicaciones puedes visualizar el stock disponible de flor cortada, verdes, plantas, complementos y artificial. - Tenga en cuenta que dicho stock puede variar en función de la fecha seleccionada al configurar el pedido. Es importante CONFIRMAR los pedidos para que la mercancía quede reservada.

- -

El reparto se realiza de lunes a sábado según la zona en la que se encuentre. Por regla general, los pedidos que se entregan por agencia, deben estar confirmados y pagados antes de las 17h - del día en que se preparan (el día anterior a recibirlos), aunque esto puede variar si el pedido se envía a través de nuestro reparto y según la zona.

- -

Cómo pagar

- -

Las formas de pago admitidas en Verdnatura son

- +

{{_.sectionHowToBuyStock}}

+

{{_.sectionHowToBuyDelivery}}

+ +

{{_.sectionHowToPayTitle}}

+

{{_.sectionHowToPayDescription}}

    -
  • Con tarjeta a través de nuestra plataforma web (al confirmar el pedido).
  • -
  • Mediante giro bancario mensual, modalidad que hay que solicitar y tramitar.
  • +
  • {{{_.sectionHowToPayOption1}}}
  • +
  • {{{_.sectionHowToPayOption2}}}
-

Cosas a tener en cuenta

- -

Verdnatura vende EXCLUSIVAMENTE a profesionales, por lo que debe remitirnos el Modelo 036 ó 037, - para comprobar que está dado/a de alta en el epígrafe correspondiente al comercio de flores.

- -

POLÍTICA DE RECLAMACIONES

- -

Verdnatura aceptará las reclamaciones que se realicen dentro de los dos días naturales - siguientes a la recepción del pedido (incluyendo el mismo día de la recepción). Pasado este plazo no se aceptará ninguna reclamación.

- -

Cualquier duda que le surja, no dude en consultarla, ¡estamos para atenderle!

+

{{_.sectionToConsiderTitle}}

+

{{_.sectionToConsiderDescription}}

+

{{_.sectionClaimsPolicyTitle}}

+

{{_.sectionClaimsPolicyDescription}}

+

{{{_.doubtsText}}}

{{{salesPersonName}}} {{{salesPersonPhone}}} {{{salesPersonEmail}}}

- -
- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/client-welcome/locale/es.json b/services/mailer/application/template/client-welcome/locale/es.json index c99fe0c8ea..b1149d62b3 100644 --- a/services/mailer/application/template/client-welcome/locale/es.json +++ b/services/mailer/application/template/client-welcome/locale/es.json @@ -1,14 +1,28 @@ { "subject": "¡Le damos la bienvenida!", "title": "¡LE DAMOS LA BIENVENIDA!", - "dear": "Estimado cliente", - "bodyDescription": "Siga las intrucciones especificadas en este correo para llevar a cabo la instalación de la impresora.", + "dear": "Estimado cliente,", + "bodyDescription": "Sus datos para poder comprar en la web de verdnatura (https://www.verdnatura.es) o en nuestras aplicaciones para iOS y Android (Ver tutorial de uso), son:", + "user": "Usuario:", + "password": "Contraseña:", + "passwordResetText": "(Va a recibir un correo para establecer la contraseña)", + "sectionHowToBuyTitle": "Cómo hacer un pedido", + "sectionHowToBuyDescription": "Para realizar un pedido en nuestra web, debe configurarlo indicando:", + "sectionHowToBuyRequeriment1": "Si quiere recibir el pedido (por agencia o por nuestro propio reparto) o si lo prefiere recoger en alguno de nuestros almacenes.", + "sectionHowToBuyRequeriment2": "La fecha en la que quiera recibir el pedido (se preparará el día anterior).", + "sectionHowToBuyRequeriment3": "La dirección de entrega o el almacén donde quiera recoger el pedido.", + "sectionHowToBuyStock": "En nuestra web y aplicaciones puedes visualizar el stock disponible de flor cortada, verdes, plantas, complementos y artificial. Tenga en cuenta que dicho stock puede variar en función de la fecha seleccionada al configurar el pedido. Es importante CONFIRMAR los pedidos para que la mercancía quede reservada.", + "sectionHowToBuyDelivery": "El reparto se realiza de lunes a sábado según la zona en la que se encuentre. Por regla general, los pedidos que se entregan por agencia, deben estar confirmados y pagados antes de las 17h del día en que se preparan (el día anterior a recibirlos), aunque esto puede variar si el pedido se envía a través de nuestro reparto y según la zona.", + "sectionHowToPayTitle": "Cómo pagar", + "sectionHowToPayDescription": "Las formas de pago admitidas en Verdnatura son:", + "sectionHowToPayOption1": "Con tarjeta a través de nuestra plataforma web (al confirmar el pedido).", + "sectionHowToPayOption2": "Mediante giro bancario mensual, modalidad que hay que solicitar y tramitar.", + "sectionToConsiderTitle": "Cosas a tener en cuenta", + "sectionToConsiderDescription": "Verdnatura vende EXCLUSIVAMENTE a profesionales, por lo que debe remitirnos el Modelo 036 ó 037, para comprobar que está dado/a de alta en el epígrafe correspondiente al comercio de flores.", + "sectionClaimsPolicyTitle": "POLÍTICA DE RECLAMACIONES", + "sectionClaimsPolicyDescription": "Verdnatura aceptará las reclamaciones que se realicen dentro de los dos días naturales siguientes a la recepción del pedido (incluyendo el mismo día de la recepción). Pasado este plazo no se aceptará ninguna reclamación.", + "doubtsText": "Cualquier duda que le surja, no dude en consultarla, ¡estamos para atenderle!", "salesPersonNameText": "Soy tu comercial y mi nombre es", "salesPersonPhoneText": "Teléfono y whatsapp", - "salesPersonEmailText": "Dirección de e-mail", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "salesPersonEmailText": "Dirección de e-mail" } \ No newline at end of file diff --git a/services/mailer/application/template/client-welcome/static/css/style.css b/services/mailer/application/template/client-welcome/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/footer/footer.js b/services/mailer/application/template/footer/footer.js new file mode 100644 index 0000000000..3b4020bf45 --- /dev/null +++ b/services/mailer/application/template/footer/footer.js @@ -0,0 +1,20 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class Footer { + getData(params, cb) { + let query = `SELECT + socialName + FROM client c + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/mailer/application/template/footer/index.html b/services/mailer/application/template/footer/index.html new file mode 100644 index 0000000000..e52f7a6959 --- /dev/null +++ b/services/mailer/application/template/footer/index.html @@ -0,0 +1,42 @@ + + + + + + + + + +
+

{{_.fiscalAddress}}

+

{{_.privacy}}

+

{{_.privacyLaw}}

+
+ \ No newline at end of file diff --git a/services/mailer/application/template/footer/locale/es.json b/services/mailer/application/template/footer/locale/es.json new file mode 100644 index 0000000000..1ad532d343 --- /dev/null +++ b/services/mailer/application/template/footer/locale/es.json @@ -0,0 +1,7 @@ +{ + "actionButton": "Visita nuestra Web", + "infoButton": "Ayúdanos a mejorar", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/mailer/static/css/style.css b/services/mailer/application/template/footer/static/css/style.css similarity index 58% rename from services/mailer/static/css/style.css rename to services/mailer/application/template/footer/static/css/style.css index 1243a091c8..f35364e8c3 100644 --- a/services/mailer/static/css/style.css +++ b/services/mailer/application/template/footer/static/css/style.css @@ -1,41 +1,3 @@ -img { - margin: 0 -} - -.wrapper { - background-color: #EEE -} - -.container { - font-family: arial, sans-serif; - max-width: 600px; - min-width: 320px; - font-size: 16px; - margin: 0 auto; - color: #555 -} - -.banner img { - width: 100% -} - -.title { - background-color: #95d831; - text-align: center; - padding: 35px 0 -} - -.title h1 { - font-size: 32px; - color: #333; - margin: 0 -} - -.body { - background-color:#FFF; - padding: 20px -} - .buttons { background-color: #FFF; text-align: center; diff --git a/services/mailer/application/template/footer/static/image/action.png b/services/mailer/application/template/footer/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P z*VB430x6v21XKjNCdkNWB0(`3zCbT7>J zyzXBy^(LL2V`TfSSny<}=ATm`+|R6Ct08iPEvh2}6VthPyy5UcB;N5R#i(8^%;VK% zdr6c(XV)8O0Z5f#)gH^XPgq?K>Z;*~sR*2@E|@XY9#av>!@Cu<3Y6j1E7_%e{x%lU zP!aFq?Fm$f)PH(XqbKJ+_E%dS<7r1-3n_U}_f`GUD)AcB7MCR8+g0?@T zX89xJvI6PHggA9dhq3?KV<%=a^YF(%VzFsT#-q1P$Hg42%rmn%=*OkDSjXr98u0ft z_~vi_W&t&2p61m&UA;gAkjHB{dkRvHygPRo zv#f24Lclq1r~IcIxxH95!#&h(iVa1%C>Cm%22AZo)pQlO=qwJ@b?*9LHUhuaQAz+c zlx3QQi&#l*!a%r%%^dO@^=L#yFX5m}A6FDFNV*1Ikg@EDVhdYpiI#76La zVtrhNx&&k}^*-TAq8kN8uU4t*6f>c7Wi^yTi|vQuZJ}pbY|0N^raN3jdh`?47h3Ea zAH0g3WxWA_U>JU>cO)zK>l}5;AE=ixib@J)Guk)AhTAAtZ=N%T$!Ekp`hnw#Y@HTd zePbuOshL)?15Ie;X50A0htA2T0?bDCpf%T;z=8nE8zK2lW(N0dRQ!i(> zx*hh8$EA)o3+Od)jIIQT75cHQ8As`yS88%=b=G*No@3wS@7uXJC>3R@_QU1MwCkKE zuFcsk0TpJrX&Pd$P1u{B*2f$M&0DeTzkj*Z%gb~xU2JSn`;}6I_uVnW-+g*Zs9gR0 zThy+3Ke+jmt-3P(m_cI8`!(j?#$I%Y1 zu?gK-B&37Et4{-*E=@qeXFKm1(diFT0>qelp_PWxP}UHSDrGI!917(sIXlS56KCtq z%cB1HF+NzG<#~`~u~SLcUjzI*EH zPO<}!@&_eAq6G+l*e0sKBmkmObEQtOIo8aQeFxf-n}u!GFZY?16_vUA)|<@_uhKIz z9-0+#@~O)#shMWDO;?F*?s6uskS_voF|v2pB( znO6IEUSi^7&N=++WnKA>JC^_6(mLFq8pB~5Z8}T_LNmm&ys$0k6 z#8@2$K=$I%5*gipUf0OvqcqjhP{8{L!jeI#0cbWo-&-zk$7CR{(a58t^LGUG8TC$L zvWQpGc8cvVW;BD@CvZ$O$|v1VF`ASiXq$3IFcRDF5tZ zc5W0ic8RiFn&Y7o@&T7BNWxbMe3h+u3WcwMjBHE2jHbN)(vl+$!?oLJzHFbC(gohM zbkPi`S#p3?0xNu3JL~zoB``SZkrtD~oaS0|Su0^GH_yqN3Vsr#@&D0`jeApsr(4P> z3Ud)(iOaL*a~rH9^qB`g`xjTmzYazMr0kwIc_FE(shUo0g|`oTpM@{qk1k|*kYiR@ zFYNDIzG9pz3xye89Y?cdO_14YMh6Hq#L-*B>Y?h+?~kP@0qU;#>1rF)(#fvb@*sJ zdvNTB)N#m)LsJxWdzHwe!u{~5zLB6~AbHirlt2GMl~*#r!=q^oGQW=6L}hZ@ECHhb+D zIj_<9GE`cvq;!rM5yXV-! zAfMp3@>*EygYr~7PRj0{0E>bdSY41MrBe|8P0Je}ON4IU-xwE<;oG5|gAB?#=S7y( zcWu<3S@p9ARf%N~Pgc^7bNPDBwA-mE_uz zoC|z@rK*)}$X1Xz-wWeO2G|k+H>a1&6SWr{hAgGWQ`7EEFN;r=#bc2+AQcV?A@K>6 zAm=)5*IYv@YbhN{p$f7b;N>hv6_5WyotB!qjiP_!dmA8pvj;l7Uq|o-{==%g0Inf) z5b7G!v($XmxuB`sBx_>lGyM>^RG7k2KkGUok$LszeNmSiEU0>Dh~*cX*YGCs zv-uAcJNb`Ztcq&oiRVs>=)!;jjM;eG;^F3KF=ZRxZfFBPaFPaR7r*dsv?3r|)LEsn zQ*dh01dJQ;8Ej2^$pl!$T;1OSQ0!C+L>+BXAS%M>Q?t2WN;i2OB%G?z)BmP#fN2BA8vzd=SRoWB~I9Z4Gf+CpR0l`W3cP9k2FbPQ{xT^8> z0=VqRC@0>~-kWoc_O3&{Yrf#mpLjg>SP{@a7}UtiyPy=jXsiv}yT zpF}+W_#>s#W+`4R16d+{If$WW3yNDYOdJx1UL_#i&m_Wn zr+%}p zl#c*pPW|A8T$mSt^F|=iUq=}bFs0Wg1*Pjo-`3_j|B?gAIhu4xDx`?WyyLfzmrd`{ zj%eMgd9(cRZL5G9HPa~R#H7PzVB)ztRlsVpzBO^3`7w0E9}*ey=}(fs4%ugkg97&# zMfiTS-YxeCU|Qq%2H~YR=6U*Ut!4X4;PG9*{nL`iux4P^QUY*9cp%|KRkeTZhvDQmXPc6kP zh)01NUpk2=%0UR-tI8+hbFonBqz7a`8V#(;?hG8tVP8vxiw4T3}x)Emz5C z%~EkMW%bh!HW~uX4Ujl@annKT@f20o1_7%hlr%iKLixcJq9^ z;Y}oJdaXNRSuUt)u0+dOrYSZ(w)Mo<3}TLoE=1VHN;bJZ-afbknlov9`1KKB#OsNd zzap2@D|BWd-{hVZ+r&mSVuAxjF}vltF$fA$YPp4tkUV<$iz~od?74WJJ<-1PsY4>u z=|XBKM|ZOHI6P?oz2p7NF6t#ijwVUF5wC#MhYqLsbZ;eFIo#a` zd_|z0f|o|{(VDsCzVlW0JtHWp=G_+*Hs8Q(P-;-$3Csq3ifYtETvK9h-qc2xFMqd! zFb!P+3~X1p#MkVTh;yC0WJ`73Btx%p@|cx2EJ*Bdn$5z&p(p|`1S^Y$VY59O3#58JfC&mlSiSeYtEFl>Mh1h zr&2EG&R_mz9H}B7TO%e*2oxE}aA;l~$mTFK`w~x>BBhe2BW<<(+qKnJEj%5Qv9Oi7 zNnAl|+X<`tyd{+QrD)liI&|p}<)w$&8<+KZatdDVSP#dOt_KDxEkY;Fdg8TIVwKHY z1dj$>r27}G0WRA|wl9*ky%~E=vB{AiP;dIH@4|9NCIX&Qu|Zj6uCe19Y-?>HUj^vZl3rXfN8HqPFbr_x+=wy2?z^Mq1J{kwDCu_yR8TmAp{^xzZwY$7>Zacl z!C*={&6`~21{r!4zP6H!p+K#49)B*=_yAH3`SNNI2mf_Nr+#hL)#qEN8SK6zUP+2g3-=nQ_ z$F&V9HXSK(b^54hi7;dU>}&e6wohSr@Y_?948NNP&f>6&f>8k?jdPA1s9TiR|E&8p z0K@>(xzpnK!ZZkbsvCZ)o4S)0>W5eOAfmL@0p8Kz&5BN(FP8(rM>K!H&SU3NRvi#3 zI#~QHFL9>#JgVyV0A%)-c6RB<+6mQ}Jd0CPy$v0YIm@ndW1|E0r(TA5Df&LVz!vE{ zF*5_0Q~bpDL*!o7)PI^u9>nx0O#TUG8_tRDzON`Q4gpyGsU&xpZ7LgiAs;s1`JU6b zwz=<)W*sfoMa<65IyGct_yf3&lS+0UbB0*C*9|ytW#hLo_2--hsoGI$ilITe@7oV6 zxU{fmT)mzB;;6?L%}9rsp_(;Dr{cKA6!057u;i?q7HqTjSk`WuHu8F8twhDkk)-^` zR7(7k7AKBzFzAA&Mw)e$asWCTNz9G}Z+$>^ z^Ow-?+6F<`j7rssD7w46CNywscR7yn`S5ujQOslTDV=T9Z&(uJf5Y8c21M6+@{Ntn zWopw9xwnZGvuO5cn-7twerrVRC5Cqkl8Qx6w{lTVm;&9KC=CT z``L&UY$f9=1Wg*Ngn7Dx_!GpbQGsV);rxl;IR^boSgivrRLlWr*8iI?U=P5ga`FK+ z#GK+a4tJFz&lg}@IkxxZ2mE>FEmu~@eE!zhG(R}Goh(c1+p{E_-sUG#0uD{>?H|fJ z+J!pl1Uk5^*P}y{N4}RR8RcG@a)bR+ES1K0Uc^}glkRYdyRg-GX8CZus&8lF zH0ZXAKO^l!oCINM#cw(#m%D6JBX(0#7_ zeMtTNW+Q}vh^Xw_0{=dYv|Urj90eu zX}2BPBq}f8?$i3-gUzznJ{WfYg5%5Q8u6CDol!osI&#{xWN^ATH9-vg)56`>;b+ie zYBs%D-eD~&B{>Ht>5m!2L5rt@Gnv5lah(X=yS%ei;_%4DgyNz3H zP0|wpeF{8{OuitpfRpze_L~O!M!VlWvGb$fXzvca2XxA9D z&9{1T9x>K%HgAjM#WDbtH>^KZmc@cxo5cIIGxEnWzF&24pWR;9CMXctc<4rZBy@PA z*ccadnm!hxzF$i`!@6Rimadoy(sxhUX#J^?r}^78i>eU8Lhor0-~baOl{wG`9yWh} zx_JK0)UeF=ZAxo>LsoA5atdZyyzTRcoekf&HO~vARh6L9g^io?S6{ns-hIi@JWzjC#g!5e6NLB)c9ItD z^F@7q(-?Fihw^4~2{uERL;CcNe8LQ&8$|TW(RRQbHVD{CC>LDqe>|DPaJYC(BE}cl zrJNb#>U%11X9x>Gs45hun!Bhml=OPte35DU|H_aMt(jKd`ysw4g*S9X2??>iiP6)L z5}1S|M&wg}rCxltgzscVj20j+s_H)6bdK=vv#Y>*tml6Z8S!|_ZzWGFXP}8pwy|z( zn6CY>2`WV1N6GxH>=_`HAWOz@^Y?Qz!J>K9zAat)z0H>)eqouB!Jk=p1$}TW4Y2dK z`i9w!OfpW(1$D3aG&*bCC0PUPMnvHNLR#3w8T=cMO<0N{}mk znF7dSagYLDz$^ifryQ-ewJ?4NCIi$8VuZmY(rHX3inj|zhOsi{srV$_ZbUl$y{@_y z2VR~_*vc|rhCrn?H3FQY%a0gWD>;(Aj;gC(pFe#jc%K1`@Q~7qrr-$X*3j8mb^lJ% zeV6d3r~ISED**+8s(_LbI^b_BE4ql3<%g^S0s<`~PuBH8SJv=!7N>ipxKW^oM@%sz zyjH$1osDurzZ{Y}o_%Hx;;qxjTEpUt<;WdbylA4Ds4sKC1S=m^UCh$JbCGyk~7gcDR|bXiHdsBHjE(rO-Mz_PBZ63d?6R@U>s9}o@b z#FP7U$JAwLaZn_1@bM#6>)`n$T%p5^4g~9!3>G2^%kD5Mt4tjKseHsC?WY*TST0?> z9g7nN3_Ax_m|Pu6w@>ke7f#{I@8Z)iBNV@2M9adOc{-WU;gleCZj*Ab3{BJseO8G% z{xx*o+@ZV`U)2rY?*^BO&l=X3S2e|gZ|&9OvQQv`&s<)rXjk$O0FH$bZS7^)3p+o# zp2R4ip=zp)=wettY+hwkO4^{(z_7-Zz{1LVxUe69`;3u1+N6w3rfb$`XobkfGEn(& zjtU4U0^gMjTh@~bQUMAs_SUs+V8W%*CG6Nq^5kKNfr#wi6MxN1ZJSlPC>TxZA*7lx z^K*D~`!cZjR#etzm45AnK8Oqr@MxMrAR1|!FvCHH1HhSEphVUSpl)yegeiRAydCpC zalU@dyN>UG&4Z5mW=dqVn(-c7TJ9tZm+lHH>->pAvoPbUtn){-FxYnq?+TPZ;(xMi z#_Z5if1+i#G)P}H-ACI^fii;!o0TT@<&lCc3Ci^9u$CNCv(q<=g>?mP1+kDO78asS z;mle(d&&@{H*h2pameuI)BygQt*tF>;m$yk*zNs#&@O7e(Nni)Jgxjr9}{eJDPV(A zR8o=#3^Tj?PFuB{Q~>7DY%=OS@$ex)$xmWHPby{dRG)n6emT(Xz~v)|T?)VJa@ApZt?Q{o(tQ~? zf$Z62;TNmF2y!95Wr*PN;;gEcj=(!@pxwca=4Zf~e8sR0)w{~xb@wJ4YI4ZK4onAp%hiZpIzHmQx_(xf)+nz)dI1(%A1gHGX z1pHjauop*9{u=rw53*%5;>P1Do!32Hq-d-3#4;R=u^Wu5c&x?QyZfX}_m#xI6a3u4 zR2X(a4-r!oDkw~hkAzyiMpX~5N+xszfg>12AvdO#hB@BWyVsNZi7d)E4GZVv-ojp# z=Fe@44PyITI|v@EL82&)j_!TQ@CR5jp$vtsYNCE znn3v^T_wUuO(+kU%);8Xn-z6(pQFffcr|u+C6qoz|0r3*D+Ab0LVsrlJNnTg4dc)$ zk$F1XT09BeD0CXtPY61yM}@btRVm8%cRl0Qf&8fQE*U^6lw+(rJ8){BBIH9e!v^7r zcj_W>PTx5bE{11a6=7i_ix0rP4;=*0It%HCrc`2MWgcIpvCZLh$l@A9o91Hq&P2`BeRk!d zRH^(+0>$o>Xvh*-`mw0eoPYPWev_?($wTIJr%lnk(bR}xWf28QJYGvIRka~}=$4=p zWUGC-j$>1mx`?MJPcBXZHv+&O)l{1%aOY5#9fwAuX2&NVw+&N$wisNUXu@WY<#5*dfq3KdG$!*@=dN()rDU5kG#5=WlaW(e02bn&W+K7bf3~H2_F|Bnod&&i zD1209#7HvblIe#*Iu>Izq);IDaNYEVwQ13mmmQB|{C91NNS?!QL^K>n7-eYN|FnYs z59r`czyDjDgJG%Z%~R!hx2jA8FqJG|kLt{)I`rO?l4?YbDHnFX3=aYxFiBsMnzLm{ z>dYpE(FD^EHTQi5vEQ7ByzUn~SGg;MFk zyK)R%5xFa!7AGQmF@fg97^~sL7@s`VD8bqN{!~e1u{8G@%<@gkqJsCXU{9suH0m0Z&%EiD`6wL$VB3Ypt}I(Jk~xa3O3iUC@gI1@aDXb;dtT1PJ-*&EJk zqW-hbV*dk!%^+5GR%T940O9T{GmjTLR^5D*oh6oQk*Q4P_ZoLX(}QgqLmo7CS1yoJ zF{z4CNluxm%+Rzl33A|XMOu+^MN#9F-OeaqnGfv-;o{QGL*=12{$X>T`In1I9 z^D^C$v<#cXa&@Bue~^h|{NIy40Z*z5gX~Kq-wG5NGAn^bYrkZz#(9}*6uHFT%F?Tt z^FzLe<#^Uh9z-HX^URF!U$DDwuGP}06@F)Yam(F_lu|bqrvS=R*vOu~AKGf@lE`k<+knOP}<^R)TZ zu2#xV6$_R+3Cl1qUMW?B_O};ASL>;Efs7_*4}zTd|Gycn7TOssB#lz?UIH?yHf-IdC7XCMJB8)SEUS7r$i(5OO`XpanS_KS2z)YlUP@>R7%C$#M&UB zpIm@n{ftBVP~vEe7Zd_?i$nC_G_P{IsD{_v%Xc_J!uzC(&2ZcIE&hFhjO=uL z%xn`0+2nsi*g8H5QsAglY{XOZ@}Ph3^PS3y&BguSbS;wtkYm6_;3l3*;Y1yb;?Uk| zB7?X70F5h25%rl~SalDADf}OnDOpW!!oI(_;r!pv09{OgsOsIJo=Y?JuStm^;qj0n zM_pHCUgVeO{F@qf($nPOg)PYc&``>SfLK1*qV09lK)N%kxD zcseGn;v8jfwwFD{D8BGPN}WfHIzu#zR127!C6qEWX}}mB!n#sU@*0nK{nR7N1l>+6 z{$qJ(Vx{*X9y%(c&XpnA#0*ld1{%GZ(#o&F3TTrnnM7J9E%Te3EDx*{7goG?jE3oE zO;pvk_qD-e9O*UmT4Gq}A&{MF+4i%&ho8=>MJ^HtL`fwYJ5p^aTkX~mzFV&RN%x*E z1f{HSgM}uYa>cvPtoWDA#D(&qK)>%kkVFc<@#d+mGy$5VP$qFSg6|RLYKT!uTU~D- zkxYJIAuFY$lztlwMx7y4r}De(3_zff5!P%oi{c)8pBwl`NR*CvX0p{raqztyK5|g3 zn1`$J!!vkQwzSPkO119!pn0EV<6@`X^vRsba)a;Mwj^S@sRyP5w@^bj#}$j;IoN)D zMvo;-N|nDo;zO15VPkf=_h-g>bC!!oz4i9uk{q!-5k^AOg=$l14jL+|iFcaQLq++s zAkK5P@%jav>_`pUE}%E&*SzaT<6aigaOVaTg=+blcM?{ku7K}SrvV~a&k^T0tn0~y z_@CO`&&_Lk#S&TD=2^?+G^Rnau|HMj(`p!1b`upH=;QC$!#~Z;KNQMtGhA#atK8ot zdT~aR2#@x@=c;sq4xXO^p%g+;{)9L4Pa1Q+Odbw+2jr?a$+&GmA_&QI7hd}-k#FDl zPoJXJ)~9lAQGwJFC>l7@Xv7j&dz=O0aZuqQP-o~#_n>fsmx;7m1p1tFjQY$fGw!!< zzk*7PHxe`pMyU?=M^!kVwffDo+U{iqt6kJj-6M$g)s926dL*67kyL-_mn@=yQx1J{ z{O+?y`@!BeKvqFQLPG2F<0;Ft-CDc%!sGq*+c&{18oi$Jg}BYJ+b|mWU`_pLTsmdk^O>j%vn?@Zrl3lM_0@ZNOV%&RrGI<0Fz|(0)!Tl%Zw2r}_9? zx0m2j2d6e;zSAVEyE(;YZWNag8J)F1#y2$a)0vsQ<_}rLX-{jWrkMRXgH^{^ywsj? zWo0pdI7bun->ioS^;EQOph2&nSJoa^$Vm55)IQMORK#1*i6D`w(qgB#VaYQ1JRa(^ z^!4@4R~d)A@)yCjfCr$P5vKdU$M;5-c~2Cd0YLeyr{ma%*>Wv$P~K}TPvi3w)jOHl zR)G_!kC<_u;?Ji*cbSwLO&6R4RDm{@#|w#>AjzoEg)U5NrLCG#pFnUj zafc*@>gG0cVhW!Oh5RzI(%cnOvKuSs)jV7#!&{794CDNKA|8)e_s6@63!vK3k~!`3 zaC2s4Z+}Ys8=LhtQH4j;jqn(ZA2H&pLn7{qnUGtzX9 zIw@jg9qVZAPw=8y$@OBH2gu3u!0l#?|HAG2iA|LU1XqZrS0;11Ch+GY252dH%4vr7 z&nM;Q_zw!uVlGKzHuVa<5o^5*LhY|#cUyN~qET|5R^{aS;ecd7(Jjmi(%IXG1BluBmB zNA)KPShSD%-Hzs;01Vsl8Suwo_E|a9YuEumr2{*FMja$ZmQPMso7o5YFK@w_IWLhs zXRH+PLoof|bF(qga@zjQ!oa{FZ~>I3;t_UC)s%i2#4vJ%D8`*L*0Qp)vUyeE+Xk2@ z(N}aVOE&sEdI6?8A7T>Zix=vwQ(zgNap18$R)Uy3JhhPY$Niti#GkGULp7+Hr*!^H zso>qxz|q&$PyO4!L|9*N!QTx8X~<|h+dUZ&^?fLk^zMC3`NGo zq-bcLgPmXx|7>*Ae0Oqot{F68-*##e>kZK$)U(Rg(ZcaBEd2kZ4teQn8#C)4W{(=u zU>TfcTVTSAkgkso4+9kF((+nH%~L>3y!!y;^#D$((?B)!BRm2^lD%sohUUa`E@O?S z_G|qzdN^6Y?C_;k)19@-4Y)$LRe9vwH}B)WHvyyD4)EUuz8N@NF)?cr6B9f80BKf$ zOvBL1O6E1-#mXuqq?hj8|FcpcU}2e|bNPYc|Kl%4O*_GfW$_kCfnZAAXbiF5Ek|f` zdAu@UNoFNqtcF|mh5F+z9>5kH+XY7Mt1_J?Wmi|%vxkeZlxC!j9t$KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003HNklzilU*RmqWq9o@y4X>?WWp~O>l#OOJf~TbU*fQ?cic@n9n|@O nba7Kxr-j<KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000BBNklD;}~oteAf zaM6E0GB`s|b zW2xJna-2~~+nYhQP0~q8RY^xBt9(ZR89`o`G^03~k+d(PztzsKH{H|2 zz^`WZb_Rg8z$CDu!9V>Ia4yx}2h0FZn%OTI{C)tmnOPZ0MPFLBX8h{c0(7h2T+G;G%LC_Bv5x+UjP@6u=dJ?K4UGLWz?&y4C2dZ%moyakn@Q3b z&|LtY1wPN2;59!Gv;)t%?r9)4;J*yKlmH#>AP>0z+{PT&=wniKwYpd$g+ z05<~whJeTX8g<^;99megOf zDf9zJy!n2lpLM{k1eoxpDOk+xGvKJ_InGGBDrs2K72u5PkD1wMBO~GG(|>sovh8RBsAkK+^O)C)KBeljbms-y zT7{w-C$%NHzQB@PUrb3Zuj1zyJS=`r0>66@wG3G0Tm5YDb0?9-PmApNbeZ{iPsr3O lGk*(wO&(=tNwk{$JphOt7hpNyu&Dq5002ovPDHLkV1gaV>H7cx literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/footer/static/image/linkedin.png b/services/mailer/application/template/footer/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/mailer/application/template/footer/static/image/pinterest.png b/services/mailer/application/template/footer/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/footer/static/image/youtube.png b/services/mailer/application/template/footer/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/mailer/application/template/header/index.html b/services/mailer/application/template/header/index.html new file mode 100644 index 0000000000..c5234bbc89 --- /dev/null +++ b/services/mailer/application/template/header/index.html @@ -0,0 +1,3 @@ +
+ VerdNatura +
diff --git a/services/mailer/application/template/header/locale/es.json b/services/mailer/application/template/header/locale/es.json new file mode 100644 index 0000000000..7a73a41bfd --- /dev/null +++ b/services/mailer/application/template/header/locale/es.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/services/mailer/application/template/header/static/css/style.css b/services/mailer/application/template/header/static/css/style.css new file mode 100644 index 0000000000..4ea8ee36dd --- /dev/null +++ b/services/mailer/application/template/header/static/css/style.css @@ -0,0 +1,3 @@ +.banner img { + width: 100% +} \ No newline at end of file diff --git a/services/mailer/application/template/header/static/image/action.png b/services/mailer/application/template/header/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/header/static/image/linkedin.png b/services/mailer/application/template/header/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/mailer/application/template/header/static/image/pinterest.png b/services/mailer/application/template/header/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/header/static/image/youtube.png b/services/mailer/application/template/header/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 -
- -
- VerdNatura -
- +
+
+ + {{$.header}} + - -
-

{{_.title}}

-
- + +
+

{{_.title}}

+
+ - -
-

{{_.hello}}, #{{alias}}

-

{{message}}

-

- + +
+

{{_.hello}} #{{alias}}

+

{{message}}

+
+ - -
- - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- -
\ No newline at end of file diff --git a/services/mailer/application/template/notification-alias/locale/es.json b/services/mailer/application/template/notification-alias/locale/es.json index 0deeb16044..6e39b7f635 100644 --- a/services/mailer/application/template/notification-alias/locale/es.json +++ b/services/mailer/application/template/notification-alias/locale/es.json @@ -1,16 +1,11 @@ { "subject": "Has recibido una nueva notificación", "title": "Nueva notificación", - "hello": "Hola", + "hello": "Hola,", "notificationCode": { "clientDeactivate": { "subject": "Gestionar baja de contrato", "message": "El cliente con id %clientId% está clasificado, por favor, gestione la baja del contrato primero." } - }, - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + } } \ No newline at end of file diff --git a/services/mailer/application/template/notification-alias/static/css/style.css b/services/mailer/application/template/notification-alias/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/payment-update/index.html b/services/mailer/application/template/payment-update/index.html index caec77e903..78d6612c41 100644 --- a/services/mailer/application/template/payment-update/index.html +++ b/services/mailer/application/template/payment-update/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,59 +19,20 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

-

-

{{_.paymentMethod}}: {{payMethodName}}
+

{{_.dear}}

+

{{_.bodyDescription}}

+

+

{{_.paymentMethod}} {{payMethodName}}
{{{paymentDay}}}

-

{{paymentAdvice}}

-

{{_.notifyError}}

+

{{paymentAdvice}}

+

{{_.notifyError}}

- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/payment-update/locale/es.json b/services/mailer/application/template/payment-update/locale/es.json index 144cdc3464..1216dcd99a 100644 --- a/services/mailer/application/template/payment-update/locale/es.json +++ b/services/mailer/application/template/payment-update/locale/es.json @@ -1,18 +1,13 @@ { "subject": "Cambios en las condiciones de pago", "title": "Cambio en las condiciones", - "dear": "Estimado cliente", + "dear": "Estimado cliente,", "bodyDescription": "Le informamos que han cambiado las condiciones de pago de su cuenta. A continuación le indicamos las nuevas condiciones:", - "paymentMethod": "Método de pago", - "paymentDay": "Día de pago", + "paymentMethod": "Método de pago:", + "paymentDay": "Día de pago:", "everyMonth": "de cada mes", "cardPaymentAdvice": "Su modo de pago actual implica que deberá abonar el importe de los pedidos realizados en el mismo día para que se puedan enviar.", "accountPaymentAdviceBefore": "Su modo de pago actual implica que se le pasará un cargo a la cuenta", "accountPaymentAdviceAfter": "por el importe pendiente, al vencimiento establecido en las condiciones.", - "notifyError": "En el caso de detectar algún error en los datos indicados o para cualquier aclaración, debe dirigirse a su comercial.", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "notifyError": "En el caso de detectar algún error en los datos indicados o para cualquier aclaración, debe dirigirse a su comercial." } \ No newline at end of file diff --git a/services/mailer/application/template/payment-update/payment-update.js b/services/mailer/application/template/payment-update/payment-update.js index d126dc83ab..187d21b737 100644 --- a/services/mailer/application/template/payment-update/payment-update.js +++ b/services/mailer/application/template/payment-update/payment-update.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class PaymentUpdate { getData(params, cb) { let query = `SELECT + c.id clientId, pm.id payMethodFk, pm.name payMethodName, c.dueDay, @@ -15,7 +16,7 @@ module.exports = class PaymentUpdate { JOIN payMethod pm ON pm.id = c.paymentMethodFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); @@ -26,7 +27,7 @@ module.exports = class PaymentUpdate { get paymentDay() { if (this.payMethodFk != 5) - return `
${this._.paymentDay}: ${this.dueDay} ${this._.everyMonth}
`; + return `
${this._.paymentDay} ${this.dueDay} ${this._.everyMonth}
`; } get paymentAdvice() { diff --git a/services/mailer/application/template/payment-update/static/css/style.css b/services/mailer/application/template/payment-update/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/printer-setup/index.html b/services/mailer/application/template/printer-setup/index.html index 3f6c8910d8..ee021281c7 100644 --- a/services/mailer/application/template/printer-setup/index.html +++ b/services/mailer/application/template/printer-setup/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,14 +19,14 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

-

{{{_.followGuide}}}

+

{{_.dear}}

+

{{_.bodyDescription}}

+

{{{_.followGuide}}}

{{{_.downloadFrom}}}

-

{{_.sectionQLabelTitle}}

+

{{_.sectionQLabelTitle}}

-

{{_.sectionQLabelDescription}}

+

{{_.sectionQLabelDescription}}

  1. {{_.sectionQLabelStep1}}
  2. @@ -48,8 +46,9 @@
  3. {{_.sectionQLabelStep15}}
-

{{_.sectionHelpTitle}}

-

{{_.sectionHelpDescription}}

+

{{_.sectionHelpTitle}}

+ +

{{_.sectionHelpDescription}}

{{{_.sectionHelpDownloadRemoteSupport}}}

@@ -60,48 +59,9 @@

- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/printer-setup/locale/es.json b/services/mailer/application/template/printer-setup/locale/es.json index 41a831524b..7d3da66469 100644 --- a/services/mailer/application/template/printer-setup/locale/es.json +++ b/services/mailer/application/template/printer-setup/locale/es.json @@ -1,7 +1,7 @@ { "subject": "Instalación y configuración de impresora", "title": "¡GRACIAS POR SU CONFIANZA!", - "dear": "Estimado cliente", + "dear": "Estimado cliente,", "bodyDescription": "Siga las intrucciones especificadas en este correo para llevar a cabo la instalación de la impresora.", "followGuide": "Puede utilizar como guía, el video del montaje del ribon y la cinta https://www.youtube.com/watch?v=qhb0kgQF3o8. También necesitará el QLabel, el programa para imprimir las cintas.", "downloadFrom": "Puede descargarlo desde este enlace http://www.godexintl.com/en/product/type/Download/2967", @@ -27,10 +27,5 @@ "sectionHelpDownloadRemoteSupport": "Puede descargarse el programa desde este enlace http://soporte.verdnatura.es.", "salesPersonNameText": "Soy su comercial y mi nombre es", "salesPersonPhoneText": "Teléfono y whatsapp", - "salesPersonEmailText": "Dirección de e-mail", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "salesPersonEmailText": "Dirección de e-mail" } \ No newline at end of file diff --git a/services/mailer/application/template/printer-setup/printer-setup.js b/services/mailer/application/template/printer-setup/printer-setup.js index 77147f4592..6dece0d23e 100644 --- a/services/mailer/application/template/printer-setup/printer-setup.js +++ b/services/mailer/application/template/printer-setup/printer-setup.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class PrinterSetup { getData(params, cb) { let query = `SELECT + c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, @@ -15,7 +16,8 @@ module.exports = class PrinterSetup { LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/printer-setup/static/css/style.css b/services/mailer/application/template/printer-setup/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/sepa-core/index.html b/services/mailer/application/template/sepa-core/index.html index df149cb9f7..0e9c34d04c 100644 --- a/services/mailer/application/template/sepa-core/index.html +++ b/services/mailer/application/template/sepa-core/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,53 +19,16 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

+

{{_.dear}}

+

{{_.bodyDescription}}

+

{{_.conclusion}}

+ {{{previewAttachments}}}
- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/sepa-core/locale/es.json b/services/mailer/application/template/sepa-core/locale/es.json index 29e0ef1a9f..48eaadf3a6 100644 --- a/services/mailer/application/template/sepa-core/locale/es.json +++ b/services/mailer/application/template/sepa-core/locale/es.json @@ -1,11 +1,7 @@ { - "subject": "Instalación y configuración de impresora", - "title": "¡GRACIAS POR SU CONFIANZA!", - "dear": "Estimado cliente", - "bodyDescription": "A continuación le adjuntamos el documento de domicilación de datos bancarios.", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "subject": "Solicitud de domiciliación bancaria", + "title": "CAMBIOS EN SU FORMA DE PAGO", + "dear": "Estimado cliente,", + "bodyDescription": "Para poder tramitar su solicitud de cambio de su forma de pago a giro bancario, le adjuntamos los documentos correspondientes a la Ley de Pago, que tiene que cumplimentar y enviarnos.", + "conclusion": "Gracias por su atención." } \ No newline at end of file diff --git a/services/mailer/application/template/sepa-core/sepa-core.js b/services/mailer/application/template/sepa-core/sepa-core.js index 536448bf02..04fd71df70 100644 --- a/services/mailer/application/template/sepa-core/sepa-core.js +++ b/services/mailer/application/template/sepa-core/sepa-core.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class SepaCore { getData(params, cb) { let query = `SELECT + c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, @@ -15,28 +16,24 @@ module.exports = class SepaCore { LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + + this.isPreview = params.isPreview; + this.token = params.token; + + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); Object.assign(this, result[0]); + cb(); }); } - get salesPersonName() { - if (this.name) - return `
${this._.salesPersonNameText}: ${this.name}
`; - } - - get salesPersonPhone() { - if (this.phone) - return `
${this._.salesPersonPhoneText}: ${format.phone(this.phone)}
`; - } - - get salesPersonEmail() { - if (this.email) - return `
${this._.salesPersonEmailText}: ` + - `${this.email}
`; + get previewAttachments() { + if (this.isPreview) + return `` + + '
Descargar adjunto
' + + 'sepa-core.pdf
'; } }; diff --git a/services/mailer/application/template/sepa-core/static/css/style.css b/services/mailer/application/template/sepa-core/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/server/server.js b/services/mailer/server/server.js index 818b036a68..50320a3910 100644 --- a/services/mailer/server/server.js +++ b/services/mailer/server/server.js @@ -1,7 +1,7 @@ var express = require('express'); var app = module.exports = express(); var bodyParser = require('body-parser'); -var settings = require('../application/settings.js'); +var config = require('../application/config.js'); var mail = require('../application/mail.js'); var database = require('../application/database.js'); var auth = require('../application/auth.js'); @@ -22,7 +22,7 @@ var requestToken = function(request, response, next) { app.use('/', requestToken, require('../application/router.js')); app.start = function() { - var listener = app.listen(settings.app().port, function() { + var listener = app.listen(config.app.port, function() { var servicePath = 'http://' + listener.address().address + ':' + listener.address().port; mail.init(); database.init(); @@ -31,7 +31,7 @@ app.start = function() { let packageJson = require('../package.json'); console.log(`Web server ${packageJson.name} listening at: ${servicePath}`); - if (settings.app().debug) { + if (config.app.debug) { console.log(`${packageJson.name} service debug mode enabled`); } }); diff --git a/services/mailer/static/css/component.css b/services/mailer/static/css/component.css new file mode 100644 index 0000000000..10805e562b --- /dev/null +++ b/services/mailer/static/css/component.css @@ -0,0 +1,137 @@ +img { + margin: 0 +} + +p { + text-align: justify +} + +.wrapper { + background-color: #EEE +} + +.container { + font-family: arial, sans-serif; + max-width: 600px; + min-width: 320px; + font-size: 16px; + margin: 0 auto; + color: #555 +} + +.title { + background-color: #95d831; + text-align: center; + padding: 35px 0 +} + +.title h1 { + font-size: 32px; + color: #333; + margin: 0 +} + +.body { + background-color:#FFF; + padding: 20px +} + +.body a { + color: #8dba25 +} + +.body h1 { + color: #999 +} + +.body h3 { + font-size: 16px +} + +.panel { + border: 1px solid #DDD; + margin-bottom: 10px; + padding:10px +} + +.row { + margin-bottom: 15px; + overflow: hidden; + content: ''; + clear: both +} + +.row .text { + margin-bottom: 5px +} + +.row .control { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.row .description { + font-size: 8px; + color: #999 +} + +.row .v-align { + padding-top: 5px; + line-height: 21px +} + +.row:last-child { + margin-bottom: 0 +} + +.row.inline .text { + margin-bottom: 0; + width: 40%; + float: left +} + +.row.inline .control { + font-weight: bold; + padding-left: 20px; + color: #000; + width: 60%; + float: left +} + +.box { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + font-weight: bold; + text-align: center; + padding-top: 4px; + width: 25px; + height: 21px; + color: #000; + float: left +} + +.row .control .box:first-child { + border-left: 1px solid #CCC; +} + +.attachment { + overflow: hidden; + margin-top: 10px +} + +.attachment:after { + content: ' '; + display: block; + clear: both +} + +.attachment-icon { + float: left +} + +.attachment span { + padding: 16px 0 0 10px; + float: left +} \ No newline at end of file diff --git a/services/mailer/static/images/attachment.png b/services/mailer/static/images/attachment.png new file mode 100644 index 0000000000000000000000000000000000000000..78efe4f95c69f9c03a08c93b4849d253ff1b3047 GIT binary patch literal 18546 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 literal 0 HcmV?d00001 diff --git a/services/nginx/conf-dev.conf b/services/nginx/conf-dev.conf index e36a5a82a3..b35bd3757a 100644 --- a/services/nginx/conf-dev.conf +++ b/services/nginx/conf-dev.conf @@ -43,6 +43,9 @@ http { location ~ ^/route(?:/(.*))?$ { proxy_pass http://127.0.0.1:3005/$1$is_args$args; } + location ~ ^/print(?:/(.*))?$ { + proxy_pass http://127.0.0.1:3006/$1$is_args$args; + } # Este tiene que ser el último location ~ ^(?:/(.*))?$ { proxy_pass http://127.0.0.1:3001/$1$is_args$args; diff --git a/services/nginx/conf-prod.conf b/services/nginx/conf-prod.conf index 32d7497800..eab866aaa5 100644 --- a/services/nginx/conf-prod.conf +++ b/services/nginx/conf-prod.conf @@ -38,6 +38,9 @@ http { location ~ ^/route(?:/(.*))?$ { proxy_pass http://route:3005/$1$is_args$args; } + location ~ ^/print(?:/(.*))?$ { + proxy_pass http://print:3006/$1$is_args$args; + } # Este tiene que ser el último location ~ ^(?:/(.*))?$ { proxy_pass http://salix:3001/$1$is_args$args; diff --git a/services/nginx/config.json b/services/nginx/config.json new file mode 100644 index 0000000000..050b6724d8 --- /dev/null +++ b/services/nginx/config.json @@ -0,0 +1,14 @@ +{ + "localhost": { + "host": "localhost", + "port": 5000 + }, + "testSalix": { + "host": "test-salix", + "port": 80 + }, + "salix": { + "host": "salix", + "port": 80 + } +} \ No newline at end of file diff --git a/services/print/.gitignore b/services/print/.gitignore new file mode 100644 index 0000000000..69d30d5cce --- /dev/null +++ b/services/print/.gitignore @@ -0,0 +1,5 @@ +node_modules +config.json +app.development.json +smtp.development.json +mysql.development.json diff --git a/services/print/application/auth.js b/services/print/application/auth.js new file mode 100644 index 0000000000..ee8f114e13 --- /dev/null +++ b/services/print/application/auth.js @@ -0,0 +1,62 @@ +var database = require('./database.js'); + +module.exports = { + +/** + * Initialize auth + * @param {Object} request - Request object + * @param {Object} response - Response object + * @param {Object} next - Next object + */ + init: function(request, response, next) { + this.request = request; + this.response = response; + this.next = next; + + this.validateToken(); + }, + +/** + * Validate auth token + */ + validateToken: function() { + let query = 'SELECT userId, ttl, created FROM salix.AccessToken WHERE id = ?'; + + database.pool.query(query, [this.getToken()], (error, result) => { + let token = result[0]; + + if (error || result.length == 0) + return this.response.status(401).send({message: 'Invalid token'}); + + if (this.isTokenExpired(token.created, token.ttl)) + return this.response.status(401).send({message: 'Token expired'}); + + this.request.userId = token.userId; + this.next(); + }); + }, + +/** + * Get request token + * @return {String} Token + */ + getToken: function() { + return this.request.headers.authorization || this.request.query.token; + }, + +/** + * Checks if the token has expired + * @param {String} created - Creation date + * @param {Integer} ttl - Ttl seconds + * @return {Boolean} True if the token has expired + */ + isTokenExpired: function(created, ttl) { + let date = new Date(created); + let currentDate = new Date(); + + date.setSeconds(date.getSeconds() + ttl); + + if (currentDate > date) + return true; + } +}; diff --git a/services/print/application/config.js b/services/print/application/config.js new file mode 100644 index 0000000000..1b78e36cec --- /dev/null +++ b/services/print/application/config.js @@ -0,0 +1,18 @@ +var path = require('path'); +var fs = require('fs'); +var config = {}; + +let devConfigPath = path.join(__dirname, '/config/datasources.development.json'); +let configPath = path.join(__dirname, '/config/datasources.json'); + +try { + config = Object.assign(require(configPath), require(devConfigPath)); +} catch (e) { + if (e.code == 'MODULE_NOT_FOUND') + return require(configPath); +} + +config.proxy = require('../../nginx/config.json'); +config.package = require('../package.json'); + +module.exports = config; \ No newline at end of file diff --git a/services/print/application/config/datasources.json b/services/print/application/config/datasources.json new file mode 100644 index 0000000000..92965aa5af --- /dev/null +++ b/services/print/application/config/datasources.json @@ -0,0 +1,19 @@ +{ + "app": { + "port": 3006, + "debug": false, + "defaultLanguage": "es" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "pdf": { + "footer": { + "height": "100px" + } + } +} \ No newline at end of file diff --git a/services/print/application/config/datasources.test.json b/services/print/application/config/datasources.test.json new file mode 100644 index 0000000000..92965aa5af --- /dev/null +++ b/services/print/application/config/datasources.test.json @@ -0,0 +1,19 @@ +{ + "app": { + "port": 3006, + "debug": false, + "defaultLanguage": "es" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "pdf": { + "footer": { + "height": "100px" + } + } +} \ No newline at end of file diff --git a/services/print/application/database.js b/services/print/application/database.js new file mode 100644 index 0000000000..974540d7d3 --- /dev/null +++ b/services/print/application/database.js @@ -0,0 +1,24 @@ +var mysql = require('mysql'); +let config = require('./config.js'); + +module.exports = { + /** + * Pool instance + */ + pool: null, + + /** + * Start database pool + */ + init: function() { + this.pool = mysql.createPool(config.mysql); + + this.pool.getConnection(function(error, connection) { + if (error) { + throw new Error('Can\'t connect to database: ' + error.code); + } else if (config.app.debug) { + console.log('Database connection stablished'); + } + }); + } +}; diff --git a/services/print/application/locale.js b/services/print/application/locale.js new file mode 100644 index 0000000000..f9737fea32 --- /dev/null +++ b/services/print/application/locale.js @@ -0,0 +1,42 @@ +var fs = require('fs'); +var config = require('./config.js'); +var path = require('path'); + +module.exports = { +/** + * Returns template locale + * @param {String} template - Template name + * @param {String} countryCode - Language code + * @param {Object} cb - Callback + */ + load: function(template, countryCode, cb) { + var localeFile = path.join(__dirname, 'template', `${template}`, 'locale', `${countryCode}.json`); + var defaultLocaleFile = path.join(__dirname, 'template', `${template}`, 'locale', `${config.app.defaultLanguage}.json`); + + fs.stat(localeFile, (error, stats) => { + if (error) { + fs.stat(defaultLocaleFile, (error, stats) => { + if (error) + return cb(new Error('Translation not found for template ' + template)); + + cb(null, {locale: require(defaultLocaleFile)}); + }); + } else { + cb(null, {locale: require(localeFile)}); + } + }); + }, + +/** + * Parse locale text + * @param {String} text - Locale text + * @param {Object} params - Locale params + * @return {String} - Returns parsed text + */ + parseText: function(text, params) { + for (var key in params) { + text = text.replace(`%${key}%`, params[key]); + } + return text; + } +}; diff --git a/services/print/application/route/manuscript.js b/services/print/application/route/manuscript.js new file mode 100644 index 0000000000..932d96c333 --- /dev/null +++ b/services/print/application/route/manuscript.js @@ -0,0 +1,57 @@ +var express = require('express'); +var router = new express.Router(); +var template = require('../template.js'); +var config = require('../config.js'); +var pdf = require('html-pdf'); +var path = require('path'); + +// Sepa core +router.post('/sepa-core/:clientId', function(request, response, next) { + template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body).toStream(function(error, stream) { + if (error) + throw Error(error); + + stream.pipe(response); + }); + }); + }); + + // store pdf +/* router.post('/sepa-core/:clientId', function(request, response, next) { + template.get('sepa-core', {recipient: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body).toFile('./tmp/test.pdf', function(error, result) { + if (error) + return response.status(400).json({message: error}); + + console.log(result); + return response.json(); + }); + }); + }); + */ +// Sepa core preview +router.get('/sepa-core/:clientId', function(request, response, next) { + template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + let options = config.pdf; + pdf.create(result.body, options).toStream(function(error, stream) { + if (error) + throw Error(error); + + response.setHeader('Content-Disposition', 'inline; filename="sepa-core.pdf"'); + response.setHeader('Content-type', 'application/pdf'); + stream.pipe(response); + }); + }); +}); + +module.exports = router; diff --git a/services/print/application/router.js b/services/print/application/router.js new file mode 100644 index 0000000000..58e9a36945 --- /dev/null +++ b/services/print/application/router.js @@ -0,0 +1,12 @@ +var express = require('express'); +var router = new express.Router(); + +// Default page +router.get('/', function(request, response) { + response.json({}); +}); + +// Manuscripts +router.use('/manuscript', require('./route/manuscript.js')); + +module.exports = router; diff --git a/services/print/application/template.js b/services/print/application/template.js new file mode 100644 index 0000000000..9bc968c74d --- /dev/null +++ b/services/print/application/template.js @@ -0,0 +1,175 @@ +var fs = require('fs'); +var mustache = require('mustache'); +var locale = require('./locale.js'); +var inlineCss = require('inline-css'); +var path = require('path'); + +module.exports = { +/** + * Get template. + * @param {String} template - Template name + * @param {Object} countryCode - Language code + * @param {Object} params - Params + * @param {Object} cb - Callback + */ + get: function(template, params, cb) { + var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); + var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); + var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); + + fs.stat(templatePath, (error, stat) => { + if (error) + return cb(new Error('Template ' + template + ' not found')); + + let TemplateClass = require(classPath); + let instance = new TemplateClass(); + + let getRenderedStyles = (error, body) => { + if (error) + return cb(error); + + this.renderStyles(stylePath, body, (error, body) => { + if (error) + return cb(error); + + // Check if has a subject param + params.subject = params.subject || instance.subject; + + if (params.subject == undefined) { + // Try to find a subject from Html source + let title = body.match(new RegExp('(.*?)', 'i')); + + if (title) + params.subject = title[1]; + } + + this.renderImages(template, body, (error, body) => { + if (error) + return cb(error); + + cb(null, {body: body}); + }); + }); + }; + + let getDataCb = () => { + this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); + }; + + instance.getData(params, (error, result) => { + if (error) + return cb(error); + + locale.load(template, instance.countryCode, (error, result) => { + if (error) + return cb(error); + + instance._ = result.locale; + getDataCb(null, result); + }); + }); + }); + }, + +/** + * Render template + * @param {String} path - Template path + * @param {Object} data - Params + * @param {Object} cb - Callback + */ + render: function(path, data, cb) { + fs.readFile(path, 'utf8', (error, body) => { + // Find matching sub-templates + let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); + let subTpl = body.match(regexp); + + if (!subTpl) { + mustache.parse(body); + return cb(null, mustache.render(body, data)); + } + + let parentBody = body; + this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + if (error) + return cb(error); + + mustache.parse(body); + cb(null, mustache.render(body, data)); + }); + }); + }, + + renderSub: function(body, subTpl, data, regexp, cb) { + let index = 1; + + subTpl.forEach(keyName => { + subTplName = keyName.replace(regexp, '$1'); + + this.get(subTplName, data, (error, result) => { + if (error) + return cb(error); + + let subTplBody = result.body; + body = body.replace(keyName, subTplBody); + + if (index === subTpl.length) + cb(null, body); + + index++; + }); + + }); + }, + +/** + * Render template style. + * @param {String} path - Stylesheet path + * @param {String} body - Rendered html + * @param {Object} cb - Callback + */ + renderStyles: function(stylePath, html, cb) { + // Common components + let comPath = path.join(__dirname, '../', 'static', 'css', 'component.css'); + + fs.readFile(comPath, 'utf8', (error, comCss) => { + fs.stat(stylePath, error => { + if (error) + return cb(new Error('Template stylesheet not found')); + + fs.readFile(stylePath, 'utf8', (error, css) => { + let style = ''; + let body = style + html; + let options = {url: ' '}; + + inlineCss(body, options) + .then(function(body) { + cb(null, body); + }); + }); + }); + }); + }, + +/** + * Render template images + * @param {String} template - Template name + * @param {String} body - template body + * @param {Object} cb - Callback + */ + renderImages: function(template, body, cb) { + let tplImages = body.match(new RegExp('src="cid:(.*?)"', 'ig')); + + if (!tplImages) + tplImages = {}; + + // Template default attachments + for (var i = 0; i < tplImages.length; i++) { + let name = tplImages[i].replace('src="cid:', '').replace('"', ''); + + let imagePath = path.join(__dirname, 'template', `${template}`, 'static', 'image', name); + body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + } + + cb(null, body); + } +}; diff --git a/services/print/application/template/footer/footer.js b/services/print/application/template/footer/footer.js new file mode 100644 index 0000000000..3b4020bf45 --- /dev/null +++ b/services/print/application/template/footer/footer.js @@ -0,0 +1,20 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class Footer { + getData(params, cb) { + let query = `SELECT + socialName + FROM client c + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/print/application/template/footer/index.html b/services/print/application/template/footer/index.html new file mode 100644 index 0000000000..59b90b480f --- /dev/null +++ b/services/print/application/template/footer/index.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/services/print/application/template/footer/locale/es.json b/services/print/application/template/footer/locale/es.json new file mode 100644 index 0000000000..04a61fddda --- /dev/null +++ b/services/print/application/template/footer/locale/es.json @@ -0,0 +1,4 @@ +{ + "phytosanitary": "VERDNATURA LEVANTE SL - Pasaporte Fitosanitario R.P. Generalitat Valenciana - Nº Comerciante: ES17462130", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/print/application/template/footer/static/css/style.css b/services/print/application/template/footer/static/css/style.css new file mode 100644 index 0000000000..8bd10148dd --- /dev/null +++ b/services/print/application/template/footer/static/css/style.css @@ -0,0 +1,23 @@ +img { + margin: 0 +} + +#pageFooter { + font-family: arial, sans-serif; + font-weight: 100; + max-width: 90%; + margin: 0 auto; + font-size: 9px; + color: #555 +} + +#pageFooter .info { + border-bottom: 2px solid #CCC; + padding-bottom: 2px; + text-align: center; + font-size: 11px +} + +#pageFooter p { + text-align: center +} \ No newline at end of file diff --git a/services/print/application/template/footer/static/image/action.png b/services/print/application/template/footer/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/print/application/template/footer/static/image/linkedin.png b/services/print/application/template/footer/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/print/application/template/footer/static/image/pinterest.png b/services/print/application/template/footer/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/print/application/template/footer/static/image/youtube.png b/services/print/application/template/footer/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 zcmV;q4My^bP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0008yNkl2nyY75E>+UE)Eh6H6#iz^ZEL=97taJ>UZD0zIPA2<^AsYp2P3YIp1@R zQHMxs0WJgAfdbGE^a9;L3s3>JflXi?SOu1V4`x=0Yu92rI{@4RCV-Q`dte190vo^% zum$u0T|gg@1BQVsz<1y|@XX9Uk)}u*l(ZmeU(%waF-aYP7#*&+=r{|K2Gel1Q_`HI zvZQ%Q`Gj!uj#qa4&ZHb3l2nwmCTS$46C82;qNJgE!A2#OBt4bXp7PaecRM9Xqj5nd zB<)F>oR8 zvzGRw3w)ewlICh9j&fRIt*J~RP&W}2r7#S_rNUtGddYQ9OG&bxmD2mhRvv`7<+ zbCp>Db9(t1xNl}J0zmqJ8^DPeKKuZd&1^lu-Wc#0IE$o$q@N*dP13XO+t9pQUv-Vujw|DdgW$TG_#w)?IdwsHh|v9i_o2$?d+ZUHTkm-#&@C4@Ff4}f<-5+tk#sI+=tqALZ5Zvjt$ z3kkw@0o#!`Qu-2f_PnH5!0Ut^#{JxE_0CT&K=E6RwbQ^ype+FJYrwZTU_J6y)o_5~ z60m>7T3evQl^BU_H7@s`R)C!#(O@c{$)}OqN#y-kRA)fW1E~FN=ISyOm2O zYsAb} { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/print/application/template/header/index.html b/services/print/application/template/header/index.html new file mode 100644 index 0000000000..30c2a21f1d --- /dev/null +++ b/services/print/application/template/header/index.html @@ -0,0 +1,7 @@ +
+ VerdNatura +

+

{{_.mercantileRegistry}}
+
{{_.fiscalAddress}}
+

+
\ No newline at end of file diff --git a/services/print/application/template/header/locale/es.json b/services/print/application/template/header/locale/es.json new file mode 100644 index 0000000000..86dbe5e584 --- /dev/null +++ b/services/print/application/template/header/locale/es.json @@ -0,0 +1,4 @@ +{ + "mercantileRegistry": "CIF: B97367486 Registro Mercantil de Valencia, Tomo 8041, Libro 5334, Folio 160, sección 8, Hoja V 102076", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es" +} \ No newline at end of file diff --git a/services/print/application/template/header/static/css/style.css b/services/print/application/template/header/static/css/style.css new file mode 100644 index 0000000000..d06163ee69 --- /dev/null +++ b/services/print/application/template/header/static/css/style.css @@ -0,0 +1,16 @@ +img { + margin: 0 +} + +#pageHeader-first { + border-bottom: 1px solid #DDD; + font-family: arial, sans-serif; + text-align: center; + padding: 10px 20px; + font-size: 10px; + color: #555 +} + +.header p { + text-align: center +} \ No newline at end of file diff --git a/services/print/application/template/header/static/image/action.png b/services/print/application/template/header/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/print/application/template/header/static/image/linkedin.png b/services/print/application/template/header/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/print/application/template/header/static/image/pinterest.png b/services/print/application/template/header/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/print/application/template/header/static/image/youtube.png b/services/print/application/template/header/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 + + + {{_.subject}} + + + + + {{$.header}} + + + +
+ + +
+

{{_.title}}

+
+ + +
+
+
{{_.orderReference}}
+
{{mandateCode}}
+
test descripcion
+
+
+
{{_.supplierIdentifier}}
+
ES89000B97367486
+
+
+
{{_.supplierName}}
+
{{supplierName}}
+
+
+
{{_.supplierStreet}}
+
{{supplierStreet}}
+
+
+
{{_.supplierLocation}}
+
{{supplierPostCode}}, {{supplierCity}} ({{supplierProvince}})
+
+
+
{{_.supplierCountry}}
+
{{supplierCountry}}
+
+
+ +

{{_.bodyDescription}}

+ +

{{_.clientAdvice}}

+
+
+
{{_.clientName}}
+
{{clientName}}
+
{{_.accountHolder}}
+
+
+
{{_.clientStreet}}
+
{{clientStreet}}
+
+
+
{{_.clientLocation}}
+
{{clientPostCode}}, {{clientCity}} ({{clientProvince}})
+
+
+
{{_.clientCountry}}
+
{{clientCountry}}
+
+
+
{{_.swift}}
+
+ {{#swiftFields}} +
+ {{/swiftFields}} +
+
+
+
{{_.accountNumber}}
+
+
ES
+ {{#accountNumberFields}} +
+ {{/accountNumberFields}} +
+
+
+
{{_.paymentType}}
+
+
X
+ Recurrente +
+
+
+
{{_.signLocation}}
+
{{currentDate}}, {{supplierProvince}}
+
+
+
{{_.sign}}
+
+
+
+ +
A cumplimentar por el deudor
+

TODOS LOS CAMPOS HAN DE SER CUMPLIMENTADOS OBLIGATORIAMENTE.

+

UNA VEZ FIRMADA ESTA ORDEN DE DOMICILIACIÓN DEBE SER ENVIADA AL ACREEDOR PARA SU CUSTODIA Y ES RECOMENDABLE FACILITAR UNA COPIA A SU ENTIDAD BANCARIA.

+
+ + + + {{$.footer}} + + + \ No newline at end of file diff --git a/services/print/application/template/sepa-core/locale/es.json b/services/print/application/template/sepa-core/locale/es.json new file mode 100644 index 0000000000..ed126e57d9 --- /dev/null +++ b/services/print/application/template/sepa-core/locale/es.json @@ -0,0 +1,24 @@ +{ + "title": "Orden de domiciliación de adeudo directo SEPA CORE", + "bodyDescription": "Mediante la firma de esta orden de domiciliación, el deudor autoriza (A) al acreedor a enviar instrucciones a la entidad del deudor para adeudar su cuenta y (B) a la entidad para efectuar los adeudos en su cuenta siguiendo las instrucciones del acreedor.Como parte de sus derechos, el deudor está legitimado al reembolso por su entidad en los términos y condiciones del contrato suscrito con la misma. La solicitud de reembolso deberá efectuarse dentro de las ocho semanas que adeudo en cuenta. Puede obtener información adicional sobre sus derechos en su entidad financiera.", + "orderReference": "Referencia de la orden de domiciliación", + "supplierIdentifier": "Identificador del acreedor", + "supplierName": "Nombre del acreedor", + "supplierStreet": "Dirección", + "supplierLocation": "CP - Población - Provincia", + "supplierCountry": "País", + "clientAdvice": "Debe llevar a su Entidad Bancaria una copia del documento firmado para que lo registre y evitar la devolución.", + "clientName": "Nombre del deudor/es", + "clientStreet": "Dirección del deudor", + "clientLocation": "CP - Población - Provincia", + "clientCountry": "País del deudor", + "swift": "Swift BIC", + "accountNumber": "Número de cuenta - IBAN", + "accountHolder": "(Titular/es de la cuenta de cargo)", + "paymentType": "Tipo de pago", + "signLocation": "Fecha - Localidad", + "sign": "Firma del deudor y sello", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/print/application/template/sepa-core/sepa-core.js b/services/print/application/template/sepa-core/sepa-core.js new file mode 100644 index 0000000000..74e08fd31b --- /dev/null +++ b/services/print/application/template/sepa-core/sepa-core.js @@ -0,0 +1,54 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class SepaCore { + getData(params, cb) { + let query = `SELECT + c.id clientId, + m.code mandateCode, + LOWER(ct.code) AS countryCode, + c.email AS recipient, + c.socialName AS clientName, + c.postalAddress AS clientStreet, + c.postcode AS clientPostCode, + c.city AS clientCity, + p.name AS clientProvince, + ct.country AS clientCountry, + s.name AS supplierName, + s.street AS supplierStreet, + sc.country AS supplierCountry, + s.postCode AS supplierPostCode, + s.city AS supplierCity, + sp.name AS supplierProvince + FROM client c + JOIN country ct ON ct.id = c.countryFk + LEFT JOIN province p ON p.id = c.provinceFk + LEFT JOIN mandate m ON m.clientFk = c.id AND m.finished IS NULL + LEFT JOIN supplier s ON s.id = m.companyFk + LEFT JOIN country sc ON sc.id = s.countryFk + LEFT JOIN province sp ON sp.id = s.provinceFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } + + // Swift BIC fields + get swiftFields() { + return new Array(11); + } + + // Account number fields + get accountNumberFields() { + return new Array(23); + } + + get currentDate() { + return format.date(new Date(), '/'); + } +}; diff --git a/services/print/application/template/sepa-core/static/css/style.css b/services/print/application/template/sepa-core/static/css/style.css new file mode 100644 index 0000000000..3ea38e1893 --- /dev/null +++ b/services/print/application/template/sepa-core/static/css/style.css @@ -0,0 +1,22 @@ +img { + margin: 0 +} + +.body { + font-family: arial, sans-serif; + max-width: 90%; + margin: 0 auto; + font-size: 14px; + color: #555 +} + +body .title { + text-align: center; + padding-bottom: 20px +} + +body .title h1 { + font-size: 16px; + color: #333; + margin: 0 +} \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/image/action.png b/services/print/application/template/sepa-core/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 zcmV;K3}*9*P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005RNklB!xsl#Vcw+EEJE;Iv`=@keuvsRh#uO{P#C|_F8M^)a!LqV`G1R zW%3JgCZLTN#EwIh;;ZU8_4{ zd;2oYV`!$(={TN;%b8KKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009mNklFVGKj2CUnt&S0N||3ZzjPj0$HW8b!@j?Lx?nEAO(+ zfPaFk*=V3GT+B{e#6(O+<;tvugcTJUj09T9ZED7(PYa)k<5g_t{Fr;scXK%}_x(QK z`<&;!@AD&30_p&;6W9}<&jMS3Cx8t22e=LV0{j460xkfTQc8D=+D!$;jsoujZvl@3 zUjP?@?|`3x4zLKU2L^#>fNj7_z{|j2zzlFIrSvs*Lfx&-s&~}0>OOVdDmm80zO%tI ztM0Bt>?ZXCbxA#;Zmx*86?{wT8Ff=tf+y5@bxs|r=?#tq|GYX;mh7mysJ^FWHHTgn zc9ztmMMv$Uk{UCC+wO+7{* zKs^?ET95kDdG$Pfghy&p4@4Zb`b=~ybRD?w8dno=890|xI$nXH?Z7+0)?EH^9e6*b zG+%)4IPfMgno@FkaZ3Y-Q$R|iq|tG`BEm-Y0kUEZCk@Ia=}xjzHO zfw}(zyd1jolRv8x9s1^g@d4lk;FFSG7zW0ID~~Peq2(WtQu?^0_OF1~QLm{7ONu_^ z|Kr;VLgb)&Edw?JH`d^uxLEou4K`s znyBI$uQ{(yz-z##%c6&XU48E5U7_={ETz-|J_HW;x#+`Dq;&EXc3t&Nfh{+`0*z%ROJN$jj}}H{004w%IL&#x`pj*%r%fXsewbHy}GJZb0TX_Nvu8 z8Fr_N67-^}zF4@a-W6MGIldULinOjl(dJqPMO{YvVkB2|`1vAmg!_k|Uvh8w`7Krl$9;*o$Z}0?H$NuB_zlk!1m@=HfA7@`*OCLg}T}iuF&23wYYq^ zf3m#2Dh@oEs(6$?b^;9pIRd&|IC=gOj!F-Pq$D)aa9%i6Y^;AYjtUcUB;q36E_p$0 zP+@rF=+l;0q4j+G-TuVuj|Jg_%B$?}Q*hnz$f+`%D%}3aW#S|ln?XbUgIl{Sq5+6h z4j^>+@22EVFO(3VdtX68Mv88@P7s9q91=XJTQRGfjX3NL?N~fR7s5XnqT4xvPafVM z8zkx(D_#N;m4fikPNz`=E|Y-x94|r6#cTs zEm{oNJ1Urtu^%#{uQ-Y+BE%Ev2dHP?Ot&|fo}h#`xIwjFgdw~Vn7`?nK;6pIqH8&K zZ{LAHmu>bvKk4A1{4ImFrrh2xL|&xxs6qbbvWbo$kp2fM7WL8ZB17;X(1*MLhFUSA z>mGcjZdl?TnAIMnXG5M~ajO1aaddG+Q-5NxA$?__I9=#O?K=iT)}Ny9xVlv=Lz5g( zS$Z{^QH31P9*y90dg$5%5TM0|;jxU!m%|~9Bef`F;qfv;?#X*(pfRJU$VS4kRVd^W zxMkQ?Bh|??WZqp0fg$Q#h(BL9$R`Nm5aELDIsZR*UP z8HbyfH4Sbc6pH4_KbWqtL|cv%mKb8|KE#LP?6+ZK8SE3U<6}ZdG8wC*s6?(9B&_{Z z3Dp*HV=`6e28|gY*^R&h?IuoUL?R}mrJ(h3QRW*NF%=iaG6F9GRIo}fEk)8d`39O+ zjE8=FV-EH(Eg2@tdCWL0R&=j$iGE%x%m@h%+Lm}o*}5Y2S*J)>v}l;WF|7k;gH?z-M(GUU7}s`OC7{)V^PPVd$nyk)zL3<1bgUvTzjx)=^SDj zg_){r-}2QlxZ^&HSLHXV)~JMi!{Tzu562zBj-j1r0yG!$+@N05aNhi^gPhF_DeP(m;lMKGk!#>;+^evpBdVXvXZ z(8%D8lQ4>yB9}swLd3wTURGXGzFv-`aiuY)9#^KX=2I=D!Kt=WhVV1BLZdue`9zIK z&7$o6x3F@HZ}#dUMZVfE5wO~Q3VlivMJjo920QJ8WJo3i-`$zWtx+mMT>`lKY3e4H zyj>aE(qG=SMG2Lc3Moir@nuVf_>?_N5{b5Vk97VLLqD%cg| zNqoTpZby5;cdSDze^ey&`a~s)jZ%!#wt^E{W&{g=NySK^MOzK(?ojR64%!YD(!kP? z)5t3xE1qYnDz=o+m%LYauP`(*K2b0+pTV6a#J<3Bkadu?khRfd_}Tq4Q{%VBW;5CP z-OnZ3=Z)=lA)ooRi?uX9>wTB1%C4fGZ>wr6#VBq0nDntCXWpW(_D|zTV_6eH?cO5n zN_C@cqmPk=F`h-!Ky}}FQb&?ct53{}5FAR_5^BY}&+mMl8o<~Bp9I!3C%>MH_zYa9 z9c9=4i0&Xr4_qs{3w-8U?;sj@dCf|Q%WX1!7At0bWmVDaOC zlGTJYL9=S1wyD^y{LbhCPxw|CoVz2uBgnhXv94_}&fDEI+%%@tXP;vbvLWF|`DXg& z`8ES8^{0lgfQkqZ3($dly7%-Z?}`->STVb;UpfMWzi23(*V}iFF9qBAj7Q<93@_m2lel@c1G1!+Mql zyApp5vm7^ra5>8t!DZf7u2zvj7IW?KUs~B(vNrO>{45OBJa#sn8_#D~VcXf;NIPD5 z>8!(g4j%cFz1Jb7xMeJuOaiH*3gI95l7EY#Gkn91roO~-qmD)N=zZ5~LBTr1GZVfj zq02z>@lu9C(KGQhp`F`5Jt#3D-ch`q zTrsK9;@D!}+;yzdETsN*z%HtZl_Ujj#QJ-DC5$#RVxxG;q55aK1qQf!3o}jgu8D|I z{?v*b#)-4>@1ra6yk9SJ-_9_5F}D&Mi$mo#ncr#ccT|4iuNQRmSV7#ufnf~&1Y0TC z9NEZV`%9_fOf#+8w}Zx0(KY$9Qt zh{$T}6}&VYzeT!L_dTL8`_Zn9)#Qe+s&L4d9~ki zo&H+UX}^0B9_d`sfY4C=`O$sqldWFWM_b3UA*flX7dT4P#)X!j zzuwIXsjJ4#GoDDJ4v}`gW?#55qwt_;#C#pxrgZq=v3qofuyIF%BCzZl?Nzx2H%IFF z&f*>G7xB!?OsOoj%qJaVomQoB;hFj4b)V*wWzN}x_!_sWl%&ZYGuswD@ z7JN;bQyOaf+Ll?}qHEo9?%DCf%lz($D2I1)?YhI`5ANIiuN;1%wT>%K`@4a=n+@DG zUoh><*5(s!^SK~t{@H*shZ zFmV}iW1%RaCpmn={QTP@;FqK4Qi&uKGfZ)O_x3;5hNwO zK|`fqJ)3YcuK@ifnTd?5A_(M34FdTGfj|#$z~>PN-Y@+eB>-Q8J+ehkMt*9nCZ?D%iTslR{TT3mt*5(Q) z>iOgR&Il%)H5PbWay+NJ)+v)!Ex8C|qzY#&Ka!dsW!-hXy&!dp$wih zo10r&T5jfeokMKezwX;N?q+=5Z&g**^Pv56=;Lf! z=Ld!q$h?k@Y)h`unL_D0+bqQ_9t>nyN8&JG;dp(hLPJAS%Y@|rblzrPZKxqZACinY zR*x>8+{Nm6|J$gwtqlP-s7RGQ7@gLp_U{dH5l*y3t0K;EjhKJmy?VHuDo#%6DQwkN zuMI|Tu0|4-kbr_iBcaMrNZmU+F?efjez{!%e%f5k$j~o$JXiep3^Dt}L(D#$f`X^M zCpsIL1I8Gl+Ns3~bN!8HbF^B;!y0O8SkiGMdqX0x>?kNG+uZ?BDGBsjt<_)C)8jjp zBRp9Du@zUQ6M=@O*>~-f33I)-jo6b`WHhu2Ev9{jVsvrCOqvp_ZNAA7gj96MAxD|g zIcP`-DJiM`;bHhrzLelmXyiAq3h{cm8AfL9e{DZ$)&j{Ixd$2h28LMqlaZMzPG7wJ zhfj_kI6vMQPbGsEa5I1{I-k}qFyWy;kfEc8i07-8Gm(L?K`U=x9&1L!Q*oL9y|;r* ztun-1gojtv%Z$;qs$?*THfy5wz1ukzK5{u=dn0_N&=EEY(*Xq3w2$W%(!@X5K$aHlFtrXJ)3S zyMxe#hqwB|oM$;;Z^%wHJ9`@2qGD`>v301}6gVBiv-5r1}`?H1u9Ui_onGQD!vqqi` zG1_Le`A?|VdCNg;V`Jm~1CjIYFb45Tj^ZO`tETdQJ2*@galr*4tnd2vHs|*f9Etm8 zx3$63@{~X9CoYzgtX^yxzzgY}XBuT3A}bKhL64_smBA=QQ1ZS7N3y zjUd%_qFaJ6M@Gdd~Y-b zbbWI(KtxFR==*w=D-wZc1O6jLu#6M9r||J3ct#R0!d>tqL(2A#8Xsom8OdhPn=g?A z6i`r5v!n?4Ami>s($_80*E5mV9g$aUE2uZ%OF*2@sfn|*^Yrp^Bv=m}lKulfSmPXg z-F0l4`mg8HKG(L}C%+9ak}wqQZU#UBVRqj3=4;pauz$&cr|Zzedw06@{auZY0|>w8 zghk;=gwbxbS%n%CA!X{o<9bH=0C64$Pghhpx3sIv;E@sz%Ada2hJ=X7tG=wP48ibZ zzG~HZP7!!AjJP3{YMmVP<#^03znV69?tg;+>s);?_UMHpXVLEOe2L&*BUj-UE+7m* z-UshD_^;31x}I|XV6MXXj1ZdfkTPD>Oft(7sqY$6C&^yGmB{8RvpsK6+qdkcZqSY3 zbicibyuppt%TQr9$ExK(&#)l}C(DRLk?hk%zPSb8t+`#{y*>G1 z#YiDQL+UzBaF1Pd+^s{oYv540^K0XNpM&{?$MhCdw8KYD1QlMR*Vb5b{X|RR_tjY- z#!7oncue)WoJq47U=t4ikMF+Wf|C*r5r*>1$|3@K#9Yso2U0Zk5xOPu^nQ8+=Z6JM z*XJGtg6cFx5KS)`dAvEn!(}qR>H>nhy{W0G?s{xyX6BN$IM>Mxf6(T7lyxT0Ozyu} z9W?f(K!NJx5~ByI;HXI42MP#-Z^Q=GOm7;Qe%iA1lGfJNOU1aEr!DGGW1w;Ie72{a z;`1(sn%P0?p4op2>s5U+TYK=GT-u*8O>K7!rm-~Uq)7Nw)ks|yP1J-8jorvmn9(jS zWY(H;)R}(|DfG~m(FkdSCvVSbiOi)h9t|jsOjFrXEY9iT0Aoa8A-&|OAIQn4{Fk^g zZBj-RC)Dy(#oM(1bQH;zDYYyf97i5chI=6aMej z|K~FQj|=|q%W%<#l%WOeo2tk$Ka!C5kDY(#k{5Y>T>KjhxJ(nWWWl2FJ#{8S!)D)` zeS>tWws1rR6Y|>Hh*lcYR^fG02Y&8SN%Zx7&sBLGhY^;S8@b$LtcApl-8qDP!>(hB z0>YxCwDf@ZEhN^*L=8(%PY)Y01Z(np{3doci%hqHFNQW!u$WAUsyrSqc{dCEX`m?l zo=-tJO^l%yB;(5@_uF{IX=|(}6CL08|nf4Mic+YI8k9IQTsA z{&i<(NAPyhM{|QJLm9J4WlShs&SQW>&_+u^iLh7O<6l0Mx3vFf1ZD`Pm{|Q~R z|BkKGLm#fP1WeC2keMN#Zm{yX%yO=M#v{QN}TUS2K^3Q1oq*C3mX2f*8P_z5!a8*M3zKe7uF0O{Y@ zI8fxFpLVgqYOdhot<>+4!r*0jq4~A-#6iz37OX^qR{!T+knU4}Z(?7MM-HbZ@i>UD zx-U*-X<+;hYQe;9Vv#QWz_o+FwaD}owLK99KYrz-wj9Fev?W1bFaIauuITk&j>Jv( zi6c?*h^2HR6Zkn;pCT^lVP^dudc}qx;s}6U4Lpolm=S(+^;p;2O4l!DtrM2d(r#{e zPiUtH1xT#Dj$a=M-G|6=qa62AH0L{f3?4?)_2#>>{6Us7$i{Rg^H&s#RO z<-{MXN9cJe)A#39FR^ztJ|B`3en36l_>;f$*xKEH4;8K&85@h*Xty$Wf6vFv%pAo+ zS-jhNQhh+QaZi(^mej!2WVjL~O`SMGRq?56dsd#c%InFlZNhrjsYP%omefppg9GxD zzj56+qFibY9)VFs-n9>O#QN7AfBWMI+8i?6C^i9sK=9|Tfp zVRYtrX=^g8re`S*cbZ}N?_8{`tp{B2(wK^|mx^Q$TCIS)kA8=|gI(SwvRt%yRkYjE z*84#MbqFqYW@S#AA|X#p@F_8c7_oLc6JhiW*0tr~e?bZhcGxIO%Xx3~0Y{TGLt{_BA2cxVVP<`}tDMn3t7fV`AzYcccP) z4E1vB{N8*U?bhT3Ne1c_E*}J?QSO|?_r5{DsMovs6i}c7jRf{Rq zC_OqF#p{6IFhP;f*;ZzDI=e=`8l;L%W-+dvF95U+Ny{bX9DJ2Ek40J zV{hj`2le{XdV&p#-w1#~v6wrbpkQx~0|| zvA5;la#Z-C0Y>S>{A`F3Cf9n2l$=(-vZKxf&?9@w6?w?mP=dA+wj>L49~z4C-%Ag{ zSk=oG?pyR{;=D{D+}b4dORSe5%6ww6ny#micv?nYvZ{FOQ^X#O zl|dDvj)2uu7&8{&A6V?i4>dZJ0qP#$C2(q`3{@{sN}2&gd!m0HN@NFm9@Hd6Mn&Tg zX8&lYPbE)3(BBV@r|*nWp;=RHy*4FuM;s^88RRbL+S>>VDF$x&%Bn5-ZlrwY`J;k@ z!;)FrubWqCQlIF)uqP`^88$CMoKW(SUF6Jp)VX>=C30I9BO- zKY!}V6H~HzEJauq=jw?c8dM}G$k!2B1?e)<6N9mw{0t(iQISb3Xi}&gN~q;Ud90=# zjWR!I1{haAGV{-GgLer=x`oA>#mLdMKKYj&(GL#&Fty?Wswu0NaUK5M>o%TC*IP-J z9b}#sQ!2H!rKNwwNCbZZ6FIb+nwqZf!=6jc6P(CB1Zc+6G+;(O(r`Md^0iPJ_mqX{ zm;2|#8@a;y&J)i zUV3r**G}OP5ikY0kf)H&Rq|MoEzPbs4jD$GuCO^>Q=s}&ZE?1YKH1Zvw9GF1Kz>%YZ`xE|HD%xHjT)}Ei`d|-<(kk=(L;bC!a~v&qyji-RRIO)gy-d%_jLx76h9(9E!!N*in+iD=bacp+<(6dvLZPl1?>2ag_cN_tbS!>(2-?-Q~F+Pr5rjEGM z=tvAlPaPoY4^T1%GlyUI=8m{JIyzj^hTMPm!0ms?kvkcshB@m%t*CL9iIGpuBvBt1 z8zLMiAJe-%y&lDp5t*{IbcaW8XlMX{qJ!STlo7+Mi%O(;IXRhy+{_!EjC(meE~)Mo->esDCUbZnjR1Nc+bXGwc|R_3ZIfJ89X z#&xY5{`nKz#KeSH*gIVU4lQxg^zi(=BtPFM_MXXEB30FRg$JmD%$l9KA{}uc-QsYm zLIBUFS_dJJ51W5iP*hBiD^?yILx}u9VU`~`V9dqE1z4WX_n9x$itL5V*~+UZ8Tb`D z7asuBj0Q$ibR7q9fK7#k7$#e)8XX;73sk7vvlVG3+``gQxCIviBBC82>+npCpn5~vj=LAT|P=|p6|Rpn>SCrZwUK5KURZ6uUe zX|9t;-m~8GRij<8&a0wlPKQ~P!*>;gyp14ck`|>GKaL!R|30&T-DvvfB6Rvy!4H2- zF6U(}Bcg=_B!i(63QnW=9JU1W8_PH~><@%`#; zdIk}_E|J!sBDI5bN2!FY66HUqlS{Tw3?h1R!X0KB11KdkjVE%im5Yl93}DB3YAq1& zx;v%F_NU8?bzu(q_ZskF{6KJRhhYu}7fk&_k91t=G2|C5@o93A_P zkSzPo3=|?3a*{Yry}Rpct|`GQWVa0$JhxR3+O{0OoU2I@(y{t|=hBIYcI+r1)N49U z^gi?&)$D7Uo$PmQa3}(Z)7^4~M|_KI#56G=07BsX`xc;1YJWFJ8B1fec!zskJxS-K6skCj%NIk)WuXOa({``PnB9d7v6^wtKczafS^hMm_DrA zi~Bkg!CEtB`euVZ3xIYt^`#M4uNR&#F7%4OU`KzvB(b=2}e7>oJz() zMWu!dFPK|Vad(OM;$&1sgVZBMMP&n91)6(Wt`UkW<&YB{YFw`PTI6t6Eiy;hs-TU5?1VDOi3% zejE)DCuHepkuk~Ql^5efRg<8BBSA9Oj+Ea>r=H!7S1gSfFo%bcXs+fw=!Pvs4Qex{ zf-~0Ig4u`1iO=A$)J@$AT$oTEC)8;B35k*R^V`6tQ%pL9l571OY+WOmv}nK4m+oE`nMW4I`t4(S0ak^%>7>%TZQ?i|k@2`!XKJAe3cBZS zNy>bZJ=b{)dmFy`nOFMRMYgu7gE_=?^AtVJK?Dv7C6~~X7>h79pI^rv{AZwyVuf)I zrcE5bw#$xjtl$adOUnQ4E@ovvSy<4cUT3q{y1;2*GKv)WCsvMtqW@aFB-$UKK%Cu z=X>CGe_bjv;r4nZ@^^ayh-96z|ES^RE=lTXwYKz>NhE1oc#(BL_e?HOrQS)y{TR;g@O zsM}$YZD*25mgk9%_QVQ+3$%5vQZm7R?Vr>T=3Fo5yDl<)+o6eZRH`gW)=DKyON~a8 z7f4%aKkl<)>ExEa@XV4a#9JD+$cty*7SP8tI&!M4m2X%ou~kg{!P`Qo$>vHoJW1ME z|8kOzU7z@&Ee1?A5FJ2J-?BG_I_>BidR-J^M2DyywCeyOuW&0>L`D2$3x2pi`R;p; z>)g2L{YJVicx`~evYvd<)Ft?lt$Mf=I+j!8(WJPcE+Aff>vu?#GrN%aOdW+oZ~x(_ zMv;^vkDqfm(S}HO|2KY-e$CW@$y*AM=OMn8E(^!?Vs>m6H7MM)mqGUR-w~7wv6-(> zq2J&Y5sUJ}c~`vmI?jk!+M+F)#5am%tDh&x=k0Q+*7dvTtdnErjeR;< z8W-QAbF!_$`F3|B&F9o5{CS&UZTZx{rMD6bF$ABK^Z=lV%jIi%>{f?cUGOe@k=hVK zdS%L#N828VLIEI>XNh-Gz250^^6B<`P1?ky@2enUU;HlEBQ#7}yUFfd?!$Pg#}3hk zv)ohbmtPE>kH2c_%_j(7r%GQVkyzR{gN>8L;b~}TPjHi0?Al_CXUr#-xxHUbHVpN$ z=Vnh=n$l=<7R8uw%?uCugtCQ*k1j0MT3x(vopLMMd^Hfp>hHHjUa$ZeXm{&urKNom zBUqJ!nH{i2I*t6oHlGU@dT`%f(7PFUaGVGdYQ5s-Qo##{_N z``^#c28$`=yh(zTD;JY#la-_2F}#D?2_9Cd9Wt9rWrHJ03&!f(1=|MqZPlC77t`%S z|EVTEJ1ET{{xPhOuF+&Mp4jg0m#pBMxf`v>v@Fv+GZvC1>#5Qa63){?>>)6mB!a@8 zk+nS^hjvvS7mfafflUbA^i&z2oD5$D`HY?Kw`IJgZo;TSA@Oj`k7+`B{z3er57(j@U0! zmIHc>UZ1;lojZ;N1HYi$M5_I9vy)a9HMO})9XE_LU9ha)34;q-sCW;5Ld?hrJ+LJn zeus(lb5035je<2sXodeE2tRv~n%|wT$!i`<5=dMEs?tYIXc&2}x2 zHDJ$tWvYa5H70Bi@WDs@m&}FVS6=7Z^|~6DO}VdJ_C6;%2n*~&latx+mpZ)AB0f}7 z+)X^`VQ6{TCddS(*?3>7s16rfjB#T-l`}ctFT@++@0KuA=utLQ4ks#U_~~;6v2oHY z-uMS>Noy2A^o1!HGozAr*e2e+%yC7artPq%E1=->-D0-!zTA}zD#G45iAHBEXA+IA^=w1scwz>}L1p13PGrv}Nz$u@0wyzC zQl`g_VUzNVn!{l{yav17S7Zvj-m7FW}gAcp61&HyA6@ltrXoSWYutDSN*s7@l^s-8qDYRfZQw84}``B6E zE$k#HOwAV0hWx)t;8e}C;Kb7YpsX}!`{5v`!ny@e0!HlVR#h4K-)EK^0-XK=3*VQE z{=?8dKuXKrvlAn4U;UbppprO({dTSN)}PjSU4tL$xP13=@p^ut-C@o>6#I@*X0s||JldFh;9lcei!W!lE; z(pvDk=z0?d^=`q7%e+xLTqf>I4P;u|fJc%pNSG2b(XXrB4qKEHasb&>Rek?sz!_oX zdJ$ld#gO9@xdwXF^LXM#qv=IDHie#HjHF3!RKLe41QtK}*Z@4m#6C>&w0ULLMThrn z!sxq+2HAN|dXYyELCO@;3#|>BC&%isF@Z8c1#bjN`6{w*aTE3OHXLfd7Od0bGjNGl zjVS)K?x!#Ud9!p=9v2c(TWmp+^FyZ1*Me`44>L4rfG?#UVS3URGz10Wsq4IhOGvWB zQ#|#1{eLE#-r*)~+<&LHdoWDh@-eDcgPm1&5~f5C4SLU{O5k9d&S&?h^(|pn$Ur!n z?H%A~hsY@DH(Xn26iM(f#S9|R2Kxsv$At^?mzG(}p4oQwL>zcnKv~}Yo58Jt-hmfD zPBJtW4r`a7w))yN_njCQDaZ4@;eWc3GOFJ;2~BKnKv}Cw2EkN%{c) zA|3bXr_bfSQu}V=a>NyNW@aY9xEU}#eE+`01h{N~jf#@e?4{ux>F&fUelpPH%g0}~aM-m<(kg_cW@D~FviCNQ7AFtu zr$T3*{UN*;5%uj|+56_cJS~#dO_wHDgRi&X^wr}6-rog1Ke{q@Zb+xVHZ>7yf`6Kc zaEoY#$dTdkh3p)!;1Zwr4~Aq>;W7x=4-mBn9_j-l-78Ms)v%;levjh%lFMpEH@ic_ z$TEfXC7UYAnPI+6Qr-!CNX#@rKeN0%>T|a-Mfx_9%k;Po$h6hX##lOyHpThmV)RB7 zDRK!i{mn-u6D~gHWnOIP@MOhQNh2JbN!x%X4twFb(02TJ=JH`zc7`d%m- zPwRJ6j}JMSnZ{4IVF=Kbi2S#oS1YTuoLmwLByKeQvHewHe z?3anJtPzJW(v4lY%vtDN{;;W?`A;^#E{(Z1l*R6|GU3{Fw`i|G>3pDyrKJd6nhCQOvqO< zY&RP9&2q^l3eI2TzAb1 zaWap&oFgB-h%oG(j`R-Vl@Mmteobi#Gh13>ebBj5AWkP=p8jV4`yV(;6Ih&F0H{8t zZs)rrw7HcPkWV)Y8^fv0I%7(q`Zu>$JocSdGYR&f2k)HR=UrO-P$o18QqtVbxVQVA z_6wgby@f`<=N-}=V90=QZf=BMr0a5&v1KRr{o(O(d5gDT&L$uV?9hrl5GYPe06fL) z>}-9}1C~-Kvku8`O2e3E02)+TXNc!_1C+xkpe4k_#MrER&wVY(ls7wRtWr==m|0&J zpnX_i5fv=Z@^VS=E^)mxEW$t)qQ74f$@Jbdh)RdRom{}w$2J*|N^4|ETaBig=kj_f zE~O^Yx1XzDHTqI3=T;jS>Y8?N!OPz;S5yZhC5^IvDZ-(9J4ig_%F3iEE!mPdD&(EoOX!a+Uv!fFvMPj>AViH zUEHrAn@CrdCp68QvE2DhY|D3%l4C&j)ofPlMi?P}Hjcze!xbie0rBW7h+-ENC*7lR{YBC6ADjvNLVB7E?4C3qqQ(gGm2^X*g7rb>> z>!TC?#xK@L?KiBmA21`mrG7?N%NZ%t;mQ`Paq(~+Q@KsZ76PLJrNL&}MRQi?k4sYk zm%l&peQsZU{bzO8YiMg~*GY9QI~SLNni^$^6&oMlc!^@x{p!JMu4EdsWX9|3#an4ln+@1vVhWvu{trs^#r!T{v1DkN5tO|>WkXN-|t=4Wc_>PZjdvU2H1UAS92 zUZ8gWB*W)G2vMM5hoZHgZJR81%f>?~mm;f7=QDS>r;oCne($R)Q)FPb~ zfo4vFiqmPBU zS6)d8udk017;8#l%t*uB#M=S1$2%6?IiL0x1uXXr2R!5%b zuaQMe(q;WAE7C)(eZpvoS`y6ptE~vqD4mbR{f}5u9=a)KpuvNC=9T6izkt!qPZ#5$ zmFdm;1KA|MS9=v?&#*m|fgs^K5>s5?roy--76i z;^X#eaoWq#duzr4>r3A65k;9=luMHpLo5;WV58>TwuRc4LA`m z(8I8H&ETWqe{2`~qF{^%Jwt;>X;^=q6I*c{{CD=G}Mgmq%0#-3w{~_ImC(7*e9vJtZNe1owpNfm~ z%cD+H!ean)+;ZM}@`VK};zRT8^2vPUgT+e@XcCD_w5 zG|u-L?U-Tm;m+^v&StGOW`BS1vZ(W_f?JvbWA=ziI_{R0L93X!NEPWvS?o*@t<=u> zHjq6?04mDl%a=qTxiD}`u%un>%Q&}BOEKY6r;Qn9!U7X`yw=s^wkd?HL`jH6~9pUMIs394|5)*pqCXY8p|{AU&I( zKEJ%4Qa}~4o}Gp+fdRD0%LfZ)F#W}&WQ+dC#@umYD|JBg5SI&T)CWNsxi3WPp-0~k z`5W)lU_aX(f5E`O7oy4_WP_IyLyRC`!x!G4ZvOH$)r@CHIwsTDd6Oil$A>1u+@N~* z)O51P-*j&;WJx*u8>V9<9V);pkIH2VNP7GP2GAWnRqKyO1+x!uI%dK(;D>N1;gDm6 zEfOuSJqev;WuJ~Ah4A*Q_j?2IS`ulTt6cbA1AE^2VVP~XMnx3DJ~Tj6vqAcvYtQE$ zcxREmnk6luoG2v)snUs@(srozIEkRm&Or9mZfWfEA}a^#%5m^n)}N1J6Y1wt@-tNE zGnT+WwJ~4vM;MLc7ARV9;D?FQK$cp_}ti;1%`dw1_0BjN{>=xaC ziki+)8LIk2u*k!RAG@%ythF`L+}s=$Cj09pt4PZs`04KAV2AXL4}^uK7S-8RX7%U1 zNtXpqlp~|4t}Z~c>-d)oX^pq=6wn|F|D9N!d>;!N;4evr4(Qk^Fw-u2HY;0bubY(4 zuJe;WpRbC9#)yd`|MUu9oRQv84In zmpGE>CWgkBu#v-WVot=U7Y%&(MLi+BiweXB?n~E2n$`JFkYNFM$dGH1Hn^#_O!0>f z1VX0j)|~7Tk$O4`;A$})1w+EX((~~633w_*JiL%Gne&IHk4dL7y0dc~d~I!a zJ$izgp7RkHPVIX*U?ssIA|iq!%bIZPL*f0&Ee4hyukL(g$nn_M-u{C>V_8Iu!1&8G z^Q`rnu-Jx2f(?Jug!IXM!bRkFH`Lz&$l|*E{8fAzmE*xH=o59=uOjz(njIa1h|4W%M2P9RK=Ryrsy0)eA)fDa!{DG^BWIgHrp)WnlD(@IY#>KClsog^}gQ z(w(!vl(bPs^@*O;^@s2M=%FvqWiO;lMa+@T=y2EDaynmf6Cg`1N-pZ<4M!OUcQJ6Br~j2K?K8 ztWi_mGH#ZpH+lT40vN+43-BMQFz9f=#fBrNQjxDcAde~|SNV~JzPBe(wQ6eOtCj!=JlgxUHWCTfMc)XStqzq1Un!#s z+mJKgTQq6kN1P3OH3f?rzn}hT^?jQos}V=V{e_?JK7S{c~R)wjzy#Yq(O(JY_3Ly_v%;4UpL4?{{36P%v3V~ zA7zSXfu@s#gJW=ig16Rg?Xk7d{X`bg-`;a`t))-RL9Smc9OPdJvZrTzxMTs&V=e;NA#9*E3rT^P^P{eGnQk97DzhF- zUl0x6`qxsQls<)&uY_CDwjqiQ z1I)A%2b_W8Qt=t7MS}-behC3)fJAWbzkBF}`)6=A55%h4cseUshnqG-U-)HRyWb51YHYPdZC9Y!1#haU`U4lVJE6!7 zvizlZ2q6xtV>^(Q~y zu-tk&0eu2^ax?yD4Z>AJeAq@kvaFQgz65?w;D0~BSdT?=bu|l#_ir)q5>vk9e#1(; z2PXg*c$?2#9}7f8p0{lGz9Dx5BZK>CHX?UtD?>R#UJzOxp46HKdK<+4#buUqzt&OM zSGdLZ)Vx~WE3pd+DH_Xm?kAE+ABHj_yOoW zQ!xLVy!rBP3Mz@g0-R-em*Vp60|ud+Br=ni#6~my{$UrYt@N==`KxsTob`CK)gDQ9GObT?ou<5;w(1@_}9dUBKxwi%2Uemo*F~A4WsWh_0Y}%LO5B z#Aoqh83CGzL&$7;?$lOZm{QwSHpji9Z&<9Ne3(i=_g2Kb?kRxm%oY@?dEEE=PF{{- zr?OW`pH#>a!?y7uMJc-e5A&R}ftD!zumZvEY+%HWxyz7BP9B6lK^()1IV{eIQBQ&e z6NQm?0<-MdS1rO&u3&jod9y!+{|sqnb&BU@g#r&|zy3@M*=T~gA* zept_KLcyW4X@(!SqnElY*Tz3?_Iu`+s4pqnc<%wLQhj82s_$7C=+ z_G3Z6smLdXd1@2wigf~t9;c#a(jM zl?+|qo!S+nU}D;(6NRs`wLnIgvSL)UK%&mAZR8KoY2yZ1A<)EnLf)^l#$0aMqdC3C z@F(`c26-_hQYIQ#%e~NUDR#~NJezG@^^%xy{k2gdp_GZu9v`}Z@--`=p{o8!TeFgX znFU`Z`p!$w@lW_=ktI)_I1T+#N0F#Wnj*WV5Eqv9Ct|O4L(4eXcI}7RO*k8Gm4>T8 z_bkN?YJPCp@*cq@0pE3U$ktd6m^%Mk!3AawVaK-_A$%(bkK1$5oNSUz0T)I6HeqoA zlDfaOeCQpFwvS%qM#mXj*P~`1*WFU|yGDF|%Y>X{zK{^cO{60P*C&Rs4_Q&!rTeRK zGq3}IxRc+JsySFtfTTMf1tu3IOw<*Y&)1sfuKy=grR(L^^nd}6yMhaYA760r^xehu z^fZ7NMH@LlqWWJoT~%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/print/application/template/sepa-core/static/image/linkedin.png b/services/print/application/template/sepa-core/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/image/pinterest.png b/services/print/application/template/sepa-core/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/print/application/template/sepa-core/static/image/youtube.png b/services/print/application/template/sepa-core/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 Date: Tue, 28 Nov 2017 08:12:39 +0100 Subject: [PATCH 038/287] Docker service print --- services/mailer/application/auth.js | 8 ++++---- services/print/Dockerfile | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 services/print/Dockerfile diff --git a/services/mailer/application/auth.js b/services/mailer/application/auth.js index 81f423e15d..7e9457537f 100644 --- a/services/mailer/application/auth.js +++ b/services/mailer/application/auth.js @@ -36,13 +36,13 @@ module.exports = { let host = this.request.headers.host.split(':')[0]; let proxy; - if (host == '127.0.0.1') + if (host == '127.0.0.1') proxy = config.proxy.localhost; - else if(process.env.NODE_ENV == 'production') + else if (process.env.NODE_ENV == 'production') proxy = config.proxy.salix; - else if(process.env.NODE_ENV == 'development') + else if (process.env.NODE_ENV == 'development') proxy = config.proxy.testSalix; - + this.request.proxyHost = `http://${proxy.host}:${proxy.port}`; this.request.user = { id: token.userId, diff --git a/services/print/Dockerfile b/services/print/Dockerfile new file mode 100644 index 0000000000..2e8bdc43bc --- /dev/null +++ b/services/print/Dockerfile @@ -0,0 +1,13 @@ +FROM node:6.9.1 + +COPY . /app + +WORKDIR /app + +RUN npm install + +RUN npm -g install pm2 + +CMD ["pm2-docker", "./server/server.js"] + +EXPOSE 3006 From c4c35a2ea34b37bef597b1eb4353c742727547fa Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Tue, 28 Nov 2017 08:18:00 +0100 Subject: [PATCH 039/287] Docker --- docker-compose.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 949d393aeb..b8d64389b3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -76,7 +76,18 @@ services: - "3005" ports: - "3005:3005" - + print: + environment: + - NODE_ENV=${NODE_ENV} + container_name: "${BRANCH_NAME}-print" + image: "print:${TAG}" + build: + context: ./services + dockerfile: /print/Dockerfile + expose: + - "3006" + ports: + - "3006:3006" nginx: container_name: "${BRANCH_NAME}-nginx" image: "nginx:${TAG}" @@ -95,3 +106,4 @@ services: - "mailer:${BRANCH_NAME}-mailer" - "production:${BRANCH_NAME}-production" - "route:${BRANCH_NAME}-route" + - "print:${BRANCH_NAME}-print" From f5e3801c35a2a275f6090eeb103b72058869bd57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Tue, 28 Nov 2017 08:44:44 +0100 Subject: [PATCH 040/287] Error al incluir datasource.json --- services/mailer/application/config.js | 2 +- services/print/application/config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/mailer/application/config.js b/services/mailer/application/config.js index 1b78e36cec..1442e85edb 100644 --- a/services/mailer/application/config.js +++ b/services/mailer/application/config.js @@ -9,7 +9,7 @@ try { config = Object.assign(require(configPath), require(devConfigPath)); } catch (e) { if (e.code == 'MODULE_NOT_FOUND') - return require(configPath); + config = require(configPath); } config.proxy = require('../../nginx/config.json'); diff --git a/services/print/application/config.js b/services/print/application/config.js index 1b78e36cec..1442e85edb 100644 --- a/services/print/application/config.js +++ b/services/print/application/config.js @@ -9,7 +9,7 @@ try { config = Object.assign(require(configPath), require(devConfigPath)); } catch (e) { if (e.code == 'MODULE_NOT_FOUND') - return require(configPath); + config = require(configPath); } config.proxy = require('../../nginx/config.json'); From 366a8e2f4d42d529ac7733c69799ff5c0ec9048f Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Tue, 28 Nov 2017 09:19:23 +0100 Subject: [PATCH 041/287] Jenkinsfile --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 62248b0fee..4ba0a8f872 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,11 +43,13 @@ node stage ("Stopping/Removing Docker") { + env.TAG = "${env.BUILD_NUMBER}-1"; sh "docker-compose down --rmi 'all'" } stage ("Generar dockers") { + env.TAG = "${env.BUILD_NUMBER}+1"; sh "docker-compose up -d --build" } } From 005c8072b95fa73e030f384c988dcfa8e3cb5f25 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 28 Nov 2017 09:24:59 +0100 Subject: [PATCH 042/287] Production: al filtrar persiste el orden --- .../production/src/production-table/production-table.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/client/production/src/production-table/production-table.js b/client/production/src/production-table/production-table.js index 91c24314ff..288118a0dd 100644 --- a/client/production/src/production-table/production-table.js +++ b/client/production/src/production-table/production-table.js @@ -13,6 +13,8 @@ export class ProductionTable { }, model: [] }; + this.filteredField = null; + this.filteredReverse = null; } get checkAll() { return this._checkAll; @@ -21,7 +23,7 @@ export class ProductionTable { this._checkAll = value; } set tickets(value) { - this._tickets = value; + this._tickets = this.filteredField ? this.$filter('orderBy')(value, this.filteredField, this.filteredReverse) : value; this.totalFilter = this._tickets.length; this.pageTable.filter.page = 1; this.pageTickets(); @@ -30,8 +32,9 @@ export class ProductionTable { return this._tickets; } onOrder(field, order) { - let reverse = order === 'DESC'; - this.tickets = this.$filter('orderBy')(this.tickets, field, reverse); + this.filteredField = field; + this.filteredReverse = order === 'DESC'; + this.tickets = this.tickets; // call tickets setter } pageTickets() { let init = (this.pageTable.filter.page - 1) * this.itemsDisplayedInList; From d4d8126c72acf3c4e2c5211c1e2a993a5a62b843 Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Tue, 28 Nov 2017 09:42:10 +0100 Subject: [PATCH 043/287] Jenkins --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4ba0a8f872..4cc6d74f43 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,13 +43,13 @@ node stage ("Stopping/Removing Docker") { - env.TAG = "${env.BUILD_NUMBER}-1"; + env.TAG = "${env.BUILD_NUMBER}" - 1; sh "docker-compose down --rmi 'all'" } stage ("Generar dockers") { - env.TAG = "${env.BUILD_NUMBER}+1"; + env.TAG = "${env.BUILD_NUMBER}" + 1; sh "docker-compose up -d --build" } } From 881ff774a5f08face22ae00a1e7e6edbb64cec5a Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Tue, 28 Nov 2017 10:38:00 +0100 Subject: [PATCH 044/287] Jenkins --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4cc6d74f43..15c4ff79ff 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,13 +43,13 @@ node stage ("Stopping/Removing Docker") { - env.TAG = "${env.BUILD_NUMBER}" - 1; + env.TAG = env.BUILD_NUMBER - 1; sh "docker-compose down --rmi 'all'" } stage ("Generar dockers") { - env.TAG = "${env.BUILD_NUMBER}" + 1; + env.TAG = env.BUILD_NUMBER + 1; sh "docker-compose up -d --build" } } From 438c573ec1510f04a4afc2b59b1da80993d6d170 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 28 Nov 2017 12:57:51 +0100 Subject: [PATCH 045/287] internacionalizacion menu izquierda client --- client/client/routes.json | 33 +++++++++++++++++---- client/client/src/addresses/locale/es.json | 1 - client/client/src/basic-data/locale/es.json | 1 - client/client/src/locale/es.json | 7 ++++- client/client/src/notes/locale/es.json | 3 -- client/client/src/web-access/locale/es.json | 1 - 6 files changed, 34 insertions(+), 12 deletions(-) delete mode 100644 client/client/src/notes/locale/es.json diff --git a/client/client/routes.json b/client/client/routes.json index c938dd8a6b..c5c930d225 100644 --- a/client/client/routes.json +++ b/client/client/routes.json @@ -26,7 +26,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Datos básicos", + "description": "Basic data", "icon": "person" } }, { @@ -37,7 +37,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Datos fiscales", + "description": "Fiscal data", "icon": "account_balance" } }, { @@ -64,7 +64,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Consignatarios", + "description": "Addresses", "icon": "local_shipping" } }, { @@ -83,7 +83,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Acceso web", + "description": "Web access", "icon": "language" } }, { @@ -99,13 +99,36 @@ "client": "$ctrl.client" }, "menu": { - "description": "Notas", + "description": "Notes", "icon": "insert_drive_file" } }, { "url": "/create", "state": "clientCard.notes.create", "component": "vn-note-create" + }, { + "url": "/credit", + "abstract": true, + "state": "clientCard.credit", + "component": "ui-view" + }, { + "url": "/list", + "state": "clientCard.credit.list", + "component": "vn-client-credit-list", + "params": { + "client": "$ctrl.client" + }, + "menu": { + "description": "Credit", + "icon": "credit_card" + } + }, { + "url": "/create", + "state": "clientCard.credit.create", + "component": "vn-client-credit-create", + "params": { + "client": "$ctrl.client" + } } ] } diff --git a/client/client/src/addresses/locale/es.json b/client/client/src/addresses/locale/es.json index dc7a13c4a5..ab0c0e4ca4 100644 --- a/client/client/src/addresses/locale/es.json +++ b/client/client/src/addresses/locale/es.json @@ -1,4 +1,3 @@ { - "Addresses": "Consignatarios", "Set as default": "Establecer como predeterminado" } \ No newline at end of file diff --git a/client/client/src/basic-data/locale/es.json b/client/client/src/basic-data/locale/es.json index d0e654979b..4594d683e7 100644 --- a/client/client/src/basic-data/locale/es.json +++ b/client/client/src/basic-data/locale/es.json @@ -1,5 +1,4 @@ { - "Basic data": "Datos básicos", "Comercial Name": "Nombre comercial", "Tax number": "NIF/CIF", "Social name": "Razón social", diff --git a/client/client/src/locale/es.json b/client/client/src/locale/es.json index ae0e1a52a5..6ff1bec95e 100644 --- a/client/client/src/locale/es.json +++ b/client/client/src/locale/es.json @@ -2,7 +2,11 @@ "Active": "Activo", "Client": "Cliente", "Clients": "Clientes", + "Basic data": "Datos básicos", "Fiscal data": "Datos Fiscales", + "Addresses": "Consignatarios", + "Web access": "Acceso web", + "Notes": "Notas", "Has to invoice": "Factura", "Invoice by mail": "Factura impresa", "Country": "País", @@ -12,5 +16,6 @@ "Province": "Provincia", "Save": "Guardar", "Pay method" : "Forma de pago", - "Address": "Consignatario" + "Address": "Consignatario", + "Credit" : "Crédito" } diff --git a/client/client/src/notes/locale/es.json b/client/client/src/notes/locale/es.json deleted file mode 100644 index 28b37f5a81..0000000000 --- a/client/client/src/notes/locale/es.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Notes": "Notas" -} \ No newline at end of file diff --git a/client/client/src/web-access/locale/es.json b/client/client/src/web-access/locale/es.json index 82652f89f0..dd42d1c3ab 100644 --- a/client/client/src/web-access/locale/es.json +++ b/client/client/src/web-access/locale/es.json @@ -1,7 +1,6 @@ { "User": "Usuario", "Enable web access": "Habilitar acceso web", - "Web access": "Acceso web", "New password": "Nueva contraseña", "Repeat password": "Repetir contraseña", "Change password": "Cambiar contraseña" From 9df3d30c40d92fc9c4ca57f603f02e6535f842f6 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 28 Nov 2017 12:58:05 +0100 Subject: [PATCH 046/287] =?UTF-8?q?listado=20de=20cr=C3=A9dito=20de=20clie?= =?UTF-8?q?nte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/client/src/client.js | 1 + .../client/src/credit-list/credit-list.html | 29 ++++++++++++++ client/client/src/credit-list/credit-list.js | 38 +++++++++++++++++++ .../client/common/models/client-credit.js | 14 +++++++ .../client/common/models/client-credit.json | 2 +- services/client/server/model-config.json | 4 +- 6 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 client/client/src/credit-list/credit-list.html create mode 100644 client/client/src/credit-list/credit-list.js create mode 100644 services/client/common/models/client-credit.js diff --git a/client/client/src/client.js b/client/client/src/client.js index 6dc0de725e..4409dc0345 100644 --- a/client/client/src/client.js +++ b/client/client/src/client.js @@ -14,3 +14,4 @@ import './address-edit/address-edit'; import './notes/notes'; import './note-create/note-create'; import './web-access/web-access'; +import './credit-list/credit-list'; diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html new file mode 100644 index 0000000000..c2ed95b00f --- /dev/null +++ b/client/client/src/credit-list/credit-list.html @@ -0,0 +1,29 @@ + + + + + + Credit + + + + + + + + + + {{::credit.amount | number:2}} + {{::credit.created}} + + + + + + + + + + \ No newline at end of file diff --git a/client/client/src/credit-list/credit-list.js b/client/client/src/credit-list/credit-list.js new file mode 100644 index 0000000000..a0da14e4c8 --- /dev/null +++ b/client/client/src/credit-list/credit-list.js @@ -0,0 +1,38 @@ +import ngModule from '../module'; + +class ClientCreditList { + constructor($scope) { + this.$ = $scope; + } + onOrder(field, order) { + this.filter(`${field} ${order}`); + } + filter(order) { + this.$.index.filter = { + page: 1, + size: 10, + clientFk: this.client.id + }; + + if (order) { + this.$.index.filter.order = order; + } + + this.$.index.accept(); + } + + $onChanges() { + if (this.client && this.client.id) { + this.filter(); + } + } +} +ClientCreditList.$inject = ['$scope']; + +ngModule.component('vnClientCreditList', { + template: require('./credit-list.html'), + controller: ClientCreditList, + bindings: { + client: '<' + } +}); diff --git a/services/client/common/models/client-credit.js b/services/client/common/models/client-credit.js new file mode 100644 index 0000000000..11a27e6afc --- /dev/null +++ b/services/client/common/models/client-credit.js @@ -0,0 +1,14 @@ +module.exports = function(Self) { + Self.installMethod('filter', filterCredits); + + function filterCredits(params) { + return { + where: { + clientFk: params.clientFk + }, + skip: (params.page - 1) * params.size, + limit: params.size, + order: params.order || 'created DESC' + }; + } +}; diff --git a/services/client/common/models/client-credit.json b/services/client/common/models/client-credit.json index f6512bfc78..26a1733ad6 100644 --- a/services/client/common/models/client-credit.json +++ b/services/client/common/models/client-credit.json @@ -1,5 +1,5 @@ { - "name": "ClientCredit", + "name": "clientCredit", "base": "VnModel", "validateUpsert": true, "properties": { diff --git a/services/client/server/model-config.json b/services/client/server/model-config.json index 3c9c2199d2..710141a87c 100644 --- a/services/client/server/model-config.json +++ b/services/client/server/model-config.json @@ -27,8 +27,8 @@ "Client": { "dataSource": "vn" }, - "ClientCredit": { - "dataSource": "salix" + "clientCredit": { + "dataSource": "vn" }, "ClientCreditLimit": { "dataSource": "salix" From a44d39f0404852b3f97941048030e2bc0d361314 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 28 Nov 2017 12:58:54 +0100 Subject: [PATCH 047/287] =?UTF-8?q?identaci=C3=B3n=20en=20listado=20de=20c?= =?UTF-8?q?redito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/client/src/credit-list/credit-list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index c2ed95b00f..918890155c 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -22,7 +22,7 @@ - + From f76a258fce2236368323dc2adab4d36ef8ac1b53 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 28 Nov 2017 13:21:26 +0100 Subject: [PATCH 048/287] client credit list terminado --- .../client/src/credit-list/credit-list.html | 9 +++-- client/client/src/credit-list/credit-list.js | 35 +++++++++++++------ .../salix/src/components/left-menu/actions.js | 2 +- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index 918890155c..ab255e86f9 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -10,13 +10,13 @@ - + {{::credit.amount | number:2}} - {{::credit.created}} + {{::credit.created | date:'dd/MM/yyyy HH:mm' }} @@ -26,4 +26,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/client/client/src/credit-list/credit-list.js b/client/client/src/credit-list/credit-list.js index a0da14e4c8..a18de64aaf 100644 --- a/client/client/src/credit-list/credit-list.js +++ b/client/client/src/credit-list/credit-list.js @@ -1,24 +1,37 @@ import ngModule from '../module'; class ClientCreditList { - constructor($scope) { + constructor($scope, $timeout) { this.$ = $scope; + this.$timeout = $timeout; + + this.waitingMgCrud = 0; } onOrder(field, order) { this.filter(`${field} ${order}`); } filter(order) { - this.$.index.filter = { - page: 1, - size: 10, - clientFk: this.client.id - }; + if (this.$.index) { + this.waitingMgCrud = 0; + this.$.index.filter = { + page: 1, + size: 10, + clientFk: this.client.id + }; - if (order) { - this.$.index.filter.order = order; + if (order) { + this.$.index.filter.order = order; + } + + this.$.index.accept(); + } else if (this.waitingMgCrud > 0) { + throw new Error('Magic Crud is not loaded'); + } else { + this.waitingMgCrud++; + this.$timeout(() => { + this.filter(order); + }); } - - this.$.index.accept(); } $onChanges() { @@ -27,7 +40,7 @@ class ClientCreditList { } } } -ClientCreditList.$inject = ['$scope']; +ClientCreditList.$inject = ['$scope', '$timeout']; ngModule.component('vnClientCreditList', { template: require('./credit-list.html'), diff --git a/client/salix/src/components/left-menu/actions.js b/client/salix/src/components/left-menu/actions.js index 4d4d6ee6d8..30d379df13 100644 --- a/client/salix/src/components/left-menu/actions.js +++ b/client/salix/src/components/left-menu/actions.js @@ -9,7 +9,7 @@ export default class MenuActions { switchItem() { if (!this.items || !this.items.length) return; - let stateName = this.$state.current.name.replace('create', 'list').replace('edit', 'list'); + let stateName = this.$state.current.name.replace('.create', '.list').replace('.edit', '.list'); for (let i = 0; i < this.items.length; i++) { this.items[i].active = (this.items[i].href === stateName); From d3e7f3eca2eae2b869d31b1af087c04261424edd Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Tue, 28 Nov 2017 13:59:16 +0100 Subject: [PATCH 049/287] Crear credito --- client/client/src/client.js | 1 + .../src/credit-create/credit-create.html | 23 +++++++++++++++++++ .../client/src/credit-create/credit-create.js | 8 +++++++ .../client/src/credit-create/locale/es.json | 3 +++ .../client/src/credit-list/credit-list.html | 4 ++-- client/client/src/credit-list/locale/es.json | 3 +++ 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 client/client/src/credit-create/credit-create.html create mode 100644 client/client/src/credit-create/credit-create.js create mode 100644 client/client/src/credit-create/locale/es.json create mode 100644 client/client/src/credit-list/locale/es.json diff --git a/client/client/src/client.js b/client/client/src/client.js index 4409dc0345..a6128bc5f5 100644 --- a/client/client/src/client.js +++ b/client/client/src/client.js @@ -15,3 +15,4 @@ import './notes/notes'; import './note-create/note-create'; import './web-access/web-access'; import './credit-list/credit-list'; +import './credit-create/credit-create'; diff --git a/client/client/src/credit-create/credit-create.html b/client/client/src/credit-create/credit-create.html new file mode 100644 index 0000000000..2df41cf613 --- /dev/null +++ b/client/client/src/credit-create/credit-create.html @@ -0,0 +1,23 @@ + + + +
+ + + Add credit + + + + + + + + + + + +
diff --git a/client/client/src/credit-create/credit-create.js b/client/client/src/credit-create/credit-create.js new file mode 100644 index 0000000000..2d0bccf56c --- /dev/null +++ b/client/client/src/credit-create/credit-create.js @@ -0,0 +1,8 @@ +import ngModule from '../module'; + +ngModule.component('vnClientCreditCreate', { + template: require('./credit-create.html'), + bindings: { + client: '<' + } +}); diff --git a/client/client/src/credit-create/locale/es.json b/client/client/src/credit-create/locale/es.json new file mode 100644 index 0000000000..7b0a22a1f3 --- /dev/null +++ b/client/client/src/credit-create/locale/es.json @@ -0,0 +1,3 @@ +{ + "Add credit": "Añadir crédito" +} \ No newline at end of file diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index ab255e86f9..6d9a3bb76a 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -9,8 +9,8 @@ - - + + diff --git a/client/client/src/credit-list/locale/es.json b/client/client/src/credit-list/locale/es.json new file mode 100644 index 0000000000..30f76c45fd --- /dev/null +++ b/client/client/src/credit-list/locale/es.json @@ -0,0 +1,3 @@ +{ + "Since" : "Desde" +} \ No newline at end of file From 9638f5b5292b5252ffa33890a0edfe8f488157d4 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 29 Nov 2017 07:36:02 +0100 Subject: [PATCH 050/287] ruta acceso greuge y objetos --- client/client/routes.json | 11 ++++++ client/client/src/client.js | 1 + .../client/src/credit-list/credit-list.html | 4 +-- client/client/src/credit-list/credit-list.js | 4 +-- client/client/src/greuge/greuge.html | 0 client/client/src/greuge/greuge.js | 8 +++++ .../client/common/models/greuge-type.json | 14 ++++++++ services/client/common/models/greuge.json | 35 +++++++++++++++++++ services/client/server/model-config.json | 6 ++++ 9 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 client/client/src/greuge/greuge.html create mode 100644 client/client/src/greuge/greuge.js create mode 100644 services/client/common/models/greuge-type.json create mode 100644 services/client/common/models/greuge.json diff --git a/client/client/routes.json b/client/client/routes.json index c5c930d225..b1901402ec 100644 --- a/client/client/routes.json +++ b/client/client/routes.json @@ -129,6 +129,17 @@ "params": { "client": "$ctrl.client" } + }, { + "url": "/greuge", + "state": "clientCard.greuge", + "component": "vn-client-greuge", + "params": { + "client": "$ctrl.client" + }, + "menu": { + "description": "Greuge", + "icon": "work" + } } ] } diff --git a/client/client/src/client.js b/client/client/src/client.js index a6128bc5f5..966ff40a8c 100644 --- a/client/client/src/client.js +++ b/client/client/src/client.js @@ -16,3 +16,4 @@ import './note-create/note-create'; import './web-access/web-access'; import './credit-list/credit-list'; import './credit-create/credit-create'; +import './greuge/greuge'; diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index 6d9a3bb76a..9ad0d11014 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -10,12 +10,12 @@ - + - {{::credit.amount | number:2}} + {{::credit.amount | number:2}} € {{::credit.created | date:'dd/MM/yyyy HH:mm' }} diff --git a/client/client/src/credit-list/credit-list.js b/client/client/src/credit-list/credit-list.js index a18de64aaf..4c802cc9ba 100644 --- a/client/client/src/credit-list/credit-list.js +++ b/client/client/src/credit-list/credit-list.js @@ -11,7 +11,7 @@ class ClientCreditList { this.filter(`${field} ${order}`); } filter(order) { - if (this.$.index) { + if (this.$.index && this.client && this.client.id) { this.waitingMgCrud = 0; this.$.index.filter = { page: 1, @@ -30,7 +30,7 @@ class ClientCreditList { this.waitingMgCrud++; this.$timeout(() => { this.filter(order); - }); + }, 250); } } diff --git a/client/client/src/greuge/greuge.html b/client/client/src/greuge/greuge.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/client/client/src/greuge/greuge.js b/client/client/src/greuge/greuge.js new file mode 100644 index 0000000000..1dca71ab88 --- /dev/null +++ b/client/client/src/greuge/greuge.js @@ -0,0 +1,8 @@ +import ngModule from '../module'; + +ngModule.component('vnClientGreuge', { + template: require('./greuge.html'), + bindings: { + client: '<' + } +}); diff --git a/services/client/common/models/greuge-type.json b/services/client/common/models/greuge-type.json new file mode 100644 index 0000000000..151aea5a6d --- /dev/null +++ b/services/client/common/models/greuge-type.json @@ -0,0 +1,14 @@ +{ + "name": "greugeType", + "base": "VnModel", + "properties": { + "id": { + "id": true, + "type": "Number", + "description": "Identifier" + }, + "name": { + "type": "String" + } + } + } \ No newline at end of file diff --git a/services/client/common/models/greuge.json b/services/client/common/models/greuge.json new file mode 100644 index 0000000000..2c00f9f738 --- /dev/null +++ b/services/client/common/models/greuge.json @@ -0,0 +1,35 @@ +{ + "name": "greuge", + "base": "VnModel", + "properties": { + "id": { + "id": true, + "type": "Number", + "description": "Identifier" + }, + "description": { + "type": "String" + }, + "amount": { + "type": "Number" + }, + "shipped": { + "type": "date" + }, + "created": { + "type": "date" + } + }, + "relations": { + "client": { + "type": "belongsTo", + "model": "Client", + "foreignKey": "clientFk" + }, + "greugeType": { + "type": "belongsTo", + "model": "greugeType", + "foreignKey": "greugeTypeFk" + } + } + } \ No newline at end of file diff --git a/services/client/server/model-config.json b/services/client/server/model-config.json index 710141a87c..c95fb15c76 100644 --- a/services/client/server/model-config.json +++ b/services/client/server/model-config.json @@ -59,5 +59,11 @@ }, "CreditClassification": { "dataSource": "salix" + }, + "greuge": { + "dataSource": "vn" + }, + "greugeType": { + "dataSource": "vn" } } From d816853b6c1903c145fec6d1524114742ed0549c Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 29 Nov 2017 09:37:08 +0100 Subject: [PATCH 051/287] column-header posibilidad de columna no ordenable --- .../core/src/column-header/column-header.html | 2 +- .../core/src/column-header/column-header.js | 22 ++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/client/core/src/column-header/column-header.html b/client/core/src/column-header/column-header.html index 435057a19b..d5747fcfe8 100644 --- a/client/core/src/column-header/column-header.html +++ b/client/core/src/column-header/column-header.html @@ -1,5 +1,5 @@
- + {{::$ctrl.text}} diff --git a/client/core/src/column-header/column-header.js b/client/core/src/column-header/column-header.js index 2f5f4d3c36..4c52e7e3d2 100644 --- a/client/core/src/column-header/column-header.js +++ b/client/core/src/column-header/column-header.js @@ -1,19 +1,25 @@ import {module} from '../module'; export default class ColumnHeader { - constructor() { + constructor($attrs) { this.order = undefined; this.mouseIsOver = false; + this.orderLocked = ($attrs.orderLocked !== undefined); } onClick() { - if (this.order === 'ASC') { - this.order = 'DESC'; - } else { - this.order = 'ASC'; + if (!this.orderLocked) { + if (this.order === 'ASC') { + this.order = 'DESC'; + } else { + this.order = 'ASC'; + } + this.gridHeader.selectColum(this); } - this.gridHeader.selectColum(this); } showArrow(type) { + if (this.orderLocked) + return false; + let showArrow = (this.gridHeader && this.gridHeader.currentColumn && this.gridHeader.currentColumn.field === this.field && this.order === type); let showOther = (this.gridHeader && this.gridHeader.currentColumn && this.gridHeader.currentColumn.field === this.field && this.order !== type); if (type === 'DESC' && this.mouseIsOver && !showOther) { @@ -22,13 +28,13 @@ export default class ColumnHeader { return showArrow; } $onInit() { - if (this.defaultOrder) { + if (this.defaultOrder && !this.orderLocked) { this.order = this.defaultOrder; this.onClick(); } } } -ColumnHeader.$inject = []; +ColumnHeader.$inject = ['$attrs']; module.component('vnColumnHeader', { template: require('./column-header.html'), From 261d9408eeb67acf42714449e074a0ea94d2b62e Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 29 Nov 2017 09:42:59 +0100 Subject: [PATCH 052/287] credit list terminado --- .../src/credit-create/credit-create.html | 2 +- .../client/src/credit-list/credit-list.html | 9 ++++---- client/client/src/credit-list/locale/es.json | 4 +++- client/core/src/grid-header/style.scss | 1 - .../client/common/models/client-credit.js | 23 ++++++++++++++++--- services/loopback/common/models/vn-model.js | 10 +++++--- 6 files changed, 35 insertions(+), 14 deletions(-) diff --git a/client/client/src/credit-create/credit-create.html b/client/client/src/credit-create/credit-create.html index 2df41cf613..c02ff71675 100644 --- a/client/client/src/credit-create/credit-create.html +++ b/client/client/src/credit-create/credit-create.html @@ -12,7 +12,7 @@ - + diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index 9ad0d11014..408c5ee33b 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -11,19 +11,18 @@ - + {{::credit.amount | number:2}} € {{::credit.created | date:'dd/MM/yyyy HH:mm' }} - + {{::credit.employee.name}} + No results - - - + diff --git a/client/client/src/credit-list/locale/es.json b/client/client/src/credit-list/locale/es.json index 30f76c45fd..2c99e8b737 100644 --- a/client/client/src/credit-list/locale/es.json +++ b/client/client/src/credit-list/locale/es.json @@ -1,3 +1,5 @@ { - "Since" : "Desde" + "Since" : "Desde", + "Employee" : "Empleado", + "No results": "Sin resultados" } \ No newline at end of file diff --git a/client/core/src/grid-header/style.scss b/client/core/src/grid-header/style.scss index cc983dcf1a..324e488d12 100644 --- a/client/core/src/grid-header/style.scss +++ b/client/core/src/grid-header/style.scss @@ -2,7 +2,6 @@ vn-grid-header { border-bottom: 3px solid #9D9D9D; font-weight: bold; .orderly{ - cursor: pointer; text-align: center; white-space: nowrap; justify-content: center; diff --git a/services/client/common/models/client-credit.js b/services/client/common/models/client-credit.js index 11a27e6afc..7205be03ee 100644 --- a/services/client/common/models/client-credit.js +++ b/services/client/common/models/client-credit.js @@ -1,14 +1,31 @@ module.exports = function(Self) { - Self.installMethod('filter', filterCredits); + Self.installMethod('filter', filterParams, filterResults); - function filterCredits(params) { + function filterParams(params) { return { where: { clientFk: params.clientFk }, skip: (params.page - 1) * params.size, limit: params.size, - order: params.order || 'created DESC' + order: params.order || 'created DESC', + include: { + relation: "employee", + scope: { + fields: ["id", "name", "surname"] + } + } }; } + + function filterResults(instances) { + let result = JSON.parse(JSON.stringify(instances)); + if (result && result.instances && result.instances.length) { + result.instances.forEach((element, i) => { + result.instances[i].employee.name = `${element.employee.name} ${element.employee.surname}`; + delete result.instances[i].employee.surname; + }); + } + return result; + } }; diff --git a/services/loopback/common/models/vn-model.js b/services/loopback/common/models/vn-model.js index 3305cb67de..30f3582043 100644 --- a/services/loopback/common/models/vn-model.js +++ b/services/loopback/common/models/vn-model.js @@ -130,7 +130,7 @@ module.exports = function(Self) { }; }; - Self.installMethod = function(methodName, filterCb) { + Self.installMethod = function(methodName, filterCb, filterResult) { this.remoteMethod(methodName, { description: 'List items using a filter', accessType: 'READ', @@ -161,8 +161,12 @@ module.exports = function(Self) { var response = {}; function returnValues() { - if (response.instances !== undefined && response.count !== undefined) - cb(null, response); + if (response.instances !== undefined && response.count !== undefined) { + if (filterResult) + cb(null, filterResult(response)); + else + cb(null, response); + } } function error() { From c217e5c27f976af26800b4e13d6f7f6f6e23ea1d Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 29 Nov 2017 11:12:28 +0100 Subject: [PATCH 053/287] =?UTF-8?q?corregida=20logica=20al=20a=C3=B1adir?= =?UTF-8?q?=20credito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/client/common/methods/client/before-save.js | 7 +------ services/client/common/validations/validateDni.js | 3 +++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/services/client/common/methods/client/before-save.js b/services/client/common/methods/client/before-save.js index 470b7ba3fa..b761a71f12 100644 --- a/services/client/common/methods/client/before-save.js +++ b/services/client/common/methods/client/before-save.js @@ -116,12 +116,7 @@ module.exports = function(Client) { } function maxCb(_, instances) { - if (!instances) { - done(generateErrorCredit()); - return; - } - - if (instances.length !== 1 || instances[0].employeeFk == userId || instances[0].amount > 0) { + if (!instances || instances.length !== 1 || instances[0].employeeFk == userId || instances[0].amount > 0) { done(); return; } diff --git a/services/client/common/validations/validateDni.js b/services/client/common/validations/validateDni.js index ab90086057..94b595f096 100644 --- a/services/client/common/validations/validateDni.js +++ b/services/client/common/validations/validateDni.js @@ -1,4 +1,7 @@ module.exports = fi => { + if (fi === undefined || fi === null) { + return true; + } let dni = fi; let getLetterDni = dni => { const regExpDni = 'TRWAGMYFPDXBNJZSQVHLCKE'; From 03d4e2f4700cf99e8ecc691a109d5cc56ab463f2 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 29 Nov 2017 11:41:14 +0100 Subject: [PATCH 054/287] correccion visual en lista de creditos --- client/client/src/credit-list/credit-list.html | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index 408c5ee33b..39af934507 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -14,10 +14,14 @@ - - {{::credit.amount | number:2}} € - {{::credit.created | date:'dd/MM/yyyy HH:mm' }} - {{::credit.employee.name}} + + {{::credit.amount | number:2}} € + {{::credit.created | date:'dd/MM/yyyy HH:mm' }} + {{::credit.employee.name}} No results From d5550c34021c681ad0c106cc358f3f187c68e522 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Wed, 29 Nov 2017 14:14:08 +0100 Subject: [PATCH 055/287] greuge list 100% and create 90% --- client/client/routes.json | 14 ++++- client/client/src/client.js | 3 +- .../client/src/credit-list/credit-list.html | 56 +++++++++---------- client/client/src/credit-list/credit-list.js | 6 -- .../src/greuge-create/greuge-create.html | 17 ++++++ .../client/src/greuge-create/greuge-create.js | 8 +++ .../client/src/greuge-list/greuge-list.html | 38 +++++++++++++ client/client/src/greuge-list/greuge-list.js | 45 +++++++++++++++ client/client/src/greuge-list/locale/es.json | 7 +++ client/client/src/greuge/greuge.html | 0 client/client/src/greuge/greuge.js | 8 --- .../client/common/methods/greuge/filter.js | 20 +++++++ .../common/methods/greuge/totalGreuge.js | 34 +++++++++++ services/client/common/models/greuge.js | 4 ++ 14 files changed, 213 insertions(+), 47 deletions(-) create mode 100644 client/client/src/greuge-create/greuge-create.html create mode 100644 client/client/src/greuge-create/greuge-create.js create mode 100644 client/client/src/greuge-list/greuge-list.html create mode 100644 client/client/src/greuge-list/greuge-list.js create mode 100644 client/client/src/greuge-list/locale/es.json delete mode 100644 client/client/src/greuge/greuge.html delete mode 100644 client/client/src/greuge/greuge.js create mode 100644 services/client/common/methods/greuge/filter.js create mode 100644 services/client/common/methods/greuge/totalGreuge.js create mode 100644 services/client/common/models/greuge.js diff --git a/client/client/routes.json b/client/client/routes.json index b1901402ec..99c083ff3d 100644 --- a/client/client/routes.json +++ b/client/client/routes.json @@ -131,8 +131,13 @@ } }, { "url": "/greuge", + "abstract": true, "state": "clientCard.greuge", - "component": "vn-client-greuge", + "component": "ui-view" + }, { + "url": "/list", + "state": "clientCard.greuge.list", + "component": "vn-client-greuge-list", "params": { "client": "$ctrl.client" }, @@ -140,6 +145,13 @@ "description": "Greuge", "icon": "work" } + }, { + "url": "/create", + "state": "clientCard.greuge.create", + "component": "vn-client-greuge-create", + "params": { + "client": "$ctrl.client" + } } ] } diff --git a/client/client/src/client.js b/client/client/src/client.js index 966ff40a8c..15bd2d8ec8 100644 --- a/client/client/src/client.js +++ b/client/client/src/client.js @@ -16,4 +16,5 @@ import './note-create/note-create'; import './web-access/web-access'; import './credit-list/credit-list'; import './credit-create/credit-create'; -import './greuge/greuge'; +import './greuge-list/greuge-list'; +import './greuge-create/greuge-create'; diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index 39af934507..d6523fe1dc 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -1,35 +1,29 @@ - - - - - - Credit - + + + + Credit - - - - - - - - {{::credit.amount | number:2}} € - {{::credit.created | date:'dd/MM/yyyy HH:mm' }} - {{::credit.employee.name}} - - - No results - - - - - + + + + + + + + {{::credit.amount | number:2}} € + {{::credit.created | date:'dd/MM/yyyy HH:mm' }} + {{::credit.employee.name}} + + + No results + + + + \ No newline at end of file diff --git a/client/client/src/credit-list/credit-list.js b/client/client/src/credit-list/credit-list.js index 4c802cc9ba..8cf7a449fc 100644 --- a/client/client/src/credit-list/credit-list.js +++ b/client/client/src/credit-list/credit-list.js @@ -33,12 +33,6 @@ class ClientCreditList { }, 250); } } - - $onChanges() { - if (this.client && this.client.id) { - this.filter(); - } - } } ClientCreditList.$inject = ['$scope', '$timeout']; diff --git a/client/client/src/greuge-create/greuge-create.html b/client/client/src/greuge-create/greuge-create.html new file mode 100644 index 0000000000..65e71cad3b --- /dev/null +++ b/client/client/src/greuge-create/greuge-create.html @@ -0,0 +1,17 @@ + + + Add Greuge + + + + + + + + + + + diff --git a/client/client/src/greuge-create/greuge-create.js b/client/client/src/greuge-create/greuge-create.js new file mode 100644 index 0000000000..8036b687b5 --- /dev/null +++ b/client/client/src/greuge-create/greuge-create.js @@ -0,0 +1,8 @@ +import ngModule from '../module'; + +ngModule.component('vnClientGreugeCreate', { + template: require('./greuge-create.html'), + bindings: { + client: '<' + } +}); diff --git a/client/client/src/greuge-list/greuge-list.html b/client/client/src/greuge-list/greuge-list.html new file mode 100644 index 0000000000..2a0a3b9bde --- /dev/null +++ b/client/client/src/greuge-list/greuge-list.html @@ -0,0 +1,38 @@ + + + + + Greuge + + + + + + + + + + {{::greuge.shipped | date:'dd/MM/yyyy HH:mm' }} + {{::greuge.description}} + {{::greuge.amount | number:2}} € + {{::greuge.greugeType.name}} + + + + No results + + + + {{edit.model.sumAmount | number:2}} € + + + + + + + + \ No newline at end of file diff --git a/client/client/src/greuge-list/greuge-list.js b/client/client/src/greuge-list/greuge-list.js new file mode 100644 index 0000000000..0574a321c9 --- /dev/null +++ b/client/client/src/greuge-list/greuge-list.js @@ -0,0 +1,45 @@ +import ngModule from '../module'; + +class ClientGreugeList { + constructor($scope, $timeout) { + this.$ = $scope; + this.$timeout = $timeout; + + this.waitingMgCrud = 0; + } + onOrder(field, order) { + this.filter(`${field} ${order}`); + } + filter(order) { + if (this.$.index && this.client && this.client.id) { + this.waitingMgCrud = 0; + this.$.index.filter = { + page: 1, + size: 10, + clientFk: this.client.id + }; + + if (order) { + this.$.index.filter.order = order; + } + + this.$.index.accept(); + } else if (this.waitingMgCrud > 3) { + throw new Error('Magic Crud is not loaded'); + } else { + this.waitingMgCrud++; + this.$timeout(() => { + this.filter(order); + }, 250); + } + } +} +ClientGreugeList.$inject = ['$scope', '$timeout']; + +ngModule.component('vnClientGreugeList', { + template: require('./greuge-list.html'), + controller: ClientGreugeList, + bindings: { + client: '<' + } +}); diff --git a/client/client/src/greuge-list/locale/es.json b/client/client/src/greuge-list/locale/es.json new file mode 100644 index 0000000000..7aa276bd03 --- /dev/null +++ b/client/client/src/greuge-list/locale/es.json @@ -0,0 +1,7 @@ +{ + "Date" : "Fecha", + "Comment" : "Comentario", + "Amount" : "Importe", + "Type": "Tipo", + "Add Greuge": "Añadir Greuge" +} \ No newline at end of file diff --git a/client/client/src/greuge/greuge.html b/client/client/src/greuge/greuge.html deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/client/client/src/greuge/greuge.js b/client/client/src/greuge/greuge.js deleted file mode 100644 index 1dca71ab88..0000000000 --- a/client/client/src/greuge/greuge.js +++ /dev/null @@ -1,8 +0,0 @@ -import ngModule from '../module'; - -ngModule.component('vnClientGreuge', { - template: require('./greuge.html'), - bindings: { - client: '<' - } -}); diff --git a/services/client/common/methods/greuge/filter.js b/services/client/common/methods/greuge/filter.js new file mode 100644 index 0000000000..dba4e8ef68 --- /dev/null +++ b/services/client/common/methods/greuge/filter.js @@ -0,0 +1,20 @@ +module.exports = Self => { + Self.installMethod('filter', filterParams); + + function filterParams(params) { + return { + where: { + clientFk: params.clientFk + }, + skip: (params.page - 1) * params.size, + limit: params.size, + order: params.order || 'shipped DESC', + include: { + relation: "greugeType", + scope: { + fields: ["id", "name"] + } + } + }; + } +}; diff --git a/services/client/common/methods/greuge/totalGreuge.js b/services/client/common/methods/greuge/totalGreuge.js new file mode 100644 index 0000000000..8497464937 --- /dev/null +++ b/services/client/common/methods/greuge/totalGreuge.js @@ -0,0 +1,34 @@ +module.exports = Self => { + Self.remoteMethod('sumAmount', { + description: 'returns sum greuge.ammount from client', + accessType: 'READ', + accepts: [{ + arg: 'id', + type: 'number', + required: true, + description: 'clientFk', + http: {source: 'path'} + }], + returns: { + arg: 'sumAmount' + }, + http: { + path: `/:id/sumAmount`, + verb: 'get' + } + }); + + Self.sumAmount = (clientFk, callback) => { + let query = `SELECT sum(amount) as sumAmount FROM vn.greuge WHERE clientFk = ?`; + Self.rawSql(query, [clientFk], callback).then(response => { + if (response.length) { + callback(null, response[0].sumAmount); + } else { + callback(null, 0); + } + }) + .catch(reject => { + callback(reject, null); + }); + }; +}; diff --git a/services/client/common/models/greuge.js b/services/client/common/models/greuge.js new file mode 100644 index 0000000000..7bacecc4e2 --- /dev/null +++ b/services/client/common/models/greuge.js @@ -0,0 +1,4 @@ +module.exports = function(Self) { + require('../methods/greuge/filter.js')(Self); + require('../methods/greuge/totalGreuge.js')(Self); +}; From c1045ef8d4e5a86b063cc27f4e2a519396946f05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Wed, 29 Nov 2017 21:01:49 +0100 Subject: [PATCH 056/287] Ajustes plantilla sepa-core --- .../print/application/config/datasources.json | 6 +- .../print/application/route/manuscript.js | 9 ++ .../template/header/static/css/style.css | 2 +- .../application/template/sepa-core/index.html | 38 ++++-- .../template/sepa-core/locale/es.json | 9 +- .../template/sepa-core/static/css/style.css | 2 +- services/print/static/css/component.css | 111 ++++++++++++++++-- 7 files changed, 153 insertions(+), 24 deletions(-) diff --git a/services/print/application/config/datasources.json b/services/print/application/config/datasources.json index 92965aa5af..93a49479ad 100644 --- a/services/print/application/config/datasources.json +++ b/services/print/application/config/datasources.json @@ -12,8 +12,12 @@ "database": "" }, "pdf": { + "format": "A4", + "header": { + "height": "120px" + }, "footer": { - "height": "100px" + "height": "130px" } } } \ No newline at end of file diff --git a/services/print/application/route/manuscript.js b/services/print/application/route/manuscript.js index 932d96c333..90662b6463 100644 --- a/services/print/application/route/manuscript.js +++ b/services/print/application/route/manuscript.js @@ -54,4 +54,13 @@ router.get('/sepa-core/:clientId', function(request, response, next) { }); }); +router.get('/sepa-core-view/:clientId', function(request, response, next) { + template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + module.exports = router; diff --git a/services/print/application/template/header/static/css/style.css b/services/print/application/template/header/static/css/style.css index d06163ee69..186ede66bb 100644 --- a/services/print/application/template/header/static/css/style.css +++ b/services/print/application/template/header/static/css/style.css @@ -5,8 +5,8 @@ img { #pageHeader-first { border-bottom: 1px solid #DDD; font-family: arial, sans-serif; + padding-bottom: 10px; text-align: center; - padding: 10px 20px; font-size: 10px; color: #555 } diff --git a/services/print/application/template/sepa-core/index.html b/services/print/application/template/sepa-core/index.html index be79db11d5..867da43d95 100644 --- a/services/print/application/template/sepa-core/index.html +++ b/services/print/application/template/sepa-core/index.html @@ -17,12 +17,11 @@

{{_.title}}

-
+
{{_.toCompleteBySupplier}}
{{_.orderReference}}
{{mandateCode}}
-
test descripcion
{{_.supplierIdentifier}}
@@ -46,10 +45,11 @@
-

{{_.bodyDescription}}

+

{{_.bodyDescription}}

+

{{_.clientAdvice}}

-

{{_.clientAdvice}}

+
{{_.toCompleteByClient}}
{{_.clientName}}
{{clientName}}
@@ -68,7 +68,7 @@
{{clientCountry}}
-
{{_.swift}}
+
{{_.swift}}
{{#swiftFields}}
@@ -83,12 +83,28 @@
{{/accountNumberFields}}
+
+
{{_.accountNumberFormat}}
+
-
{{_.paymentType}}
+
{{_.paymentType}}
-
X
- Recurrente +
+
+
+
X
+
+
{{_.recurrent}}
+
+
O
+
+
+
+
+
{{_.unique}}
+
+
@@ -100,10 +116,8 @@
- -
A cumplimentar por el deudor
-

TODOS LOS CAMPOS HAN DE SER CUMPLIMENTADOS OBLIGATORIAMENTE.

-

UNA VEZ FIRMADA ESTA ORDEN DE DOMICILIACIÓN DEBE SER ENVIADA AL ACREEDOR PARA SU CUSTODIA Y ES RECOMENDABLE FACILITAR UNA COPIA A SU ENTIDAD BANCARIA.

+

{{_.mandatoryFields}}

+

{{_.sendOrder}}

diff --git a/services/print/application/template/sepa-core/locale/es.json b/services/print/application/template/sepa-core/locale/es.json index ed126e57d9..e5453e8589 100644 --- a/services/print/application/template/sepa-core/locale/es.json +++ b/services/print/application/template/sepa-core/locale/es.json @@ -1,5 +1,7 @@ { "title": "Orden de domiciliación de adeudo directo SEPA CORE", + "toCompleteBySupplier": "A cumplimentar por el acreedor", + "toCompleteByClient": "A cumplimentar por el deudor", "bodyDescription": "Mediante la firma de esta orden de domiciliación, el deudor autoriza (A) al acreedor a enviar instrucciones a la entidad del deudor para adeudar su cuenta y (B) a la entidad para efectuar los adeudos en su cuenta siguiendo las instrucciones del acreedor.Como parte de sus derechos, el deudor está legitimado al reembolso por su entidad en los términos y condiciones del contrato suscrito con la misma. La solicitud de reembolso deberá efectuarse dentro de las ocho semanas que adeudo en cuenta. Puede obtener información adicional sobre sus derechos en su entidad financiera.", "orderReference": "Referencia de la orden de domiciliación", "supplierIdentifier": "Identificador del acreedor", @@ -15,10 +17,15 @@ "swift": "Swift BIC", "accountNumber": "Número de cuenta - IBAN", "accountHolder": "(Titular/es de la cuenta de cargo)", + "accountNumberFormat": "En España el IBAN consta de 24 posiciones comenzando siempre por ES", "paymentType": "Tipo de pago", + "recurrent": "Recurrente", + "unique": "Único", "signLocation": "Fecha - Localidad", "sign": "Firma del deudor y sello", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", + "mandatoryFields": "TODOS LOS CAMPOS HAN DE SER CUMPLIMENTADOS OBLIGATORIAMENTE.", + "sendOrder": "UNA VEZ FIRMADA ESTA ORDEN DE DOMICILIACIÓN DEBE SER ENVIADA AL ACREEDOR PARA SU CUSTODIA Y ES RECOMENDABLE FACILITAR UNA COPIA A SU ENTIDAD BANCARIA.", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es", "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." } \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/css/style.css b/services/print/application/template/sepa-core/static/css/style.css index 3ea38e1893..5b1e628d67 100644 --- a/services/print/application/template/sepa-core/static/css/style.css +++ b/services/print/application/template/sepa-core/static/css/style.css @@ -7,7 +7,7 @@ img { max-width: 90%; margin: 0 auto; font-size: 14px; - color: #555 + color: #000 } body .title { diff --git a/services/print/static/css/component.css b/services/print/static/css/component.css index 6da33bee3f..e7fc24b0a8 100644 --- a/services/print/static/css/component.css +++ b/services/print/static/css/component.css @@ -1,14 +1,18 @@ +body { + margin: 0 auto; + width: 210mm +} + .panel { border: 1px solid #DDD; margin-bottom: 10px; + position: relative; padding:10px } .row { margin-bottom: 15px; - overflow: hidden; - content: ''; - clear: both + overflow: hidden } .row .text { @@ -21,14 +25,34 @@ box-sizing: border-box } +.row .text, .row .control { + overflow: hidden +} + .row .description { + position: relative; + padding-top: 2px; + overflow: hidden; font-size: 8px; + display: block; color: #999 } -.row .v-align { - padding-top: 5px; - line-height: 21px +.row .line { + border-bottom: 1px solid #DDD; + border-right: 1px solid #DDD; + border-left: 1px solid #DDD; + margin-top: 10px; + color: #999; + padding: 5px +} + +.row .description span { + background-color: #FFF; + margin: -5px 0 0 50px; + display: block; + padding: 5px; + float: left } .row:last-child { @@ -49,6 +73,11 @@ float: left } +.row.inline .description { + position: static; + overflow: visible +} + .box { border-top: 1px solid #CCC; border-right: 1px solid #CCC; @@ -62,6 +91,11 @@ float: left } +.box.crossed { + font-weight: 100; + font-size: 16px +} + .row .control .box:first-child { border-left: 1px solid #CCC; } @@ -70,6 +104,67 @@ p { text-align: justify } -p.small { +.font.small { font-size: 10px -} \ No newline at end of file +} + +.font.verticalAlign { + height: 27px; + line-height: 27px +} + +.font.centered { + height: 27px; + line-height: 27px; + text-align: center +} + +.verticalText { + -moz-transform: rotate(90deg); + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + position: absolute; + text-align: center; + font-size: .65em; + width: 200px; + right: -115px; + top: 50% +} + +.columns:after { + display: block; + content: ' '; + clear: both +} + +.columns .size100 { + width: 100%; + float: left +} + +.columns .size75 { + width: 75%; + float: left +} + +.columns .size50 { + width: 50%; + float: left +} + +.columns .size33 { + width: 33.33%; + float: left +} + +.columns .size25 { + width: 25%; + float: left +} + + + + + + + From 78f4685001f45b2de8fa57b3449c168b5eaacf3b Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 07:41:14 +0100 Subject: [PATCH 057/287] mejora visual en las listas de credito y greuge --- client/client/src/credit-list/credit-list.html | 2 +- client/client/src/greuge-list/greuge-list.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html index d6523fe1dc..30a477cef8 100644 --- a/client/client/src/credit-list/credit-list.html +++ b/client/client/src/credit-list/credit-list.html @@ -19,7 +19,7 @@ {{::credit.employee.name}} - No results + No results diff --git a/client/client/src/greuge-list/greuge-list.html b/client/client/src/greuge-list/greuge-list.html index 2a0a3b9bde..08c7748905 100644 --- a/client/client/src/greuge-list/greuge-list.html +++ b/client/client/src/greuge-list/greuge-list.html @@ -23,7 +23,7 @@ - No results + No results From 4667b39b1ae026132608e561085cbd99b74541b6 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 08:10:44 +0100 Subject: [PATCH 058/287] bug fixed in datePicker, onclick action added --- client/core/src/datePicker/datePicker.html | 3 ++- client/core/src/datePicker/datePicker.js | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/client/core/src/datePicker/datePicker.html b/client/core/src/datePicker/datePicker.html index d91f0a53f8..21839aa165 100644 --- a/client/core/src/datePicker/datePicker.html +++ b/client/core/src/datePicker/datePicker.html @@ -4,7 +4,8 @@ ng-focus="$ctrl.hasFocus = true" ng-blur="$ctrl.hasFocus = false" ng-mouseenter="$ctrl.hasMouseIn = true" - ng-mouseleave="$ctrl.hasMouseIn = false" + ng-mouseleave="$ctrl.hasMouseIn = false" + ng-click="$ctrl.onClick()" > Date: Thu, 30 Nov 2017 09:33:32 +0100 Subject: [PATCH 059/287] greuge ya crea --- .../src/greuge-create/greuge-create.html | 45 ++++++++++++------- .../client/src/greuge-create/greuge-create.js | 23 ++++++++-- 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/client/client/src/greuge-create/greuge-create.html b/client/client/src/greuge-create/greuge-create.html index 65e71cad3b..9bc8830ddb 100644 --- a/client/client/src/greuge-create/greuge-create.html +++ b/client/client/src/greuge-create/greuge-create.html @@ -1,17 +1,30 @@ - - - Add Greuge - - - - - - + + + +
+ + + Add Greuge + + + + + + - - - - + field="$ctrl.greuge.greugeTypeFk" + url="/client/api/greugeTypes" + label="Type" + > + + + + + + + +
\ No newline at end of file diff --git a/client/client/src/greuge-create/greuge-create.js b/client/client/src/greuge-create/greuge-create.js index 8036b687b5..feec8d3f0e 100644 --- a/client/client/src/greuge-create/greuge-create.js +++ b/client/client/src/greuge-create/greuge-create.js @@ -1,8 +1,25 @@ import ngModule from '../module'; +class ClientGreugeCreate { + constructor($scope, $state) { + this.$ = $scope; + this.$state = $state; + this.greuge = {}; + } + onSubmit() { + let created = new Date(); + this.greuge.created = created.toISOString(); + this.greuge.clientFk = this.$state.params.id; + this.$.watcher.submit().then( + () => { + this.$state.go('clientCard.greuge.list'); + } + ); + } +} +ClientGreugeCreate.$inject = ['$scope', '$state']; + ngModule.component('vnClientGreugeCreate', { template: require('./greuge-create.html'), - bindings: { - client: '<' - } + controller: ClientGreugeCreate }); From 83301070e766f90b43ba3e1465f9229d33743fce Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 09:37:13 +0100 Subject: [PATCH 060/287] created quitado desde lado cliente --- client/client/src/greuge-create/greuge-create.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/client/client/src/greuge-create/greuge-create.js b/client/client/src/greuge-create/greuge-create.js index feec8d3f0e..f48c3e61b0 100644 --- a/client/client/src/greuge-create/greuge-create.js +++ b/client/client/src/greuge-create/greuge-create.js @@ -7,8 +7,6 @@ class ClientGreugeCreate { this.greuge = {}; } onSubmit() { - let created = new Date(); - this.greuge.created = created.toISOString(); this.greuge.clientFk = this.$state.params.id; this.$.watcher.submit().then( () => { From ea9c5f34574c7130a1c4fcb9dc6d62916063a7ad Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 10:13:34 +0100 Subject: [PATCH 061/287] tests arreglados --- .../src/billing-data/billing-data.spec.js | 4 ++-- .../src/column-header/column-header.spec.js | 4 +++- client/core/src/drop-down/drop-down.spec.js | 17 ++++++----------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/client/client/src/billing-data/billing-data.spec.js b/client/client/src/billing-data/billing-data.spec.js index df169b18c5..c2208f8b2e 100644 --- a/client/client/src/billing-data/billing-data.spec.js +++ b/client/client/src/billing-data/billing-data.spec.js @@ -72,8 +72,8 @@ describe('Client', () => { describe('returnDialog()', () => { it('should request to send notification email', () => { controller.client = {id: '123'}; - $httpBackend.when('POST', `/mailer/manuscript/payment-update/${controller.client.id}`).respond('done'); - $httpBackend.expectPOST(`/mailer/manuscript/payment-update/${controller.client.id}`); + $httpBackend.when('POST', `/mailer/notification/payment-update/${controller.client.id}`).respond('done'); + $httpBackend.expectPOST(`/mailer/notification/payment-update/${controller.client.id}`); controller.returnDialog('ACCEPT'); $httpBackend.flush(); }); diff --git a/client/core/src/column-header/column-header.spec.js b/client/core/src/column-header/column-header.spec.js index 5c6d29d732..48954826e2 100644 --- a/client/core/src/column-header/column-header.spec.js +++ b/client/core/src/column-header/column-header.spec.js @@ -3,6 +3,7 @@ import './column-header.js'; describe('Component vnColumnHeader', () => { let $componentController; let controller; + let $attrs; beforeEach(() => { angular.mock.module('client'); @@ -10,7 +11,8 @@ describe('Component vnColumnHeader', () => { beforeEach(angular.mock.inject(_$componentController_ => { $componentController = _$componentController_; - controller = $componentController('vnColumnHeader', {}); + $attrs = {}; + controller = $componentController('vnColumnHeader', {$attrs}); })); describe('onClick()', () => { diff --git a/client/core/src/drop-down/drop-down.spec.js b/client/core/src/drop-down/drop-down.spec.js index b93de0d5f5..c85bfb6b0a 100644 --- a/client/core/src/drop-down/drop-down.spec.js +++ b/client/core/src/drop-down/drop-down.spec.js @@ -140,14 +140,6 @@ describe('Component vnDropDown', () => { }); describe('$onChanges()', () => { - it(`should set the top css of the $element`, () => { - let argumentObject = {show: true, top: {currentValue: 100}}; - spyOn(controller.$element, 'css'); - controller.$onChanges(argumentObject); - - expect(controller.$element.css).toHaveBeenCalledWith('top', '100px'); - }); - it(`should set the width css of the $element`, () => { let argumentObject = {show: true, itemWidth: {currentValue: 100}}; spyOn(controller.$element, 'css'); @@ -295,21 +287,24 @@ describe('Component vnDropDown', () => { controller.selectItem(item); expect(controller.selected).toEqual(item); - expect(controller._show).toEqual(true); + expect(controller._show).not.toBeDefined(); }); }); describe('loadItems()', () => { - it(`should set controller._show to true`, () => { + it(`should set controller.show to true`, () => { + controller.show = false; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.loadItems(); - expect(controller._show).toEqual(true); + expect(controller.show).toEqual(true); }); it(`should call loadMore() and then set controller._show to true`, () => { controller.showLoadMore = () => {}; controller.loadMore = () => {}; spyOn(controller, 'loadMore'); + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.loadItems(); expect(controller._show).toEqual(true); From 7d8c28f9d30bc47a7034a00cdae66dcaa6f2f378 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 10:16:33 +0100 Subject: [PATCH 062/287] added test to dropDown --- client/core/src/drop-down/drop-down.spec.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/client/core/src/drop-down/drop-down.spec.js b/client/core/src/drop-down/drop-down.spec.js index c85bfb6b0a..0927fcbd75 100644 --- a/client/core/src/drop-down/drop-down.spec.js +++ b/client/core/src/drop-down/drop-down.spec.js @@ -300,7 +300,7 @@ describe('Component vnDropDown', () => { expect(controller.show).toEqual(true); }); - it(`should call loadMore() and then set controller._show to true`, () => { + it(`should call loadMore() and then set controller._show to true if there are items`, () => { controller.showLoadMore = () => {}; controller.loadMore = () => {}; spyOn(controller, 'loadMore'); @@ -310,6 +310,17 @@ describe('Component vnDropDown', () => { expect(controller._show).toEqual(true); expect(controller.loadMore).toHaveBeenCalledWith(); }); + + it(`should call loadMore() and then set controller._show to undefined if there are not items`, () => { + controller.showLoadMore = () => {}; + controller.loadMore = () => {}; + spyOn(controller, 'loadMore'); + controller.itemsFiltered = []; + controller.loadItems(); + + expect(controller._show).not.toBeDefined(); + expect(controller.loadMore).toHaveBeenCalledWith(); + }); }); describe('$onInit()', () => { From c8b510f09f98f01d3e2f8e3c451870b66bba7cb6 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 13:01:11 +0100 Subject: [PATCH 063/287] quitado el credito de la vista forma de pago --- client/client/src/billing-data/billing-data.html | 4 ++-- client/client/src/billing-data/billing-data.js | 6 +++--- client/client/src/descriptor/descriptor.html | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/client/client/src/billing-data/billing-data.html b/client/client/src/billing-data/billing-data.html index 19b9615581..0f2a3c1e86 100644 --- a/client/client/src/billing-data/billing-data.html +++ b/client/client/src/billing-data/billing-data.html @@ -21,10 +21,10 @@
- + diff --git a/client/client/src/billing-data/billing-data.js b/client/client/src/billing-data/billing-data.js index 51a411013e..0081113e6c 100644 --- a/client/client/src/billing-data/billing-data.js +++ b/client/client/src/billing-data/billing-data.js @@ -17,9 +17,9 @@ export default class Controller { this.billData.payMethodFk = this.client.payMethodFk; this.billData.iban = this.client.iban; this.billData.dueDay = this.client.dueDay; - this.billData.discount = this.client.discount; - this.billData.credit = this.client.credit; - this.billData.creditInsurance = this.client.creditInsurance; + /* this.billData.discount = this.client.discount; + this.billData.credit = this.client.credit; + this.billData.creditInsurance = this.client.creditInsurance; */ } } submit() { diff --git a/client/client/src/descriptor/descriptor.html b/client/client/src/descriptor/descriptor.html index 3157cf570a..4eaa3029fc 100644 --- a/client/client/src/descriptor/descriptor.html +++ b/client/client/src/descriptor/descriptor.html @@ -8,6 +8,7 @@
{{::$ctrl.client.id}}
{{$ctrl.client.name}}
{{$ctrl.client.phone}}
+
Credit: {{$ctrl.client.credit}} €
From 7d32f95c2379cb9400e451f3254d40a95a7a6226 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 13:37:21 +0100 Subject: [PATCH 064/287] creada clase para listar modelos relacionados con el modelo cliente --- .../client/src/billing-data/billing-data.html | 4 -- .../client/src/billing-data/billing-data.js | 3 -- client/client/src/credit-list/credit-list.js | 42 ++----------------- client/client/src/filterClientList.js | 36 ++++++++++++++++ client/client/src/greuge-list/greuge-list.js | 42 ++----------------- 5 files changed, 42 insertions(+), 85 deletions(-) create mode 100644 client/client/src/filterClientList.js diff --git a/client/client/src/billing-data/billing-data.html b/client/client/src/billing-data/billing-data.html index 0f2a3c1e86..c46c00e98f 100644 --- a/client/client/src/billing-data/billing-data.html +++ b/client/client/src/billing-data/billing-data.html @@ -21,10 +21,6 @@ - diff --git a/client/client/src/billing-data/billing-data.js b/client/client/src/billing-data/billing-data.js index 0081113e6c..6bbb3705c2 100644 --- a/client/client/src/billing-data/billing-data.js +++ b/client/client/src/billing-data/billing-data.js @@ -17,9 +17,6 @@ export default class Controller { this.billData.payMethodFk = this.client.payMethodFk; this.billData.iban = this.client.iban; this.billData.dueDay = this.client.dueDay; - /* this.billData.discount = this.client.discount; - this.billData.credit = this.client.credit; - this.billData.creditInsurance = this.client.creditInsurance; */ } } submit() { diff --git a/client/client/src/credit-list/credit-list.js b/client/client/src/credit-list/credit-list.js index 8cf7a449fc..c1d283e336 100644 --- a/client/client/src/credit-list/credit-list.js +++ b/client/client/src/credit-list/credit-list.js @@ -1,45 +1,9 @@ import ngModule from '../module'; +import FilterClientList from '../filterClientList'; -class ClientCreditList { - constructor($scope, $timeout) { - this.$ = $scope; - this.$timeout = $timeout; - - this.waitingMgCrud = 0; - } - onOrder(field, order) { - this.filter(`${field} ${order}`); - } - filter(order) { - if (this.$.index && this.client && this.client.id) { - this.waitingMgCrud = 0; - this.$.index.filter = { - page: 1, - size: 10, - clientFk: this.client.id - }; - - if (order) { - this.$.index.filter.order = order; - } - - this.$.index.accept(); - } else if (this.waitingMgCrud > 0) { - throw new Error('Magic Crud is not loaded'); - } else { - this.waitingMgCrud++; - this.$timeout(() => { - this.filter(order); - }, 250); - } - } -} -ClientCreditList.$inject = ['$scope', '$timeout']; +class ClientCreditList extends FilterClientList {} ngModule.component('vnClientCreditList', { template: require('./credit-list.html'), - controller: ClientCreditList, - bindings: { - client: '<' - } + controller: ClientCreditList }); diff --git a/client/client/src/filterClientList.js b/client/client/src/filterClientList.js new file mode 100644 index 0000000000..908754b0fd --- /dev/null +++ b/client/client/src/filterClientList.js @@ -0,0 +1,36 @@ +export default class FilterClientList { + constructor($scope, $timeout, $state) { + this.$ = $scope; + this.$timeout = $timeout; + + this.waitingMgCrud = 0; + this.clientFk = $state.params.id; + } + onOrder(field, order) { + this.filter(`${field} ${order}`); + } + filter(order) { + if (this.$.index && this.clientFk) { + this.waitingMgCrud = 0; + this.$.index.filter = { + page: 1, + size: 10, + clientFk: this.clientFk + }; + + if (order) { + this.$.index.filter.order = order; + } + + this.$.index.accept(); + } else if (this.waitingMgCrud > 3) { + throw new Error('Magic Crud is not loaded'); + } else { + this.waitingMgCrud++; + this.$timeout(() => { + this.filter(order); + }, 250); + } + } +} +FilterClientList.$inject = ['$scope', '$timeout', '$state']; diff --git a/client/client/src/greuge-list/greuge-list.js b/client/client/src/greuge-list/greuge-list.js index 0574a321c9..a2e5bd33af 100644 --- a/client/client/src/greuge-list/greuge-list.js +++ b/client/client/src/greuge-list/greuge-list.js @@ -1,45 +1,9 @@ import ngModule from '../module'; +import FilterClientList from '../filterClientList'; -class ClientGreugeList { - constructor($scope, $timeout) { - this.$ = $scope; - this.$timeout = $timeout; - - this.waitingMgCrud = 0; - } - onOrder(field, order) { - this.filter(`${field} ${order}`); - } - filter(order) { - if (this.$.index && this.client && this.client.id) { - this.waitingMgCrud = 0; - this.$.index.filter = { - page: 1, - size: 10, - clientFk: this.client.id - }; - - if (order) { - this.$.index.filter.order = order; - } - - this.$.index.accept(); - } else if (this.waitingMgCrud > 3) { - throw new Error('Magic Crud is not loaded'); - } else { - this.waitingMgCrud++; - this.$timeout(() => { - this.filter(order); - }, 250); - } - } -} -ClientGreugeList.$inject = ['$scope', '$timeout']; +class ClientGreugeList extends FilterClientList {} ngModule.component('vnClientGreugeList', { template: require('./greuge-list.html'), - controller: ClientGreugeList, - bindings: { - client: '<' - } + controller: ClientGreugeList }); From c8dcf2b9712d44646328b8a2c51cf3c7aa79d22c Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 14:00:07 +0100 Subject: [PATCH 065/287] =?UTF-8?q?posibilidad=20de=20a=C3=B1adir=20parama?= =?UTF-8?q?teros=20a=20las=20rutas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/client/src/filterClientList.js | 1 + client/core/src/watcher/watcher.js | 4 ++-- client/salix/src/configroutes.js | 11 ++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/client/client/src/filterClientList.js b/client/client/src/filterClientList.js index 908754b0fd..3ad70cfc5c 100644 --- a/client/client/src/filterClientList.js +++ b/client/client/src/filterClientList.js @@ -2,6 +2,7 @@ export default class FilterClientList { constructor($scope, $timeout, $state) { this.$ = $scope; this.$timeout = $timeout; + this.$state = $state; this.waitingMgCrud = 0; this.clientFk = $state.params.id; diff --git a/client/core/src/watcher/watcher.js b/client/core/src/watcher/watcher.js index 2dbc5a2bc7..d259f6f39c 100644 --- a/client/core/src/watcher/watcher.js +++ b/client/core/src/watcher/watcher.js @@ -68,9 +68,9 @@ export default class Watcher extends Component { * * @param {String} state The state name */ - submitGo(state) { + submitGo(state, params) { return this.submit().then( - () => this.$state.go(state) + () => this.$state.go(state, params || {}) ); } /** diff --git a/client/salix/src/configroutes.js b/client/salix/src/configroutes.js index 1d79c5bc24..e5ab72fb88 100644 --- a/client/salix/src/configroutes.js +++ b/client/salix/src/configroutes.js @@ -47,9 +47,8 @@ function config($stateProvider, $urlRouterProvider, aclServiceProvider, modulesF for (let i = 0; i < count; i++) { let route = fileRoutes[i]; if (aclService.routeHasPermission(route)) { - $stateProvider.state(route.state, { + let configRoute = { url: route.url, - abstract: route.abstract || false, template: `<${route.component} ${getParams(route)}>`, resolve: { loader: loader(moduleName, validations) @@ -57,7 +56,13 @@ function config($stateProvider, $urlRouterProvider, aclServiceProvider, modulesF data: { routes: fileRoutes } - }); + }; + if (route.abstract) + configRoute.abstract = true; + if (route.routeParams) + configRoute.params = route.routeParams; + + $stateProvider.state(route.state, configRoute); } else if (route.state === mainModule.state) { break; } From 30d59a68430f7712d45542406f046e9a3c519a9a Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 14:05:47 +0100 Subject: [PATCH 066/287] tests fixed --- client/client/src/billing-data/billing-data.spec.js | 3 --- client/core/src/watcher/watcher.spec.js | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/client/client/src/billing-data/billing-data.spec.js b/client/client/src/billing-data/billing-data.spec.js index c2208f8b2e..85980aa80d 100644 --- a/client/client/src/billing-data/billing-data.spec.js +++ b/client/client/src/billing-data/billing-data.spec.js @@ -25,9 +25,6 @@ describe('Client', () => { describe('copyData()', () => { it(`should define billData using client's data`, () => { controller.client = { - credit: 1000000000000, - creditInsurance: null, - discount: 99, dueDay: 0, iban: null, payMethodFk: 1 diff --git a/client/core/src/watcher/watcher.spec.js b/client/core/src/watcher/watcher.spec.js index 0ed342e317..7cd629cd8d 100644 --- a/client/core/src/watcher/watcher.spec.js +++ b/client/core/src/watcher/watcher.spec.js @@ -100,11 +100,11 @@ describe('Component vnWatcher', () => { it(`should call controller.$state.go() function after calling controllers submit() function`, done => { spyOn(controller, 'submit').and.returnValue(Promise.resolve()); spyOn(controller.$state, 'go'); - let state = 'the state'; + let state = 'the.State'; controller.submitGo(state) .then(() => { expect(controller.submit).toHaveBeenCalledWith(); - expect(controller.$state.go).toHaveBeenCalledWith(state); + expect(controller.$state.go).toHaveBeenCalledWith(state, {}); done(); }); }); From d1eacedcc12b63627f0cf1e0c129ee3d37f89f75 Mon Sep 17 00:00:00 2001 From: Daniel Herrero Date: Thu, 30 Nov 2017 14:48:47 +0100 Subject: [PATCH 067/287] credito en card --- client/client/src/descriptor/descriptor.html | 19 +++++++++++++++++-- client/client/src/locale/es.json | 3 ++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/client/client/src/descriptor/descriptor.html b/client/client/src/descriptor/descriptor.html index 4eaa3029fc..ccd535a67f 100644 --- a/client/client/src/descriptor/descriptor.html +++ b/client/client/src/descriptor/descriptor.html @@ -8,8 +8,23 @@
{{::$ctrl.client.id}}
{{$ctrl.client.name}}
{{$ctrl.client.phone}}
-
Credit: {{$ctrl.client.credit}} €
-
+ + + + Credit: + + + {{$ctrl.client.credit || 0}} € + + + + + Secured credit: + + + {{$ctrl.client.creditInsurance || 0}} € + + diff --git a/client/client/src/locale/es.json b/client/client/src/locale/es.json index 6ff1bec95e..0c4cd2362b 100644 --- a/client/client/src/locale/es.json +++ b/client/client/src/locale/es.json @@ -17,5 +17,6 @@ "Save": "Guardar", "Pay method" : "Forma de pago", "Address": "Consignatario", - "Credit" : "Crédito" + "Credit" : "Crédito", + "Secured credit": "Crédito asegurado" } From 8755d4846ae8e7f185c8d9413b3bcb5ae006dcaa Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 4 Dec 2017 08:17:29 +0100 Subject: [PATCH 068/287] merge --- .vscode/launch.json | 20 -- client/client/routes.json | 56 +++++- client/client/src/addresses/locale/es.json | 1 - client/client/src/basic-data/locale/es.json | 1 - .../client/src/billing-data/billing-data.html | 4 - .../client/src/billing-data/billing-data.js | 5 +- .../src/billing-data/billing-data.spec.js | 7 +- client/client/src/client.js | 4 + .../src/credit-create/credit-create.html | 23 +++ .../client/src/credit-create/credit-create.js | 8 + .../client/src/credit-create/locale/es.json | 3 + .../client/src/credit-list/credit-list.html | 29 +++ client/client/src/credit-list/credit-list.js | 9 + client/client/src/credit-list/locale/es.json | 5 + client/client/src/filterClientList.js | 37 ++++ .../src/greuge-create/greuge-create.html | 30 +++ .../client/src/greuge-create/greuge-create.js | 23 +++ .../client/src/greuge-list/greuge-list.html | 38 ++++ client/client/src/greuge-list/greuge-list.js | 9 + client/client/src/greuge-list/locale/es.json | 7 + client/client/src/locale/es.json | 17 -- client/client/src/notes/locale/es.json | 3 - client/client/src/web-access/locale/es.json | 1 - .../core/src/column-header/column-header.html | 2 +- .../core/src/column-header/column-header.js | 22 ++- .../src/column-header/column-header.spec.js | 4 +- client/core/src/datePicker/datePicker.html | 3 +- client/core/src/datePicker/datePicker.js | 18 +- client/core/src/drop-down/drop-down.spec.js | 30 +-- client/core/src/grid-header/style.scss | 1 - client/core/src/watcher/watcher.js | 4 +- client/core/src/watcher/watcher.spec.js | 4 +- .../src/production-table/production-table.js | 9 +- .../salix/src/components/left-menu/actions.js | 2 +- client/salix/src/configroutes.js | 11 +- services/auth/server/boot/routes.js | 25 --- .../client/common/methods/client/activate.js | 2 +- .../common/methods/client/before-save.js | 7 +- .../client/common/methods/greuge/filter.js | 20 ++ .../common/methods/greuge/totalGreuge.js | 34 ++++ .../client/common/models/client-credit.js | 31 ++++ .../client/common/models/client-credit.json | 2 +- .../client/common/models/greuge-type.json | 14 ++ services/client/common/models/greuge.js | 4 + services/client/common/models/greuge.json | 35 ++++ .../client/common/validations/validateDni.js | 3 + services/client/server/model-config.json | 10 +- services/loopback/common/models/vn-model.js | 10 +- services/mailer/application/auth.js | 19 +- services/mailer/application/config.js | 18 ++ services/mailer/application/config/app.json | 9 - .../mailer/application/config/app.test.json | 9 - .../application/config/datasources.json | 29 +++ .../application/config/datasources.test.json | 29 +++ services/mailer/application/config/mysql.json | 7 - .../mailer/application/config/mysql.test.json | 7 - services/mailer/application/config/smtp.json | 13 -- services/mailer/application/database.js | 8 +- services/mailer/application/locale.js | 4 +- services/mailer/application/mail.js | 28 +-- .../mailer/application/route/manuscript.js | 85 --------- .../mailer/application/route/notification.js | 98 +++++++++- services/mailer/application/router.js | 4 - services/mailer/application/settings.js | 45 ----- services/mailer/application/template.js | 123 +++++++++--- .../template/client-welcome/client-welcome.js | 3 +- .../template/client-welcome/index.html | 117 +++--------- .../template/client-welcome/locale/es.json | 30 ++- .../client-welcome/static/css/style.css | 0 .../application/template/footer/footer.js | 20 ++ .../application/template/footer/index.html | 42 +++++ .../template/footer/locale/es.json | 7 + .../template/footer}/static/css/style.css | 38 ---- .../template/footer/static/image/action.png | Bin 0 -> 3225 bytes .../template/footer/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/footer/static/image/header.png | Bin 0 -> 30712 bytes .../template/footer/static/image/info.png | Bin 0 -> 3045 bytes .../footer/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/footer/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/footer/static/image/logo.png | Bin 0 -> 8577 bytes .../template/footer/static/image/logo.svg | 48 +++++ .../footer/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/footer/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/footer/static/image/youtube.png | Bin 0 -> 3513 bytes .../application/template/header/header.js | 20 ++ .../application/template/header/index.html | 3 + .../template/header/locale/es.json | 2 + .../template/header/static/css/style.css | 3 + .../template/header/static/image/action.png | Bin 0 -> 3225 bytes .../template/header/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/header/static/image/header.png | Bin 0 -> 30712 bytes .../template/header/static/image/info.png | Bin 0 -> 3045 bytes .../header/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/header/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/header/static/image/logo.png | Bin 0 -> 8577 bytes .../template/header/static/image/logo.svg | 48 +++++ .../header/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/header/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/header/static/image/youtube.png | Bin 0 -> 3513 bytes .../template/notification-alias/index.html | 81 ++------ .../notification-alias/locale/es.json | 9 +- .../notification-alias/static/css/style.css | 0 .../template/payment-update/index.html | 65 ++----- .../template/payment-update/locale/es.json | 13 +- .../template/payment-update/payment-update.js | 5 +- .../payment-update/static/css/style.css | 0 .../template/printer-setup/index.html | 68 ++----- .../template/printer-setup/locale/es.json | 9 +- .../template/printer-setup/printer-setup.js | 4 +- .../printer-setup/static/css/style.css | 0 .../application/template/sepa-core/index.html | 59 +----- .../template/sepa-core/locale/es.json | 14 +- .../template/sepa-core/sepa-core.js | 27 ++- .../template/sepa-core/static/css/style.css | 0 services/mailer/server/server.js | 6 +- services/mailer/static/css/component.css | 137 ++++++++++++++ services/mailer/static/images/attachment.png | Bin 0 -> 18546 bytes services/nginx/conf-dev.conf | 3 + services/nginx/conf-prod.conf | 3 + services/nginx/config.json | 14 ++ services/print/.gitignore | 5 + services/print/Dockerfile | 13 ++ services/print/application/auth.js | 62 +++++++ services/print/application/config.js | 18 ++ .../print/application/config/datasources.json | 23 +++ .../application/config/datasources.test.json | 19 ++ services/print/application/database.js | 24 +++ services/print/application/locale.js | 42 +++++ .../print/application/route/manuscript.js | 66 +++++++ services/print/application/router.js | 12 ++ services/print/application/template.js | 175 ++++++++++++++++++ .../application/template/footer/footer.js | 20 ++ .../application/template/footer/index.html | 5 + .../template/footer/locale/es.json | 4 + .../template/footer/static/css/style.css | 23 +++ .../template/footer/static/image/action.png | Bin 0 -> 3225 bytes .../template/footer/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/footer/static/image/header.png | Bin 0 -> 30712 bytes .../template/footer/static/image/info.png | Bin 0 -> 3045 bytes .../footer/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/footer/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/footer/static/image/logo.png | Bin 0 -> 8577 bytes .../template/footer/static/image/logo.svg | 48 +++++ .../footer/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/footer/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/footer/static/image/youtube.png | Bin 0 -> 3513 bytes .../application/template/header/header.js | 20 ++ .../application/template/header/index.html | 7 + .../template/header/locale/es.json | 4 + .../template/header/static/css/style.css | 16 ++ .../template/header/static/image/action.png | Bin 0 -> 3225 bytes .../template/header/static/image/facebook.png | Bin 0 -> 3586 bytes .../template/header/static/image/header.png | Bin 0 -> 30712 bytes .../template/header/static/image/info.png | Bin 0 -> 3045 bytes .../header/static/image/instagram.png | Bin 0 -> 3719 bytes .../template/header/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/header/static/image/logo.png | Bin 0 -> 8577 bytes .../template/header/static/image/logo.svg | 48 +++++ .../header/static/image/pinterest.png | Bin 0 -> 3807 bytes .../template/header/static/image/twitter.png | Bin 0 -> 3646 bytes .../template/header/static/image/youtube.png | Bin 0 -> 3513 bytes .../application/template/sepa-core/index.html | 128 +++++++++++++ .../template/sepa-core/locale/es.json | 31 ++++ .../template/sepa-core/sepa-core.js | 54 ++++++ .../template/sepa-core/static/css/style.css | 22 +++ .../sepa-core/static/image/action.png | Bin 0 -> 3225 bytes .../sepa-core/static/image/facebook.png | Bin 0 -> 3586 bytes .../sepa-core/static/image/header.png | Bin 0 -> 30712 bytes .../template/sepa-core/static/image/info.png | Bin 0 -> 3045 bytes .../sepa-core/static/image/instagram.png | Bin 0 -> 3719 bytes .../sepa-core/static/image/linkedin.png | Bin 0 -> 3588 bytes .../template/sepa-core/static/image/logo.png | Bin 0 -> 8577 bytes .../template/sepa-core/static/image/logo.svg | 48 +++++ .../sepa-core/static/image/pinterest.png | Bin 0 -> 3807 bytes .../sepa-core/static/image/twitter.png | Bin 0 -> 3646 bytes .../sepa-core/static/image/youtube.png | Bin 0 -> 3513 bytes services/print/application/util/format.js | 59 ++++++ services/print/application/util/system.js | 10 + services/print/package.json | 20 ++ services/print/server/server.js | 38 ++++ services/print/static/css/component.css | 170 +++++++++++++++++ services/salix/server/boot/routes.js | 14 ++ 182 files changed, 2558 insertions(+), 770 deletions(-) create mode 100644 client/client/src/credit-create/credit-create.html create mode 100644 client/client/src/credit-create/credit-create.js create mode 100644 client/client/src/credit-create/locale/es.json create mode 100644 client/client/src/credit-list/credit-list.html create mode 100644 client/client/src/credit-list/credit-list.js create mode 100644 client/client/src/credit-list/locale/es.json create mode 100644 client/client/src/filterClientList.js create mode 100644 client/client/src/greuge-create/greuge-create.html create mode 100644 client/client/src/greuge-create/greuge-create.js create mode 100644 client/client/src/greuge-list/greuge-list.html create mode 100644 client/client/src/greuge-list/greuge-list.js create mode 100644 client/client/src/greuge-list/locale/es.json delete mode 100644 client/client/src/locale/es.json delete mode 100644 client/client/src/notes/locale/es.json create mode 100644 services/client/common/methods/greuge/filter.js create mode 100644 services/client/common/methods/greuge/totalGreuge.js create mode 100644 services/client/common/models/client-credit.js create mode 100644 services/client/common/models/greuge-type.json create mode 100644 services/client/common/models/greuge.js create mode 100644 services/client/common/models/greuge.json create mode 100644 services/mailer/application/config.js delete mode 100644 services/mailer/application/config/app.json delete mode 100644 services/mailer/application/config/app.test.json create mode 100644 services/mailer/application/config/datasources.json create mode 100644 services/mailer/application/config/datasources.test.json delete mode 100644 services/mailer/application/config/mysql.json delete mode 100644 services/mailer/application/config/mysql.test.json delete mode 100644 services/mailer/application/config/smtp.json delete mode 100644 services/mailer/application/route/manuscript.js delete mode 100644 services/mailer/application/settings.js create mode 100644 services/mailer/application/template/client-welcome/static/css/style.css create mode 100644 services/mailer/application/template/footer/footer.js create mode 100644 services/mailer/application/template/footer/index.html create mode 100644 services/mailer/application/template/footer/locale/es.json rename services/mailer/{ => application/template/footer}/static/css/style.css (58%) create mode 100644 services/mailer/application/template/footer/static/image/action.png create mode 100644 services/mailer/application/template/footer/static/image/facebook.png create mode 100644 services/mailer/application/template/footer/static/image/header.png create mode 100644 services/mailer/application/template/footer/static/image/info.png create mode 100644 services/mailer/application/template/footer/static/image/instagram.png create mode 100644 services/mailer/application/template/footer/static/image/linkedin.png create mode 100644 services/mailer/application/template/footer/static/image/logo.png create mode 100644 services/mailer/application/template/footer/static/image/logo.svg create mode 100644 services/mailer/application/template/footer/static/image/pinterest.png create mode 100644 services/mailer/application/template/footer/static/image/twitter.png create mode 100644 services/mailer/application/template/footer/static/image/youtube.png create mode 100644 services/mailer/application/template/header/header.js create mode 100644 services/mailer/application/template/header/index.html create mode 100644 services/mailer/application/template/header/locale/es.json create mode 100644 services/mailer/application/template/header/static/css/style.css create mode 100644 services/mailer/application/template/header/static/image/action.png create mode 100644 services/mailer/application/template/header/static/image/facebook.png create mode 100644 services/mailer/application/template/header/static/image/header.png create mode 100644 services/mailer/application/template/header/static/image/info.png create mode 100644 services/mailer/application/template/header/static/image/instagram.png create mode 100644 services/mailer/application/template/header/static/image/linkedin.png create mode 100644 services/mailer/application/template/header/static/image/logo.png create mode 100644 services/mailer/application/template/header/static/image/logo.svg create mode 100644 services/mailer/application/template/header/static/image/pinterest.png create mode 100644 services/mailer/application/template/header/static/image/twitter.png create mode 100644 services/mailer/application/template/header/static/image/youtube.png create mode 100644 services/mailer/application/template/notification-alias/static/css/style.css create mode 100644 services/mailer/application/template/payment-update/static/css/style.css create mode 100644 services/mailer/application/template/printer-setup/static/css/style.css create mode 100644 services/mailer/application/template/sepa-core/static/css/style.css create mode 100644 services/mailer/static/css/component.css create mode 100644 services/mailer/static/images/attachment.png create mode 100644 services/nginx/config.json create mode 100644 services/print/.gitignore create mode 100644 services/print/Dockerfile create mode 100644 services/print/application/auth.js create mode 100644 services/print/application/config.js create mode 100644 services/print/application/config/datasources.json create mode 100644 services/print/application/config/datasources.test.json create mode 100644 services/print/application/database.js create mode 100644 services/print/application/locale.js create mode 100644 services/print/application/route/manuscript.js create mode 100644 services/print/application/router.js create mode 100644 services/print/application/template.js create mode 100644 services/print/application/template/footer/footer.js create mode 100644 services/print/application/template/footer/index.html create mode 100644 services/print/application/template/footer/locale/es.json create mode 100644 services/print/application/template/footer/static/css/style.css create mode 100644 services/print/application/template/footer/static/image/action.png create mode 100644 services/print/application/template/footer/static/image/facebook.png create mode 100644 services/print/application/template/footer/static/image/header.png create mode 100644 services/print/application/template/footer/static/image/info.png create mode 100644 services/print/application/template/footer/static/image/instagram.png create mode 100644 services/print/application/template/footer/static/image/linkedin.png create mode 100644 services/print/application/template/footer/static/image/logo.png create mode 100644 services/print/application/template/footer/static/image/logo.svg create mode 100644 services/print/application/template/footer/static/image/pinterest.png create mode 100644 services/print/application/template/footer/static/image/twitter.png create mode 100644 services/print/application/template/footer/static/image/youtube.png create mode 100644 services/print/application/template/header/header.js create mode 100644 services/print/application/template/header/index.html create mode 100644 services/print/application/template/header/locale/es.json create mode 100644 services/print/application/template/header/static/css/style.css create mode 100644 services/print/application/template/header/static/image/action.png create mode 100644 services/print/application/template/header/static/image/facebook.png create mode 100644 services/print/application/template/header/static/image/header.png create mode 100644 services/print/application/template/header/static/image/info.png create mode 100644 services/print/application/template/header/static/image/instagram.png create mode 100644 services/print/application/template/header/static/image/linkedin.png create mode 100644 services/print/application/template/header/static/image/logo.png create mode 100644 services/print/application/template/header/static/image/logo.svg create mode 100644 services/print/application/template/header/static/image/pinterest.png create mode 100644 services/print/application/template/header/static/image/twitter.png create mode 100644 services/print/application/template/header/static/image/youtube.png create mode 100644 services/print/application/template/sepa-core/index.html create mode 100644 services/print/application/template/sepa-core/locale/es.json create mode 100644 services/print/application/template/sepa-core/sepa-core.js create mode 100644 services/print/application/template/sepa-core/static/css/style.css create mode 100644 services/print/application/template/sepa-core/static/image/action.png create mode 100644 services/print/application/template/sepa-core/static/image/facebook.png create mode 100644 services/print/application/template/sepa-core/static/image/header.png create mode 100644 services/print/application/template/sepa-core/static/image/info.png create mode 100644 services/print/application/template/sepa-core/static/image/instagram.png create mode 100644 services/print/application/template/sepa-core/static/image/linkedin.png create mode 100644 services/print/application/template/sepa-core/static/image/logo.png create mode 100644 services/print/application/template/sepa-core/static/image/logo.svg create mode 100644 services/print/application/template/sepa-core/static/image/pinterest.png create mode 100644 services/print/application/template/sepa-core/static/image/twitter.png create mode 100644 services/print/application/template/sepa-core/static/image/youtube.png create mode 100644 services/print/application/util/format.js create mode 100644 services/print/application/util/system.js create mode 100644 services/print/package.json create mode 100644 services/print/server/server.js create mode 100644 services/print/static/css/component.css diff --git a/.vscode/launch.json b/.vscode/launch.json index ecebe6bce5..b35ebd9e4f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,26 +1,6 @@ { "version": "0.2.0", "configurations": [ - { - "name": "Iniciar", - "type": "node", - "request": "launch", - "program": "${workspaceRoot}/services/auth/server/server.js", - "stopOnEntry": false, - "args": [], - "cwd": "${workspaceRoot}", - "preLaunchTask": null, - "runtimeExecutable": null, - "runtimeArgs": [ - "--nolazy" - ], - "env": { - "NODE_ENV": "development" - }, - "console": "internalConsole", - "sourceMaps": false, - "outFiles": [] - }, { "name": "Asociar", "type": "node", diff --git a/client/client/routes.json b/client/client/routes.json index c938dd8a6b..99c083ff3d 100644 --- a/client/client/routes.json +++ b/client/client/routes.json @@ -26,7 +26,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Datos básicos", + "description": "Basic data", "icon": "person" } }, { @@ -37,7 +37,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Datos fiscales", + "description": "Fiscal data", "icon": "account_balance" } }, { @@ -64,7 +64,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Consignatarios", + "description": "Addresses", "icon": "local_shipping" } }, { @@ -83,7 +83,7 @@ "client": "$ctrl.client" }, "menu": { - "description": "Acceso web", + "description": "Web access", "icon": "language" } }, { @@ -99,13 +99,59 @@ "client": "$ctrl.client" }, "menu": { - "description": "Notas", + "description": "Notes", "icon": "insert_drive_file" } }, { "url": "/create", "state": "clientCard.notes.create", "component": "vn-note-create" + }, { + "url": "/credit", + "abstract": true, + "state": "clientCard.credit", + "component": "ui-view" + }, { + "url": "/list", + "state": "clientCard.credit.list", + "component": "vn-client-credit-list", + "params": { + "client": "$ctrl.client" + }, + "menu": { + "description": "Credit", + "icon": "credit_card" + } + }, { + "url": "/create", + "state": "clientCard.credit.create", + "component": "vn-client-credit-create", + "params": { + "client": "$ctrl.client" + } + }, { + "url": "/greuge", + "abstract": true, + "state": "clientCard.greuge", + "component": "ui-view" + }, { + "url": "/list", + "state": "clientCard.greuge.list", + "component": "vn-client-greuge-list", + "params": { + "client": "$ctrl.client" + }, + "menu": { + "description": "Greuge", + "icon": "work" + } + }, { + "url": "/create", + "state": "clientCard.greuge.create", + "component": "vn-client-greuge-create", + "params": { + "client": "$ctrl.client" + } } ] } diff --git a/client/client/src/addresses/locale/es.json b/client/client/src/addresses/locale/es.json index dc7a13c4a5..ab0c0e4ca4 100644 --- a/client/client/src/addresses/locale/es.json +++ b/client/client/src/addresses/locale/es.json @@ -1,4 +1,3 @@ { - "Addresses": "Consignatarios", "Set as default": "Establecer como predeterminado" } \ No newline at end of file diff --git a/client/client/src/basic-data/locale/es.json b/client/client/src/basic-data/locale/es.json index d0e654979b..4594d683e7 100644 --- a/client/client/src/basic-data/locale/es.json +++ b/client/client/src/basic-data/locale/es.json @@ -1,5 +1,4 @@ { - "Basic data": "Datos básicos", "Comercial Name": "Nombre comercial", "Tax number": "NIF/CIF", "Social name": "Razón social", diff --git a/client/client/src/billing-data/billing-data.html b/client/client/src/billing-data/billing-data.html index 19b9615581..c46c00e98f 100644 --- a/client/client/src/billing-data/billing-data.html +++ b/client/client/src/billing-data/billing-data.html @@ -21,10 +21,6 @@ - - - - diff --git a/client/client/src/billing-data/billing-data.js b/client/client/src/billing-data/billing-data.js index a6887039e3..6bbb3705c2 100644 --- a/client/client/src/billing-data/billing-data.js +++ b/client/client/src/billing-data/billing-data.js @@ -17,9 +17,6 @@ export default class Controller { this.billData.payMethodFk = this.client.payMethodFk; this.billData.iban = this.client.iban; this.billData.dueDay = this.client.dueDay; - this.billData.discount = this.client.discount; - this.billData.credit = this.client.credit; - this.billData.creditInsurance = this.client.creditInsurance; } } submit() { @@ -43,7 +40,7 @@ export default class Controller { } returnDialog(response) { if (response === 'ACCEPT') { - this.$http.post(`/mailer/manuscript/payment-update/${this.client.id}`).then( + this.$http.post(`/mailer/notification/payment-update/${this.client.id}`).then( () => { this.vnApp.showMessage(this.translate.instant('Notification sent!')); } diff --git a/client/client/src/billing-data/billing-data.spec.js b/client/client/src/billing-data/billing-data.spec.js index df169b18c5..85980aa80d 100644 --- a/client/client/src/billing-data/billing-data.spec.js +++ b/client/client/src/billing-data/billing-data.spec.js @@ -25,9 +25,6 @@ describe('Client', () => { describe('copyData()', () => { it(`should define billData using client's data`, () => { controller.client = { - credit: 1000000000000, - creditInsurance: null, - discount: 99, dueDay: 0, iban: null, payMethodFk: 1 @@ -72,8 +69,8 @@ describe('Client', () => { describe('returnDialog()', () => { it('should request to send notification email', () => { controller.client = {id: '123'}; - $httpBackend.when('POST', `/mailer/manuscript/payment-update/${controller.client.id}`).respond('done'); - $httpBackend.expectPOST(`/mailer/manuscript/payment-update/${controller.client.id}`); + $httpBackend.when('POST', `/mailer/notification/payment-update/${controller.client.id}`).respond('done'); + $httpBackend.expectPOST(`/mailer/notification/payment-update/${controller.client.id}`); controller.returnDialog('ACCEPT'); $httpBackend.flush(); }); diff --git a/client/client/src/client.js b/client/client/src/client.js index 6dc0de725e..15bd2d8ec8 100644 --- a/client/client/src/client.js +++ b/client/client/src/client.js @@ -14,3 +14,7 @@ import './address-edit/address-edit'; import './notes/notes'; import './note-create/note-create'; import './web-access/web-access'; +import './credit-list/credit-list'; +import './credit-create/credit-create'; +import './greuge-list/greuge-list'; +import './greuge-create/greuge-create'; diff --git a/client/client/src/credit-create/credit-create.html b/client/client/src/credit-create/credit-create.html new file mode 100644 index 0000000000..c02ff71675 --- /dev/null +++ b/client/client/src/credit-create/credit-create.html @@ -0,0 +1,23 @@ + + + +
+ + + Add credit + + + + + + + + + + + +
diff --git a/client/client/src/credit-create/credit-create.js b/client/client/src/credit-create/credit-create.js new file mode 100644 index 0000000000..2d0bccf56c --- /dev/null +++ b/client/client/src/credit-create/credit-create.js @@ -0,0 +1,8 @@ +import ngModule from '../module'; + +ngModule.component('vnClientCreditCreate', { + template: require('./credit-create.html'), + bindings: { + client: '<' + } +}); diff --git a/client/client/src/credit-create/locale/es.json b/client/client/src/credit-create/locale/es.json new file mode 100644 index 0000000000..7b0a22a1f3 --- /dev/null +++ b/client/client/src/credit-create/locale/es.json @@ -0,0 +1,3 @@ +{ + "Add credit": "Añadir crédito" +} \ No newline at end of file diff --git a/client/client/src/credit-list/credit-list.html b/client/client/src/credit-list/credit-list.html new file mode 100644 index 0000000000..30a477cef8 --- /dev/null +++ b/client/client/src/credit-list/credit-list.html @@ -0,0 +1,29 @@ + + + + Credit + + + + + + + + + {{::credit.amount | number:2}} € + {{::credit.created | date:'dd/MM/yyyy HH:mm' }} + {{::credit.employee.name}} + + + No results + + + + + + + \ No newline at end of file diff --git a/client/client/src/credit-list/credit-list.js b/client/client/src/credit-list/credit-list.js new file mode 100644 index 0000000000..c1d283e336 --- /dev/null +++ b/client/client/src/credit-list/credit-list.js @@ -0,0 +1,9 @@ +import ngModule from '../module'; +import FilterClientList from '../filterClientList'; + +class ClientCreditList extends FilterClientList {} + +ngModule.component('vnClientCreditList', { + template: require('./credit-list.html'), + controller: ClientCreditList +}); diff --git a/client/client/src/credit-list/locale/es.json b/client/client/src/credit-list/locale/es.json new file mode 100644 index 0000000000..2c99e8b737 --- /dev/null +++ b/client/client/src/credit-list/locale/es.json @@ -0,0 +1,5 @@ +{ + "Since" : "Desde", + "Employee" : "Empleado", + "No results": "Sin resultados" +} \ No newline at end of file diff --git a/client/client/src/filterClientList.js b/client/client/src/filterClientList.js new file mode 100644 index 0000000000..3ad70cfc5c --- /dev/null +++ b/client/client/src/filterClientList.js @@ -0,0 +1,37 @@ +export default class FilterClientList { + constructor($scope, $timeout, $state) { + this.$ = $scope; + this.$timeout = $timeout; + this.$state = $state; + + this.waitingMgCrud = 0; + this.clientFk = $state.params.id; + } + onOrder(field, order) { + this.filter(`${field} ${order}`); + } + filter(order) { + if (this.$.index && this.clientFk) { + this.waitingMgCrud = 0; + this.$.index.filter = { + page: 1, + size: 10, + clientFk: this.clientFk + }; + + if (order) { + this.$.index.filter.order = order; + } + + this.$.index.accept(); + } else if (this.waitingMgCrud > 3) { + throw new Error('Magic Crud is not loaded'); + } else { + this.waitingMgCrud++; + this.$timeout(() => { + this.filter(order); + }, 250); + } + } +} +FilterClientList.$inject = ['$scope', '$timeout', '$state']; diff --git a/client/client/src/greuge-create/greuge-create.html b/client/client/src/greuge-create/greuge-create.html new file mode 100644 index 0000000000..9bc8830ddb --- /dev/null +++ b/client/client/src/greuge-create/greuge-create.html @@ -0,0 +1,30 @@ + + + +
+ + + Add Greuge + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/client/client/src/greuge-create/greuge-create.js b/client/client/src/greuge-create/greuge-create.js new file mode 100644 index 0000000000..f48c3e61b0 --- /dev/null +++ b/client/client/src/greuge-create/greuge-create.js @@ -0,0 +1,23 @@ +import ngModule from '../module'; + +class ClientGreugeCreate { + constructor($scope, $state) { + this.$ = $scope; + this.$state = $state; + this.greuge = {}; + } + onSubmit() { + this.greuge.clientFk = this.$state.params.id; + this.$.watcher.submit().then( + () => { + this.$state.go('clientCard.greuge.list'); + } + ); + } +} +ClientGreugeCreate.$inject = ['$scope', '$state']; + +ngModule.component('vnClientGreugeCreate', { + template: require('./greuge-create.html'), + controller: ClientGreugeCreate +}); diff --git a/client/client/src/greuge-list/greuge-list.html b/client/client/src/greuge-list/greuge-list.html new file mode 100644 index 0000000000..08c7748905 --- /dev/null +++ b/client/client/src/greuge-list/greuge-list.html @@ -0,0 +1,38 @@ + + + + + Greuge + + + + + + + + + + {{::greuge.shipped | date:'dd/MM/yyyy HH:mm' }} + {{::greuge.description}} + {{::greuge.amount | number:2}} € + {{::greuge.greugeType.name}} + + + + No results + + + + {{edit.model.sumAmount | number:2}} € + + + + + + + + \ No newline at end of file diff --git a/client/client/src/greuge-list/greuge-list.js b/client/client/src/greuge-list/greuge-list.js new file mode 100644 index 0000000000..a2e5bd33af --- /dev/null +++ b/client/client/src/greuge-list/greuge-list.js @@ -0,0 +1,9 @@ +import ngModule from '../module'; +import FilterClientList from '../filterClientList'; + +class ClientGreugeList extends FilterClientList {} + +ngModule.component('vnClientGreugeList', { + template: require('./greuge-list.html'), + controller: ClientGreugeList +}); diff --git a/client/client/src/greuge-list/locale/es.json b/client/client/src/greuge-list/locale/es.json new file mode 100644 index 0000000000..7aa276bd03 --- /dev/null +++ b/client/client/src/greuge-list/locale/es.json @@ -0,0 +1,7 @@ +{ + "Date" : "Fecha", + "Comment" : "Comentario", + "Amount" : "Importe", + "Type": "Tipo", + "Add Greuge": "Añadir Greuge" +} \ No newline at end of file diff --git a/client/client/src/locale/es.json b/client/client/src/locale/es.json deleted file mode 100644 index 3e3e631ea8..0000000000 --- a/client/client/src/locale/es.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "Active": "Activo", - "Client": "Cliente", - "Clients": "Clientes", - "Fiscal data": "Datos Fiscales", - "Has to invoice": "Factura", - "Invoice by mail": "Factura impresa", - "Country": "País", - "Street": "Domicilio fiscal", - "City": "Municipio", - "Postcode": "Código postal", - "Province": "Provincia", - "Save": "Guardar", - "Pay method" : "Forma de pago", - "Address": "Consignatario", - "Credit": "Crédito" -} diff --git a/client/client/src/notes/locale/es.json b/client/client/src/notes/locale/es.json deleted file mode 100644 index 28b37f5a81..0000000000 --- a/client/client/src/notes/locale/es.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Notes": "Notas" -} \ No newline at end of file diff --git a/client/client/src/web-access/locale/es.json b/client/client/src/web-access/locale/es.json index 82652f89f0..dd42d1c3ab 100644 --- a/client/client/src/web-access/locale/es.json +++ b/client/client/src/web-access/locale/es.json @@ -1,7 +1,6 @@ { "User": "Usuario", "Enable web access": "Habilitar acceso web", - "Web access": "Acceso web", "New password": "Nueva contraseña", "Repeat password": "Repetir contraseña", "Change password": "Cambiar contraseña" diff --git a/client/core/src/column-header/column-header.html b/client/core/src/column-header/column-header.html index 435057a19b..d5747fcfe8 100644 --- a/client/core/src/column-header/column-header.html +++ b/client/core/src/column-header/column-header.html @@ -1,5 +1,5 @@
- + {{::$ctrl.text}} diff --git a/client/core/src/column-header/column-header.js b/client/core/src/column-header/column-header.js index 2f5f4d3c36..4c52e7e3d2 100644 --- a/client/core/src/column-header/column-header.js +++ b/client/core/src/column-header/column-header.js @@ -1,19 +1,25 @@ import {module} from '../module'; export default class ColumnHeader { - constructor() { + constructor($attrs) { this.order = undefined; this.mouseIsOver = false; + this.orderLocked = ($attrs.orderLocked !== undefined); } onClick() { - if (this.order === 'ASC') { - this.order = 'DESC'; - } else { - this.order = 'ASC'; + if (!this.orderLocked) { + if (this.order === 'ASC') { + this.order = 'DESC'; + } else { + this.order = 'ASC'; + } + this.gridHeader.selectColum(this); } - this.gridHeader.selectColum(this); } showArrow(type) { + if (this.orderLocked) + return false; + let showArrow = (this.gridHeader && this.gridHeader.currentColumn && this.gridHeader.currentColumn.field === this.field && this.order === type); let showOther = (this.gridHeader && this.gridHeader.currentColumn && this.gridHeader.currentColumn.field === this.field && this.order !== type); if (type === 'DESC' && this.mouseIsOver && !showOther) { @@ -22,13 +28,13 @@ export default class ColumnHeader { return showArrow; } $onInit() { - if (this.defaultOrder) { + if (this.defaultOrder && !this.orderLocked) { this.order = this.defaultOrder; this.onClick(); } } } -ColumnHeader.$inject = []; +ColumnHeader.$inject = ['$attrs']; module.component('vnColumnHeader', { template: require('./column-header.html'), diff --git a/client/core/src/column-header/column-header.spec.js b/client/core/src/column-header/column-header.spec.js index 5c6d29d732..48954826e2 100644 --- a/client/core/src/column-header/column-header.spec.js +++ b/client/core/src/column-header/column-header.spec.js @@ -3,6 +3,7 @@ import './column-header.js'; describe('Component vnColumnHeader', () => { let $componentController; let controller; + let $attrs; beforeEach(() => { angular.mock.module('client'); @@ -10,7 +11,8 @@ describe('Component vnColumnHeader', () => { beforeEach(angular.mock.inject(_$componentController_ => { $componentController = _$componentController_; - controller = $componentController('vnColumnHeader', {}); + $attrs = {}; + controller = $componentController('vnColumnHeader', {$attrs}); })); describe('onClick()', () => { diff --git a/client/core/src/datePicker/datePicker.html b/client/core/src/datePicker/datePicker.html index d91f0a53f8..21839aa165 100644 --- a/client/core/src/datePicker/datePicker.html +++ b/client/core/src/datePicker/datePicker.html @@ -4,7 +4,8 @@ ng-focus="$ctrl.hasFocus = true" ng-blur="$ctrl.hasFocus = false" ng-mouseenter="$ctrl.hasMouseIn = true" - ng-mouseleave="$ctrl.hasMouseIn = false" + ng-mouseleave="$ctrl.hasMouseIn = false" + ng-click="$ctrl.onClick()" > { }); describe('$onChanges()', () => { - it(`should set the top css of the $element`, () => { - let argumentObject = {show: true, top: {currentValue: 100}}; - spyOn(controller.$element, 'css'); - controller.$onChanges(argumentObject); - - expect(controller.$element.css).toHaveBeenCalledWith('top', '100px'); - }); - it(`should set the width css of the $element`, () => { let argumentObject = {show: true, itemWidth: {currentValue: 100}}; spyOn(controller.$element, 'css'); @@ -295,26 +287,40 @@ describe('Component vnDropDown', () => { controller.selectItem(item); expect(controller.selected).toEqual(item); - expect(controller._show).toEqual(true); + expect(controller._show).not.toBeDefined(); }); }); describe('loadItems()', () => { - it(`should set controller._show to true`, () => { + it(`should set controller.show to true`, () => { + controller.show = false; + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.loadItems(); - expect(controller._show).toEqual(true); + expect(controller.show).toEqual(true); }); - it(`should call loadMore() and then set controller._show to true`, () => { + it(`should call loadMore() and then set controller._show to true if there are items`, () => { controller.showLoadMore = () => {}; controller.loadMore = () => {}; spyOn(controller, 'loadMore'); + controller.itemsFiltered = [{id: 1, name: 'Batman'}, {id: 2, name: 'Bruce'}, {id: 3, name: 'Logan'}, {id: 4, name: 'Wolverine'}]; controller.loadItems(); expect(controller._show).toEqual(true); expect(controller.loadMore).toHaveBeenCalledWith(); }); + + it(`should call loadMore() and then set controller._show to undefined if there are not items`, () => { + controller.showLoadMore = () => {}; + controller.loadMore = () => {}; + spyOn(controller, 'loadMore'); + controller.itemsFiltered = []; + controller.loadItems(); + + expect(controller._show).not.toBeDefined(); + expect(controller.loadMore).toHaveBeenCalledWith(); + }); }); describe('$onInit()', () => { diff --git a/client/core/src/grid-header/style.scss b/client/core/src/grid-header/style.scss index cc983dcf1a..324e488d12 100644 --- a/client/core/src/grid-header/style.scss +++ b/client/core/src/grid-header/style.scss @@ -2,7 +2,6 @@ vn-grid-header { border-bottom: 3px solid #9D9D9D; font-weight: bold; .orderly{ - cursor: pointer; text-align: center; white-space: nowrap; justify-content: center; diff --git a/client/core/src/watcher/watcher.js b/client/core/src/watcher/watcher.js index 2dbc5a2bc7..d259f6f39c 100644 --- a/client/core/src/watcher/watcher.js +++ b/client/core/src/watcher/watcher.js @@ -68,9 +68,9 @@ export default class Watcher extends Component { * * @param {String} state The state name */ - submitGo(state) { + submitGo(state, params) { return this.submit().then( - () => this.$state.go(state) + () => this.$state.go(state, params || {}) ); } /** diff --git a/client/core/src/watcher/watcher.spec.js b/client/core/src/watcher/watcher.spec.js index 0ed342e317..7cd629cd8d 100644 --- a/client/core/src/watcher/watcher.spec.js +++ b/client/core/src/watcher/watcher.spec.js @@ -100,11 +100,11 @@ describe('Component vnWatcher', () => { it(`should call controller.$state.go() function after calling controllers submit() function`, done => { spyOn(controller, 'submit').and.returnValue(Promise.resolve()); spyOn(controller.$state, 'go'); - let state = 'the state'; + let state = 'the.State'; controller.submitGo(state) .then(() => { expect(controller.submit).toHaveBeenCalledWith(); - expect(controller.$state.go).toHaveBeenCalledWith(state); + expect(controller.$state.go).toHaveBeenCalledWith(state, {}); done(); }); }); diff --git a/client/production/src/production-table/production-table.js b/client/production/src/production-table/production-table.js index 91c24314ff..288118a0dd 100644 --- a/client/production/src/production-table/production-table.js +++ b/client/production/src/production-table/production-table.js @@ -13,6 +13,8 @@ export class ProductionTable { }, model: [] }; + this.filteredField = null; + this.filteredReverse = null; } get checkAll() { return this._checkAll; @@ -21,7 +23,7 @@ export class ProductionTable { this._checkAll = value; } set tickets(value) { - this._tickets = value; + this._tickets = this.filteredField ? this.$filter('orderBy')(value, this.filteredField, this.filteredReverse) : value; this.totalFilter = this._tickets.length; this.pageTable.filter.page = 1; this.pageTickets(); @@ -30,8 +32,9 @@ export class ProductionTable { return this._tickets; } onOrder(field, order) { - let reverse = order === 'DESC'; - this.tickets = this.$filter('orderBy')(this.tickets, field, reverse); + this.filteredField = field; + this.filteredReverse = order === 'DESC'; + this.tickets = this.tickets; // call tickets setter } pageTickets() { let init = (this.pageTable.filter.page - 1) * this.itemsDisplayedInList; diff --git a/client/salix/src/components/left-menu/actions.js b/client/salix/src/components/left-menu/actions.js index 4d4d6ee6d8..30d379df13 100644 --- a/client/salix/src/components/left-menu/actions.js +++ b/client/salix/src/components/left-menu/actions.js @@ -9,7 +9,7 @@ export default class MenuActions { switchItem() { if (!this.items || !this.items.length) return; - let stateName = this.$state.current.name.replace('create', 'list').replace('edit', 'list'); + let stateName = this.$state.current.name.replace('.create', '.list').replace('.edit', '.list'); for (let i = 0; i < this.items.length; i++) { this.items[i].active = (this.items[i].href === stateName); diff --git a/client/salix/src/configroutes.js b/client/salix/src/configroutes.js index 1d79c5bc24..e5ab72fb88 100644 --- a/client/salix/src/configroutes.js +++ b/client/salix/src/configroutes.js @@ -47,9 +47,8 @@ function config($stateProvider, $urlRouterProvider, aclServiceProvider, modulesF for (let i = 0; i < count; i++) { let route = fileRoutes[i]; if (aclService.routeHasPermission(route)) { - $stateProvider.state(route.state, { + let configRoute = { url: route.url, - abstract: route.abstract || false, template: `<${route.component} ${getParams(route)}>`, resolve: { loader: loader(moduleName, validations) @@ -57,7 +56,13 @@ function config($stateProvider, $urlRouterProvider, aclServiceProvider, modulesF data: { routes: fileRoutes } - }); + }; + if (route.abstract) + configRoute.abstract = true; + if (route.routeParams) + configRoute.params = route.routeParams; + + $stateProvider.state(route.state, configRoute); } else if (route.state === mainModule.state) { break; } diff --git a/services/auth/server/boot/routes.js b/services/auth/server/boot/routes.js index 9aa76896b3..3812a50fb5 100644 --- a/services/auth/server/boot/routes.js +++ b/services/auth/server/boot/routes.js @@ -88,29 +88,4 @@ module.exports = function(app) { User.logout(req.accessToken.id, () => res.redirect('/')); }); - - app.get('/validateToken', function(req, res) { - let token = req.headers.authorization; - - validateToken(token, function(isValid) { - if (isValid) { - res.status(200); - } else { - res.status(401).json({ - message: 'Invalid token' - }); - } - }); - }); - - function validateToken(tokenId, cb) { - app.models.AccessToken.findById(tokenId, function(err, token) { - if (token) { - token.validate(function (err, isValid) { - cb(isValid === true, token); - }); - } else - cb(false); - }); - } }; diff --git a/services/client/common/methods/client/activate.js b/services/client/common/methods/client/activate.js index 9d78d0d63b..279baffbff 100644 --- a/services/client/common/methods/client/activate.js +++ b/services/client/common/methods/client/activate.js @@ -49,7 +49,7 @@ module.exports = function(Client) { method: 'POST', headers: { 'content-type': 'application/json', - 'authorization': ctx.req.headers.authorization + 'Authorization': ctx.req.headers.authorization }, json: {} }; diff --git a/services/client/common/methods/client/before-save.js b/services/client/common/methods/client/before-save.js index 470b7ba3fa..b761a71f12 100644 --- a/services/client/common/methods/client/before-save.js +++ b/services/client/common/methods/client/before-save.js @@ -116,12 +116,7 @@ module.exports = function(Client) { } function maxCb(_, instances) { - if (!instances) { - done(generateErrorCredit()); - return; - } - - if (instances.length !== 1 || instances[0].employeeFk == userId || instances[0].amount > 0) { + if (!instances || instances.length !== 1 || instances[0].employeeFk == userId || instances[0].amount > 0) { done(); return; } diff --git a/services/client/common/methods/greuge/filter.js b/services/client/common/methods/greuge/filter.js new file mode 100644 index 0000000000..dba4e8ef68 --- /dev/null +++ b/services/client/common/methods/greuge/filter.js @@ -0,0 +1,20 @@ +module.exports = Self => { + Self.installMethod('filter', filterParams); + + function filterParams(params) { + return { + where: { + clientFk: params.clientFk + }, + skip: (params.page - 1) * params.size, + limit: params.size, + order: params.order || 'shipped DESC', + include: { + relation: "greugeType", + scope: { + fields: ["id", "name"] + } + } + }; + } +}; diff --git a/services/client/common/methods/greuge/totalGreuge.js b/services/client/common/methods/greuge/totalGreuge.js new file mode 100644 index 0000000000..8497464937 --- /dev/null +++ b/services/client/common/methods/greuge/totalGreuge.js @@ -0,0 +1,34 @@ +module.exports = Self => { + Self.remoteMethod('sumAmount', { + description: 'returns sum greuge.ammount from client', + accessType: 'READ', + accepts: [{ + arg: 'id', + type: 'number', + required: true, + description: 'clientFk', + http: {source: 'path'} + }], + returns: { + arg: 'sumAmount' + }, + http: { + path: `/:id/sumAmount`, + verb: 'get' + } + }); + + Self.sumAmount = (clientFk, callback) => { + let query = `SELECT sum(amount) as sumAmount FROM vn.greuge WHERE clientFk = ?`; + Self.rawSql(query, [clientFk], callback).then(response => { + if (response.length) { + callback(null, response[0].sumAmount); + } else { + callback(null, 0); + } + }) + .catch(reject => { + callback(reject, null); + }); + }; +}; diff --git a/services/client/common/models/client-credit.js b/services/client/common/models/client-credit.js new file mode 100644 index 0000000000..7205be03ee --- /dev/null +++ b/services/client/common/models/client-credit.js @@ -0,0 +1,31 @@ +module.exports = function(Self) { + Self.installMethod('filter', filterParams, filterResults); + + function filterParams(params) { + return { + where: { + clientFk: params.clientFk + }, + skip: (params.page - 1) * params.size, + limit: params.size, + order: params.order || 'created DESC', + include: { + relation: "employee", + scope: { + fields: ["id", "name", "surname"] + } + } + }; + } + + function filterResults(instances) { + let result = JSON.parse(JSON.stringify(instances)); + if (result && result.instances && result.instances.length) { + result.instances.forEach((element, i) => { + result.instances[i].employee.name = `${element.employee.name} ${element.employee.surname}`; + delete result.instances[i].employee.surname; + }); + } + return result; + } +}; diff --git a/services/client/common/models/client-credit.json b/services/client/common/models/client-credit.json index f6512bfc78..26a1733ad6 100644 --- a/services/client/common/models/client-credit.json +++ b/services/client/common/models/client-credit.json @@ -1,5 +1,5 @@ { - "name": "ClientCredit", + "name": "clientCredit", "base": "VnModel", "validateUpsert": true, "properties": { diff --git a/services/client/common/models/greuge-type.json b/services/client/common/models/greuge-type.json new file mode 100644 index 0000000000..151aea5a6d --- /dev/null +++ b/services/client/common/models/greuge-type.json @@ -0,0 +1,14 @@ +{ + "name": "greugeType", + "base": "VnModel", + "properties": { + "id": { + "id": true, + "type": "Number", + "description": "Identifier" + }, + "name": { + "type": "String" + } + } + } \ No newline at end of file diff --git a/services/client/common/models/greuge.js b/services/client/common/models/greuge.js new file mode 100644 index 0000000000..7bacecc4e2 --- /dev/null +++ b/services/client/common/models/greuge.js @@ -0,0 +1,4 @@ +module.exports = function(Self) { + require('../methods/greuge/filter.js')(Self); + require('../methods/greuge/totalGreuge.js')(Self); +}; diff --git a/services/client/common/models/greuge.json b/services/client/common/models/greuge.json new file mode 100644 index 0000000000..2c00f9f738 --- /dev/null +++ b/services/client/common/models/greuge.json @@ -0,0 +1,35 @@ +{ + "name": "greuge", + "base": "VnModel", + "properties": { + "id": { + "id": true, + "type": "Number", + "description": "Identifier" + }, + "description": { + "type": "String" + }, + "amount": { + "type": "Number" + }, + "shipped": { + "type": "date" + }, + "created": { + "type": "date" + } + }, + "relations": { + "client": { + "type": "belongsTo", + "model": "Client", + "foreignKey": "clientFk" + }, + "greugeType": { + "type": "belongsTo", + "model": "greugeType", + "foreignKey": "greugeTypeFk" + } + } + } \ No newline at end of file diff --git a/services/client/common/validations/validateDni.js b/services/client/common/validations/validateDni.js index ab90086057..94b595f096 100644 --- a/services/client/common/validations/validateDni.js +++ b/services/client/common/validations/validateDni.js @@ -1,4 +1,7 @@ module.exports = fi => { + if (fi === undefined || fi === null) { + return true; + } let dni = fi; let getLetterDni = dni => { const regExpDni = 'TRWAGMYFPDXBNJZSQVHLCKE'; diff --git a/services/client/server/model-config.json b/services/client/server/model-config.json index 3c9c2199d2..c95fb15c76 100644 --- a/services/client/server/model-config.json +++ b/services/client/server/model-config.json @@ -27,8 +27,8 @@ "Client": { "dataSource": "vn" }, - "ClientCredit": { - "dataSource": "salix" + "clientCredit": { + "dataSource": "vn" }, "ClientCreditLimit": { "dataSource": "salix" @@ -59,5 +59,11 @@ }, "CreditClassification": { "dataSource": "salix" + }, + "greuge": { + "dataSource": "vn" + }, + "greugeType": { + "dataSource": "vn" } } diff --git a/services/loopback/common/models/vn-model.js b/services/loopback/common/models/vn-model.js index 3305cb67de..30f3582043 100644 --- a/services/loopback/common/models/vn-model.js +++ b/services/loopback/common/models/vn-model.js @@ -130,7 +130,7 @@ module.exports = function(Self) { }; }; - Self.installMethod = function(methodName, filterCb) { + Self.installMethod = function(methodName, filterCb, filterResult) { this.remoteMethod(methodName, { description: 'List items using a filter', accessType: 'READ', @@ -161,8 +161,12 @@ module.exports = function(Self) { var response = {}; function returnValues() { - if (response.instances !== undefined && response.count !== undefined) - cb(null, response); + if (response.instances !== undefined && response.count !== undefined) { + if (filterResult) + cb(null, filterResult(response)); + else + cb(null, response); + } } function error() { diff --git a/services/mailer/application/auth.js b/services/mailer/application/auth.js index ee8f114e13..7e9457537f 100644 --- a/services/mailer/application/auth.js +++ b/services/mailer/application/auth.js @@ -1,4 +1,5 @@ var database = require('./database.js'); +let config = require('./config.js'); module.exports = { @@ -31,7 +32,23 @@ module.exports = { if (this.isTokenExpired(token.created, token.ttl)) return this.response.status(401).send({message: 'Token expired'}); - this.request.userId = token.userId; + // Set proxy host + let host = this.request.headers.host.split(':')[0]; + let proxy; + + if (host == '127.0.0.1') + proxy = config.proxy.localhost; + else if (process.env.NODE_ENV == 'production') + proxy = config.proxy.salix; + else if (process.env.NODE_ENV == 'development') + proxy = config.proxy.testSalix; + + this.request.proxyHost = `http://${proxy.host}:${proxy.port}`; + this.request.user = { + id: token.userId, + token: this.getToken() + } + this.next(); }); }, diff --git a/services/mailer/application/config.js b/services/mailer/application/config.js new file mode 100644 index 0000000000..1442e85edb --- /dev/null +++ b/services/mailer/application/config.js @@ -0,0 +1,18 @@ +var path = require('path'); +var fs = require('fs'); +var config = {}; + +let devConfigPath = path.join(__dirname, '/config/datasources.development.json'); +let configPath = path.join(__dirname, '/config/datasources.json'); + +try { + config = Object.assign(require(configPath), require(devConfigPath)); +} catch (e) { + if (e.code == 'MODULE_NOT_FOUND') + config = require(configPath); +} + +config.proxy = require('../../nginx/config.json'); +config.package = require('../package.json'); + +module.exports = config; \ No newline at end of file diff --git a/services/mailer/application/config/app.json b/services/mailer/application/config/app.json deleted file mode 100644 index c9ec4174b9..0000000000 --- a/services/mailer/application/config/app.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "MailServer", - "version": "1.0.0", - "port": 3003, - "debug": false, - "defaultLanguage": "es", - "senderMail": "noreply@localhost", - "senderName": "" -} \ No newline at end of file diff --git a/services/mailer/application/config/app.test.json b/services/mailer/application/config/app.test.json deleted file mode 100644 index c9ec4174b9..0000000000 --- a/services/mailer/application/config/app.test.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "MailServer", - "version": "1.0.0", - "port": 3003, - "debug": false, - "defaultLanguage": "es", - "senderMail": "noreply@localhost", - "senderName": "" -} \ No newline at end of file diff --git a/services/mailer/application/config/datasources.json b/services/mailer/application/config/datasources.json new file mode 100644 index 0000000000..69943439d3 --- /dev/null +++ b/services/mailer/application/config/datasources.json @@ -0,0 +1,29 @@ +{ + "app": { + "port": 3003, + "debug": false, + "defaultLanguage": "es", + "senderMail": "noreply@localhost", + "senderName": "" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "smtp": { + "host": "localhost", + "port": 465, + "secure": true, + "auth": { + "user": "noreply", + "pass": "" + }, + "tls": { + "rejectUnauthorized": false + }, + "pool": true + } +} \ No newline at end of file diff --git a/services/mailer/application/config/datasources.test.json b/services/mailer/application/config/datasources.test.json new file mode 100644 index 0000000000..69943439d3 --- /dev/null +++ b/services/mailer/application/config/datasources.test.json @@ -0,0 +1,29 @@ +{ + "app": { + "port": 3003, + "debug": false, + "defaultLanguage": "es", + "senderMail": "noreply@localhost", + "senderName": "" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "smtp": { + "host": "localhost", + "port": 465, + "secure": true, + "auth": { + "user": "noreply", + "pass": "" + }, + "tls": { + "rejectUnauthorized": false + }, + "pool": true + } +} \ No newline at end of file diff --git a/services/mailer/application/config/mysql.json b/services/mailer/application/config/mysql.json deleted file mode 100644 index ddfd88bede..0000000000 --- a/services/mailer/application/config/mysql.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "host": "localhost", - "port": 3306, - "user": "reports", - "password": "", - "database": "" -} \ No newline at end of file diff --git a/services/mailer/application/config/mysql.test.json b/services/mailer/application/config/mysql.test.json deleted file mode 100644 index 5b00829b39..0000000000 --- a/services/mailer/application/config/mysql.test.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "host": "localhost", - "port": 3306, - "user": "root", - "password": "", - "database": "vn" -} \ No newline at end of file diff --git a/services/mailer/application/config/smtp.json b/services/mailer/application/config/smtp.json deleted file mode 100644 index 1ffa810243..0000000000 --- a/services/mailer/application/config/smtp.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "host": "localhost", - "port": 465, - "secure": true, - "auth": { - "user": "noreply", - "pass": "" - }, - "tls": { - "rejectUnauthorized": false - }, - "pool": true -} \ No newline at end of file diff --git a/services/mailer/application/database.js b/services/mailer/application/database.js index 53ce363f89..4fe4a0ba95 100644 --- a/services/mailer/application/database.js +++ b/services/mailer/application/database.js @@ -1,5 +1,5 @@ var mysql = require('mysql'); -let settings = require('./settings.js'); +let config = require('./config.js'); module.exports = { /** @@ -11,12 +11,12 @@ module.exports = { * Start database pool */ init: function() { - this.pool = mysql.createPool(settings.mysql()); + this.pool = mysql.createPool(config.mysql); this.pool.getConnection(function(error, connection) { if (error) { throw new Error('Can\'t connect to database: ' + error.code); - } else if (settings.app().debug) { + } else if (config.app.debug) { console.log('Database connection stablished'); } }); @@ -27,7 +27,7 @@ module.exports = { */ testEmail: function() { this.pool.query('SELECT fakeEmail as email FROM vn.config', function(error, qryRs) { - settings.testEmail = qryRs[0].email; + config.smtp.testEmail = qryRs[0].email; }); } }; diff --git a/services/mailer/application/locale.js b/services/mailer/application/locale.js index 496d48bb87..f9737fea32 100644 --- a/services/mailer/application/locale.js +++ b/services/mailer/application/locale.js @@ -1,5 +1,5 @@ var fs = require('fs'); -var settings = require('./settings.js'); +var config = require('./config.js'); var path = require('path'); module.exports = { @@ -11,7 +11,7 @@ module.exports = { */ load: function(template, countryCode, cb) { var localeFile = path.join(__dirname, 'template', `${template}`, 'locale', `${countryCode}.json`); - var defaultLocaleFile = path.join(__dirname, 'template', `${template}`, 'locale', `${settings.app().defaultLanguage}.json`); + var defaultLocaleFile = path.join(__dirname, 'template', `${template}`, 'locale', `${config.app.defaultLanguage}.json`); fs.stat(localeFile, (error, stats) => { if (error) { diff --git a/services/mailer/application/mail.js b/services/mailer/application/mail.js index 4807157a9f..3980e51286 100644 --- a/services/mailer/application/mail.js +++ b/services/mailer/application/mail.js @@ -1,5 +1,5 @@ var nodemailer = require('nodemailer'); -var settings = require('./settings.js'); +var config = require('./config.js'); var template = require('./template.js'); var database = require('./database.js'); @@ -9,15 +9,15 @@ var database = require('./database.js'); module.exports = { transporter: null, /** - * Load mail settings. + * Load mail config. */ init: function() { - this.transporter = nodemailer.createTransport(settings.smtp()); + this.transporter = nodemailer.createTransport(config.smtp); this.transporter.verify(function(error, success) { if (error) { throw new Error(error); - } else if (settings.app().debug) { + } else if (config.app.debug) { console.log('SMTP connection stablished'); } }); @@ -34,15 +34,15 @@ module.exports = { */ send: function(recipient, subject, body, attachments, params, cb) { let mailOptions = { - from: '"' + settings.app().senderName + '" <' + settings.app().senderMail + '>', + from: '"' + config.app.senderName + '" <' + config.app.senderMail + '>', to: recipient, subject: subject, html: body, attachments }; - if (settings.app().debug) { - mailOptions.to = settings.testEmail; + if (config.app.debug) { + mailOptions.to = config.smtp.testEmail; } this.transporter.sendMail(mailOptions, (error, info) => { @@ -53,7 +53,7 @@ module.exports = { if (error) return cb(new Error('Email not sent: ' + error)); - if (settings.app().debug) + if (config.app.debug) console.log('Mail sent ' + info.messageId + ' [' + info.response + ']'); cb(); @@ -70,10 +70,16 @@ module.exports = { * @param {Object} cb - Callback */ sendWithTemplate: function(tplName, params, cb) { - template.get(tplName, params, false, (error, result) => { + template.get(tplName, params, (error, result) => { if (error) return cb(error); + // Custom attachments + if (params.attachments) + params.attachments.forEach(function(attachment) { + result.attachments.push(attachment); + }); + this.send(result.recipient, result.subject, result.body, result.attachments, params, error => { if (error) return cb(error); @@ -96,10 +102,10 @@ module.exports = { log: function(senderId, recipientId, sender, subject, body, plainTextBody, status) { let qry = `INSERT INTO mail(senderFk, recipientFk, sender, replyTo, subject, body, plainTextBody, sent, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`; - let qryParams = [senderId, recipientId, sender, settings.app().senderMail, subject, body, plainTextBody, 1, status]; + let qryParams = [senderId, recipientId, sender, config.app.senderMail, subject, body, plainTextBody, 1, status]; database.pool.query(qry, qryParams, function(error, result) { - if (settings.app().debug && error) + if (config.app.debug && error) console.log('Mail log: ' + error); }); } diff --git a/services/mailer/application/route/manuscript.js b/services/mailer/application/route/manuscript.js deleted file mode 100644 index b8c54d43b2..0000000000 --- a/services/mailer/application/route/manuscript.js +++ /dev/null @@ -1,85 +0,0 @@ -var express = require('express'); -var router = new express.Router(); -var mail = require('../mail.js'); -var template = require('../template.js'); -var httpRequest = require('request'); - -// Payment method changes -router.post('/payment-update/:clientId', function(request, response, next) { - mail.sendWithTemplate('payment-update', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Printer setup -router.post('/printer-setup/:clientId', function(request, response, next) { - mail.sendWithTemplate('printer-setup', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Printer setup preview -router.get('/printer-setup/:clientId', function(request, response, next) { - template.get('printer-setup', {recipient: request.params.clientId}, true, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); -}); - -// Client welcome -router.post('/client-welcome/:clientId', function(request, response, next) { - mail.sendWithTemplate('client-welcome', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); - -// Client welcome preview -router.get('/client-welcome/:clientId', function(request, response, next) { - template.get('client-welcome', {recipient: request.params.clientId}, true, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); -}); - -// Sepa core -/* router.post('/sepa-core/:clientId', function(request, response, next) { - var options = { - url: 'http://localhost:3008/manuscript/sepa-core/7422', - method: 'POST', - headers: { - 'authorization': request.headers.authorization - } - } - - let httpStream = httpRequest(options, function(error, httpResponse, body) { - if (error) - return response.status(400).json({message: httpResponse.message}); - }); - - if (httpStream) - mail.send('joan@verdnatura.es', 'Correu de prova', 'test message', [{filename: 'test.pdf', content: httpStream}], function(error, result) { - if (error) - return response.status(400).json({message: error.message}); - }); - /* mail.sendWithTemplate('sepa-core', {recipient: request.params.clientId}, error => { - if (error) - return response.status(400).json({message: error.message}); - - return response.json(); - }); -}); */ - -module.exports = router; diff --git a/services/mailer/application/route/notification.js b/services/mailer/application/route/notification.js index d33f6f07bc..bd7a81f112 100644 --- a/services/mailer/application/route/notification.js +++ b/services/mailer/application/route/notification.js @@ -1,8 +1,92 @@ var express = require('express'); var router = new express.Router(); +var config = require('../config.js'); var mail = require('../mail.js'); -var database = require('../database.js'); -var settings = require('../settings.js'); +var template = require('../template.js'); +var httpRequest = require('request'); + + +// Printer setup +router.post('/printer-setup/:clientId', function(request, response) { + mail.sendWithTemplate('printer-setup', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Printer setup preview +router.get('/printer-setup/:clientId', function(request, response) { + template.get('printer-setup', {clientId: request.params.clientId, isPreview: true}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); + +// Client welcome +router.post('/client-welcome/:clientId', function(request, response) { + mail.sendWithTemplate('client-welcome', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Client welcome preview +router.get('/client-welcome/:clientId', function(request, response) { + template.get('client-welcome', {clientId: request.params.clientId, isPreview: true}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); + +// Client SEPA CORE +router.post('/sepa-core/:clientId', function(request, response) { + let path = `${request.proxyHost}/print/manuscript/sepa-core/${request.params.clientId}`; + let options = { + url: path, + method: 'GET', + headers: { + 'Authorization': request.headers.authorization + } + } + + let httpStream = httpRequest(options, function(error, httpResponse, body) { + if (error || httpResponse.statusCode != 200) + return response.status(400).json({message: error.message}); + }); + + if (httpStream) + mail.sendWithTemplate('sepa-core', { + clientId: request.params.clientId, + attachments: [{filename: 'sepa-core.pdf', content: httpStream}] + }, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + +// Client SEPA CORE preview +router.get('/sepa-core/:clientId', function(request, response) { + template.get('sepa-core', { + clientId: request.params.clientId, + token: request.user.token, + isPreview: true + }, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); +}); // Single user notification /* router.post('/:recipient/noticeUserSend', function(request, response) { @@ -64,6 +148,16 @@ var settings = require('../settings.js'); }); }); */ +// Payment method changes +router.post('/payment-update/:clientId', function(request, response) { + mail.sendWithTemplate('payment-update', {clientId: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + // Send notification to alias creditInsurance on client deactivate router.post('/client-deactivate/:clientId', function(request, response) { var params = { diff --git a/services/mailer/application/router.js b/services/mailer/application/router.js index b51b8a195e..ed5794bbe6 100644 --- a/services/mailer/application/router.js +++ b/services/mailer/application/router.js @@ -1,15 +1,11 @@ var express = require('express'); var router = new express.Router(); -var settings = require('./settings.js'); // Mailer default page router.get('/', function(request, response) { response.json({}); }); -// Manuscripts -router.use('/manuscript', require('./route/manuscript.js')); - // Notifications router.use('/notification', require('./route/notification.js')); diff --git a/services/mailer/application/settings.js b/services/mailer/application/settings.js deleted file mode 100644 index 3858cf7193..0000000000 --- a/services/mailer/application/settings.js +++ /dev/null @@ -1,45 +0,0 @@ -var path = require('path'); -/** - * Módulo de configuración - */ -module.exports = { - /** - * Obtiene la configuración en función del entorno en el que se está - * ejecutando la aplicación. - * @param {String} name Nombre del fichero - * @return {Object} Objeto de configuración - */ - getConfig: function(name) { - let env = process.env.NODE_ENV; - - if (!env) - env = 'development'; - - return require(path.join(__dirname, 'config', `${name}.${env}.json`)); - }, - /** - * Configuración de la aplicación - * @return {Object} Objeto de configuración app - */ - app: function() { - return this.getConfig('app'); - }, - /** - * Configuración de smtp - * @return {Object} Objeto de configuración smtp - */ - smtp: function() { - return this.getConfig('smtp'); - }, - /** - * Configuración de mysql - * @return {Object} Objeto de configuración MySQL - */ - mysql: function() { - return this.getConfig('mysql'); - }, - - testEmail: function() { - return this.getConfig('app').testEmail; - } -}; diff --git a/services/mailer/application/template.js b/services/mailer/application/template.js index 382b7202d1..d2c13f2226 100644 --- a/services/mailer/application/template.js +++ b/services/mailer/application/template.js @@ -1,8 +1,8 @@ var fs = require('fs'); var mustache = require('mustache'); var locale = require('./locale.js'); -var path = require('path'); var inlineCss = require('inline-css'); +var path = require('path'); module.exports = { /** @@ -12,10 +12,10 @@ module.exports = { * @param {Object} params - Params * @param {Object} cb - Callback */ - get: function(template, params, isPreview, cb) { + get: function(template, params, cb) { var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); - var stylePath = path.join(__dirname, '../static', 'css', 'style.css'); + var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); fs.stat(templatePath, (error, stat) => { if (error) @@ -24,14 +24,26 @@ module.exports = { let TemplateClass = require(classPath); let instance = new TemplateClass(); - let getRenderedStyles = body => { + let getRenderedStyles = (error, body) => { + if (error) + return cb(error); + this.renderStyles(stylePath, body, (error, body) => { + if (error) + return cb(error); + + // Check if has a subject param params.subject = params.subject || instance.subject; - if (params.subject == undefined) - params.subject = body.match(new RegExp('(.*?)', 'i'))[1]; + if (params.subject == undefined) { + // Try to find a subject from Html source + let title = body.match(new RegExp('(.*?)', 'i')); - this.getAttachments(template, body, isPreview, (error, result) => { + if (title) + params.subject = title[1]; + } + + this.getAttachments(template, body, params.isPreview, (error, result) => { if (error) return cb(error); @@ -41,7 +53,7 @@ module.exports = { }; let getDataCb = () => { - this.render(templatePath, instance, (error, result) => getRenderedStyles(result)); + this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); }; instance.getData(params, (error, result) => { @@ -66,9 +78,54 @@ module.exports = { * @param {Object} cb - Callback */ render: function(path, data, cb) { - fs.readFile(path, 'utf8', function(error, body) { - mustache.parse(body); - cb(null, mustache.render(body, data)); + fs.readFile(path, 'utf8', (error, body) => { + // Find matching sub-templates + let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); + let subTpl = body.match(regexp); + + if (!subTpl) { + mustache.parse(body); + return cb(null, mustache.render(body, data)); + } + + let parentBody = body; + this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + if (error) + return cb(error); + + mustache.parse(body); + cb(null, mustache.render(body, data)); + }); + }); + }, + +/** + * Render sub-template + * @param {String} body - Raw body + * @param {Object} subTpl - Sub-template name + * @param {Object} data - Params + * @param {Object} regexp - Regexp + * @param {Object} cb - Callback + */ + renderSub: function(body, subTpl, data, regexp, cb) { + let index = 1; + + subTpl.forEach(keyName => { + subTplName = keyName.replace(regexp, '$1'); + + this.get(subTplName, data, (error, result) => { + if (error) + return cb(error); + + let subTplBody = result.body; + body = body.replace(keyName, subTplBody); + + if (index === subTpl.length) + cb(null, body); + + index++; + }); + }); }, @@ -78,18 +135,25 @@ module.exports = { * @param {String} body - Rendered html * @param {Object} cb - Callback */ - renderStyles: function(path, html, cb) { - fs.stat(path, error => { - if (error) return cb(new Error('Template stylesheet not found')); - fs.readFile(path, 'utf8', (error, css) => { - let style = ''; - let body = style + html; - let options = {url: ' '}; + renderStyles: function(stylePath, html, cb) { + // Common components + let comPath = path.join(__dirname, '../', 'static', 'css', 'component.css'); - inlineCss(body, options) - .then(function(body) { - cb(null, body); - }); + fs.readFile(comPath, 'utf8', (error, comCss) => { + fs.stat(stylePath, error => { + if (error) + return cb(new Error('Template stylesheet not found')); + + fs.readFile(stylePath, 'utf8', (error, css) => { + let style = ''; + let body = style + html; + let options = {url: ' '}; + + inlineCss(body, options) + .then(function(body) { + cb(null, body); + }); + }); }); }); }, @@ -104,6 +168,9 @@ module.exports = { let attachments = []; let tplAttachments = body.match(new RegExp('src="cid:(.*?)"', 'ig')); + if (!tplAttachments) + tplAttachments = {}; + // Template default attachments for (var i = 0; i < tplAttachments.length; i++) { let name = tplAttachments[i].replace('src="cid:', '').replace('"', ''); @@ -125,7 +192,7 @@ module.exports = { fs.stat(attachmentsPath, (error, stats) => { if (error) - return cb(new Error(`Could not load attachments.js from template ${template}`)); + return cb(null, {body: body, attachments: attachments}); let attachObj = require(attachmentsPath); @@ -145,10 +212,10 @@ module.exports = { }, /** - * Check all template attachments - * @param {Object} attachments - Attachments object - * @param {Object} cb - Callback - */ +* Check all template attachments +* @param {Object} attachments - Attachments object +* @param {Object} cb - Callback +*/ checkAttachments: function(attachments, cb) { for (var i = 0; i < attachments.length; i++) { var attachment = attachments[i]; @@ -159,4 +226,4 @@ module.exports = { } cb(); } -}; +}; \ No newline at end of file diff --git a/services/mailer/application/template/client-welcome/client-welcome.js b/services/mailer/application/template/client-welcome/client-welcome.js index 851c9a12e9..469e743860 100644 --- a/services/mailer/application/template/client-welcome/client-welcome.js +++ b/services/mailer/application/template/client-welcome/client-welcome.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class ClientWelcome { getData(params, cb) { let query = `SELECT + c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(wu.name, '@verdnatura.es') AS email, @@ -17,7 +18,7 @@ module.exports = class ClientWelcome { LEFT JOIN account.user wu ON wu.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/client-welcome/index.html b/services/mailer/application/template/client-welcome/index.html index 661f0986ae..a8a711c8e1 100644 --- a/services/mailer/application/template/client-welcome/index.html +++ b/services/mailer/application/template/client-welcome/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,108 +19,47 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

- -

- Sus datos para poder comprar en la web de verdnatura (https://www.verdnatura.es) - o en nuestras aplicaciones para iOS (https://goo.gl/3hC2mG) y Android (https://goo.gl/8obvLc), son: -

- +

{{_.dear}}

+

{{{_.bodyDescription}}}

-

Usuario: {{userName}}
-
Contraseña: ******** (Va a recibir un correo para establecer la contraseña)
+
{{_.user}} {{userName}}
+
{{_.password}} ******** {{_.passwordResetText}}

-

Cómo hacer un pedido

- -

Para realizar un pedido en nuestra web, debe configurarlo indicando:

- +

{{_.sectionHowToBuyTitle}}

+

{{_.sectionHowToBuyDescription}}

    -
  1. Si quiere recibir el pedido (por agencia o por nuestro propio reparto) o si lo prefiere recoger en alguno de nuestros almacenes.
  2. -
  3. La fecha en la que quiera recibir el pedido (se preparará el día anterior).
  4. -
  5. La dirección de entrega o el almacén donde quiera recoger el pedido.
  6. +
  7. {{_.sectionHowToBuyRequeriment1}}
  8. +
  9. {{_.sectionHowToBuyRequeriment2}}
  10. +
  11. {{_.sectionHowToBuyRequeriment3}}
- -

En nuestra web y aplicaciones puedes visualizar el stock disponible de flor cortada, verdes, plantas, complementos y artificial. - Tenga en cuenta que dicho stock puede variar en función de la fecha seleccionada al configurar el pedido. Es importante CONFIRMAR los pedidos para que la mercancía quede reservada.

- -

El reparto se realiza de lunes a sábado según la zona en la que se encuentre. Por regla general, los pedidos que se entregan por agencia, deben estar confirmados y pagados antes de las 17h - del día en que se preparan (el día anterior a recibirlos), aunque esto puede variar si el pedido se envía a través de nuestro reparto y según la zona.

- -

Cómo pagar

- -

Las formas de pago admitidas en Verdnatura son

- +

{{_.sectionHowToBuyStock}}

+

{{_.sectionHowToBuyDelivery}}

+ +

{{_.sectionHowToPayTitle}}

+

{{_.sectionHowToPayDescription}}

    -
  • Con tarjeta a través de nuestra plataforma web (al confirmar el pedido).
  • -
  • Mediante giro bancario mensual, modalidad que hay que solicitar y tramitar.
  • +
  • {{{_.sectionHowToPayOption1}}}
  • +
  • {{{_.sectionHowToPayOption2}}}
-

Cosas a tener en cuenta

- -

Verdnatura vende EXCLUSIVAMENTE a profesionales, por lo que debe remitirnos el Modelo 036 ó 037, - para comprobar que está dado/a de alta en el epígrafe correspondiente al comercio de flores.

- -

POLÍTICA DE RECLAMACIONES

- -

Verdnatura aceptará las reclamaciones que se realicen dentro de los dos días naturales - siguientes a la recepción del pedido (incluyendo el mismo día de la recepción). Pasado este plazo no se aceptará ninguna reclamación.

- -

Cualquier duda que le surja, no dude en consultarla, ¡estamos para atenderle!

+

{{_.sectionToConsiderTitle}}

+

{{_.sectionToConsiderDescription}}

+

{{_.sectionClaimsPolicyTitle}}

+

{{_.sectionClaimsPolicyDescription}}

+

{{{_.doubtsText}}}

{{{salesPersonName}}} {{{salesPersonPhone}}} {{{salesPersonEmail}}}

- -
- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/client-welcome/locale/es.json b/services/mailer/application/template/client-welcome/locale/es.json index c99fe0c8ea..b1149d62b3 100644 --- a/services/mailer/application/template/client-welcome/locale/es.json +++ b/services/mailer/application/template/client-welcome/locale/es.json @@ -1,14 +1,28 @@ { "subject": "¡Le damos la bienvenida!", "title": "¡LE DAMOS LA BIENVENIDA!", - "dear": "Estimado cliente", - "bodyDescription": "Siga las intrucciones especificadas en este correo para llevar a cabo la instalación de la impresora.", + "dear": "Estimado cliente,", + "bodyDescription": "Sus datos para poder comprar en la web de verdnatura (https://www.verdnatura.es) o en nuestras aplicaciones para iOS y Android (Ver tutorial de uso), son:", + "user": "Usuario:", + "password": "Contraseña:", + "passwordResetText": "(Va a recibir un correo para establecer la contraseña)", + "sectionHowToBuyTitle": "Cómo hacer un pedido", + "sectionHowToBuyDescription": "Para realizar un pedido en nuestra web, debe configurarlo indicando:", + "sectionHowToBuyRequeriment1": "Si quiere recibir el pedido (por agencia o por nuestro propio reparto) o si lo prefiere recoger en alguno de nuestros almacenes.", + "sectionHowToBuyRequeriment2": "La fecha en la que quiera recibir el pedido (se preparará el día anterior).", + "sectionHowToBuyRequeriment3": "La dirección de entrega o el almacén donde quiera recoger el pedido.", + "sectionHowToBuyStock": "En nuestra web y aplicaciones puedes visualizar el stock disponible de flor cortada, verdes, plantas, complementos y artificial. Tenga en cuenta que dicho stock puede variar en función de la fecha seleccionada al configurar el pedido. Es importante CONFIRMAR los pedidos para que la mercancía quede reservada.", + "sectionHowToBuyDelivery": "El reparto se realiza de lunes a sábado según la zona en la que se encuentre. Por regla general, los pedidos que se entregan por agencia, deben estar confirmados y pagados antes de las 17h del día en que se preparan (el día anterior a recibirlos), aunque esto puede variar si el pedido se envía a través de nuestro reparto y según la zona.", + "sectionHowToPayTitle": "Cómo pagar", + "sectionHowToPayDescription": "Las formas de pago admitidas en Verdnatura son:", + "sectionHowToPayOption1": "Con tarjeta a través de nuestra plataforma web (al confirmar el pedido).", + "sectionHowToPayOption2": "Mediante giro bancario mensual, modalidad que hay que solicitar y tramitar.", + "sectionToConsiderTitle": "Cosas a tener en cuenta", + "sectionToConsiderDescription": "Verdnatura vende EXCLUSIVAMENTE a profesionales, por lo que debe remitirnos el Modelo 036 ó 037, para comprobar que está dado/a de alta en el epígrafe correspondiente al comercio de flores.", + "sectionClaimsPolicyTitle": "POLÍTICA DE RECLAMACIONES", + "sectionClaimsPolicyDescription": "Verdnatura aceptará las reclamaciones que se realicen dentro de los dos días naturales siguientes a la recepción del pedido (incluyendo el mismo día de la recepción). Pasado este plazo no se aceptará ninguna reclamación.", + "doubtsText": "Cualquier duda que le surja, no dude en consultarla, ¡estamos para atenderle!", "salesPersonNameText": "Soy tu comercial y mi nombre es", "salesPersonPhoneText": "Teléfono y whatsapp", - "salesPersonEmailText": "Dirección de e-mail", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "salesPersonEmailText": "Dirección de e-mail" } \ No newline at end of file diff --git a/services/mailer/application/template/client-welcome/static/css/style.css b/services/mailer/application/template/client-welcome/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/footer/footer.js b/services/mailer/application/template/footer/footer.js new file mode 100644 index 0000000000..3b4020bf45 --- /dev/null +++ b/services/mailer/application/template/footer/footer.js @@ -0,0 +1,20 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class Footer { + getData(params, cb) { + let query = `SELECT + socialName + FROM client c + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/mailer/application/template/footer/index.html b/services/mailer/application/template/footer/index.html new file mode 100644 index 0000000000..e52f7a6959 --- /dev/null +++ b/services/mailer/application/template/footer/index.html @@ -0,0 +1,42 @@ + + + + + + + + + +
+

{{_.fiscalAddress}}

+

{{_.privacy}}

+

{{_.privacyLaw}}

+
+ \ No newline at end of file diff --git a/services/mailer/application/template/footer/locale/es.json b/services/mailer/application/template/footer/locale/es.json new file mode 100644 index 0000000000..1ad532d343 --- /dev/null +++ b/services/mailer/application/template/footer/locale/es.json @@ -0,0 +1,7 @@ +{ + "actionButton": "Visita nuestra Web", + "infoButton": "Ayúdanos a mejorar", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/mailer/static/css/style.css b/services/mailer/application/template/footer/static/css/style.css similarity index 58% rename from services/mailer/static/css/style.css rename to services/mailer/application/template/footer/static/css/style.css index 1243a091c8..f35364e8c3 100644 --- a/services/mailer/static/css/style.css +++ b/services/mailer/application/template/footer/static/css/style.css @@ -1,41 +1,3 @@ -img { - margin: 0 -} - -.wrapper { - background-color: #EEE -} - -.container { - font-family: arial, sans-serif; - max-width: 600px; - min-width: 320px; - font-size: 16px; - margin: 0 auto; - color: #555 -} - -.banner img { - width: 100% -} - -.title { - background-color: #95d831; - text-align: center; - padding: 35px 0 -} - -.title h1 { - font-size: 32px; - color: #333; - margin: 0 -} - -.body { - background-color:#FFF; - padding: 20px -} - .buttons { background-color: #FFF; text-align: center; diff --git a/services/mailer/application/template/footer/static/image/action.png b/services/mailer/application/template/footer/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/footer/static/image/linkedin.png b/services/mailer/application/template/footer/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/mailer/application/template/footer/static/image/pinterest.png b/services/mailer/application/template/footer/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/footer/static/image/youtube.png b/services/mailer/application/template/footer/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/mailer/application/template/header/index.html b/services/mailer/application/template/header/index.html new file mode 100644 index 0000000000..c5234bbc89 --- /dev/null +++ b/services/mailer/application/template/header/index.html @@ -0,0 +1,3 @@ +
+ VerdNatura +
diff --git a/services/mailer/application/template/header/locale/es.json b/services/mailer/application/template/header/locale/es.json new file mode 100644 index 0000000000..7a73a41bfd --- /dev/null +++ b/services/mailer/application/template/header/locale/es.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/services/mailer/application/template/header/static/css/style.css b/services/mailer/application/template/header/static/css/style.css new file mode 100644 index 0000000000..4ea8ee36dd --- /dev/null +++ b/services/mailer/application/template/header/static/css/style.css @@ -0,0 +1,3 @@ +.banner img { + width: 100% +} \ No newline at end of file diff --git a/services/mailer/application/template/header/static/image/action.png b/services/mailer/application/template/header/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 zcmV;K3}*9*P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005RNklB!xsl#Vcw+EEJE;Iv`=@keuvsRh#uO{P#C|_F8M^)a!LqV`G1R zW%3JgCZLTN#EwIh;;ZU8_4{ zd;2oYV`!$(={TN;%b8KKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009mNklFVGKj2CUnt&S0N||3ZzjPj0$HW8b!@j?Lx?nEAO(+ zfPaFk*=V3GT+B{e#6(O+<;tvugcTJUj09T9ZED7(PYa)k<5g_t{Fr;scXK%}_x(QK z`<&;!@AD&30_p&;6W9}<&jMS3Cx8t22e=LV0{j460xkfTQc8D=+D!$;jsoujZvl@3 zUjP?@?|`3x4zLKU2L^#>fNj7_z{|j2zzlFIrSvs*Lfx&-s&~}0>OOVdDmm80zO%tI ztM0Bt>?ZXCbxA#;Zmx*86?{wT8Ff=tf+y5@bxs|r=?#tq|GYX;mh7mysJ^FWHHTgn zc9ztmMMv$Uk{UCC+wO+7{* zKs^?ET95kDdG$Pfghy&p4@4Zb`b=~ybRD?w8dno=890|xI$nXH?Z7+0)?EH^9e6*b zG+%)4IPfMgno@FkaZ3Y-Q$R|iq|tG`BEm-Y0kUEZCk@Ia=}xjzHO zfw}(zyd1jolRv8x9s1^g@d4lk;FFSG7zW0ID~~Peq2(WtQu?^0_OF1~QLm{7ONu_^ z|Kr;VLgb)&Edw?JH`d^uxLEou4K`s znyBI$uQ{(yz-z##%c6&XU48E5U7_={ETz-|J_HW;x#+`Dq;&EXc3t&Nfh{+`0*z%ROJN$jj}}H{004w%IL&#x`pj*%r%fXsewbHy}GJZb0TX_Nvu8 z8Fr_N67-^}zF4@a-W6MGIldULinOjl(dJqPMO{YvVkB2|`1vAmg!_k|Uvh8w`7Krl$9;*o$Z}0?H$NuB_zlk!1m@=HfA7@`*OCLg}T}iuF&23wYYq^ zf3m#2Dh@oEs(6$?b^;9pIRd&|IC=gOj!F-Pq$D)aa9%i6Y^;AYjtUcUB;q36E_p$0 zP+@rF=+l;0q4j+G-TuVuj|Jg_%B$?}Q*hnz$f+`%D%}3aW#S|ln?XbUgIl{Sq5+6h z4j^>+@22EVFO(3VdtX68Mv88@P7s9q91=XJTQRGfjX3NL?N~fR7s5XnqT4xvPafVM z8zkx(D_#N;m4fikPNz`=E|Y-x94|r6#cTs zEm{oNJ1Urtu^%#{uQ-Y+BE%Ev2dHP?Ot&|fo}h#`xIwjFgdw~Vn7`?nK;6pIqH8&K zZ{LAHmu>bvKk4A1{4ImFrrh2xL|&xxs6qbbvWbo$kp2fM7WL8ZB17;X(1*MLhFUSA z>mGcjZdl?TnAIMnXG5M~ajO1aaddG+Q-5NxA$?__I9=#O?K=iT)}Ny9xVlv=Lz5g( zS$Z{^QH31P9*y90dg$5%5TM0|;jxU!m%|~9Bef`F;qfv;?#X*(pfRJU$VS4kRVd^W zxMkQ?Bh|??WZqp0fg$Q#h(BL9$R`Nm5aELDIsZR*UP z8HbyfH4Sbc6pH4_KbWqtL|cv%mKb8|KE#LP?6+ZK8SE3U<6}ZdG8wC*s6?(9B&_{Z z3Dp*HV=`6e28|gY*^R&h?IuoUL?R}mrJ(h3QRW*NF%=iaG6F9GRIo}fEk)8d`39O+ zjE8=FV-EH(Eg2@tdCWL0R&=j$iGE%x%m@h%+Lm}o*}5Y2S*J)>v}l;WF|7k;gH?z-M(GUU7}s`OC7{)V^PPVd$nyk)zL3<1bgUvTzjx)=^SDj zg_){r-}2QlxZ^&HSLHXV)~JMi!{Tzu562zBj-j1r0yG!$+@N05aNhi^gPhF_DeP(m;lMKGk!#>;+^evpBdVXvXZ z(8%D8lQ4>yB9}swLd3wTURGXGzFv-`aiuY)9#^KX=2I=D!Kt=WhVV1BLZdue`9zIK z&7$o6x3F@HZ}#dUMZVfE5wO~Q3VlivMJjo920QJ8WJo3i-`$zWtx+mMT>`lKY3e4H zyj>aE(qG=SMG2Lc3Moir@nuVf_>?_N5{b5Vk97VLLqD%cg| zNqoTpZby5;cdSDze^ey&`a~s)jZ%!#wt^E{W&{g=NySK^MOzK(?ojR64%!YD(!kP? z)5t3xE1qYnDz=o+m%LYauP`(*K2b0+pTV6a#J<3Bkadu?khRfd_}Tq4Q{%VBW;5CP z-OnZ3=Z)=lA)ooRi?uX9>wTB1%C4fGZ>wr6#VBq0nDntCXWpW(_D|zTV_6eH?cO5n zN_C@cqmPk=F`h-!Ky}}FQb&?ct53{}5FAR_5^BY}&+mMl8o<~Bp9I!3C%>MH_zYa9 z9c9=4i0&Xr4_qs{3w-8U?;sj@dCf|Q%WX1!7At0bWmVDaOC zlGTJYL9=S1wyD^y{LbhCPxw|CoVz2uBgnhXv94_}&fDEI+%%@tXP;vbvLWF|`DXg& z`8ES8^{0lgfQkqZ3($dly7%-Z?}`->STVb;UpfMWzi23(*V}iFF9qBAj7Q<93@_m2lel@c1G1!+Mql zyApp5vm7^ra5>8t!DZf7u2zvj7IW?KUs~B(vNrO>{45OBJa#sn8_#D~VcXf;NIPD5 z>8!(g4j%cFz1Jb7xMeJuOaiH*3gI95l7EY#Gkn91roO~-qmD)N=zZ5~LBTr1GZVfj zq02z>@lu9C(KGQhp`F`5Jt#3D-ch`q zTrsK9;@D!}+;yzdETsN*z%HtZl_Ujj#QJ-DC5$#RVxxG;q55aK1qQf!3o}jgu8D|I z{?v*b#)-4>@1ra6yk9SJ-_9_5F}D&Mi$mo#ncr#ccT|4iuNQRmSV7#ufnf~&1Y0TC z9NEZV`%9_fOf#+8w}Zx0(KY$9Qt zh{$T}6}&VYzeT!L_dTL8`_Zn9)#Qe+s&L4d9~ki zo&H+UX}^0B9_d`sfY4C=`O$sqldWFWM_b3UA*flX7dT4P#)X!j zzuwIXsjJ4#GoDDJ4v}`gW?#55qwt_;#C#pxrgZq=v3qofuyIF%BCzZl?Nzx2H%IFF z&f*>G7xB!?OsOoj%qJaVomQoB;hFj4b)V*wWzN}x_!_sWl%&ZYGuswD@ z7JN;bQyOaf+Ll?}qHEo9?%DCf%lz($D2I1)?YhI`5ANIiuN;1%wT>%K`@4a=n+@DG zUoh><*5(s!^SK~t{@H*shZ zFmV}iW1%RaCpmn={QTP@;FqK4Qi&uKGfZ)O_x3;5hNwO zK|`fqJ)3YcuK@ifnTd?5A_(M34FdTGfj|#$z~>PN-Y@+eB>-Q8J+ehkMt*9nCZ?D%iTslR{TT3mt*5(Q) z>iOgR&Il%)H5PbWay+NJ)+v)!Ex8C|qzY#&Ka!dsW!-hXy&!dp$wih zo10r&T5jfeokMKezwX;N?q+=5Z&g**^Pv56=;Lf! z=Ld!q$h?k@Y)h`unL_D0+bqQ_9t>nyN8&JG;dp(hLPJAS%Y@|rblzrPZKxqZACinY zR*x>8+{Nm6|J$gwtqlP-s7RGQ7@gLp_U{dH5l*y3t0K;EjhKJmy?VHuDo#%6DQwkN zuMI|Tu0|4-kbr_iBcaMrNZmU+F?efjez{!%e%f5k$j~o$JXiep3^Dt}L(D#$f`X^M zCpsIL1I8Gl+Ns3~bN!8HbF^B;!y0O8SkiGMdqX0x>?kNG+uZ?BDGBsjt<_)C)8jjp zBRp9Du@zUQ6M=@O*>~-f33I)-jo6b`WHhu2Ev9{jVsvrCOqvp_ZNAA7gj96MAxD|g zIcP`-DJiM`;bHhrzLelmXyiAq3h{cm8AfL9e{DZ$)&j{Ixd$2h28LMqlaZMzPG7wJ zhfj_kI6vMQPbGsEa5I1{I-k}qFyWy;kfEc8i07-8Gm(L?K`U=x9&1L!Q*oL9y|;r* ztun-1gojtv%Z$;qs$?*THfy5wz1ukzK5{u=dn0_N&=EEY(*Xq3w2$W%(!@X5K$aHlFtrXJ)3S zyMxe#hqwB|oM$;;Z^%wHJ9`@2qGD`>v301}6gVBiv-5r1}`?H1u9Ui_onGQD!vqqi` zG1_Le`A?|VdCNg;V`Jm~1CjIYFb45Tj^ZO`tETdQJ2*@galr*4tnd2vHs|*f9Etm8 zx3$63@{~X9CoYzgtX^yxzzgY}XBuT3A}bKhL64_smBA=QQ1ZS7N3y zjUd%_qFaJ6M@Gdd~Y-b zbbWI(KtxFR==*w=D-wZc1O6jLu#6M9r||J3ct#R0!d>tqL(2A#8Xsom8OdhPn=g?A z6i`r5v!n?4Ami>s($_80*E5mV9g$aUE2uZ%OF*2@sfn|*^Yrp^Bv=m}lKulfSmPXg z-F0l4`mg8HKG(L}C%+9ak}wqQZU#UBVRqj3=4;pauz$&cr|Zzedw06@{auZY0|>w8 zghk;=gwbxbS%n%CA!X{o<9bH=0C64$Pghhpx3sIv;E@sz%Ada2hJ=X7tG=wP48ibZ zzG~HZP7!!AjJP3{YMmVP<#^03znV69?tg;+>s);?_UMHpXVLEOe2L&*BUj-UE+7m* z-UshD_^;31x}I|XV6MXXj1ZdfkTPD>Oft(7sqY$6C&^yGmB{8RvpsK6+qdkcZqSY3 zbicibyuppt%TQr9$ExK(&#)l}C(DRLk?hk%zPSb8t+`#{y*>G1 z#YiDQL+UzBaF1Pd+^s{oYv540^K0XNpM&{?$MhCdw8KYD1QlMR*Vb5b{X|RR_tjY- z#!7oncue)WoJq47U=t4ikMF+Wf|C*r5r*>1$|3@K#9Yso2U0Zk5xOPu^nQ8+=Z6JM z*XJGtg6cFx5KS)`dAvEn!(}qR>H>nhy{W0G?s{xyX6BN$IM>Mxf6(T7lyxT0Ozyu} z9W?f(K!NJx5~ByI;HXI42MP#-Z^Q=GOm7;Qe%iA1lGfJNOU1aEr!DGGW1w;Ie72{a z;`1(sn%P0?p4op2>s5U+TYK=GT-u*8O>K7!rm-~Uq)7Nw)ks|yP1J-8jorvmn9(jS zWY(H;)R}(|DfG~m(FkdSCvVSbiOi)h9t|jsOjFrXEY9iT0Aoa8A-&|OAIQn4{Fk^g zZBj-RC)Dy(#oM(1bQH;zDYYyf97i5chI=6aMej z|K~FQj|=|q%W%<#l%WOeo2tk$Ka!C5kDY(#k{5Y>T>KjhxJ(nWWWl2FJ#{8S!)D)` zeS>tWws1rR6Y|>Hh*lcYR^fG02Y&8SN%Zx7&sBLGhY^;S8@b$LtcApl-8qDP!>(hB z0>YxCwDf@ZEhN^*L=8(%PY)Y01Z(np{3doci%hqHFNQW!u$WAUsyrSqc{dCEX`m?l zo=-tJO^l%yB;(5@_uF{IX=|(}6CL08|nf4Mic+YI8k9IQTsA z{&i<(NAPyhM{|QJLm9J4WlShs&SQW>&_+u^iLh7O<6l0Mx3vFf1ZD`Pm{|Q~R z|BkKGLm#fP1WeC2keMN#Zm{yX%yO=M#v{QN}TUS2K^3Q1oq*C3mX2f*8P_z5!a8*M3zKe7uF0O{Y@ zI8fxFpLVgqYOdhot<>+4!r*0jq4~A-#6iz37OX^qR{!T+knU4}Z(?7MM-HbZ@i>UD zx-U*-X<+;hYQe;9Vv#QWz_o+FwaD}owLK99KYrz-wj9Fev?W1bFaIauuITk&j>Jv( zi6c?*h^2HR6Zkn;pCT^lVP^dudc}qx;s}6U4Lpolm=S(+^;p;2O4l!DtrM2d(r#{e zPiUtH1xT#Dj$a=M-G|6=qa62AH0L{f3?4?)_2#>>{6Us7$i{Rg^H&s#RO z<-{MXN9cJe)A#39FR^ztJ|B`3en36l_>;f$*xKEH4;8K&85@h*Xty$Wf6vFv%pAo+ zS-jhNQhh+QaZi(^mej!2WVjL~O`SMGRq?56dsd#c%InFlZNhrjsYP%omefppg9GxD zzj56+qFibY9)VFs-n9>O#QN7AfBWMI+8i?6C^i9sK=9|Tfp zVRYtrX=^g8re`S*cbZ}N?_8{`tp{B2(wK^|mx^Q$TCIS)kA8=|gI(SwvRt%yRkYjE z*84#MbqFqYW@S#AA|X#p@F_8c7_oLc6JhiW*0tr~e?bZhcGxIO%Xx3~0Y{TGLt{_BA2cxVVP<`}tDMn3t7fV`AzYcccP) z4E1vB{N8*U?bhT3Ne1c_E*}J?QSO|?_r5{DsMovs6i}c7jRf{Rq zC_OqF#p{6IFhP;f*;ZzDI=e=`8l;L%W-+dvF95U+Ny{bX9DJ2Ek40J zV{hj`2le{XdV&p#-w1#~v6wrbpkQx~0|| zvA5;la#Z-C0Y>S>{A`F3Cf9n2l$=(-vZKxf&?9@w6?w?mP=dA+wj>L49~z4C-%Ag{ zSk=oG?pyR{;=D{D+}b4dORSe5%6ww6ny#micv?nYvZ{FOQ^X#O zl|dDvj)2uu7&8{&A6V?i4>dZJ0qP#$C2(q`3{@{sN}2&gd!m0HN@NFm9@Hd6Mn&Tg zX8&lYPbE)3(BBV@r|*nWp;=RHy*4FuM;s^88RRbL+S>>VDF$x&%Bn5-ZlrwY`J;k@ z!;)FrubWqCQlIF)uqP`^88$CMoKW(SUF6Jp)VX>=C30I9BO- zKY!}V6H~HzEJauq=jw?c8dM}G$k!2B1?e)<6N9mw{0t(iQISb3Xi}&gN~q;Ud90=# zjWR!I1{haAGV{-GgLer=x`oA>#mLdMKKYj&(GL#&Fty?Wswu0NaUK5M>o%TC*IP-J z9b}#sQ!2H!rKNwwNCbZZ6FIb+nwqZf!=6jc6P(CB1Zc+6G+;(O(r`Md^0iPJ_mqX{ zm;2|#8@a;y&J)i zUV3r**G}OP5ikY0kf)H&Rq|MoEzPbs4jD$GuCO^>Q=s}&ZE?1YKH1Zvw9GF1Kz>%YZ`xE|HD%xHjT)}Ei`d|-<(kk=(L;bC!a~v&qyji-RRIO)gy-d%_jLx76h9(9E!!N*in+iD=bacp+<(6dvLZPl1?>2ag_cN_tbS!>(2-?-Q~F+Pr5rjEGM z=tvAlPaPoY4^T1%GlyUI=8m{JIyzj^hTMPm!0ms?kvkcshB@m%t*CL9iIGpuBvBt1 z8zLMiAJe-%y&lDp5t*{IbcaW8XlMX{qJ!STlo7+Mi%O(;IXRhy+{_!EjC(meE~)Mo->esDCUbZnjR1Nc+bXGwc|R_3ZIfJ89X z#&xY5{`nKz#KeSH*gIVU4lQxg^zi(=BtPFM_MXXEB30FRg$JmD%$l9KA{}uc-QsYm zLIBUFS_dJJ51W5iP*hBiD^?yILx}u9VU`~`V9dqE1z4WX_n9x$itL5V*~+UZ8Tb`D z7asuBj0Q$ibR7q9fK7#k7$#e)8XX;73sk7vvlVG3+``gQxCIviBBC82>+npCpn5~vj=LAT|P=|p6|Rpn>SCrZwUK5KURZ6uUe zX|9t;-m~8GRij<8&a0wlPKQ~P!*>;gyp14ck`|>GKaL!R|30&T-DvvfB6Rvy!4H2- zF6U(}Bcg=_B!i(63QnW=9JU1W8_PH~><@%`#; zdIk}_E|J!sBDI5bN2!FY66HUqlS{Tw3?h1R!X0KB11KdkjVE%im5Yl93}DB3YAq1& zx;v%F_NU8?bzu(q_ZskF{6KJRhhYu}7fk&_k91t=G2|C5@o93A_P zkSzPo3=|?3a*{Yry}Rpct|`GQWVa0$JhxR3+O{0OoU2I@(y{t|=hBIYcI+r1)N49U z^gi?&)$D7Uo$PmQa3}(Z)7^4~M|_KI#56G=07BsX`xc;1YJWFJ8B1fec!zskJxS-K6skCj%NIk)WuXOa({``PnB9d7v6^wtKczafS^hMm_DrA zi~Bkg!CEtB`euVZ3xIYt^`#M4uNR&#F7%4OU`KzvB(b=2}e7>oJz() zMWu!dFPK|Vad(OM;$&1sgVZBMMP&n91)6(Wt`UkW<&YB{YFw`PTI6t6Eiy;hs-TU5?1VDOi3% zejE)DCuHepkuk~Ql^5efRg<8BBSA9Oj+Ea>r=H!7S1gSfFo%bcXs+fw=!Pvs4Qex{ zf-~0Ig4u`1iO=A$)J@$AT$oTEC)8;B35k*R^V`6tQ%pL9l571OY+WOmv}nK4m+oE`nMW4I`t4(S0ak^%>7>%TZQ?i|k@2`!XKJAe3cBZS zNy>bZJ=b{)dmFy`nOFMRMYgu7gE_=?^AtVJK?Dv7C6~~X7>h79pI^rv{AZwyVuf)I zrcE5bw#$xjtl$adOUnQ4E@ovvSy<4cUT3q{y1;2*GKv)WCsvMtqW@aFB-$UKK%Cu z=X>CGe_bjv;r4nZ@^^ayh-96z|ES^RE=lTXwYKz>NhE1oc#(BL_e?HOrQS)y{TR;g@O zsM}$YZD*25mgk9%_QVQ+3$%5vQZm7R?Vr>T=3Fo5yDl<)+o6eZRH`gW)=DKyON~a8 z7f4%aKkl<)>ExEa@XV4a#9JD+$cty*7SP8tI&!M4m2X%ou~kg{!P`Qo$>vHoJW1ME z|8kOzU7z@&Ee1?A5FJ2J-?BG_I_>BidR-J^M2DyywCeyOuW&0>L`D2$3x2pi`R;p; z>)g2L{YJVicx`~evYvd<)Ft?lt$Mf=I+j!8(WJPcE+Aff>vu?#GrN%aOdW+oZ~x(_ zMv;^vkDqfm(S}HO|2KY-e$CW@$y*AM=OMn8E(^!?Vs>m6H7MM)mqGUR-w~7wv6-(> zq2J&Y5sUJ}c~`vmI?jk!+M+F)#5am%tDh&x=k0Q+*7dvTtdnErjeR;< z8W-QAbF!_$`F3|B&F9o5{CS&UZTZx{rMD6bF$ABK^Z=lV%jIi%>{f?cUGOe@k=hVK zdS%L#N828VLIEI>XNh-Gz250^^6B<`P1?ky@2enUU;HlEBQ#7}yUFfd?!$Pg#}3hk zv)ohbmtPE>kH2c_%_j(7r%GQVkyzR{gN>8L;b~}TPjHi0?Al_CXUr#-xxHUbHVpN$ z=Vnh=n$l=<7R8uw%?uCugtCQ*k1j0MT3x(vopLMMd^Hfp>hHHjUa$ZeXm{&urKNom zBUqJ!nH{i2I*t6oHlGU@dT`%f(7PFUaGVGdYQ5s-Qo##{_N z``^#c28$`=yh(zTD;JY#la-_2F}#D?2_9Cd9Wt9rWrHJ03&!f(1=|MqZPlC77t`%S z|EVTEJ1ET{{xPhOuF+&Mp4jg0m#pBMxf`v>v@Fv+GZvC1>#5Qa63){?>>)6mB!a@8 zk+nS^hjvvS7mfafflUbA^i&z2oD5$D`HY?Kw`IJgZo;TSA@Oj`k7+`B{z3er57(j@U0! zmIHc>UZ1;lojZ;N1HYi$M5_I9vy)a9HMO})9XE_LU9ha)34;q-sCW;5Ld?hrJ+LJn zeus(lb5035je<2sXodeE2tRv~n%|wT$!i`<5=dMEs?tYIXc&2}x2 zHDJ$tWvYa5H70Bi@WDs@m&}FVS6=7Z^|~6DO}VdJ_C6;%2n*~&latx+mpZ)AB0f}7 z+)X^`VQ6{TCddS(*?3>7s16rfjB#T-l`}ctFT@++@0KuA=utLQ4ks#U_~~;6v2oHY z-uMS>Noy2A^o1!HGozAr*e2e+%yC7artPq%E1=->-D0-!zTA}zD#G45iAHBEXA+IA^=w1scwz>}L1p13PGrv}Nz$u@0wyzC zQl`g_VUzNVn!{l{yav17S7Zvj-m7FW}gAcp61&HyA6@ltrXoSWYutDSN*s7@l^s-8qDYRfZQw84}``B6E zE$k#HOwAV0hWx)t;8e}C;Kb7YpsX}!`{5v`!ny@e0!HlVR#h4K-)EK^0-XK=3*VQE z{=?8dKuXKrvlAn4U;UbppprO({dTSN)}PjSU4tL$xP13=@p^ut-C@o>6#I@*X0s||JldFh;9lcei!W!lE; z(pvDk=z0?d^=`q7%e+xLTqf>I4P;u|fJc%pNSG2b(XXrB4qKEHasb&>Rek?sz!_oX zdJ$ld#gO9@xdwXF^LXM#qv=IDHie#HjHF3!RKLe41QtK}*Z@4m#6C>&w0ULLMThrn z!sxq+2HAN|dXYyELCO@;3#|>BC&%isF@Z8c1#bjN`6{w*aTE3OHXLfd7Od0bGjNGl zjVS)K?x!#Ud9!p=9v2c(TWmp+^FyZ1*Me`44>L4rfG?#UVS3URGz10Wsq4IhOGvWB zQ#|#1{eLE#-r*)~+<&LHdoWDh@-eDcgPm1&5~f5C4SLU{O5k9d&S&?h^(|pn$Ur!n z?H%A~hsY@DH(Xn26iM(f#S9|R2Kxsv$At^?mzG(}p4oQwL>zcnKv~}Yo58Jt-hmfD zPBJtW4r`a7w))yN_njCQDaZ4@;eWc3GOFJ;2~BKnKv}Cw2EkN%{c) zA|3bXr_bfSQu}V=a>NyNW@aY9xEU}#eE+`01h{N~jf#@e?4{ux>F&fUelpPH%g0}~aM-m<(kg_cW@D~FviCNQ7AFtu zr$T3*{UN*;5%uj|+56_cJS~#dO_wHDgRi&X^wr}6-rog1Ke{q@Zb+xVHZ>7yf`6Kc zaEoY#$dTdkh3p)!;1Zwr4~Aq>;W7x=4-mBn9_j-l-78Ms)v%;levjh%lFMpEH@ic_ z$TEfXC7UYAnPI+6Qr-!CNX#@rKeN0%>T|a-Mfx_9%k;Po$h6hX##lOyHpThmV)RB7 zDRK!i{mn-u6D~gHWnOIP@MOhQNh2JbN!x%X4twFb(02TJ=JH`zc7`d%m- zPwRJ6j}JMSnZ{4IVF=Kbi2S#oS1YTuoLmwLByKeQvHewHe z?3anJtPzJW(v4lY%vtDN{;;W?`A;^#E{(Z1l*R6|GU3{Fw`i|G>3pDyrKJd6nhCQOvqO< zY&RP9&2q^l3eI2TzAb1 zaWap&oFgB-h%oG(j`R-Vl@Mmteobi#Gh13>ebBj5AWkP=p8jV4`yV(;6Ih&F0H{8t zZs)rrw7HcPkWV)Y8^fv0I%7(q`Zu>$JocSdGYR&f2k)HR=UrO-P$o18QqtVbxVQVA z_6wgby@f`<=N-}=V90=QZf=BMr0a5&v1KRr{o(O(d5gDT&L$uV?9hrl5GYPe06fL) z>}-9}1C~-Kvku8`O2e3E02)+TXNc!_1C+xkpe4k_#MrER&wVY(ls7wRtWr==m|0&J zpnX_i5fv=Z@^VS=E^)mxEW$t)qQ74f$@Jbdh)RdRom{}w$2J*|N^4|ETaBig=kj_f zE~O^Yx1XzDHTqI3=T;jS>Y8?N!OPz;S5yZhC5^IvDZ-(9J4ig_%F3iEE!mPdD&(EoOX!a+Uv!fFvMPj>AViH zUEHrAn@CrdCp68QvE2DhY|D3%l4C&j)ofPlMi?P}Hjcze!xbie0rBW7h+-ENC*7lR{YBC6ADjvNLVB7E?4C3qqQ(gGm2^X*g7rb>> z>!TC?#xK@L?KiBmA21`mrG7?N%NZ%t;mQ`Paq(~+Q@KsZ76PLJrNL&}MRQi?k4sYk zm%l&peQsZU{bzO8YiMg~*GY9QI~SLNni^$^6&oMlc!^@x{p!JMu4EdsWX9|3#an4ln+@1vVhWvu{trs^#r!T{v1DkN5tO|>WkXN-|t=4Wc_>PZjdvU2H1UAS92 zUZ8gWB*W)G2vMM5hoZHgZJR81%f>?~mm;f7=QDS>r;oCne($R)Q)FPb~ zfo4vFiqmPBU zS6)d8udk017;8#l%t*uB#M=S1$2%6?IiL0x1uXXr2R!5%b zuaQMe(q;WAE7C)(eZpvoS`y6ptE~vqD4mbR{f}5u9=a)KpuvNC=9T6izkt!qPZ#5$ zmFdm;1KA|MS9=v?&#*m|fgs^K5>s5?roy--76i z;^X#eaoWq#duzr4>r3A65k;9=luMHpLo5;WV58>TwuRc4LA`m z(8I8H&ETWqe{2`~qF{^%Jwt;>X;^=q6I*c{{CD=G}Mgmq%0#-3w{~_ImC(7*e9vJtZNe1owpNfm~ z%cD+H!ean)+;ZM}@`VK};zRT8^2vPUgT+e@XcCD_w5 zG|u-L?U-Tm;m+^v&StGOW`BS1vZ(W_f?JvbWA=ziI_{R0L93X!NEPWvS?o*@t<=u> zHjq6?04mDl%a=qTxiD}`u%un>%Q&}BOEKY6r;Qn9!U7X`yw=s^wkd?HL`jH6~9pUMIs394|5)*pqCXY8p|{AU&I( zKEJ%4Qa}~4o}Gp+fdRD0%LfZ)F#W}&WQ+dC#@umYD|JBg5SI&T)CWNsxi3WPp-0~k z`5W)lU_aX(f5E`O7oy4_WP_IyLyRC`!x!G4ZvOH$)r@CHIwsTDd6Oil$A>1u+@N~* z)O51P-*j&;WJx*u8>V9<9V);pkIH2VNP7GP2GAWnRqKyO1+x!uI%dK(;D>N1;gDm6 zEfOuSJqev;WuJ~Ah4A*Q_j?2IS`ulTt6cbA1AE^2VVP~XMnx3DJ~Tj6vqAcvYtQE$ zcxREmnk6luoG2v)snUs@(srozIEkRm&Or9mZfWfEA}a^#%5m^n)}N1J6Y1wt@-tNE zGnT+WwJ~4vM;MLc7ARV9;D?FQK$cp_}ti;1%`dw1_0BjN{>=xaC ziki+)8LIk2u*k!RAG@%ythF`L+}s=$Cj09pt4PZs`04KAV2AXL4}^uK7S-8RX7%U1 zNtXpqlp~|4t}Z~c>-d)oX^pq=6wn|F|D9N!d>;!N;4evr4(Qk^Fw-u2HY;0bubY(4 zuJe;WpRbC9#)yd`|MUu9oRQv84In zmpGE>CWgkBu#v-WVot=U7Y%&(MLi+BiweXB?n~E2n$`JFkYNFM$dGH1Hn^#_O!0>f z1VX0j)|~7Tk$O4`;A$})1w+EX((~~633w_*JiL%Gne&IHk4dL7y0dc~d~I!a zJ$izgp7RkHPVIX*U?ssIA|iq!%bIZPL*f0&Ee4hyukL(g$nn_M-u{C>V_8Iu!1&8G z^Q`rnu-Jx2f(?Jug!IXM!bRkFH`Lz&$l|*E{8fAzmE*xH=o59=uOjz(njIa1h|4W%M2P9RK=Ryrsy0)eA)fDa!{DG^BWIgHrp)WnlD(@IY#>KClsog^}gQ z(w(!vl(bPs^@*O;^@s2M=%FvqWiO;lMa+@T=y2EDaynmf6Cg`1N-pZ<4M!OUcQJ6Br~j2K?K8 ztWi_mGH#ZpH+lT40vN+43-BMQFz9f=#fBrNQjxDcAde~|SNV~JzPBe(wQ6eOtCj!=JlgxUHWCTfMc)XStqzq1Un!#s z+mJKgTQq6kN1P3OH3f?rzn}hT^?jQos}V=V{e_?JK7S{c~R)wjzy#Yq(O(JY_3Ly_v%;4UpL4?{{36P%v3V~ zA7zSXfu@s#gJW=ig16Rg?Xk7d{X`bg-`;a`t))-RL9Smc9OPdJvZrTzxMTs&V=e;NA#9*E3rT^P^P{eGnQk97DzhF- zUl0x6`qxsQls<)&uY_CDwjqiQ z1I)A%2b_W8Qt=t7MS}-behC3)fJAWbzkBF}`)6=A55%h4cseUshnqG-U-)HRyWb51YHYPdZC9Y!1#haU`U4lVJE6!7 zvizlZ2q6xtV>^(Q~y zu-tk&0eu2^ax?yD4Z>AJeAq@kvaFQgz65?w;D0~BSdT?=bu|l#_ir)q5>vk9e#1(; z2PXg*c$?2#9}7f8p0{lGz9Dx5BZK>CHX?UtD?>R#UJzOxp46HKdK<+4#buUqzt&OM zSGdLZ)Vx~WE3pd+DH_Xm?kAE+ABHj_yOoW zQ!xLVy!rBP3Mz@g0-R-em*Vp60|ud+Br=ni#6~my{$UrYt@N==`KxsTob`CK)gDQ9GObT?ou<5;w(1@_}9dUBKxwi%2Uemo*F~A4WsWh_0Y}%LO5B z#Aoqh83CGzL&$7;?$lOZm{QwSHpji9Z&<9Ne3(i=_g2Kb?kRxm%oY@?dEEE=PF{{- zr?OW`pH#>a!?y7uMJc-e5A&R}ftD!zumZvEY+%HWxyz7BP9B6lK^()1IV{eIQBQ&e z6NQm?0<-MdS1rO&u3&jod9y!+{|sqnb&BU@g#r&|zy3@M*=T~gA* zept_KLcyW4X@(!SqnElY*Tz3?_Iu`+s4pqnc<%wLQhj82s_$7C=+ z_G3Z6smLdXd1@2wigf~t9;c#a(jM zl?+|qo!S+nU}D;(6NRs`wLnIgvSL)UK%&mAZR8KoY2yZ1A<)EnLf)^l#$0aMqdC3C z@F(`c26-_hQYIQ#%e~NUDR#~NJezG@^^%xy{k2gdp_GZu9v`}Z@--`=p{o8!TeFgX znFU`Z`p!$w@lW_=ktI)_I1T+#N0F#Wnj*WV5Eqv9Ct|O4L(4eXcI}7RO*k8Gm4>T8 z_bkN?YJPCp@*cq@0pE3U$ktd6m^%Mk!3AawVaK-_A$%(bkK1$5oNSUz0T)I6HeqoA zlDfaOeCQpFwvS%qM#mXj*P~`1*WFU|yGDF|%Y>X{zK{^cO{60P*C&Rs4_Q&!rTeRK zGq3}IxRc+JsySFtfTTMf1tu3IOw<*Y&)1sfuKy=grR(L^^nd}6yMhaYA760r^xehu z^fZ7NMH@LlqWWJoT~%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/header/static/image/linkedin.png b/services/mailer/application/template/header/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/mailer/application/template/header/static/image/pinterest.png b/services/mailer/application/template/header/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/mailer/application/template/header/static/image/youtube.png b/services/mailer/application/template/header/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 -
- -
- VerdNatura -
- +
+
+ + {{$.header}} + - -
-

{{_.title}}

-
- + +
+

{{_.title}}

+
+ - -
-

{{_.hello}}, #{{alias}}

-

{{message}}

-

- + +
+

{{_.hello}} #{{alias}}

+

{{message}}

+
+ - -
- - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- -
\ No newline at end of file diff --git a/services/mailer/application/template/notification-alias/locale/es.json b/services/mailer/application/template/notification-alias/locale/es.json index 0deeb16044..6e39b7f635 100644 --- a/services/mailer/application/template/notification-alias/locale/es.json +++ b/services/mailer/application/template/notification-alias/locale/es.json @@ -1,16 +1,11 @@ { "subject": "Has recibido una nueva notificación", "title": "Nueva notificación", - "hello": "Hola", + "hello": "Hola,", "notificationCode": { "clientDeactivate": { "subject": "Gestionar baja de contrato", "message": "El cliente con id %clientId% está clasificado, por favor, gestione la baja del contrato primero." } - }, - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + } } \ No newline at end of file diff --git a/services/mailer/application/template/notification-alias/static/css/style.css b/services/mailer/application/template/notification-alias/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/payment-update/index.html b/services/mailer/application/template/payment-update/index.html index caec77e903..78d6612c41 100644 --- a/services/mailer/application/template/payment-update/index.html +++ b/services/mailer/application/template/payment-update/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,59 +19,20 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

-

-

{{_.paymentMethod}}: {{payMethodName}}
+

{{_.dear}}

+

{{_.bodyDescription}}

+

+

{{_.paymentMethod}} {{payMethodName}}
{{{paymentDay}}}

-

{{paymentAdvice}}

-

{{_.notifyError}}

+

{{paymentAdvice}}

+

{{_.notifyError}}

- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/payment-update/locale/es.json b/services/mailer/application/template/payment-update/locale/es.json index 144cdc3464..1216dcd99a 100644 --- a/services/mailer/application/template/payment-update/locale/es.json +++ b/services/mailer/application/template/payment-update/locale/es.json @@ -1,18 +1,13 @@ { "subject": "Cambios en las condiciones de pago", "title": "Cambio en las condiciones", - "dear": "Estimado cliente", + "dear": "Estimado cliente,", "bodyDescription": "Le informamos que han cambiado las condiciones de pago de su cuenta. A continuación le indicamos las nuevas condiciones:", - "paymentMethod": "Método de pago", - "paymentDay": "Día de pago", + "paymentMethod": "Método de pago:", + "paymentDay": "Día de pago:", "everyMonth": "de cada mes", "cardPaymentAdvice": "Su modo de pago actual implica que deberá abonar el importe de los pedidos realizados en el mismo día para que se puedan enviar.", "accountPaymentAdviceBefore": "Su modo de pago actual implica que se le pasará un cargo a la cuenta", "accountPaymentAdviceAfter": "por el importe pendiente, al vencimiento establecido en las condiciones.", - "notifyError": "En el caso de detectar algún error en los datos indicados o para cualquier aclaración, debe dirigirse a su comercial.", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "notifyError": "En el caso de detectar algún error en los datos indicados o para cualquier aclaración, debe dirigirse a su comercial." } \ No newline at end of file diff --git a/services/mailer/application/template/payment-update/payment-update.js b/services/mailer/application/template/payment-update/payment-update.js index d126dc83ab..187d21b737 100644 --- a/services/mailer/application/template/payment-update/payment-update.js +++ b/services/mailer/application/template/payment-update/payment-update.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class PaymentUpdate { getData(params, cb) { let query = `SELECT + c.id clientId, pm.id payMethodFk, pm.name payMethodName, c.dueDay, @@ -15,7 +16,7 @@ module.exports = class PaymentUpdate { JOIN payMethod pm ON pm.id = c.paymentMethodFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); @@ -26,7 +27,7 @@ module.exports = class PaymentUpdate { get paymentDay() { if (this.payMethodFk != 5) - return `
${this._.paymentDay}: ${this.dueDay} ${this._.everyMonth}
`; + return `
${this._.paymentDay} ${this.dueDay} ${this._.everyMonth}
`; } get paymentAdvice() { diff --git a/services/mailer/application/template/payment-update/static/css/style.css b/services/mailer/application/template/payment-update/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/printer-setup/index.html b/services/mailer/application/template/printer-setup/index.html index 3f6c8910d8..ee021281c7 100644 --- a/services/mailer/application/template/printer-setup/index.html +++ b/services/mailer/application/template/printer-setup/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,14 +19,14 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

-

{{{_.followGuide}}}

+

{{_.dear}}

+

{{_.bodyDescription}}

+

{{{_.followGuide}}}

{{{_.downloadFrom}}}

-

{{_.sectionQLabelTitle}}

+

{{_.sectionQLabelTitle}}

-

{{_.sectionQLabelDescription}}

+

{{_.sectionQLabelDescription}}

  1. {{_.sectionQLabelStep1}}
  2. @@ -48,8 +46,9 @@
  3. {{_.sectionQLabelStep15}}
-

{{_.sectionHelpTitle}}

-

{{_.sectionHelpDescription}}

+

{{_.sectionHelpTitle}}

+ +

{{_.sectionHelpDescription}}

{{{_.sectionHelpDownloadRemoteSupport}}}

@@ -60,48 +59,9 @@

- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/printer-setup/locale/es.json b/services/mailer/application/template/printer-setup/locale/es.json index 41a831524b..7d3da66469 100644 --- a/services/mailer/application/template/printer-setup/locale/es.json +++ b/services/mailer/application/template/printer-setup/locale/es.json @@ -1,7 +1,7 @@ { "subject": "Instalación y configuración de impresora", "title": "¡GRACIAS POR SU CONFIANZA!", - "dear": "Estimado cliente", + "dear": "Estimado cliente,", "bodyDescription": "Siga las intrucciones especificadas en este correo para llevar a cabo la instalación de la impresora.", "followGuide": "Puede utilizar como guía, el video del montaje del ribon y la cinta https://www.youtube.com/watch?v=qhb0kgQF3o8. También necesitará el QLabel, el programa para imprimir las cintas.", "downloadFrom": "Puede descargarlo desde este enlace http://www.godexintl.com/en/product/type/Download/2967", @@ -27,10 +27,5 @@ "sectionHelpDownloadRemoteSupport": "Puede descargarse el programa desde este enlace http://soporte.verdnatura.es.", "salesPersonNameText": "Soy su comercial y mi nombre es", "salesPersonPhoneText": "Teléfono y whatsapp", - "salesPersonEmailText": "Dirección de e-mail", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "salesPersonEmailText": "Dirección de e-mail" } \ No newline at end of file diff --git a/services/mailer/application/template/printer-setup/printer-setup.js b/services/mailer/application/template/printer-setup/printer-setup.js index 77147f4592..6dece0d23e 100644 --- a/services/mailer/application/template/printer-setup/printer-setup.js +++ b/services/mailer/application/template/printer-setup/printer-setup.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class PrinterSetup { getData(params, cb) { let query = `SELECT + c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, @@ -15,7 +16,8 @@ module.exports = class PrinterSetup { LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); diff --git a/services/mailer/application/template/printer-setup/static/css/style.css b/services/mailer/application/template/printer-setup/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/application/template/sepa-core/index.html b/services/mailer/application/template/sepa-core/index.html index df149cb9f7..0e9c34d04c 100644 --- a/services/mailer/application/template/sepa-core/index.html +++ b/services/mailer/application/template/sepa-core/index.html @@ -7,11 +7,9 @@
- - - + + {{$.header}} +
@@ -21,53 +19,16 @@
-

{{_.dear}},

-

{{_.bodyDescription}}

+

{{_.dear}}

+

{{_.bodyDescription}}

+

{{_.conclusion}}

+ {{{previewAttachments}}}
- - - - - - - - - -
-

{{_.fiscalAddress}}

-

{{_.privacy}}

-

{{_.privacyLaw}}

-
- + + {{$.footer}} +
diff --git a/services/mailer/application/template/sepa-core/locale/es.json b/services/mailer/application/template/sepa-core/locale/es.json index 29e0ef1a9f..48eaadf3a6 100644 --- a/services/mailer/application/template/sepa-core/locale/es.json +++ b/services/mailer/application/template/sepa-core/locale/es.json @@ -1,11 +1,7 @@ { - "subject": "Instalación y configuración de impresora", - "title": "¡GRACIAS POR SU CONFIANZA!", - "dear": "Estimado cliente", - "bodyDescription": "A continuación le adjuntamos el documento de domicilación de datos bancarios.", - "actionButton": "Visita nuestra Web", - "infoButton": "Ayúdanos a mejorar", - "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", - "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", - "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." + "subject": "Solicitud de domiciliación bancaria", + "title": "CAMBIOS EN SU FORMA DE PAGO", + "dear": "Estimado cliente,", + "bodyDescription": "Para poder tramitar su solicitud de cambio de su forma de pago a giro bancario, le adjuntamos los documentos correspondientes a la Ley de Pago, que tiene que cumplimentar y enviarnos.", + "conclusion": "Gracias por su atención." } \ No newline at end of file diff --git a/services/mailer/application/template/sepa-core/sepa-core.js b/services/mailer/application/template/sepa-core/sepa-core.js index 536448bf02..04fd71df70 100644 --- a/services/mailer/application/template/sepa-core/sepa-core.js +++ b/services/mailer/application/template/sepa-core/sepa-core.js @@ -5,6 +5,7 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class SepaCore { getData(params, cb) { let query = `SELECT + c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, @@ -15,28 +16,24 @@ module.exports = class SepaCore { LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - database.pool.query(query, [params.recipient], (error, result) => { + + this.isPreview = params.isPreview; + this.token = params.token; + + database.pool.query(query, [params.clientId], (error, result) => { if (error || result.length == 0) return cb(new Error('No template data found')); Object.assign(this, result[0]); + cb(); }); } - get salesPersonName() { - if (this.name) - return `
${this._.salesPersonNameText}: ${this.name}
`; - } - - get salesPersonPhone() { - if (this.phone) - return `
${this._.salesPersonPhoneText}: ${format.phone(this.phone)}
`; - } - - get salesPersonEmail() { - if (this.email) - return `
${this._.salesPersonEmailText}: ` + - `${this.email}
`; + get previewAttachments() { + if (this.isPreview) + return `` + + '
Descargar adjunto
' + + 'sepa-core.pdf
'; } }; diff --git a/services/mailer/application/template/sepa-core/static/css/style.css b/services/mailer/application/template/sepa-core/static/css/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/server/server.js b/services/mailer/server/server.js index 818b036a68..50320a3910 100644 --- a/services/mailer/server/server.js +++ b/services/mailer/server/server.js @@ -1,7 +1,7 @@ var express = require('express'); var app = module.exports = express(); var bodyParser = require('body-parser'); -var settings = require('../application/settings.js'); +var config = require('../application/config.js'); var mail = require('../application/mail.js'); var database = require('../application/database.js'); var auth = require('../application/auth.js'); @@ -22,7 +22,7 @@ var requestToken = function(request, response, next) { app.use('/', requestToken, require('../application/router.js')); app.start = function() { - var listener = app.listen(settings.app().port, function() { + var listener = app.listen(config.app.port, function() { var servicePath = 'http://' + listener.address().address + ':' + listener.address().port; mail.init(); database.init(); @@ -31,7 +31,7 @@ app.start = function() { let packageJson = require('../package.json'); console.log(`Web server ${packageJson.name} listening at: ${servicePath}`); - if (settings.app().debug) { + if (config.app.debug) { console.log(`${packageJson.name} service debug mode enabled`); } }); diff --git a/services/mailer/static/css/component.css b/services/mailer/static/css/component.css new file mode 100644 index 0000000000..10805e562b --- /dev/null +++ b/services/mailer/static/css/component.css @@ -0,0 +1,137 @@ +img { + margin: 0 +} + +p { + text-align: justify +} + +.wrapper { + background-color: #EEE +} + +.container { + font-family: arial, sans-serif; + max-width: 600px; + min-width: 320px; + font-size: 16px; + margin: 0 auto; + color: #555 +} + +.title { + background-color: #95d831; + text-align: center; + padding: 35px 0 +} + +.title h1 { + font-size: 32px; + color: #333; + margin: 0 +} + +.body { + background-color:#FFF; + padding: 20px +} + +.body a { + color: #8dba25 +} + +.body h1 { + color: #999 +} + +.body h3 { + font-size: 16px +} + +.panel { + border: 1px solid #DDD; + margin-bottom: 10px; + padding:10px +} + +.row { + margin-bottom: 15px; + overflow: hidden; + content: ''; + clear: both +} + +.row .text { + margin-bottom: 5px +} + +.row .control { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.row .description { + font-size: 8px; + color: #999 +} + +.row .v-align { + padding-top: 5px; + line-height: 21px +} + +.row:last-child { + margin-bottom: 0 +} + +.row.inline .text { + margin-bottom: 0; + width: 40%; + float: left +} + +.row.inline .control { + font-weight: bold; + padding-left: 20px; + color: #000; + width: 60%; + float: left +} + +.box { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + font-weight: bold; + text-align: center; + padding-top: 4px; + width: 25px; + height: 21px; + color: #000; + float: left +} + +.row .control .box:first-child { + border-left: 1px solid #CCC; +} + +.attachment { + overflow: hidden; + margin-top: 10px +} + +.attachment:after { + content: ' '; + display: block; + clear: both +} + +.attachment-icon { + float: left +} + +.attachment span { + padding: 16px 0 0 10px; + float: left +} \ No newline at end of file diff --git a/services/mailer/static/images/attachment.png b/services/mailer/static/images/attachment.png new file mode 100644 index 0000000000000000000000000000000000000000..78efe4f95c69f9c03a08c93b4849d253ff1b3047 GIT binary patch literal 18546 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 literal 0 HcmV?d00001 diff --git a/services/nginx/conf-dev.conf b/services/nginx/conf-dev.conf index e36a5a82a3..b35bd3757a 100644 --- a/services/nginx/conf-dev.conf +++ b/services/nginx/conf-dev.conf @@ -43,6 +43,9 @@ http { location ~ ^/route(?:/(.*))?$ { proxy_pass http://127.0.0.1:3005/$1$is_args$args; } + location ~ ^/print(?:/(.*))?$ { + proxy_pass http://127.0.0.1:3006/$1$is_args$args; + } # Este tiene que ser el último location ~ ^(?:/(.*))?$ { proxy_pass http://127.0.0.1:3001/$1$is_args$args; diff --git a/services/nginx/conf-prod.conf b/services/nginx/conf-prod.conf index 32d7497800..eab866aaa5 100644 --- a/services/nginx/conf-prod.conf +++ b/services/nginx/conf-prod.conf @@ -38,6 +38,9 @@ http { location ~ ^/route(?:/(.*))?$ { proxy_pass http://route:3005/$1$is_args$args; } + location ~ ^/print(?:/(.*))?$ { + proxy_pass http://print:3006/$1$is_args$args; + } # Este tiene que ser el último location ~ ^(?:/(.*))?$ { proxy_pass http://salix:3001/$1$is_args$args; diff --git a/services/nginx/config.json b/services/nginx/config.json new file mode 100644 index 0000000000..050b6724d8 --- /dev/null +++ b/services/nginx/config.json @@ -0,0 +1,14 @@ +{ + "localhost": { + "host": "localhost", + "port": 5000 + }, + "testSalix": { + "host": "test-salix", + "port": 80 + }, + "salix": { + "host": "salix", + "port": 80 + } +} \ No newline at end of file diff --git a/services/print/.gitignore b/services/print/.gitignore new file mode 100644 index 0000000000..69d30d5cce --- /dev/null +++ b/services/print/.gitignore @@ -0,0 +1,5 @@ +node_modules +config.json +app.development.json +smtp.development.json +mysql.development.json diff --git a/services/print/Dockerfile b/services/print/Dockerfile new file mode 100644 index 0000000000..2e8bdc43bc --- /dev/null +++ b/services/print/Dockerfile @@ -0,0 +1,13 @@ +FROM node:6.9.1 + +COPY . /app + +WORKDIR /app + +RUN npm install + +RUN npm -g install pm2 + +CMD ["pm2-docker", "./server/server.js"] + +EXPOSE 3006 diff --git a/services/print/application/auth.js b/services/print/application/auth.js new file mode 100644 index 0000000000..ee8f114e13 --- /dev/null +++ b/services/print/application/auth.js @@ -0,0 +1,62 @@ +var database = require('./database.js'); + +module.exports = { + +/** + * Initialize auth + * @param {Object} request - Request object + * @param {Object} response - Response object + * @param {Object} next - Next object + */ + init: function(request, response, next) { + this.request = request; + this.response = response; + this.next = next; + + this.validateToken(); + }, + +/** + * Validate auth token + */ + validateToken: function() { + let query = 'SELECT userId, ttl, created FROM salix.AccessToken WHERE id = ?'; + + database.pool.query(query, [this.getToken()], (error, result) => { + let token = result[0]; + + if (error || result.length == 0) + return this.response.status(401).send({message: 'Invalid token'}); + + if (this.isTokenExpired(token.created, token.ttl)) + return this.response.status(401).send({message: 'Token expired'}); + + this.request.userId = token.userId; + this.next(); + }); + }, + +/** + * Get request token + * @return {String} Token + */ + getToken: function() { + return this.request.headers.authorization || this.request.query.token; + }, + +/** + * Checks if the token has expired + * @param {String} created - Creation date + * @param {Integer} ttl - Ttl seconds + * @return {Boolean} True if the token has expired + */ + isTokenExpired: function(created, ttl) { + let date = new Date(created); + let currentDate = new Date(); + + date.setSeconds(date.getSeconds() + ttl); + + if (currentDate > date) + return true; + } +}; diff --git a/services/print/application/config.js b/services/print/application/config.js new file mode 100644 index 0000000000..1442e85edb --- /dev/null +++ b/services/print/application/config.js @@ -0,0 +1,18 @@ +var path = require('path'); +var fs = require('fs'); +var config = {}; + +let devConfigPath = path.join(__dirname, '/config/datasources.development.json'); +let configPath = path.join(__dirname, '/config/datasources.json'); + +try { + config = Object.assign(require(configPath), require(devConfigPath)); +} catch (e) { + if (e.code == 'MODULE_NOT_FOUND') + config = require(configPath); +} + +config.proxy = require('../../nginx/config.json'); +config.package = require('../package.json'); + +module.exports = config; \ No newline at end of file diff --git a/services/print/application/config/datasources.json b/services/print/application/config/datasources.json new file mode 100644 index 0000000000..93a49479ad --- /dev/null +++ b/services/print/application/config/datasources.json @@ -0,0 +1,23 @@ +{ + "app": { + "port": 3006, + "debug": false, + "defaultLanguage": "es" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "pdf": { + "format": "A4", + "header": { + "height": "120px" + }, + "footer": { + "height": "130px" + } + } +} \ No newline at end of file diff --git a/services/print/application/config/datasources.test.json b/services/print/application/config/datasources.test.json new file mode 100644 index 0000000000..92965aa5af --- /dev/null +++ b/services/print/application/config/datasources.test.json @@ -0,0 +1,19 @@ +{ + "app": { + "port": 3006, + "debug": false, + "defaultLanguage": "es" + }, + "mysql": { + "host": "localhost", + "port": 3306, + "user": "reports", + "password": "", + "database": "" + }, + "pdf": { + "footer": { + "height": "100px" + } + } +} \ No newline at end of file diff --git a/services/print/application/database.js b/services/print/application/database.js new file mode 100644 index 0000000000..974540d7d3 --- /dev/null +++ b/services/print/application/database.js @@ -0,0 +1,24 @@ +var mysql = require('mysql'); +let config = require('./config.js'); + +module.exports = { + /** + * Pool instance + */ + pool: null, + + /** + * Start database pool + */ + init: function() { + this.pool = mysql.createPool(config.mysql); + + this.pool.getConnection(function(error, connection) { + if (error) { + throw new Error('Can\'t connect to database: ' + error.code); + } else if (config.app.debug) { + console.log('Database connection stablished'); + } + }); + } +}; diff --git a/services/print/application/locale.js b/services/print/application/locale.js new file mode 100644 index 0000000000..f9737fea32 --- /dev/null +++ b/services/print/application/locale.js @@ -0,0 +1,42 @@ +var fs = require('fs'); +var config = require('./config.js'); +var path = require('path'); + +module.exports = { +/** + * Returns template locale + * @param {String} template - Template name + * @param {String} countryCode - Language code + * @param {Object} cb - Callback + */ + load: function(template, countryCode, cb) { + var localeFile = path.join(__dirname, 'template', `${template}`, 'locale', `${countryCode}.json`); + var defaultLocaleFile = path.join(__dirname, 'template', `${template}`, 'locale', `${config.app.defaultLanguage}.json`); + + fs.stat(localeFile, (error, stats) => { + if (error) { + fs.stat(defaultLocaleFile, (error, stats) => { + if (error) + return cb(new Error('Translation not found for template ' + template)); + + cb(null, {locale: require(defaultLocaleFile)}); + }); + } else { + cb(null, {locale: require(localeFile)}); + } + }); + }, + +/** + * Parse locale text + * @param {String} text - Locale text + * @param {Object} params - Locale params + * @return {String} - Returns parsed text + */ + parseText: function(text, params) { + for (var key in params) { + text = text.replace(`%${key}%`, params[key]); + } + return text; + } +}; diff --git a/services/print/application/route/manuscript.js b/services/print/application/route/manuscript.js new file mode 100644 index 0000000000..90662b6463 --- /dev/null +++ b/services/print/application/route/manuscript.js @@ -0,0 +1,66 @@ +var express = require('express'); +var router = new express.Router(); +var template = require('../template.js'); +var config = require('../config.js'); +var pdf = require('html-pdf'); +var path = require('path'); + +// Sepa core +router.post('/sepa-core/:clientId', function(request, response, next) { + template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body).toStream(function(error, stream) { + if (error) + throw Error(error); + + stream.pipe(response); + }); + }); + }); + + // store pdf +/* router.post('/sepa-core/:clientId', function(request, response, next) { + template.get('sepa-core', {recipient: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body).toFile('./tmp/test.pdf', function(error, result) { + if (error) + return response.status(400).json({message: error}); + + console.log(result); + return response.json(); + }); + }); + }); + */ +// Sepa core preview +router.get('/sepa-core/:clientId', function(request, response, next) { + template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + let options = config.pdf; + pdf.create(result.body, options).toStream(function(error, stream) { + if (error) + throw Error(error); + + response.setHeader('Content-Disposition', 'inline; filename="sepa-core.pdf"'); + response.setHeader('Content-type', 'application/pdf'); + stream.pipe(response); + }); + }); +}); + +router.get('/sepa-core-view/:clientId', function(request, response, next) { + template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + +module.exports = router; diff --git a/services/print/application/router.js b/services/print/application/router.js new file mode 100644 index 0000000000..58e9a36945 --- /dev/null +++ b/services/print/application/router.js @@ -0,0 +1,12 @@ +var express = require('express'); +var router = new express.Router(); + +// Default page +router.get('/', function(request, response) { + response.json({}); +}); + +// Manuscripts +router.use('/manuscript', require('./route/manuscript.js')); + +module.exports = router; diff --git a/services/print/application/template.js b/services/print/application/template.js new file mode 100644 index 0000000000..9bc968c74d --- /dev/null +++ b/services/print/application/template.js @@ -0,0 +1,175 @@ +var fs = require('fs'); +var mustache = require('mustache'); +var locale = require('./locale.js'); +var inlineCss = require('inline-css'); +var path = require('path'); + +module.exports = { +/** + * Get template. + * @param {String} template - Template name + * @param {Object} countryCode - Language code + * @param {Object} params - Params + * @param {Object} cb - Callback + */ + get: function(template, params, cb) { + var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); + var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); + var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); + + fs.stat(templatePath, (error, stat) => { + if (error) + return cb(new Error('Template ' + template + ' not found')); + + let TemplateClass = require(classPath); + let instance = new TemplateClass(); + + let getRenderedStyles = (error, body) => { + if (error) + return cb(error); + + this.renderStyles(stylePath, body, (error, body) => { + if (error) + return cb(error); + + // Check if has a subject param + params.subject = params.subject || instance.subject; + + if (params.subject == undefined) { + // Try to find a subject from Html source + let title = body.match(new RegExp('(.*?)', 'i')); + + if (title) + params.subject = title[1]; + } + + this.renderImages(template, body, (error, body) => { + if (error) + return cb(error); + + cb(null, {body: body}); + }); + }); + }; + + let getDataCb = () => { + this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); + }; + + instance.getData(params, (error, result) => { + if (error) + return cb(error); + + locale.load(template, instance.countryCode, (error, result) => { + if (error) + return cb(error); + + instance._ = result.locale; + getDataCb(null, result); + }); + }); + }); + }, + +/** + * Render template + * @param {String} path - Template path + * @param {Object} data - Params + * @param {Object} cb - Callback + */ + render: function(path, data, cb) { + fs.readFile(path, 'utf8', (error, body) => { + // Find matching sub-templates + let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); + let subTpl = body.match(regexp); + + if (!subTpl) { + mustache.parse(body); + return cb(null, mustache.render(body, data)); + } + + let parentBody = body; + this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + if (error) + return cb(error); + + mustache.parse(body); + cb(null, mustache.render(body, data)); + }); + }); + }, + + renderSub: function(body, subTpl, data, regexp, cb) { + let index = 1; + + subTpl.forEach(keyName => { + subTplName = keyName.replace(regexp, '$1'); + + this.get(subTplName, data, (error, result) => { + if (error) + return cb(error); + + let subTplBody = result.body; + body = body.replace(keyName, subTplBody); + + if (index === subTpl.length) + cb(null, body); + + index++; + }); + + }); + }, + +/** + * Render template style. + * @param {String} path - Stylesheet path + * @param {String} body - Rendered html + * @param {Object} cb - Callback + */ + renderStyles: function(stylePath, html, cb) { + // Common components + let comPath = path.join(__dirname, '../', 'static', 'css', 'component.css'); + + fs.readFile(comPath, 'utf8', (error, comCss) => { + fs.stat(stylePath, error => { + if (error) + return cb(new Error('Template stylesheet not found')); + + fs.readFile(stylePath, 'utf8', (error, css) => { + let style = ''; + let body = style + html; + let options = {url: ' '}; + + inlineCss(body, options) + .then(function(body) { + cb(null, body); + }); + }); + }); + }); + }, + +/** + * Render template images + * @param {String} template - Template name + * @param {String} body - template body + * @param {Object} cb - Callback + */ + renderImages: function(template, body, cb) { + let tplImages = body.match(new RegExp('src="cid:(.*?)"', 'ig')); + + if (!tplImages) + tplImages = {}; + + // Template default attachments + for (var i = 0; i < tplImages.length; i++) { + let name = tplImages[i].replace('src="cid:', '').replace('"', ''); + + let imagePath = path.join(__dirname, 'template', `${template}`, 'static', 'image', name); + body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + } + + cb(null, body); + } +}; diff --git a/services/print/application/template/footer/footer.js b/services/print/application/template/footer/footer.js new file mode 100644 index 0000000000..3b4020bf45 --- /dev/null +++ b/services/print/application/template/footer/footer.js @@ -0,0 +1,20 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class Footer { + getData(params, cb) { + let query = `SELECT + socialName + FROM client c + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/print/application/template/footer/index.html b/services/print/application/template/footer/index.html new file mode 100644 index 0000000000..59b90b480f --- /dev/null +++ b/services/print/application/template/footer/index.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/services/print/application/template/footer/locale/es.json b/services/print/application/template/footer/locale/es.json new file mode 100644 index 0000000000..04a61fddda --- /dev/null +++ b/services/print/application/template/footer/locale/es.json @@ -0,0 +1,4 @@ +{ + "phytosanitary": "VERDNATURA LEVANTE SL - Pasaporte Fitosanitario R.P. Generalitat Valenciana - Nº Comerciante: ES17462130", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/print/application/template/footer/static/css/style.css b/services/print/application/template/footer/static/css/style.css new file mode 100644 index 0000000000..8bd10148dd --- /dev/null +++ b/services/print/application/template/footer/static/css/style.css @@ -0,0 +1,23 @@ +img { + margin: 0 +} + +#pageFooter { + font-family: arial, sans-serif; + font-weight: 100; + max-width: 90%; + margin: 0 auto; + font-size: 9px; + color: #555 +} + +#pageFooter .info { + border-bottom: 2px solid #CCC; + padding-bottom: 2px; + text-align: center; + font-size: 11px +} + +#pageFooter p { + text-align: center +} \ No newline at end of file diff --git a/services/print/application/template/footer/static/image/action.png b/services/print/application/template/footer/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/print/application/template/footer/static/image/linkedin.png b/services/print/application/template/footer/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/print/application/template/footer/static/image/pinterest.png b/services/print/application/template/footer/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/print/application/template/footer/static/image/youtube.png b/services/print/application/template/footer/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } +}; diff --git a/services/print/application/template/header/index.html b/services/print/application/template/header/index.html new file mode 100644 index 0000000000..30c2a21f1d --- /dev/null +++ b/services/print/application/template/header/index.html @@ -0,0 +1,7 @@ +
+ VerdNatura +

+

{{_.mercantileRegistry}}
+
{{_.fiscalAddress}}
+

+
\ No newline at end of file diff --git a/services/print/application/template/header/locale/es.json b/services/print/application/template/header/locale/es.json new file mode 100644 index 0000000000..86dbe5e584 --- /dev/null +++ b/services/print/application/template/header/locale/es.json @@ -0,0 +1,4 @@ +{ + "mercantileRegistry": "CIF: B97367486 Registro Mercantil de Valencia, Tomo 8041, Libro 5334, Folio 160, sección 8, Hoja V 102076", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es" +} \ No newline at end of file diff --git a/services/print/application/template/header/static/css/style.css b/services/print/application/template/header/static/css/style.css new file mode 100644 index 0000000000..186ede66bb --- /dev/null +++ b/services/print/application/template/header/static/css/style.css @@ -0,0 +1,16 @@ +img { + margin: 0 +} + +#pageHeader-first { + border-bottom: 1px solid #DDD; + font-family: arial, sans-serif; + padding-bottom: 10px; + text-align: center; + font-size: 10px; + color: #555 +} + +.header p { + text-align: center +} \ No newline at end of file diff --git a/services/print/application/template/header/static/image/action.png b/services/print/application/template/header/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/print/application/template/header/static/image/linkedin.png b/services/print/application/template/header/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/print/application/template/header/static/image/pinterest.png b/services/print/application/template/header/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/print/application/template/header/static/image/youtube.png b/services/print/application/template/header/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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 + + + {{_.subject}} + + + + + {{$.header}} + + + +
+ + +
+

{{_.title}}

+
+ +
+
{{_.toCompleteBySupplier}}
+
+
{{_.orderReference}}
+
{{mandateCode}}
+
+
+
{{_.supplierIdentifier}}
+
ES89000B97367486
+
+
+
{{_.supplierName}}
+
{{supplierName}}
+
+
+
{{_.supplierStreet}}
+
{{supplierStreet}}
+
+
+
{{_.supplierLocation}}
+
{{supplierPostCode}}, {{supplierCity}} ({{supplierProvince}})
+
+
+
{{_.supplierCountry}}
+
{{supplierCountry}}
+
+
+ +

{{_.bodyDescription}}

+

{{_.clientAdvice}}

+ +
+
{{_.toCompleteByClient}}
+
+
{{_.clientName}}
+
{{clientName}}
+
{{_.accountHolder}}
+
+
+
{{_.clientStreet}}
+
{{clientStreet}}
+
+
+
{{_.clientLocation}}
+
{{clientPostCode}}, {{clientCity}} ({{clientProvince}})
+
+
+
{{_.clientCountry}}
+
{{clientCountry}}
+
+
+
{{_.swift}}
+
+ {{#swiftFields}} +
+ {{/swiftFields}} +
+
+
+
{{_.accountNumber}}
+
+
ES
+ {{#accountNumberFields}} +
+ {{/accountNumberFields}} +
+
+
{{_.accountNumberFormat}}
+
+
+
+
{{_.paymentType}}
+
+
+
+
+
X
+
+
{{_.recurrent}}
+
+
O
+
+
+
+
+
{{_.unique}}
+
+
+
+
+
+
{{_.signLocation}}
+
{{currentDate}}, {{supplierProvince}}
+
+
+
{{_.sign}}
+
+
+
+

{{_.mandatoryFields}}

+

{{_.sendOrder}}

+
+ + + + {{$.footer}} + + + \ No newline at end of file diff --git a/services/print/application/template/sepa-core/locale/es.json b/services/print/application/template/sepa-core/locale/es.json new file mode 100644 index 0000000000..e5453e8589 --- /dev/null +++ b/services/print/application/template/sepa-core/locale/es.json @@ -0,0 +1,31 @@ +{ + "title": "Orden de domiciliación de adeudo directo SEPA CORE", + "toCompleteBySupplier": "A cumplimentar por el acreedor", + "toCompleteByClient": "A cumplimentar por el deudor", + "bodyDescription": "Mediante la firma de esta orden de domiciliación, el deudor autoriza (A) al acreedor a enviar instrucciones a la entidad del deudor para adeudar su cuenta y (B) a la entidad para efectuar los adeudos en su cuenta siguiendo las instrucciones del acreedor.Como parte de sus derechos, el deudor está legitimado al reembolso por su entidad en los términos y condiciones del contrato suscrito con la misma. La solicitud de reembolso deberá efectuarse dentro de las ocho semanas que adeudo en cuenta. Puede obtener información adicional sobre sus derechos en su entidad financiera.", + "orderReference": "Referencia de la orden de domiciliación", + "supplierIdentifier": "Identificador del acreedor", + "supplierName": "Nombre del acreedor", + "supplierStreet": "Dirección", + "supplierLocation": "CP - Población - Provincia", + "supplierCountry": "País", + "clientAdvice": "Debe llevar a su Entidad Bancaria una copia del documento firmado para que lo registre y evitar la devolución.", + "clientName": "Nombre del deudor/es", + "clientStreet": "Dirección del deudor", + "clientLocation": "CP - Población - Provincia", + "clientCountry": "País del deudor", + "swift": "Swift BIC", + "accountNumber": "Número de cuenta - IBAN", + "accountHolder": "(Titular/es de la cuenta de cargo)", + "accountNumberFormat": "En España el IBAN consta de 24 posiciones comenzando siempre por ES", + "paymentType": "Tipo de pago", + "recurrent": "Recurrente", + "unique": "Único", + "signLocation": "Fecha - Localidad", + "sign": "Firma del deudor y sello", + "mandatoryFields": "TODOS LOS CAMPOS HAN DE SER CUMPLIMENTADOS OBLIGATORIAMENTE.", + "sendOrder": "UNA VEZ FIRMADA ESTA ORDEN DE DOMICILIACIÓN DEBE SER ENVIADA AL ACREEDOR PARA SU CUSTODIA Y ES RECOMENDABLE FACILITAR UNA COPIA A SU ENTIDAD BANCARIA.", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/print/application/template/sepa-core/sepa-core.js b/services/print/application/template/sepa-core/sepa-core.js new file mode 100644 index 0000000000..74e08fd31b --- /dev/null +++ b/services/print/application/template/sepa-core/sepa-core.js @@ -0,0 +1,54 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class SepaCore { + getData(params, cb) { + let query = `SELECT + c.id clientId, + m.code mandateCode, + LOWER(ct.code) AS countryCode, + c.email AS recipient, + c.socialName AS clientName, + c.postalAddress AS clientStreet, + c.postcode AS clientPostCode, + c.city AS clientCity, + p.name AS clientProvince, + ct.country AS clientCountry, + s.name AS supplierName, + s.street AS supplierStreet, + sc.country AS supplierCountry, + s.postCode AS supplierPostCode, + s.city AS supplierCity, + sp.name AS supplierProvince + FROM client c + JOIN country ct ON ct.id = c.countryFk + LEFT JOIN province p ON p.id = c.provinceFk + LEFT JOIN mandate m ON m.clientFk = c.id AND m.finished IS NULL + LEFT JOIN supplier s ON s.id = m.companyFk + LEFT JOIN country sc ON sc.id = s.countryFk + LEFT JOIN province sp ON sp.id = s.provinceFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } + + // Swift BIC fields + get swiftFields() { + return new Array(11); + } + + // Account number fields + get accountNumberFields() { + return new Array(23); + } + + get currentDate() { + return format.date(new Date(), '/'); + } +}; diff --git a/services/print/application/template/sepa-core/static/css/style.css b/services/print/application/template/sepa-core/static/css/style.css new file mode 100644 index 0000000000..5b1e628d67 --- /dev/null +++ b/services/print/application/template/sepa-core/static/css/style.css @@ -0,0 +1,22 @@ +img { + margin: 0 +} + +.body { + font-family: arial, sans-serif; + max-width: 90%; + margin: 0 auto; + font-size: 14px; + color: #000 +} + +body .title { + text-align: center; + padding-bottom: 20px +} + +body .title h1 { + font-size: 16px; + color: #333; + margin: 0 +} \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/image/action.png b/services/print/application/template/sepa-core/static/image/action.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd16c453d66b10611f90ee01deba70edbd7113e GIT binary patch literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 literal 0 HcmV?d00001 diff --git a/services/print/application/template/sepa-core/static/image/linkedin.png b/services/print/application/template/sepa-core/static/image/linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..0d191e5aee4fa6b5a86ec10745ca92cfd258c269 GIT binary patch literal 3588 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 + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/image/pinterest.png b/services/print/application/template/sepa-core/static/image/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7b28ef81877be92afd73b3df221fbbcd23f7a2 GIT binary patch literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG literal 0 HcmV?d00001 diff --git a/services/print/application/template/sepa-core/static/image/youtube.png b/services/print/application/template/sepa-core/static/image/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..11871deb548d3f160444b577756e872cac2cda45 GIT binary patch literal 3513 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
diff --git a/services/mailer/application/template/sepa-core/sepa-core.js b/services/mailer/application/template/sepa-core/sepa-core.js index 04fd71df70..ec19dd29b2 100644 --- a/services/mailer/application/template/sepa-core/sepa-core.js +++ b/services/mailer/application/template/sepa-core/sepa-core.js @@ -5,19 +5,19 @@ var format = require(path.join(__dirname, '../../util/format.js')); module.exports = class SepaCore { getData(params, cb) { let query = `SELECT - c.id clientId, CONCAT(w.name, ' ', w.firstName) name, w.phone AS phone, CONCAT(u.name, '@verdnatura.es') AS email, LOWER(ct.code) countryCode, c.email recipient FROM client c - LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN worker w ON w.id = c.salesPersonFk LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; - this.isPreview = params.isPreview; + this.clientId = params.clientId; + this.companyId = params.companyId; this.token = params.token; database.pool.query(query, [params.clientId], (error, result) => { @@ -29,11 +29,4 @@ module.exports = class SepaCore { cb(); }); } - - get previewAttachments() { - if (this.isPreview) - return `` + - '
Descargar adjunto
' + - 'sepa-core.pdf
'; - } }; diff --git a/services/mailer/application/template/sepa-core/style.css b/services/mailer/application/template/sepa-core/style.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/services/mailer/server/server.js b/services/mailer/server/server.js index 50320a3910..457a61ddfc 100644 --- a/services/mailer/server/server.js +++ b/services/mailer/server/server.js @@ -13,13 +13,8 @@ app.use(bodyParser.urlencoded({extended: true})); app.use('/static', express.static(path.join(__dirname, '../static'))); -// Auth middleware -var requestToken = function(request, response, next) { - auth.init(request, response, next); -}; - // Load routes -app.use('/', requestToken, require('../application/router.js')); +app.use('/', require('../application/router.js')); app.start = function() { var listener = app.listen(config.app.port, function() { diff --git a/services/mailer/static/css/component.css b/services/mailer/static/css/component.css index 10805e562b..b4c018d79b 100644 --- a/services/mailer/static/css/component.css +++ b/services/mailer/static/css/component.css @@ -1,137 +1,221 @@ -img { - margin: 0 -} - -p { - text-align: justify -} - -.wrapper { - background-color: #EEE -} - -.container { - font-family: arial, sans-serif; - max-width: 600px; - min-width: 320px; - font-size: 16px; - margin: 0 auto; - color: #555 -} - -.title { - background-color: #95d831; - text-align: center; - padding: 35px 0 -} - -.title h1 { - font-size: 32px; - color: #333; - margin: 0 -} - -.body { - background-color:#FFF; - padding: 20px -} - -.body a { - color: #8dba25 -} - -.body h1 { - color: #999 -} - -.body h3 { - font-size: 16px -} - -.panel { - border: 1px solid #DDD; - margin-bottom: 10px; - padding:10px -} - -.row { - margin-bottom: 15px; - overflow: hidden; - content: ''; - clear: both -} - -.row .text { - margin-bottom: 5px -} - -.row .control { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} - -.row .description { - font-size: 8px; - color: #999 -} - -.row .v-align { - padding-top: 5px; - line-height: 21px -} - -.row:last-child { - margin-bottom: 0 -} - -.row.inline .text { - margin-bottom: 0; - width: 40%; - float: left -} - -.row.inline .control { - font-weight: bold; - padding-left: 20px; - color: #000; - width: 60%; - float: left -} - -.box { - border-top: 1px solid #CCC; - border-right: 1px solid #CCC; - border-bottom: 1px solid #CCC; - font-weight: bold; - text-align: center; - padding-top: 4px; - width: 25px; - height: 21px; - color: #000; - float: left -} - -.row .control .box:first-child { - border-left: 1px solid #CCC; -} - -.attachment { - overflow: hidden; - margin-top: 10px -} - -.attachment:after { - content: ' '; - display: block; - clear: both -} - -.attachment-icon { - float: left -} - -.attachment span { - padding: 16px 0 0 10px; - float: left +body { + padding: 0; + margin: 0 +} + +img { + margin: 0 +} + +p { + text-align: justify +} + +.wrapper { + background-color: #EEE +} + +.container { + font-family: arial, sans-serif; + max-width: 600px; + min-width: 320px; + font-size: 16px; + margin: 0 auto; + color: #555 +} + +.title { + background-color: #95d831; + text-align: center; + padding: 35px 0 +} + +.title h1 { + font-size: 32px; + color: #333; + margin: 0 +} + +.body { + background-color:#FFF; + padding: 20px +} + +.body a { + color: #8dba25 +} + +.body h1 { + color: #999 +} + +.body h3 { + font-size: 16px +} + +.panel { + border: 1px solid #DDD; + margin-bottom: 10px; + position: relative; + padding:10px +} + +.row { + margin-bottom: 15px; + overflow: hidden +} + +.row .text { + margin-bottom: 5px +} + +.row .control { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +.row .text, .row .control { + overflow: hidden +} + +.row .description { + position: relative; + padding-top: 2px; + overflow: hidden; + font-size: 11px; + display: block; + color: #999 +} + +.row .line { + border-bottom: 1px solid #DDD; + border-right: 1px solid #DDD; + border-left: 1px solid #DDD; + margin-top: 10px; + color: #999; + padding: 5px +} + +.row .description span { + background-color: #FFF; + margin: -5px 0 0 50px; + display: block; + padding: 5px; + float: left +} + +.row:last-child { + margin-bottom: 0 +} + +.row.inline .text { + margin-bottom: 0; + width: 40%; + float: left +} + +.row.inline .control { + font-weight: bold; + padding-left: 20px; + color: #000; + width: 60%; + float: left +} + +.row.inline .description { + position: static; + overflow: visible +} + +.box { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-bottom: 1px solid #CCC; + font-weight: bold; + text-align: center; + padding-top: 4px; + width: 25px; + height: 21px; + color: #000; + float: left +} + +.box.crossed { + font-weight: 100; + font-size: 16px +} + +.row .control .box:first-child { + border-left: 1px solid #CCC; +} + +.font.small { + font-size: 10px +} + +.font.verticalAlign { + height: 27px; + line-height: 27px +} + +.font.centered { + height: 27px; + line-height: 27px; + text-align: center +} + +.verticalText { + -moz-transform: rotate(90deg); + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + position: absolute; + text-align: center; + font-size: .65em; + width: 200px; + right: -115px; + top: 50% +} + +.attachment { + overflow: hidden; + margin-top: 10px +} + +.attachment-icon { + float: left +} + +.attachment span { + padding: 16px 0 0 10px; + float: left +} + +.columns { + overflow: hidden +} + +.columns .size100 { + width: 100%; + float: left +} + +.columns .size75 { + width: 75%; + float: left +} + +.columns .size50 { + width: 50%; + float: left +} + +.columns .size33 { + width: 33.33%; + float: left +} + +.columns .size25 { + width: 25%; + float: left } \ No newline at end of file diff --git a/services/mailer/static/images/attachment.png b/services/mailer/static/images/attachment.png deleted file mode 100644 index 78efe4f95c69f9c03a08c93b4849d253ff1b3047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18546 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 diff --git a/services/print/application/route/manuscript.js b/services/print/application/route/manuscript.js index 90662b6463..091ffa4c3e 100644 --- a/services/print/application/route/manuscript.js +++ b/services/print/application/route/manuscript.js @@ -4,22 +4,93 @@ var template = require('../template.js'); var config = require('../config.js'); var pdf = require('html-pdf'); var path = require('path'); +var auth = require('../auth.js'); + +// Auth middleware +var requestToken = function(request, response, next) { + auth.init(request, response, next); +}; // Sepa core -router.post('/sepa-core/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { +router.get('/sepa-core/:companyId/:clientId', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + template.get('sepa-core', params, (error, result) => { if (error) return response.status(400).json({message: error.message}); - pdf.create(result.body).toStream(function(error, stream) { + pdf.create(result.body, config.pdf).toStream(function(error, stream) { if (error) throw Error(error); + response.setHeader('Content-Disposition', 'attachment; filename="sepa-core.pdf"'); + response.setHeader('Content-type', 'application/pdf'); stream.pipe(response); }); }); }); +// Sepa core html preview +router.get('/sepa-core/:companyId/:clientId/preview', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + isPreview: true + }; + + template.get('sepa-core', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + + // Debtor letter +router.get('/letter-debtor/:companyId/:clientId', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId + }; + + template.get('letter-debtor', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + pdf.create(result.body, config.pdf).toStream(function(error, stream) { + if (error) + throw Error(error); + + response.setHeader('Content-Disposition', 'attachment; filename="extracto.pdf"'); + response.setHeader('Content-type', 'application/pdf'); + stream.pipe(response); + }); + }); + }); + + // Debtor letter html preview +router.get('/letter-debtor/:companyId/:clientId/preview', requestToken, function(request, response, next) { + let params = { + clientId: request.params.clientId, + companyId: request.params.companyId, + isPreview: true + }; + + template.get('letter-debtor', params, (error, result) => { + if (error) + return response.status(400).json({message: error.message}); + + response.send(result.body); + }); + }); + + +module.exports = router; + + // store pdf /* router.post('/sepa-core/:clientId', function(request, response, next) { template.get('sepa-core', {recipient: request.params.clientId}, (error, result) => { @@ -35,32 +106,4 @@ router.post('/sepa-core/:clientId', function(request, response, next) { }); }); }); - */ -// Sepa core preview -router.get('/sepa-core/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - let options = config.pdf; - pdf.create(result.body, options).toStream(function(error, stream) { - if (error) - throw Error(error); - - response.setHeader('Content-Disposition', 'inline; filename="sepa-core.pdf"'); - response.setHeader('Content-type', 'application/pdf'); - stream.pipe(response); - }); - }); -}); - -router.get('/sepa-core-view/:clientId', function(request, response, next) { - template.get('sepa-core', {clientId: request.params.clientId}, (error, result) => { - if (error) - return response.status(400).json({message: error.message}); - - response.send(result.body); - }); - }); - -module.exports = router; + */ \ No newline at end of file diff --git a/services/print/application/router.js b/services/print/application/router.js index 58e9a36945..a9ebe1acf7 100644 --- a/services/print/application/router.js +++ b/services/print/application/router.js @@ -1,5 +1,7 @@ var express = require('express'); var router = new express.Router(); +var fs = require('fs'); +var path = require('path'); // Default page router.get('/', function(request, response) { @@ -9,4 +11,21 @@ router.get('/', function(request, response) { // Manuscripts router.use('/manuscript', require('./route/manuscript.js')); +// Serve static images +router.use('/static/:template/:image', function(request, response) { + let imagePath = path.join(__dirname, '/template/', request.params.template, '/image/', request.params.image); + + fs.stat(imagePath, function(error) { + if (error) + return response.json({message: 'Image not found'}); + + let readStream = fs.createReadStream(imagePath); + + readStream.on('open', function() { + readStream.pipe(response); + }); + }); +}); + + module.exports = router; diff --git a/services/print/application/template.js b/services/print/application/template.js index 9bc968c74d..9974ebcf50 100644 --- a/services/print/application/template.js +++ b/services/print/application/template.js @@ -4,6 +4,7 @@ var locale = require('./locale.js'); var inlineCss = require('inline-css'); var path = require('path'); + module.exports = { /** * Get template. @@ -15,7 +16,7 @@ module.exports = { get: function(template, params, cb) { var templatePath = path.join(__dirname, 'template', `${template}`, `index.html`); var classPath = path.join(__dirname, 'template', `${template}`, `${template}.js`); - var stylePath = path.join(__dirname, 'template', `${template}`, 'static', 'css', 'style.css'); + var stylePath = path.join(__dirname, 'template', `${template}`, 'style.css'); fs.stat(templatePath, (error, stat) => { if (error) @@ -43,7 +44,7 @@ module.exports = { params.subject = title[1]; } - this.renderImages(template, body, (error, body) => { + this.renderImages(template, body, params.isPreview, (error, body) => { if (error) return cb(error); @@ -53,7 +54,7 @@ module.exports = { }; let getDataCb = () => { - this.render(templatePath, instance, (error, result) => getRenderedStyles(error, result)); + this.render(templatePath, params, instance, (error, result) => getRenderedStyles(error, result)); }; instance.getData(params, (error, result) => { @@ -65,6 +66,7 @@ module.exports = { return cb(error); instance._ = result.locale; + instance.isPreview = params.isPreview; getDataCb(null, result); }); }); @@ -77,7 +79,7 @@ module.exports = { * @param {Object} data - Params * @param {Object} cb - Callback */ - render: function(path, data, cb) { + render: function(path, params, data, cb) { fs.readFile(path, 'utf8', (error, body) => { // Find matching sub-templates let regexp = new RegExp(/\{\{\$\.(.*?)\}\}/, 'ig'); @@ -89,7 +91,7 @@ module.exports = { } let parentBody = body; - this.renderSub(parentBody, subTpl, data, regexp, (error, body) => { + this.renderSub(parentBody, subTpl, params, regexp, (error, body) => { if (error) return cb(error); @@ -99,13 +101,13 @@ module.exports = { }); }, - renderSub: function(body, subTpl, data, regexp, cb) { + renderSub: function(body, subTpl, params, regexp, cb) { let index = 1; subTpl.forEach(keyName => { subTplName = keyName.replace(regexp, '$1'); - this.get(subTplName, data, (error, result) => { + this.get(subTplName, params, (error, result) => { if (error) return cb(error); @@ -140,7 +142,7 @@ module.exports = { let style = ''; let body = style + html; let options = {url: ' '}; - + inlineCss(body, options) .then(function(body) { cb(null, body); @@ -156,7 +158,7 @@ module.exports = { * @param {String} body - template body * @param {Object} cb - Callback */ - renderImages: function(template, body, cb) { + renderImages: function(template, body, isPreview, cb) { let tplImages = body.match(new RegExp('src="cid:(.*?)"', 'ig')); if (!tplImages) @@ -164,10 +166,17 @@ module.exports = { // Template default attachments for (var i = 0; i < tplImages.length; i++) { - let name = tplImages[i].replace('src="cid:', '').replace('"', ''); + let src = tplImages[i].replace('src="cid:', '').replace('"', '').split('/'); + let attachmentTpl = src[0]; + let attachment = src[1]; - let imagePath = path.join(__dirname, 'template', `${template}`, 'static', 'image', name); - body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + if (isPreview) { + let imagePath = `/print/static/${attachmentTpl}/${attachment}`; + body = body.replace(tplImages[i], `src="${imagePath}"`); + } else { + let imagePath = path.join(__dirname, 'template', attachmentTpl, 'image', attachment); + body = body.replace(tplImages[i], `src="file:///${imagePath}"`); + } } cb(null, body); diff --git a/services/mailer/application/template/header/static/image/action.png b/services/print/application/template/footer/image/action.png similarity index 100% rename from services/mailer/application/template/header/static/image/action.png rename to services/print/application/template/footer/image/action.png diff --git a/services/mailer/application/template/header/static/image/facebook.png b/services/print/application/template/footer/image/facebook.png similarity index 100% rename from services/mailer/application/template/header/static/image/facebook.png rename to services/print/application/template/footer/image/facebook.png diff --git a/services/mailer/application/template/header/static/image/info.png b/services/print/application/template/footer/image/info.png similarity index 100% rename from services/mailer/application/template/header/static/image/info.png rename to services/print/application/template/footer/image/info.png diff --git a/services/mailer/application/template/header/static/image/instagram.png b/services/print/application/template/footer/image/instagram.png similarity index 100% rename from services/mailer/application/template/header/static/image/instagram.png rename to services/print/application/template/footer/image/instagram.png diff --git a/services/mailer/application/template/header/static/image/linkedin.png b/services/print/application/template/footer/image/linkedin.png similarity index 100% rename from services/mailer/application/template/header/static/image/linkedin.png rename to services/print/application/template/footer/image/linkedin.png diff --git a/services/mailer/application/template/header/static/image/pinterest.png b/services/print/application/template/footer/image/pinterest.png similarity index 100% rename from services/mailer/application/template/header/static/image/pinterest.png rename to services/print/application/template/footer/image/pinterest.png diff --git a/services/mailer/application/template/header/static/image/twitter.png b/services/print/application/template/footer/image/twitter.png similarity index 100% rename from services/mailer/application/template/header/static/image/twitter.png rename to services/print/application/template/footer/image/twitter.png diff --git a/services/mailer/application/template/header/static/image/youtube.png b/services/print/application/template/footer/image/youtube.png similarity index 100% rename from services/mailer/application/template/header/static/image/youtube.png rename to services/print/application/template/footer/image/youtube.png diff --git a/services/print/application/template/footer/static/image/action.png b/services/print/application/template/footer/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 diff --git a/services/print/application/template/footer/static/image/linkedin.png b/services/print/application/template/footer/static/image/linkedin.png deleted file mode 100644 index 0d191e5aee4fa6b5a86ec10745ca92cfd258c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 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 - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/services/print/application/template/footer/static/image/pinterest.png b/services/print/application/template/footer/static/image/pinterest.png deleted file mode 100644 index 4d7b28ef81877be92afd73b3df221fbbcd23f7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG diff --git a/services/print/application/template/footer/static/image/youtube.png b/services/print/application/template/footer/static/image/youtube.png deleted file mode 100644 index 11871deb548d3f160444b577756e872cac2cda45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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 - VerdNatura + VerdNatura

{{_.mercantileRegistry}}
{{_.fiscalAddress}}
diff --git a/services/print/application/template/header/static/image/action.png b/services/print/application/template/header/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 diff --git a/services/print/application/template/header/static/image/linkedin.png b/services/print/application/template/header/static/image/linkedin.png deleted file mode 100644 index 0d191e5aee4fa6b5a86ec10745ca92cfd258c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 zcmV+f4*T(mP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0009oNkl zF8mLK7F@WntF976NTDvqZ2~T$P)sEYr=VGMq2fYg14G;C_;GU@pVKtXo5`EWJG=Yt zz2EzN=bd+c-9#Uv)__yMd%z6v7BB%E18P7UcmUi7?g4jzRbV5f)b91%)FavBz(>FZ z;AP-jU>#@xTfh#m4U7Y0z$7pQ%mJr?KY=CSW=iQt$`tj4x}rW&>*|6!S`cG2_SFMt zMLkgl*`w-pwWThr(+7k*9eAz4KYCDvPpS=dQ$17C7d#XA4fSNdVDoBIy`df{+4PRY zIZbuGSCB>Zv3i98ih3o^UF=1}kJa-GLDchc{(KP|ZVp<*&(V1Ee{DRxL_@v7A&{`~ z#=c%9+|Fj%KV89}b5p&(U*Kq!<<|Oihpl`7O1a4u;899xu?wIH;9TSuw^B;Kl}vmY zcp;_q;eT?82&vOu0KB38<-hW)`clcHr-R?|{KIQ%y-R=#J}d7Jz)b4uwcYeGw6)OX z=GhLyZS~CokX{I$HPjjPVUcW2y{vwtu66se2S9pMeWcEyURBqqfP|8+jzq<=-oxMg z;;suy>0CVj7?{m1{SNpPxD0#%yaxOZd>sYA!-Blmff>}h>ZO9DxAR7wdw#pa-dEKh z+*`g^UnzL*CG~C=HQiQ8U-Vtz?dQy$0zNBg_9&27NfHw}b zv*=5Vl|;JLG5%$bHARZqG2lTKjg-kj_}P@wlRhCPf%{o>ex|5~Oab?@XjRQsg!CM6 zCyU7t#YA%yVJXsNAcz((}e&K`0tpADWHBPpe}x&&N|0ML!p^SMVyuCd=3;H!@D z&t0B*5m?&owic;ehGZJgRxVF##K_(bBkAR+VXIq>SG(^~*$z`ItX3~Cx1m~H)7-{t z^`|>DUY(nO4jZq|olA#Tsm|@z9sy|R_lT9eu}ytyekgb2{|o@N7p$=+VXSok0000< KMNUMnLSTX^4#cKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000)ONkl!Z9o%!f!mPs@* zYBU**F^NkQcLg<~h~qjS$|Be-BC?1}L}ay_?yg>{yQ}iYJr5p_SMQzss#5l#ZsvhIpmN-4&QbZ08E-V`CMQUkgw>I1ZD!&5yw0d_zz{y(ATC}a_iFA-EQC#Vo+07MBnkd z=+v)@s_o63>(hb10ttnH`4IS*44(N%z#WRQS_8KOzs-?32S=Da1Z)NVN7?U`420P@ zi?%somN{l9+x-Serjn4CpQ87;UE~)fNhV{&VgQ^Dlqm0242%aBM||eXEXJC5kj(Sp zKre;H`7W?4$Cgbe%mCgN6EaWHZ+OJ-yeItx_h6pqb zZq1P=D>z!wW()8ZKuviO#fMeUu~(eBs=a&NNHHI?J+2>yS+t#Xkj!y2pueKsD&V6W zOE$eQ19-%u@9`1FJH?{y+d1-N#q`l=(Qg3|gG6;cy~ppSb>{>Pb$jDMr$-q3IG}Tc ze%i4bfIl51^L(mO*gueC$*)hCtpN5Y`yLr#ydlbVPm89QLuMFhV`4Ve=h3QT9i0bN zP*<5pEHC9~9Y2mZ{?Lfpy9TQcA|5$S+3w98OMZRAEMcLYO}89t1kh92HkXc(9ZXZS zNdk`pB&zah+qISsJ>%3>7CP651I;6jf2?KuUg#bF_k7DXjq;p{`Sl7jfR~hgyIV4= zR`|s+5uY3~Lu;j$^A@lTpsuozz7uxRzFQ6TH5r+h4$f!)AX6B=r)*cl!Q(F*2J}!` z8}&K1{Cb7iE5JXL{l_+ei8%}756K}jj7Jx2Sp`7M{B`UTH=hj(fuCgX42M{nnlqH` z79K?NtlgylH^-7qi*&o@AB6lN_j4q**!^M>*;37Y+6m+UWEV{@;B?Bv| zE-Q2d+F+n44lXtmh_;3{FLDZ)&H75&yYqAwOp(VFJrzdl5eIlQfL=lE%f zmk^#iy4c09*8n$(mEgs-Y3O~TtdCu)oDLv0>yy4F%Mpn}?p z0!Pp2ioRAiOwdkL`uH@sJIxrgFeP@=vhd7Bm=ZrP-%ibtYa8EO*2McAVi_gD!m0$#x!wU?nOm(`4Q_Oo4etCV@DI)P@Y@+#y6-lez>Co)!%!vsAB1+m zS&Dm=x=l2}St7uLupL+@LiNlL*Tp8+|GS75+7$G8S}c)JVYbdS;X&vfBCLifAMCY& zYfFJ2(lof5^!aZZ?PxVHN8#7ST?)rvJ#*Gv=D%MP@kU!QlN~L+QfhJ^;%5qMu*LrsB>z{wh61}05IgCPHmHh1WufJq#qyhk}EBDD;=BK04o5egb2 z|7*mBKi~EFdhykKomdEvO2#N`(MbD4<22UgIfdmNfPsp8Xj5p42~L=v9+5|uSPGbW zbipMzoFv|9;DN=ImjYTR;O%FivZ(&Wq?Onxe460A6=}eiIX=Y)bmH z(+aacDQ}+6QQTg+&{w3{F`h#gJa}1rF5N`%jg`-*p-WWsb3Tv7L}Z!@@4B?VTa)<_f9lVG5S9>juOO^N7h~9sBc81#fR`x$3<9Et_^F*8ID}JHw z;y!pef=Sa&`gg*qXAQ?l>Er%;Lau53gnx_3!(QySVN!Vf3OZtmxEDpK_KbNpYa^g-Q(DSBVxQN?R94sK1|+yEa{cx)32 zvMr*17bq9i>#~dYm**OcN&9#;;`n92vRKSy{TKJIq;2Oq8ut~JYX#I|Oip4|2EuHj zaxp#V`rHo_F$=?mqV>(iq+09{-_LU48I5-3n1@msP?nom%QeUK%N^(W)9b zFtwvIy86s}fnSESnTv4{Yt0DSL|HwiR&P{oekcRMYbAKP+W#NiaH&JDt5)0_@^Rx z>2ts3v(5&nttg~;Kn1?ZzIGq+ZzVWL{s;&@mg{PQvX)8{VlH@AZ_AzsWY;WGN;!<9Ync9t$uL z_1XaXq=bfHyx%dT%{KRjp%G>k;vYCx!5nVi&rwR%*PA~x9$j9NO_6(RMH{y>+vfcG z6ejHas3lW`X`b^Gf(+n;2s`SV#Gt0Uki(DNM*BmnDf_IYqa$kP)t%tH2;-X!^D+L= zBg{IXix@xXneV%ajy_`E{7lhyF8)c)8voQ6AufcA75AvbKNr!9?<+N!C@C4R<}mF%#vV3Lw4pWOq5iE8q2YF0h>udECwZmD%`Wz9DRiCSe0gum2fkkVZBbEuEBn2TcxPM?ZO zpQA8oC4J=c_bvLbaw{QPVfHw>TE-zRVWx2`ma@O|xTliYO3)WCYf$D=ne#2Qlj|c0 zGB70_VZNx{7CV^@9s`nz>U=u%iqm~aIW>Fs7M7o@To`2>m@e?NLYN(iao%sXSWJtQ z+GjDQENGbUQD6C-Num6j417#Mej{x?;sQk*ZONHm>XUZkx-koa%%RV4Ot7t=%w;C@ zS?aZKHK-M)3N!y^h+3S7uC&5yYF&!XDVyz-i6yQb@CbC}NM8}{?NJ4a-N(iUHqdhX z=fOlVyBuCg`|j1$>^q22TS9e@@Pr#HFnNCML;9Y_zMzd}yvGBswHMQ8f^34>IeEdvP`DQRb!cG_Ug)7I)E)}GSyl-(o+d#$YSS&?-bv~W?SJJF)1J&h4 z4liiue{Px$?@mmxC7bcszj8M( z+M)AHui?N1=M$Cla69Qw;0RJS?i5!^%O;}FZ0{F&7M))rJmcHR_MNP_-&;QB(rCUJ ztaN?W)VDRtVv2$=(`u2$y^65Q6IuY2H`L|Rrb``%P1!+W--)tkDYPmuk=hk$u4(Fd z9W!l|l1IFe?y;Ci_GJ+TS(S2e`fVuMDCX*bYu(Tlb-zk@!uph`3*W-jwS7PC(ZHve zLm{FFvf8Nh$+H|tlixEPT{O_E*^K9#LBb`>4pFM!%L#YPrbF1=d}490GnE3!!Gi#G zRRwhD8K+a9IJNr<%e8OYdOl=R*c8&gi!A0&5ym=QTmn5T=X^89nSTn#Um13kPF)&a zpQs!!=!A<4Y-kmNietq0ecUqlLmyfsYTbz;e*v z5uTNQ3*o5{6&(1cnnNv!{3!PCar8rh?D931KBHL?$7`=x5H_h6mspO!I2KD$S5-i} z?$tDJo1k)A3&$+b?($(rL(KtxsxVy!gtUocP7rZ0OzA^%G^3Tm@Jl=!#65)P(Y=6w zZSR@Ng%(tbqdi&WosjD>bjKZiiAmmeV;s6%!UYz*HP(VYYcK)4H-tVPyRO}&P_h=` zQ*~l1%$8zuUxFfDnpe>I?OcZ|pWzmo?kzXklR2WkGHj%RP};X$A7`n}ZUH_{Hs;Z+ zRRaU3Z6`*IR1%0W72R8rmJ=RDo~ICI8lmt8`wn3&P@1qCFa`TT2P9|&fS(y%g6?d) zAQLlB$>&=Xd~mjM{raVsXb*09M%k`NX|-(>_rRMO^2VxklWU8ovLH14RA|jXfHj04 z(VYo~DcWq$K$vROZ|$qr{%kq+Y#^107tpSI4aEa0-6tt!PmmyU zPLj1Xnea)(0(UO@pP1v4qi_tA-^z5p9#At zC`yuSj1h}5S*bC;hCVp)Eav?NQQs-aIU#-{x#-VeVr_<~vD=mi&A#Mf@f~o^f zMW5gJ9tZl%vYD`p@M2gnr(B`ck5&q^_kwJAThwCCIg5%X(|oTr-Gb`AM#!$J*|mnT z|BErkDaX&`EU`MJR#}R9E7E98D#LV)uW&;|LG}``y)ltT%T5V8^{%3}vd}q*af0$5 zHYG*tiSAeQ^2ihmzD$QP=rh>;Osft`ZKg25UD68OQAc1h^JjY2=TJ=U)*Op@oaOV~ z3`M^^=>27yLm|UXhMB;DNxeavD%sM^95dpl5&G>25C&_M_ZT6I{RK=KKm(>ObTInN z>L0NG8JP8cLLFr9d>A`!FdDEirjoyM;$vSj@v+vY~y1 zNwOXkVJ^LA5q3jYs<#k*>X9Zlv>otk;1@pgIupJBuPjK&MipkIVshBNz2~+7yLo}d zeTHNAzCEws6H44Ar|R-F>;{iFew#OO?I`oM^BH5J=?XQZP5+;oGrI@ z^}dg(tu;@z(8_?HV{#cci3S^mJ_`vrIXW-mM5Qd$&>%+jE|{fFyr{3m|M-~c7R;V0 z9?RnI(F8+20hS~iVl;1CPsxBv5;ggbiK$JLeJH}SZ9{iRpBJ}Vn2&xwsnape`Z1OZ z1=9PwI!2_=lP=-7HH&oDoRso}k9MVXDa^Kb7MtYp5n??>rB7f2Z(aryI?uBGTEhKe z7twS$g#+Ig==Mj1;Zycc?u&|hv-EprDHr-P0Cn*KS{K*Rrlgj-s=dmR#^G9x{o#*p zcZ3agaiGuYA6c3&&C%ZP1Ch&dyC)%LBE|sBk;2Qe!W*P0fBT2Ym`z|o|C2L*_olxj$?usFQ7|jDFvwAQ^;Xc zcF?g;oO#j6+-zIu0%Ac`&i;q#{3CB$B50>8Fvmo>@iXkt1xpGIM#;vY2@I|BF>5bWjyEfUg?3*A z`s{JhXBE0v(p^hHWV9f|Mfn`&+_G4}?j4g|Vx7f(XJaB-x61u{EBkE{Kh1pv=c2h$ zCVhgQzk&U8pR$49irV}O!o%C|V8Zf_pYjm)y(5%>=UxWvPSoVnzDG6fyVp>=rvPFU zpgW_g3f;>}g76r+7bKUFKH7VsXtdW5UX!~X6G^?9eUaz>AvAX8E6Ak1Sf1e=!h;e! z0yOz!F#&?JL-_h*OpWKSfzMoYUq^7NLkv@Y>P3ly&ufTws_!KtXfGrD=&yCcQ@60M z{u* z%w%ukV?GuyORe1AoPLvbaKg>+Q&V0@Dj6%p)F{>lFh@Qnv3Ok;e&6Jf4KH7ON}q+? zr$qcd{bXUsWFB@44=j#gCPl$SOe#-nQ3&dV7r&4Vb%WBcHAPIv4r1aaM4MZIe=y97 z?%x24g+Bc;iL`kx`g|#ya@Of{#h~~;VU|M - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/services/print/application/template/header/static/image/pinterest.png b/services/print/application/template/header/static/image/pinterest.png deleted file mode 100644 index 4d7b28ef81877be92afd73b3df221fbbcd23f7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG diff --git a/services/print/application/template/header/static/image/youtube.png b/services/print/application/template/header/static/image/youtube.png deleted file mode 100644 index 11871deb548d3f160444b577756e872cac2cda45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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 + + + {{_.subject}} + + + + + {{$.header}} + + + +
+ +
+
+
+

EXTRACTO

+
+
CLIENTE:
+
{{clientId}}
+
+
+
FACTURA:
+
x
+
+
+
FECHA:
+
{{currentDate}}
+
+
+
+
+
+

+ {{supplierName}} +

+
+ {{supplierStreet}} +
+
+ {{supplierPostCode}}, {{supplierCity}} ({{supplierProvince}}) +
+
+ {{supplierCountry}} +
+
+
+
+ +
+
+
Fecha
+
Concepto
+
Debe
+
Haber
+
Saldo
+
+
+
Fecha
+
Concepto
+
Debe
+
Haber
+
Saldo
+
+
+ +
+ +
+
+ Subtotal +
+
+
+ +
+ + + + {{$.footer}} + + + \ No newline at end of file diff --git a/services/print/application/template/letter-debtor/letter-debtor.js b/services/print/application/template/letter-debtor/letter-debtor.js new file mode 100644 index 0000000000..77715f3b77 --- /dev/null +++ b/services/print/application/template/letter-debtor/letter-debtor.js @@ -0,0 +1,54 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class LetterDebtor { + getData(params, cb) { + let query = `SELECT + c.id clientId, + m.code mandateCode, + LOWER(ct.code) AS countryCode, + c.email AS recipient, + c.socialName AS clientName, + c.street AS clientStreet, + c.postcode AS clientPostCode, + c.city AS clientCity, + p.name AS clientProvince, + ct.country AS clientCountry, + s.name AS supplierName, + s.street AS supplierStreet, + sc.country AS supplierCountry, + s.postCode AS supplierPostCode, + s.city AS supplierCity, + sp.name AS supplierProvince + FROM client c + JOIN country ct ON ct.id = c.countryFk + LEFT JOIN province p ON p.id = c.provinceFk + LEFT JOIN mandate m ON m.clientFk = c.id AND m.finished IS NULL + LEFT JOIN supplier s ON s.id = m.companyFk + LEFT JOIN country sc ON sc.id = s.countryFk + LEFT JOIN province sp ON sp.id = s.provinceFk + WHERE c.id = ?`; + database.pool.query(query, [params.clientId], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } + + // Swift BIC fields + get swiftFields() { + return new Array(11); + } + + // Account number fields + get accountNumberFields() { + return new Array(23); + } + + get currentDate() { + return format.date(new Date(), '/'); + } +}; diff --git a/services/print/application/template/letter-debtor/locale/es.json b/services/print/application/template/letter-debtor/locale/es.json new file mode 100644 index 0000000000..e5453e8589 --- /dev/null +++ b/services/print/application/template/letter-debtor/locale/es.json @@ -0,0 +1,31 @@ +{ + "title": "Orden de domiciliación de adeudo directo SEPA CORE", + "toCompleteBySupplier": "A cumplimentar por el acreedor", + "toCompleteByClient": "A cumplimentar por el deudor", + "bodyDescription": "Mediante la firma de esta orden de domiciliación, el deudor autoriza (A) al acreedor a enviar instrucciones a la entidad del deudor para adeudar su cuenta y (B) a la entidad para efectuar los adeudos en su cuenta siguiendo las instrucciones del acreedor.Como parte de sus derechos, el deudor está legitimado al reembolso por su entidad en los términos y condiciones del contrato suscrito con la misma. La solicitud de reembolso deberá efectuarse dentro de las ocho semanas que adeudo en cuenta. Puede obtener información adicional sobre sus derechos en su entidad financiera.", + "orderReference": "Referencia de la orden de domiciliación", + "supplierIdentifier": "Identificador del acreedor", + "supplierName": "Nombre del acreedor", + "supplierStreet": "Dirección", + "supplierLocation": "CP - Población - Provincia", + "supplierCountry": "País", + "clientAdvice": "Debe llevar a su Entidad Bancaria una copia del documento firmado para que lo registre y evitar la devolución.", + "clientName": "Nombre del deudor/es", + "clientStreet": "Dirección del deudor", + "clientLocation": "CP - Población - Provincia", + "clientCountry": "País del deudor", + "swift": "Swift BIC", + "accountNumber": "Número de cuenta - IBAN", + "accountHolder": "(Titular/es de la cuenta de cargo)", + "accountNumberFormat": "En España el IBAN consta de 24 posiciones comenzando siempre por ES", + "paymentType": "Tipo de pago", + "recurrent": "Recurrente", + "unique": "Único", + "signLocation": "Fecha - Localidad", + "sign": "Firma del deudor y sello", + "mandatoryFields": "TODOS LOS CAMPOS HAN DE SER CUMPLIMENTADOS OBLIGATORIAMENTE.", + "sendOrder": "UNA VEZ FIRMADA ESTA ORDEN DE DOMICILIACIÓN DEBE SER ENVIADA AL ACREEDOR PARA SU CUSTODIA Y ES RECOMENDABLE FACILITAR UNA COPIA A SU ENTIDAD BANCARIA.", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla · www.verdnatura.es · clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/css/style.css b/services/print/application/template/letter-debtor/style.css similarity index 100% rename from services/print/application/template/sepa-core/static/css/style.css rename to services/print/application/template/letter-debtor/style.css diff --git a/services/print/application/template/sepa-core/index.html b/services/print/application/template/sepa-core/index.html index 867da43d95..92cc6fb809 100644 --- a/services/print/application/template/sepa-core/index.html +++ b/services/print/application/template/sepa-core/index.html @@ -14,8 +14,8 @@
-

{{_.title}}

-
+

{{_.title}}

+
{{_.toCompleteBySupplier}}
diff --git a/services/print/application/template/sepa-core/sepa-core.js b/services/print/application/template/sepa-core/sepa-core.js index 74e08fd31b..304e327dae 100644 --- a/services/print/application/template/sepa-core/sepa-core.js +++ b/services/print/application/template/sepa-core/sepa-core.js @@ -10,7 +10,7 @@ module.exports = class SepaCore { LOWER(ct.code) AS countryCode, c.email AS recipient, c.socialName AS clientName, - c.postalAddress AS clientStreet, + c.street AS clientStreet, c.postcode AS clientPostCode, c.city AS clientCity, p.name AS clientProvince, diff --git a/services/print/application/template/sepa-core/static/image/action.png b/services/print/application/template/sepa-core/static/image/action.png deleted file mode 100644 index 2cd16c453d66b10611f90ee01deba70edbd7113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3225 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%0AZQE6(OF&wX?nb&(3F$_|vza?Z{P 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 diff --git a/services/print/application/template/sepa-core/static/image/linkedin.png b/services/print/application/template/sepa-core/static/image/linkedin.png deleted file mode 100644 index 0d191e5aee4fa6b5a86ec10745ca92cfd258c269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 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 - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/services/print/application/template/sepa-core/static/image/pinterest.png b/services/print/application/template/sepa-core/static/image/pinterest.png deleted file mode 100644 index 4d7b28ef81877be92afd73b3df221fbbcd23f7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3807 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 Q0ssI207*qoM6N<$f)8laWdHyG diff --git a/services/print/application/template/sepa-core/static/image/youtube.png b/services/print/application/template/sepa-core/static/image/youtube.png deleted file mode 100644 index 11871deb548d3f160444b577756e872cac2cda45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3513 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