From b9470718967fcd88591ed1c0f844c36e7cde69cb Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sun, 25 Oct 2020 15:46:16 +0100 Subject: [PATCH 1/7] refresh testo readme --- README.md | 4 ++-- README.pdf | Bin 100129 -> 62305 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f102716..4e849d4 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Ci sono le seguenti maschere principali: * Creazione TASK (commesse) - nuova * MAIN BCode (derivata da XPST) -* DATA EXPORT (esportazione tracciati RAW delel registrazioni x commessa, formato csv reale o da tab con type excel/csv) +* DATA EXPORT (esportazione tracciati RAW delle registrazioni x commessa, formato csv reale o da tab con type excel/csv) ## Modalità operativa @@ -46,7 +46,7 @@ In particolare si tratta di * Totale tempo fasi / pezzi --> TC stimato * Si potrebbe costruire un grafico / curva (opzionale, in secondo periodo) per indicare una CURVA del TCiclo al variare della uantità di pezzi lanciati in un ordine di produzione -## NOte operative +## Note operative Ci sono alcune pagine speciali: diff --git a/README.pdf b/README.pdf index ad08b4924d37f215ad3dcf471238c329e1e8c13a..bddd3cb46daa54513266c14643e7f3c896585272 100644 GIT binary patch delta 58448 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

d-Pk(7?r}9v;S2DfgvsX-3woETnGAaA+ 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 delta 96574 zcmaI718^Wu&^Q`i?Brr!Y}>iyV%xUOjcxN{`=X0&+qP}J`+e`LdjEQ_>Q(LT>~{Ce z^h|fpOwaW09D?V?e2Wv-VCSHMWe{;RF>to9vlTUPHX))Ek z`=gqS&%~^jkN1m{CyJD3ykGiu!29j}RM-0FTcO?i5uw25W2Atu*XxeB%i9HTu#*N{ z$XFRYpXf!3-W0q+^1a?ZoP=_?j5XJE@mpw257Lp_yiY8zE!oKdN~4}d()onq0`b0T zZ&#W$Kbw;xfi9nqskyVIJ(!M|%oy$>{({4q5MMm)IptN=l@DjJ#91*kF+i%&EPFN^ zX~Y$~H{^PB^fzLoq@AfQ-Edrvxe*}UIz!+gP7v!^0A=Fl3+!&W6MT9BQBAkrb5SHV zPZBZg(Y8>p98?4&vDbG!d4*{`wm3Suw)CnWGRw_VgRLEHPx&jA(NuS7HD9d@P!ng{ zgo-N@XiCb9;W<SQE*J=G@-}=34k>hB z%cHPkGPZj&Fqrtw6r$STIr`Xa`RKGYI%RH3X=H?$RW~&1V=j2@f*npE?OOQ!{MN86`O};*nAv-Y<#1LqL+E=k=xK|kE{b*c z0#$mD2zpZa&Rzw{0TGaE7G1NHw+Xi)qU%zKK9F2_LcS-9h$jlKwsI%_S6+)o_*YlY zJLbC7nTOlMuCbYbAT(i4?ot~z%lV;MySsb9?1#GB!og)rk5`)ZiM!c~`&jsh*?^W= zRi~#%eu^AGx5ibx6n^xMfThG8l!1#A< zG|k`dwO`yEwkZe9iwmnMuHB6oX-EWnWVKz#wn`}g*>$M@uSNlaD#d0uK^ypRX?yOA zZZ283?!X8V7#Wt_?jFzcDdK1K9V2st3+nlfXqTH0L;WxpG1*qEpH5qcnX;dGA0=Cy zkP_YC_tfK*C@?@yr>-Nm_SeTxc!!fimCg5ywZurRL!dW0#Fm@pY#5J(nLm>xq90G) zP&le5@z+&qb54#nrJD=NY*>=rk6o^II_BS;n^{}#Svx4UQq)i!>#mthqs3u!$jN^O z)%mK;I7Ge;fJA7_uc_8QE3`_RFnI+!{MZ{Hsm?WQnQsGp^Wh{s<~Z_bvNM>zE!;E zVVZlt%F7sgjA6Ewhm55)*oRNKjw`8T=aHR%kjQz4e%3c>BMO<>gs1oki8KFRUhv7! z#R{n2y2J%GN=}GD#~zkXJpYHq$J}~L1nz_zLqs*kbOslkz?ed*>2&Sryh!3>>5$wr z(zZGK=*x{_c-J1mW2NlF1nXF6P^2H zZPFU*bY$<1wC(0V--za8_qPjxFrm`lh%!e}0EC0?r_FB!j~1`Cd!Bss8HV2=ab~)6b!lV;%;DjMpI}Pcr8`l%qPoEq}{pSUVv=$P}$L= z-p85oa3`uR@(Za&uZ>(o*)(|%crG?*BwwGPS_zYs^vz%QF z1h69WQRk*3;T@a?ham9%&4$5Be{ZbugwLYn?Kv=9QL1QD_|gX+NLKAP$Lzop-1mOw z>x}$yFXug)YQYE}t_+k5Q(y;83PUR}Hf25L!u}uA*gbX#T!ck`0-LL3t@Q z4jY6xhdrGC0uRqmYeqC?I&O%quX^p!4bcAGum>x)2n!fvI|l8bJ+-OOfUE~Id5_Yd z&19lMmaa@2n8mLDMLw7YT0a_n316?jSS$8at-}bH^sn_wJ{gY>Ll>gdPD71K^%Y+@B9Dm0xFUlce=SiNubnxC+W9-9Fxj*ekin#g zC3N${T>0?2z{e|c8&yV_nI(glqzTQqY^ki7NzD_3UTTh+VCn{%GQ;3$H9f(s=G3{Y zsOZ$o-v!C@$L@MhJXYMVYGGLx`2*fWn(s3E5sR857;sN0d>#em(m@Q!`J>U_pcxy4 zhHAy2(u<>h>e#TEK$YNmU=yNb0l&l|Z`uwKWx3F|8A&UjnYW*doh=8m0+f_zzhNhwRt@z`+i;Syu`wN(K%lzhp%Z%e+rO}@3;uZG zjn~%7$R&taB=#k2vdn**t2!rbz%0m}MJf7A{YQ@*AH%55!6Q710jAe5gC_p8=6oh9+7Jy~u%MFL-jnWA)tNq-1%ZKe=>`ZHg+ z#QC$R;y6@={FU2`yQ7V6<5@zN;^`QNjLRN}Um4j?*ZO0Am@-lxto6tGFohP}HvJrW z-M&qTTzak>Bh`u${y&QYRO?~ADbO%&NB*R1k)t90C6h9?qd-u`(oLWD5`n>;@|9Y2!XG&Nr< z9UsojbZBzRiTV|V=vho|h`)h?zIsNfoytf-O-p7akN6Y==U0=Uh_d*!;4CCgJ}S#R zG=g^lk6_g_;AiC=`w!hZTZZj~h``hnN?UZEID5rUP^zv1?Gf)5POj`OpXoFMVP29R z0aIM;Q97{!%J8U**VVO6zrpx?%*J(BIkpSc)*oi8M6nV^Ro!^YYLQ>xxDnCvq5Tbk zEAEJ0dQ=KG z>7^8*Z<;F%ycSWJhkgpP0QMI8#APu|-ig?K;a6sV?> z&Jy*lLe*78e$JOWS=@N4V}iHrUiWgut_tK>XUT+BN3<+(U-OuV9y75%4i2p}ZRO=Ew&qQTeo#5DTpAD$|`A3G2ee_wnwtfqy&if39=nQ$bP&ONrQ z-=gAjOhq;xCiq9Ey?q|nM zR@TQSB=A|CG`KmOB*;yplDdHPV?=o=7Po(0r_3;+{hyId8t}s$5c0D_aO*wdZjSBZ zCOp1rWNi%nfYi*B5Ru(;UIlSi%PrXh$>}=?Q_kq3_Cp&xJ81av+yh75{^n=lDnfa&q}VQnlY z`HwDD;^cIEGLMaW>tBAn@{?Wj8?yk;h zyL*CH4T3lN4Cz!8zN?xnh2VobnYLu7lltslrj4W=^w) z`ZjzwCPeenFGcuR3VY)hX;nm>C^__lJB?p7&6gl<<2#h>gXen z7d{u-^@=H9kgf|2xv64yu`#SyY~A=JP{BtlY(p(6J6xz}ksL7#WvDJosu6nK-|MFb z!9bIz$1N@cL;u1UoWu34qu0Ho2MDjEF61UuVn6{b;2PKcCv0LYF^|g!ue}{vjX}=y z>>#+^(_>bLkY5c%WujJ*By|l!u^&1t^nmbU4j@hK$3OC z^w3i*VR*8)1~2Zq_)5!yH6m`!DZm?-+Z|A^!p2+}tfa!)>3GM)^IO%|wSBigau3DE zfwyY+)Lm2?ucp$sUb+=WyLuC~FJxyIf;0XZ?%Eitnl93XTMLGHDt7sM^c6DhoAfNuDm5s10N3!f=M)T#M`c_E_>3>L&G(F<}4lZ@pW8wNI zcToShpUVd)yYqGO?8Lpl%jAjCvF1f-<_RS_M|Q)G0);`sWxJs zo_!@?hh!)1pM(|F)UTyi;r0-nDS2xw1ZoR&nHIduD9xBDfE7aSn@mR17+vGY+;>gp*0kn}N{_XA^vF4samrhS3CJ zk{rr%x55k`fcnXLV06<;!-mnmuLyySk+5^dT7n-1|Lye{*5YK?$CxZL=7OYABh8wl zQ;3QB#$87|Ij?eOzq6$E%ly=Y=(#`;=;*zsubIz6aj0C+ZOY!{g9r%d5h9&kG)S`Ne zJ(rQQ>^h@WmAx@~HzRo_kjjmZ-}bNLWwxPhYJM@$)PcJgd6VqNl_WZ3Ks~Pc*0?(n#4Wm@AK|Ple)=i6Ki!5OqA4V zlgh1NdJ=}b3S^BRXG7B}cK*WeIISV+f@1~Md*@~}@l@G5)Ze6Ga=JUc zB)+Qb)n%6MsSDKa;tL`IyBv2JPI5Cc;$5sMxj9C_LmmKmw8AKufe|Ts5EJPH>YUc6 zafJ_yfu2(zI&C+Kj=T3PMkF?TD^Y>e?Tl_1+Y1K!=fg>HeuwsbA&m;qp|j{+cK*V= zx%gH^$#ME%?HEwyp)&9kc7k&V-x`5D#{pG_E^xBVrtIax)xWY^4e6dyM}J|e45}SN zdl`qRYZ-uh;pChzd66+!b0rb!3;WI4Kh;Qn-q96rL@Ic6r!X|XIxZryK{55Sc>KTV ze3PwRhD~6)k-X1$x>S?)w=k!5jOVOc*Um+J2L-eC38-(@@sC#JELa*u4K*$K-r0t@ zK0H<1Dsg!EUW=jXL0FTf(t#hzwe!$qyn)H-=A#T4vfAv7*7DWM)gdKx+?b8SR%*N^ zE>?a>$7)Xry<{o#-A{s(+1Wq`XL%!>U(f+U42 zn&7Bxi8@LHG(NR57rE`167XjeEZF)ru}?bpU=p1k>XAaD_D#dTu|vS)QgW!Ekciww z0vQUh*B4jZ_O^B2BzT^TVksd}mS2f33gkC}PK`r4t6v%9_;jdHWyv(l8C9!|FPKs?`~GlF>?OW9}gy-BBH7yh5Yg^SW~!PPlK_c^{Xn<=%dzMu?w0YPL%etqbIrEmQ5p zA253TbYH)dX>nKB879;-mrQAA7TuFMCe%r)Z>VGcK}t+%c|jaV>@w;&se*E%CII#S zCKx(blSTqH;$6j=)drhERF7z#@XR`Aw!!M433V(4OX)UKTE<|hg6+SsaF0Z;2ks^L z8y6K5?jgyvUITGRp9Hbb>JIr@$K*6^xEqI6a3uEy0DKCgoEvCH5LD(Q&d|0i!|Q6sM4FP(Jg2Q%{p9iO zffyCBQo-S&Ek9b5-D#jHd}PP}5JWfUct5TPyMt^|s7{=Cq~7aT8^A2}sa?cA zsANm*BAr z__H*^y+!ASSJO{UOI`LF;nYic|(x>RQCS*~{ zI2oedg$yXvD$ZbB-kyq#gcsIaXoa!TW8|M#UHenaGS@_&&V{3*s?8euP?wL40FP@jarhqR20$j8qM)D6h|8!KD+ z!z1SD{-c^TClh16JSd=?W51;^J3`d7eOdUi7IRhd$=jG)xlAF~>FJ<$Ku|hHgnwl! zc!D}}{_C$f057}=7>`S1Z3zvvy*rxY+PjXioT&&D_EyP$g~s_1^jP5f1oNugRKibayKljlYr2fV{VF(n6{zkD>R3ext_c>}HM9NR= z=hZ_zYMU$e67`O?--Zvib7b`W^vm;P)y;xjKqmbSBbvFlQv}9;3l4DahYqRr@;*|v zWk;jbv?&t(7Ox7fh8s}6C0wO))*KkS@niJ>DGjO~Jhb9|AypUT6z0Cr#&M!m z%Ps>YQ)Gw6tznaII?*Y(q0HbRfpoz->7cwT{#Ij#Y?%m|%z57T#*Q$8ilX-m*Wo$Qh_n~ zuKXEpsYhPBZM1{RFf{LTA=DBI61PWy^gW35haNIF5tDT^lUEg&KXR+PVM24YFgA~uK?`2U ze{{1+dqC(6zG&Nm&aWjZXAEfiAmYZ3fxG=ZSeSZ&E#ZrKq2FNy5jHx3LPQPd^}vIH z#6w%7^ykCUe4^DI8iRz17N~J_7qUo;z{kCTwcZl+m}SZ5YOB`|x0=jMQpyMXm^h;E z`=xc`n$@M+K36aW@gcTMFFaUi z5N?;7o-EBUY+IGcUP=(xs-5*Ztf|%QG=F;wDIB~hlY&^7ZJ5(e;SJ93*ZdqUfY4)-W+ zeLPJ$D7Eo7t0lL{G(Fb&HLL7i?g_I&obWpcb;ErTbf)F zU3$0xuekLI_07&|{k^tT?CWB688=`B_(jVumPIYxyzf~rlx(qIo$nFsYB90R#Wpt6 z)u_!dn?dKlKtUHtKJ$z@xI2lLdbNlR6%dYfeSw8mw&wnScXU|)JCtT-Vr2Y3w{$Kv zH*B?=Q98FuIF}$Dg(u@gP@!Re{mD8*2YUsvNX++x`{4uRvb=M#glbpOR#YJne_uTG z{c#kV6^l3O>-2t?ebnXXcX1?_x_F};IzjizJ3IIuUF@n9Cj&vb-$nBs|iUf1)TV$op_Gk+@E^ow(n zlgFfhF?0t}R-Se)jO?u)4I6=*UcpWGXv6I=3ZUz*yNk(f>CzW!?TVm!h&O^EJB3@lMG)*OwDSrczZ$pbvUN>-w*YhPDFP#ulUDvmO)1X$nX2e@&CjP(JG zSre+cDUFG{xebaTek>*+ z(QVNUvPlYUtP(Cw#q}x$;Wgj#*swxHqM7}Ag|P!Bl0bvhC`G2znX!1hdss~7>CvFI zDf`Nq@(|!mN;fp{TV=50-dU1}*EVOxi1>ETm}G6t}l1vNuN1IF#ugUW_yd`%FN3*HSesL{&) zXK>KmtA(~IB3&LgK)D{(k(z#~9$4O)RzCSBc2w<4P1R_aTg{XI5&MJzN=}9ICV1#T z7{HsJ20cShyQ{7HOp$UEhjfAYbMxZ&6U8m!97p1+(xW=>mFhw2bscu&ooVbJwAdJO zAd=x@-vcu=_2PruH!7oB7c=Br73Jr$_{`kM%CII!G>!!s(_vKMpzSv* zE4S5iJ7;!M`pA|&@2=6y+O^FChYKPYIl$3`2SrXhm-)%?bS4jH%dJf3c&W};bZUB# ziEK0adX_EN#7Rnk-keM~*9HX3NeWojoXnd`UHsQ_yuAL~{Hd)VsVBC!i#G!AyKJh8FS9GT_Hvs$9)n zj@iqMX|LjynO~X{Broj{4lW86MI5)ngFTl^y_RWO_H_0|&fZ82d!~p|Zt*sJqumf2 z58o#h^r_HcX@dg=qej$gUoeor@nzyH-H_ zJwG9b?{3Z)h=}T#OCm}iX(Br}5;8jxBa!0&69dPdxWh$`&ha0Rh>7ce5@xpl5}m{w z4mMDyL;(&qfRTvve{(U2+1WZ1@$xc=F%ta`H7tV|6A=^Z|Be1vEQ5@Rv4w%KojZ{h z<3Au97aI{LE3?kO_`QD_O>CW=h?xJQg=LU8aQyd4^#5Y#zk2=)&HGn_kpU4CEQ7EN z5kq_pa^g%oMxuqY4EleCD*h`@*-pjQ!pP3pgoueHag&oMalGR@C{tp$Lk9XkemIGk zIXLJ!|HbyP{MRaG&O}>B;2-+zj5=}4zASN?3paig4`60zVdjKokT$V3b2eup;$Y=q zWB)&wUFRK8?#csC0^X*!8!2s>U>3$4Ffe4!g`~8^L7Q3uM4(`bkdR))5e@R93J}T= z=t8yDV1|NS0SFk7$`EkSrRoYoKWPOozgXO^LXhEnfv>H%_NzPok=qtCPcElJU_8C0 z9*&8`Q2|9_-gvdqsHBSO<5ep^Qx2^KSC7wfbU8$(>pkW;l_X!xO%~f_uOTB6Zwk52 zeIHi(H@7MJRnwJ4{?8|rgYQu}%zJ~xd(FfVjUmAD^No@CPYyY}aF8VN#vMA|8K+@_ zzj`2=x@<4S4ol>G4}3Ge{U!8x0LMi+Rn^kMFiA#6pjhyrwgBn%d`v-P_~9bCVhzE+ z>8t^9sz&5PM?o*UM4~}Qq$kH#lVjHWEAn??;4|wA1~8YgsUE93+2VKPXO*x zv_S-t%}+U(9!OZdR`&#LV0sl`UANnI!C`pSo}p;ivYpF8u{D|kMg_CKKxaL0@8IOc zi<(phDyfg@*-A*JB?M8YbFT8J92pF^mtYUz5+I1u1LVa0#twu}!39Kkps2OXi>|>t z=%hKO#*k(#Pgonp)+bJx?+cLMZDF(W2H$xsOHHSxht&{AyTH|hnY)_y^WwhceTwBy z95B#gXMod+>QImZ-l*;VUx-m>AoDJ=<5>HI(9Q#Y(Lob`ddUMuJx)xQ*1tS(3;AML z`yi2Z=fGa+jTQG%UKCVA=t8X+!@b)>GM(d=MQmFVOkgxp0 zFo}2}G5&5t6`n+Qm=u=|-MH_SK=vdM<_nu%o}1=%3v)`nsy`t#tQr*I5y~Fr_L?c2PKn+z^g<7b3D;p(;ch7qW)(b_G zGmB_}GWhEEfJAr|JQe8z;?Z?5rR5#XE7)pFV8Z41+6M{U`s1%E2G% z#>MZ)z|%1APn|o`56oAEW6nI%;NNJTeC?qjD|g%zVn_`)EMAu) zNJj0U8O0e^)oRUYxP|6UfvfPBNT37SNV@Clb;XD22aleb41ZEW`bID`#FGzM2Num@ zHC_)XTBkI{L)9;wN~fl!4`>JRxu-3!EWHo|fE@FuA1xrfdJ=Fmu@DyYhors!I{_4n z>c|6;E<%;zvme{_>XF}PXit#OA>*65UMe5*NfCaoZ8h}P7Q<5aCgnA#@(E4s_e?kP zl*vaWABUR9VtIXV-ySoYZc5bpcf;AhTg0vK{~{gL z0*nq|6dNXDhiG-xUkoClvA?$qrd#46)Sic<-G?!!g%~1M%|w_-b7MKt$FS!{xePCf zG(f(fRz1A>wu0SR5jfBB9^?Jl2hu!LSA#y+p*s+N{oI}*k5G%~?vqg6a@wzr$)-7s zZHQ+Mjw*c;L4xzz^`%a!FOB35|4wWj4}kH7dtwru(~ob_j&HmSUo}6l=Uu))V|wtw zYKbjF8+MutMJPnl^7vJZ=Yd>>VT zpDn`_v%^TemK1l4aVW(HA1@@U07T^>p^{k{$3{PU+FH;4I`y&Y3PZDgGg$Qg_j^2h zsC5KEJ&4~hZw76Rxgy=xNgZg;^~;#h*VdL)l)b8;WB$z~4#~u)FBR9L@(JS?m@hd4 zn&7o_hpztRCp||gr8Py~EiF1Af0jiAvnA?QAJAzQgxq0oRc>e`(&VNT0h{n~J%)b) z1Yn;Ts=G$Dj)bIppqhJn+xBEQ$n(0mpF=ipIbeHd;2G-gAO5?&%%V)^xi6r{$gXkT zvo3K$AfIB_L!!^v*c3qwjlC67gj4KekW&>QY7c7oOHwZ{rZ^hdC|sp+pb2Z_546x%6O|&ysYIdPT`Q&%@86gGHy$xjr%n9rG{^h~`?;{<(Z4 z4YyfU+;$ZqKb=SPiprQdGCpH*&OGSw+`KV-3;ZvR=2>mP3a1+C8~@CI`%l{*&yskPq*cYk32{t|z!htv-81@lY+ z?qSaW8Vzm((ho8N40lNjE|UVQp`SH#U7NtW7Hp;o{OSp&nQm^g>W0X>6%O{4)O5L5 z^zgG@geo^nsc@fn_wN&yWuLrJuN+`?Pn2@7zMXl$=g?z0$<{y|PD^!pD&@mm$?D5= zrLHuUl3h6Xg7#d^fCugk!#Uc;G*|rsoA&WVwe8%c;Eyd}QeuIz4Vhrg4P)VZ66-3qF)aKh^V3VLh&MxN2QTB+5Bim_JVs^folQ^5mb&G z2E6M(wiQxG{Rm2}YVxf7bMja$LDdV!y>_~E1jHxqOG>fd??5UeO~rHN`~91YBl};P zJP1B{cAiGPDjPi5VHwD#R1Q>^k5YV~e`|Q!hXdvUY~NNvX9Qsw$(R=nk-}SJ9V%N5 zb7+uQfcPgc73*%P+3(H>*XZxx-oH6JRGtQIBF=g`5FnjGxCnPWb=eP^{Z_MUn!T@` zOfi$^IDV-(0N*_y^IqVdqoELS(z;SGH9&X}pFG))MKcr86wFFZGkJW`_J2iN?8#F{ z!Uqg51Up13-Gmd39b(?lHYi#shxkQeqO-^%@2Ki@%c6&^vW=Aa#Xs?yZtO=vxkq=N zlmiD|BJYDAs!gjo-BMqt;U3?r;+#mU9NT3p?uADe%rvhuQzVdPXoL6)>54<=Y0o}J zw})G)7yG+7-_Xp`!!gV-tiyC^*KCzsE5oPxT^h>*U9E5&lfFGPI*brJiXXExH^CfeaG< zh51}n-LkQ~p$_x@=F0b8r>#J~dzE2ZNHL|(@VUis^_zkT>sN42ZL<;cxxz_l6B zfIPNo``3YalS(yip&hPWY8r6#u1>4M#WS$^_N$-mcoz+7*tT+n^$Ka!!N)qkMXujv^6e<{Dp8t6xmkM#@vxl9hk z$F%NM7w82f>U?p>AREsK!>lO@ZCWVra}xl!CqMbqRF3n&1+=qRO|wxIXP%1 zI@56Xq3x*L1%A+0E|pD8(g#|lsYOmtIt{8a_4hkR4L!4Np}f*7y|&2Q z+Spb_db#L^HYCdwwHUNsJ6Ke=R!O}MU|0S5)_BQcv2H6gNuN{ob@W6ysGFxJUeQTvQ5Fg~A=;0kYS z<5^h1tL?y<;}z$vQk}{rq(1*=#2xRPnNKqPZxk2QmgVC`2!YS5Xs%t`gtT6WuI3<&L{*rdrWFg-yYvdai zlXruCiY-!fIDS^nj9%6Lgi<6QEN1cJ3+7^a*Bu{kKKje)^ag?zGvZ!^Pd-V_cvuX# z6L`@c#!&-z#Zt+-`=L>HacNz^m?gH)_Z6NEe3nU?v5EK9J`($nx|aK-T2AI12fIB9 z`#Lg6d>vqCr1kB}F6g!I)kvlW#Kb-u9N`b(bzpjc`{C3TR48)2cYZxGHd>1aEv?)u z5L@*wR!CNC>b3Uz03D-1Om=1JgNllMF8Pm(pHGC+1J)TeUJ4r0f^?)D60xYB%p9+qk~`B6zgjgul@bB7-{QY}e!(lA%nK z>%p&0erc7ukrL*e0_m;gU{9`oX&h#8PI%=^-CrOa;*yhoJSQn;B-VZZK?O=Iv77 z0G^ny=Dpjlg)6|)%VgQ@o0&j%sCgSft1Zb9gqelu@6$!T$}Civm#D;6lv-BZ zot%h%^wDs5w1;4YM|z%>Ta~x)jeKL<)kVIGIW=6iZ0b zIe2`vk=Dl1xC<^t&ss1$>yq^U6Jr|e=sFO z)}>!E1$;8>%9yH7up;}Y2zN|&0z{;6MEwT!t{Lf8%=M>E7ERc_s`iiQJz<;+_EDFZ z0&R=$=0?jX+2a@IxRwk65-H)}Ja|L5`c>l-lHpbZ5=is7%JtRfT!-JVmt!Wi+ziBl zqh)DUsE<9CqkYsWjoGnK5$S@;n*qL8LUon5lf*hj(U>H%K%ow z-!7CqZ!{uX9)zYv(ldI#KHEt4;IW2FxzM8wlOszmR=7J(%wtnv>x}@@SKu2ix|1B@ zmQoc>O@St5c<7V-!FCGOVV~e}NJPDw&_Fgju~riurS&+)i;6{-6R&mQUi%m|D*z1W2xr)lX>ihle8dpXdxWc4wZMQKt-2EWvASi2eDG8|Wmk12qntIT zD;5}BjlsR3$7+#vVIJq8%SOjo)IiN^XU?0d{S0|fp`&7|?0Wv!?ftPtG7u&Hb^~oVbvaFs^M-bh zL5=JmD2s_H^yo)%_F7xwFjqP7Oi%+)`t&9YD@_N*)b}sY9Z5RoM=QohFHW9s8wiUD zSXMH=*{48wTL;D)eg5I%#xX6g!tE?uDGQt^OTnnwNH?Ht0w}b|0T(ozLm3 zjUULKFBK~hRw60X`j|#Gsb2_rqL@vrS=AO#lpNgBguTH!Q|B7tTfu)(X-;+)9n3mM zq0RncP=6{;9ozC}|M`xdNg%w8ehkGh>jMZs4ev>)-Q_tIC(z4%%O9>Wl!N4B!82(P z`(3Qcr)MDJ9h{1Gfr}=0EdOm273fVdWRtrW1|r~D z7hAQ9LJunx)(^^1y0Wg;M9>q*1+MwH`Ii&*x)?EdN)$XP0X8sf%uunRr+J}6Z#FGj zVN)tT@^3k{9EeFW;TOT&ciXT$N-;}3i6b(@-g9JD`gZ0Xe4@%=1;h z?wC$X{aKADH_Ek=_$b!-X|5oS8Iyn_MB#Qqs|8GGv{ICq`c=E9iu?=1_n&JD#k(-g z_)Ytc<1@OJI!Va^_szZ4=*-Mm%RgIASr*lQN}V*|y%JU3J~jGfxTZbZs=MX#Pp?11 zWtdLv0dP!PUv$3p&cY_V&Q#Do@{kkdAtP+#6f|$apCGT-Fu7;6&8}sRK`{X8>xp7F zcN2epSNS5bb2^B%Uny*dDt3j1IoYRHJEmLS!PSWY=mKQsA;^R(f5{3jnkOIHfvF-m z5hNBkD`SS1lPe`g2Uhr0}Lm1>b~5E`*y2Wb#+(2c6G0{ z_o}^RSAMJ8cZZ{Dagdx2XfBJmemmmIZ+tti9p8GY0yax3e5emp&Y(&1I(G(hxHsvd z2Q1zhPtAVoFFHhMS(m0Zr4oTdN<>Spi=E{Ne@A(^so>^5)~rqez87y>_qyv?O?Ht2 z+X89J!@3tJxlLzr$LuK2Dh*q`Bru)TIqaGt<*wB*4O-?|y)z`2ax%?z3@e%FjL$iRr8!C(8qHp>P6BozN?0vl^O9AO@`}*_i z!_a=3goj~4JNShv?8V8_J3B(8-qk{&!_gWBOcBlece1(v`4q=P>)FdV3ctR<^ur$S zLEZbH!?zFZ;Wo(9hDIp#?ab|l)h<$RiJq6t&WEr>*FByIfxr>|4Dt5&@de5C{g(76j@0Gusp>@dHoKd2R>T29W(ElCG0P7oj{o?X)J~_^eQs|6 zu=gzDf@U``9$48VOWFDteOA^zA2Cabp)-T9Ao^sGAnclP@50`QZ(nrLmGL2|o^12o z2I^C;NSwB_zE#e8=%Tf$HHjHiWaRYcbirB5aK-XiYa*!{$;b`=Mv)zRud0TTL&UGt zIX!opS^t4J!j4gZl7dq0ew0LcN0lfllWS`%@By<3JU?o3uR7$11CUDDE{w$I?i=IiIL#u=5dg@u44v+Z4TJ;@`_ccwJPf zWu7l4qiT%aTugk3L|7zX*WDi_Nto9WYLbH32PP^=azyygxBq8yS$4<-z^~w5;!vNn zq&M^K|ze?E6^eCmtZf z!kRLE#dg3Oc~S%E!Nh{S@Js!5#z$%tUYe1R_@xi{sylI&- zEB)raAQfY&7Do>0pY+KPfZ>IFD*V*f!*${6=wULsu&HtCyJ@nqmTjh3Y#u!0hvru+ zvCp$njd0G6Y*VnJ)qH6*>fJK4cx}bK} z>ZDsj--eR$C#nImM>w}DG`m(j)31Rk()VMmZh2|fDu0E3D2KBU;5OiP0q5S&6f)_t5ii@u80kzXES((N98z@RU ztBc={v!fsA@4%6RdFnajTGMUh8hyNUK;TX7B%J*-gJTc=T?)WBr4}r}Jk^kIsJg73 z%=K=+2Xr(4Zc^+O*d<>poai&jGrbaBH+)UAtWY67&|Ux7d8v3mTe3JnXBnqu3;OO^ z5HNwZ?JK;$6C2ppyH0!=>I`Elbaj1qMN-@#J%@eUewnEmkm43BxL_HNNOncNB8>)c zFj%nrISs~A^B~w#k7EcKi}ASev3dVEyeTVotEhAP$*xKVq~d~Xi~VN_Rwy3S3F*a> z6UOvPwAyvO^`A6&YN)D8IaRj`-=w%~<*PX=7U`QkmRMCSO8FD7i-e{O$F~Nz)`aHs zE_(k6{QJ`e@pM{Zyk(ZFI%vU5bWKM9#MrDa@zMjJJFI_)08_hwWXpwAT2lgW0U5IXF zyEpeszB0FXo-nfTun;*&pK#7dVlCrLUnxI;&fmELOG4eS_Pc}92BF4A$V#TAZmvDh z(!Zi$={nWpw#d(Quzq|)0)BIY-9FvyAMdk`S*GT(fiwPOf10*Y;7>u{Rg`Tm37DOn z)&IL=a;$tza;(V%Ixk~azfMse^D|FyiMx(<0a0>DoRrlqwn8qJ{&RA6snN7eDN_O| zk3oRsyq7E3kKU}_yve}?*ne*tZ%l6@Z`8277t8n9;Rtvqh?yT(KdkENW#gyAF)<-k zx3p{ZADCRs2UckQh?1piJA%iBmfBBvR{u;`{COetoo7q4fi&@%~A4E*`xLr`7G^{)VuX0y4B5?%TTpW;A~) z7m`(XtKkAXbmL7@pR?%>F)%U2g$8(5Dido)FChU5B)j;19P`b!`h#M09UN*3rUnox zw~&+W$j?OVOIrS0-?BP-2OjS65kGhIS8$3hW-$q9w3B;wxwK>bgFtI*%#-*F$M#*t zG!^6$nRu>y@kUZ$uWRus_J#`&mv`wq#sQ(pt^ssdXvt$K%q!Q~^`9F&wjY?YPl428 zC~TkKczSQtd|bD;Hyj6Qj|;Pvw|N;_pB;7XrP|~?TO*T^1I=-Ia&l{wmBp1c_=iJSTQx7abIEKR|mtpTo>lBHw$RawWGwWhG1Lg!nivm(zU>yF5PeBUE~pSb%u zFKDR3v|pw)Ry|gpXwtEbj=btIVW#AgiD3ZAWd6x90yNX1IO~|IBgCOd_n1dVjP2Ni zu8{9Y7aH5rV15cWlrdmdI<3t+oZ5(EN9h|srOKn4G33U&B6e!r0z?Y@(P-qD=*ylM zT(@KNO`e*rJ7sB!6_{FVL_I}nNw7Cj{8hF*cS?Y3LRp<`U%GYlj@|-!8TX!HZ7kQ+ ze4@W_nX@H_U}D^lAv1QSj3IRJ*Wn5>L+pYP@(QpVWrw&nYGA_Ln8}cvTku8JDB=|7 zo=(I2|xUNC}7T|jo$(uQx0KaEQDQQ?*Av%?B$?6{5wD4UvNS(52L`faJZ}431 zJQZlk>sDOTCecV+FugnG_U}V0AB4PjFX)iguimU-Qoc~WP*1CTsCcLvpGTbE2id!a zbR?2$lBtoYkZEXE#FbYqa6okKl8msv=UHdxU%@44_W{|bS-%ZCO+3!n+m z1|MmG>HwgSR5`A4cwTV0rT6rwO-c(8gH@wWbuej?zj-=a+`8?97XfuB(2{`9Dzd>M=ubt26584kr58j^bz*?|zAHSaLl8r5aPN{}eRn@{A#8w*= zS`}JVs!_aAuu(BNdp>Jn>)O=5%5UGJQO!7wYZKKpxVo{5c}99>U|->p=OIK=T(rsx zRq_?qt*!Z?;QOWH%-BBVKDHti~U0h+&4ARyP0PMc0vy^LDk+K%h) zYZU?A9_@?j!z2A$z3wW0v5QjACEp`~I|Cob?zm0Oi?W9$#3T4S5vY-WxS$$%?&i)I ziUW1>4-P01RAG+4@LX_R@HB5HY$F6Z2-^ueGuwKc{ZDwep;LF=RTWhkRqZ{}hSgg& z|6-9d7Yk{ShvSEn@ms{(eduTZ5?DSg9)q2iU`5jM)!08J!PISr>`Iz+1>Sebm!5A_ zp@D40_#W#yBgevWx$czfp6~gmc|+qVF&}tL8(zzHfZ$MXhgGv}jHA{S(G&O;x<0tE z-e1(#*S$VmE#+g;Mk{o ztpO#1X1!PhAor$h4LKgNc>@@|Ket9LuR0&?{JHY_4fyP;B->jq1bp}yks-jyG@NCAgzY-Ucyq0*)z{J| zs>{>s;&$qKbAQAW#Z_+`{~Uk2ZI)$L`7i!H{u%x*ja#&Pw5#4e{zdv<-m~J_pn4a=AF&Ft#W6ff#>T~udBeh&Y{l5>R+Ef z%`?rTcg3^o(rmLatCFD!qrDHY?yr5ocgSVZEXgc`bql*@CNpE=d1@-?L6*Katie^A zT7cX>F*h+c0aR>RVm}KMrxh<1bCn24rp_!|IRH(pt5>SCowIPq6vtS{s>jI3M903z z#kUl132y_yLD>`Y3(8x{TWOQVDviCqVtcNKz%K6z?;-C6oo9vvEAREz6WI%c&@lMM z#R2q$Bxly(IR8U}knX6mONs*sy(BKkzm!$(nqHHxD8+e9eBWkY z2iW(ih;?an=~O9RuUIdcP(Cm&YgW>(W>7v?KUYnq9ZyLa6H`h31=6nJFSS$3RTCY< z)pA=)IZPoLqhC(yE;&`*Od+IuPC-u=8&lqQt*E$8aS`RIc&UD=%vP6ESK(MFA*@u4 zQMLt9&wpr6g=oUtRA!bgYOpPI*!VXG0;|&Y|1~RRRistaEVS4la+F(C@g&xID7!Ay z+Hf^@u8N&i+^hIj`Oo**2sQWe3X_zhsUTK~%@^3@X4awIj6rZ}F_#WL0pH5@64#Ak z<^2oqo0UlF6r2Q34jdNFf+_LNYPS{K%G&1EGtN8Cq2~zaROjPHcrBiY8$9O@z`4PB zz`4jd|AUifVCS^JrofB<55#KzP}xu-CmbpW87|K&3W$ITK)U)+MwL(|o$yKfEe8nV ze20mMV#;DvOsg6;yk@*smd#H&H#zTpsC~=4%6!Uv9WOWc^!K`lxfZ$lxCT9A96K%$ zwitUddU$%;d%Sy|dQ7(7Z;5UJ|81FUZS+v~`1(CSQ=#WKn~q(kUAA48r(By{X!wXR z=+WpganW%xVnfEeSi9lQ^V}AGHhva<4#ZqN-+S15SbI2oSbFX@cX)Rq9=_EpE@OBk zlbGiH0uz@eWlxOeB&vGQDJ)d*xR>=GyLDtclnoQ?vu7KWfeFr{oreekP5gcV{TPf> zR}VcwiZ{A9s(<{SJddN6U6SzQ5RGXQ%Mig~^>+1fv?moeR*uY+nI)rTG*`SWUD4x z(xv4eqb~`b)$j@N7s&#wk-H(Q5}vcN?3xgYyA%YYvbC){xb7j`hQZn;ZR8^QXB9#Q z)Pzuw_pGqB(tKMvUXh15j^tUi53Nmg<2r4R;1%-o*q~l^vx^K<#znGY8J^zv0KLrd zlk4_}j)(Rw=U!VkE*~#RpU=@Hn=6|{69FVi5FnRGKb&Qg3$UqWv}-%PJeAE+;a7lIFhH-c}bccyQsmya*h3+e;) z2780q4j3OY1%Yc8vIiN#m9j^*yn{J^w7j`6rbqrBn!N2Bs9%qjVKnn1-eJ{t)p67V zN^kJl1;JC}87yP$mU`Xh2_zCX?kcHu}Pwh{Chi^C`Vt6X~kxW-2 z0*+SxoYF8Y;GYrz0<8YMT!E~gSIf(0Wsgx`uPU!Ie3Mu!^;#Wm;FV z%C}2aQY@rEWbO(I9F!f@9e#RbqLWZ6{KOTuoJ{^zj4-YCAdOlgsbX3YF|YQ|l$XZz z^MI!Ycqz;d#Dyw689c#t3?rXmF+zgRWt6E!-{e%NWvPoD126Jzc}3RTI1lJiV@ygC z8icLw7}PTHqmnI#Om-bgDjEjbhTHH~&(g0et_j#R1deKWr**YKwX5Rxp9NCkNEW|j zR^_Z3bn8`=&9j}eopYrUpyQ9n;0%FwMRv)7U1QUftMG2_JWGH8dVVB9Yg=IM1b^=SN$9G#Q z&p1AWxj+MkwWS}AqdrHXkhX?p?&Uwj(%{TtGerH3igF2bg{U$&Yint?SfN`Npz#w3 zjUnW+UafvIXVhu2*(kN|yifBy!aq&k;3<=JSaR6#y**v%RNM-9MMNQH_Zpe*dNI~S zA#>gz2~uYFk=tH&){M#f?mW9ktErgdG1)w4spt8M%C+fs!`Qm%@jOw;cb@IObjss; zILT~K?=-X1nYQkFG5dUOc>ntvhyEBS2-6h!kT)QKKlzx9^J5^tj;YTU+|{?#dPPz8SwVI5B;bp4xI$HH!=fh z9Qa>|CzL@M8lViykCkA|s{bc||Lg1x#=zn=cuFu=*KM&nUsWcT%kKQ=v1%xWMBqQi zqxim`(EDTT)8*~!`?J*+>y64m^T{j@``I?-egy5ilZBe33}rq6MvlLV6)D-t>0b;R zCH3s&n!vW=-s?AId53Ka0YB*f+?g z!ltQD{K%w0AU@`-u7c1{`xA#YgKIi>mCNqSQ6lN5vr!rJ)!6)X zkg8S!wb1~BM%gt?g$~4+&y=NyZb+2HhvB%v#nDVfpT%CGhwh^?Ao)qh<*x(0aWZ5i zg}0~i3FedqQyLuP&92gol}K`5x(hxACL-`f;iY<8yNRTBe(!dgzwC-u|1P>bD$9`pBULWp!n&Nqx03eu$4RT)-~2pv6GP(#~Pnzxrd8=SO^I* zG64s|%@0`~9)>L2sS$h;!07(`;ArQAhoSPF<%>(PWmz0^uGWtN83weOA6Y80SXe*T zCQOr;DV6wXm<2fIS!e|SH3b(L1|0M@Ygf_l@lMWi{Ror>hUpEI%AsdYzI1#;8Uxx) z^zBZ-9kEiMHkD5DCdqq@&(TQvl-|cjsM3U|W2y_7(VYG5nad$3A@FG3=;e`!N@O&i9@y74Jwz z&*-M*Fh9y~`*9J+xrH8kjz1+3<*PD~fJ3hf zmkP)cP|(Z81+x&U4)q&vI!R<`NQmr&C-k%QN!t(@`*2s&WOvl&=txCt4%kswbDK$o zzJdM{B;&cYd~QK)LH77d!o&Sv5D4QJiS-)G>UyBNnG7Y3>kk~gp-9l`$D|f*O4NE) zT=J4n^p&5)#wC7%J{I&i4I>%?M}2>dy|ehfjJ4)UCosZ-OC>1iz~r(lNIYbjDTfDx z0*IpTC5ju}6B||Bgw0SIZl_0XiBu&nM8#$uK@vtjH1F(V#3|=FczWBoe<<>{v06wQ zJkl0w{WMEXCZi)Hk;zI%$!PoQPEkdvnUxfRR#ASIDs8`1$hl1utAv{P zcN6N=r5W^E9badrVwfJ9}=w}5$HLT(wS9CqGTvOyg6bufFcG&O>hiO?eVTy z*6?zB1`Dc~?qlmN4?h2v1V*i}HL#ANILuYWu#!ZRZW`$lqcQ!NhSnYEsl0UQT{Q#W zGw|t)Ntj9&L})p7#K}krqks5tEg8l`g9|Y+=7}K)u?rgakT0leWTM054HS_m_&SrL zq}(ek5|ICnH~0>*G3h<|NA~Y%2dYq-0xoFC^BnpZnVH&^@E#?L9Uw!F3bk7=Z#Wih z4-M`LYiC}iDRO83&MYo7ICvaS&dx%C7oqHDAw7A@^a&iV$zeMT~BINijUE0$*DJ+hlUIt`!P3HztHqi73>AYOq<506Un1z~F2{O!3*vln$%dqq zuAu>;XXP1y8DF6-JN@oO3d{fbYBsU*dMJ>+pPttIa-^KPCan%R@4 zr_G*_>F1A@#Xzjb1$F3cU!1ksKmuo!e5RM zk6vu)+U zY+a+!7XdS}u>52s%+I=JfQCmJ_knbDuW!Pf{x444#NfjpO41BZ#$Z`~R>vNArmK-` zKLNd+1VEb`yGkF9=S@{|AXrs5@f4{gU)Wa$=1NpN~%CZXM4qfHAU zD1MYuCBLbdM&i3%M@&y;4i^t>a@q;T7MbH*y1>8ZvRSjED+SY!Jbn({#^L=uf}gMX zRkAKWUQ_8uprw@2w|Xq@e^)+o-rDMMV{z_xBg-@fKGMVoh4+;U*-7upDm<|AfCfS; z!i{AIFGJyjy1z-Gigb#oi`P`Xja?hXok&L6a~+LH>&pN{wMeA8yNa~b5{C0GU1WZ8rVb9;q#WAUMa<1 z$OJ3GF99RUjnwtkw|NKpW0G(!ZAhH zTJ+j?OygSBYkHjmyWdu06wj@JQCW#U-r=?W|cjU@YfJs@$ zo}H=C=fu2LdC2bo2&-_gEQ!nYjc;lLxd!j&da?wx!keNLg<*h>aaLJa5vfd}tk}bzUVieOeCw=S9YJ}vg(t$SnVFWg4fc!! z{p2~J#DDVTKU2Q(5Xh(`)_h|~_&1F*%z#+;L=%TR5}$Bn4sA1+{n#=RdQ@bh(l4+>CWc~^( ztPd!x9~alx*L{_6qsQ1#pI-p|FF2MLDx(;bFMu@7LRF7|!)@b^jLz&YYwwq@Ryexm zc(qv9nK)qg#b@93IpgW+h4vJ{Xx{HI7V1^|75@9IDl0A#(Fo$BgWY>n$gHg(@Qpm++N77hTMa;w=EZMd!NPh(v+Okrfvzu1;p+U?@`ZaX70u%XXZ(ad4S$wrrafewT#@dXCJ&+@ME-k`fy{5!A$dptJ64vFoWO|DW6|v zh1flzkkEGA6w?x4U+Hp0-jQ-%)UHJvMs6mE`ddom(VwAjT{OlTb#aWN3DG)i_6%ss zv8ngEA%A;2B|EWdT+cww&9m|TizujShYweWFcuR&U!53lWt%_ddvR1w2^N` zcS!$ zpuS3)^*Saz7INVfgx^2D1{lm^e+j>K@YlU8TzifK99bEz_r$a>cPugTFU{(mOQEUwb$RA(-8CA0vMwg zpC85i^6q*r`Cy%Ds-S+0){uFFv9!`cb=MNgM}B&LI_j}!Gb}#`pp-$CRGE_|D>*Gi zwNkee3!#7QkW|3%?Ipp5E>E+kx~s`A>WOyH7^MNh7=4MfhAadu9{s>7z0TH@*WTAD zu94?%)crdn!S27#(2Y+Dn}Zs^+%?wnESP`DlGP_!HHJ~^+B*#BUfONq< z`aaQQ!YTzisPkS}3)>0GLlk>6uDW`t_-j^tgHqS|eciC;1Moy?ANBstqr2sKv1dqBrk~JDJ!| zKNA9|ClA~{Pw+NJRA{Q_P z0he$bF`ccrVIS*vSZ80z*EV;OTd>~~p?B&FALBr_A%cG+;f)1_MQr+WLhtAs@^WlI z3uU6lKZcKKT@*n~7PdXrjxTuzgkH>l8~~~*BmJ-PFocf4(qphKks8J{Nyr}?wIafW za!HO#<(U8f%f~n3fw-=uAat2x<$C~kDz-|8zz`#vTtbj3K{Y9k4K%I3&z)xQSAMil zqh1m_Z(m>z=JzbPId|rp=cq`seV^N3WSyjDSjh~JF3FmMEX@c0I0$eP#Ct{>CSdo9 zu%+GS*J>23XnXg0ZRTcoy-H_-*p3MjH7O=-yeD0hU&1lAREICJIAvBR1_1Evu&3Pm zT(Nb)4esP_%f(9LFjO9NL%%7x5;yx_cwKL*gfr4kbzs7st?Ys9Q%#!irfU;edv`qeY6$}Od5 z%44rlkFhiz{^f%B^Zoc*Ap&OCsQE#K3aL}K6=@NnFuT#ann5!7>zkV-5PyTY$}VG) z04Wbf?Cj{T_oE|_^p7jySCXxEo7IvrN8HSsb8`^0Aun5YM__UGa8gcjZoV(+zOJXo zP4a%=)poP@IM-fr-RA^LaXr8`4#Q6pKoy)Q_2f+2rG06^($otOB7H5CuL!NGa&?=HgSv#8ACaJyi+2JEr@OQ~?Q;9v| zt(dp?X|#paG|H)e-h-63K|!{BwqOe}>)R{RVd-E*sh2*iMKTiG7ULdH6EiDuTx2P# zk29QMglgD`u6!Tr_#|7cv)hL8HV}vv%hmH>-_Fw5w@7xUmEr^XMkzXC}5(lO#p3c-ZO5V8ky%)k;mr*JJ|-VLfAFw z*QeeAh#yDBbr3gtEcvbz{OIyV&3kf|sDwH@2QrH(^1Z-j|9YiNDpY?Z=@k;%X=BzI zfhTn>A~cr}A?b%dt}nBjPS}&bU%W2$TELrBEjBKM1Ho z<`PI|t$0cuT_-tduyCvv@b$O%o9t5wSCiDUv7rB?HlE7J)ZeAv%*!}f92*sqznxc| zV>@VT!QXMc7mCxm{`6%H_hzm08SJL}cD=eyt0=Hg@tU5~+6x_QlaVE(i(Pq`X;s{} z_uFppF3J?e3`;j0lqV-Am%+frUv1DaXWABnUDjxz2l|z* z!u(G($~?5~V&O|5c9~!zG|7=u{^xCBTCn@Tj!PElFxOCocY@D*^U8Eld&Ie^*_es+ z>B*|l%f_q2>%eP|si&alB&isVgUXkB2zRk<%2oB0Skd|PrP!UcZ2T-Dks}nE{ss7O zwKc{M9zb{Y(TZYp@XRLe%@LAB^7ESxT%@(irH2039$xzmZzd%*@aUKVUKO7I3-f_; z{?S{LC*`!W`r#8}BeNr}ebMXKFEaupnN&Nw6$SpE?7xDW&A*K!AEhT)n8gU>5`d!_ zqJ-r?_3^}t$?1G$C`o6BBP9M!^ydSx)8v3FsvxZmnk|iAj4v6s$6YG;Q4D)~+syLb ztx0yB3w^<=mrm)P8^%fyRq8v5~wyO^VxXUE^5>NShURRgEb@8 z-cMZ8qv7@b$@{DMoAqz;QsyWMBB8}2Gu_`xA+bx9ptluhf*e}9K#YUikc<|PRFE3D zWGsNy#|I~w^_}>N4?~<7d{Sxe5%#g(l>y?E%(w`5C+F7Cy}V0H|5ZE%qfjSP2SZK% zu7=Ux$#(FxzUxaPT)|iyzgXovv0#F$F?Hs05m@1R_RKWN1-*78ENa+s%l7G^Xczo@@ z|F9>J`M}k(WdEjQ!+PjlTm>57mks1&zK|GAVBX)CMdSNAn-x~wJ=>r7RR+xwt}gs4 zT5PyC$SS0M-@QP%mT{`hHSPvkA?HS{Xj07T=C=>{7=xc~l^-$vndpUes&5OGQIj|| zRv*PZrM-N-Z{yQ9?r0mp>?g+WflqD6$K9nvJ_5m<3Ph{1nOS#}i&$S~#6`cFI30e1 zE%n=g_S#r|b3bH=Xnr+q$p5WeS`;Fav9TSB@5v3Bt|+KM5~``yNF&~E68>(-~L)YUsM-a20Q*-^nO(fyJ@K-uN)iY3&s_vD)+2!Ndeo|aF#InRQgkc5Ax z$U0i=fSZB!TB3ug*CRepk^ot4Bs|mF{aQ>;%f>UdMNqv(46>bfEN-2ZnogIG6OwXR z6k=SI@ZZ9e;PG9X^43Ll?qX1dAtohl9?@U#&v72qW~QWN9&n|U;`0^I1l*>h3|u+% zbR6gIlb60KAtxAc>&Ql+MInxxyIJ)quWb*TX^c&5T}gmR z64^7^uBNAAFE#R&GOwzw_wp*yG5MwPlEfo+-@p2@;E!0y&e$ONPbJM6W_uChG;%Ch z3S4mAcW3Ms4JfYl7u^aGyOKz);wR3jN^8p;p)_mDg{DS8^s~o)(6cbS-46}o-Pncl zf_zDRfyMHu^UP#f{V|rbCCWCmc|b~n`w!vQ+OK*@RRrOAqko@x959U9ePA^d>Jz`` zC%Tfz0w?@XP{MEUveWXiAi7PLuWj{q$N$0q#W^PqR&0%0TyN$t==e&8 zk;|>-6a&eKrox#7kxZE=H3+O`>R=AcM9VZAy$(>7VRM z`U>T883Rv8gs!n3alq~yqyY| zHMos{LD|p2&`~4yKdT0otjp2$1&Evmi1zI1GpXotACw0=-dAH~Or@fCPvH1;SN!=( zXc7G3n?=%Dnn565Fjf~%V$;G&3k#DSHavU>8Dw)l0@1C@A@s0&5pGRpH;eP?M@*~n z%JFyDG|ef?rVVy90P%XgfLped^1$s!gz?t{(R8#PxjgV+^z>aUCXW}U*e=7u;P1Zt zdf@aqQfT=;Pk4`n_P36F<1VRx_6HIy; zc$}-76m+^AesMfM(NkKi6uL5?ev4^GGiC$8jjDP7vn+ zM>|b4C&*>QUR|^GNi(@gv_w;`*u@cm5@*&038nPJ#2bvpo(ls5chx0Ut-7NxX+`(=@{tT@b-{_L?wOI zg+e7E16#h1O&8PavQVs#`vOI-Li~3} z>+8FHsbWhES8vx<7ca2N&w9fG@A$R zaAW2`i&$boZbVMS?3`jS^V81&-Zc(dq@6jyragd*@|ElgmXT+`{JmXO?Xdl;w!0Ym zns@e3!4cGMOGV2w^l<&N0c#q69mn^bBvFt%eoGDcigA__*-)zCC7Sz=44ANJWh?`oXoHMPzCkc9WD4drhRyEN2*k#8&d*t4)R z8cd({wF25=?Y;;zh336w; z=7xni+A8F_^}JlmteedD@8F?xao_pX&5m5wPYG)#)be&fj%|V-PiiDT7YR0f&wu(z zO9U{waa3-v1lKCd_60MMF9rp-3>ofxCw$`kXGc7JG z6BWno+;!;RZ_FBWj?x{;+uz$32N>rp8{cO7oGpP;nUNkM9`G*!76B?j8}_!3Vc$4T zLj1Z7zW4ptpzZj6)(n~ZeHY&Qo>8;VCd*dYM6APO$%h(;K7Ua!l)^d8<^BwdN6KM4 zi>OS(l$S#eblvo&mfhX`fs@) zjtfyxg6#&1TJJQR)|lWJcm}_=)K^cQ$h;4rUZ-FD}RlpgH~sERCEG zcRt!|-cbgS1OBeYSF8cZb%2Az<7j&f6zk&czP2_HaR7buWZwVn)x4v1(=y%^O*EG0 zgTe7O?k8Uw3-$II%!{5JFSb1DOONzJ?%<>SNs_F<%|E1KNaJ9eoP*SqFJ8k~I*@|KNU z(?bR#*VZo+y3FmTK0aMm1S^VULFM^N!X^hL*i5392pO3Uybyn+huMqCQiYA!7IRY4 z(n~SKXWdi|O2W-LHzQZ>|Lm#!`KL#fdE<76zT5r8_W%sLgD!_wRV}_o3q5A|LeF2X z^%`N~Z=Pjje%)Ob##?*q3IU^M&zf2>jY)vX$@OtFmgl=wzC(b#2g%CQd0&*Y;MF23 zzj0|fZI$m7YW_4n#`#GsRTyTpqCsAao;7^!$iS!lR0(VD%ERr=dGLVs;=S5lt?fIi zPif+6Xe_2xGwJF7s{N+yoj6Vf-qk1U-fF=4@TbF1p^?3 z9^vF_1w>693yuzMS&EmJd~7GO1fI}pcP-rD!%a0pAq5|~%dX5HyI08Eb>OzmOWW#E zIYQhA^3YU4#+`<|B}|-}u5Zq`wzT#}HIj&7aJ>QYRh==ZA?o8!zB-+Dv_LlnolA4a zablZP^HelPNHG|jNmpbpyv|2 z-n+BBF1OE`0=~uzs#VY2nv6r%Tu=!nMJ%msp0IlD)slj70(g=tE{4!y>H z#<}Sd!VYnaL>dhPp)oj^E~0Y-MZcNO!UT=re5*6tJthq7W@Ve+}rGVN*I#&5SO1Z|iROaD|d~5;YI^s;X7M%T@D`ZEj z-?)sGyP?J7nZw?Rs%!`>DF)PvOd|lY!j~YCX;8Y*S*uHb?@z8JIyg+VhPUrKKG{6 z8%)F-y?&c--CuxM&~>whcknO}1t}(p7;v2+59+fk#F~eqLqx_k*cA-J3tzTdI}}K0 zP%1>7eNzeNb)(pl2aA8Y9i1GwgRm3zZHded#`CUihj9;CD9PgBwd4r}Jhvl@x@}Snt$*Y^I?I$xznjRPUC=!-7Lids*%u{HIn9r|%!8Zkj-9Gl6Wn7R zAY+)f(x7>MDt|Ta0PfvfS>f`z`KD+p%19Iy3N8u5o)B7X!{|g=k@{ni#n*KX^Y=Bh zkcLH2YP|+|q**Ac+>O-;!`ImPV0m7-eNi5&{C&-C>dSP1t>V=*nC3}DkszRebovBFg(4%ijQv~J(u<~u4XDMa(n*YJ$u953g>dN`#bQCdAu_l8(VsA#~`C~<31Cq745Njo^1mJFu{XIfI z+vXzN#w0oEs=u?hBDf0$(HRIz>z2uvv{`HAhY+@yQgVgri-3IyOCrT*aP$V{Sk$R< ze%F%grdSD+0YpqZEPs5QKIy`rQT^n}oAczb`nJfHnq)2j9`^Yizli)~Kc;;~KwV7^ zCso4b_DAK80}cUDVW=n_?l6q!h75aFVT3<5E^ ziGnW{#UJ>stX%U&Tf~*oT8Mupwsbk`3W+ol?hG@>{J^hl+7xF>YL2EMZVI`)BM-P< zdxx5sWORyAwKDc!_(k6kVfRq2Km?ZxiHmL^4(pT#4Yc`H#CbFL7R3dwQyxXPiV6|3 zV7ta+*T9%=pD0yh>Q^hGXyC_I4%Q`RM$@9U;$HTpV6{$6-yj4)-TNr zG7AVY@c{h@0#915i{B|WO%>W2+w|plOakj~u)0(Atru>-!qrz?7sgSxvfznV$xaK5MJ>mURXb)% zvB&Ad6*=h^6O&eQx+2s?dIAcc$R$N{boTL@QvgD_(O=ocC8hRzMp}HclQ2mV>>Jk?8v`#WIYR9NJm$ z3T>~6f8tVe`D7CW;h1I$e25l*U6&Nmey$Fw_<`Ge*k?4VqwaH56UW7uc$t$z+dqEI zQVfvSfY%iD;u)?t#0BY69T~?+V^JiU`h{m0|(2ZYIOX7u0~Bv`xc1;p}R zA@?aQ3(1d2b=~3##Uwvo#kQmX>TK9g)~yvGnS$D*N;51GKFl`jP|dx1mcnYJo9 zooZvhW98=fBwrVo@e`a;4`le3?hfu{tASsaTGj20y5E#DZ?ha}H4Ykrw*zuIVr?eO zQ6<@(e{rRR%r$+|N%KvyLS)Lc=j2LX)1#a*Pv+cVxcXr$3%6A7-gvWBTQvo4N?ZG! z9CK7dQ#KwiB)TnJ^#@|5hhv1(JPwAUi*lyMxJ@F4L-}0Zl$P{&l9)7M#U~eQ6&wJ4 zDAF~WA0H$$ej>*6+v=?NOH)l;3kOZRZnQ2b)n z6Na&0mN1)Z@O#QQJAwkT*37k`cL4x9-rcP`QB(w(EKx}sBw;tcz2D}!?wWbRw+el9 z>yi}>oRr5~2{s?q#oAqI{dtNCn@_0jrN^}KRaU)fNCOYX6PjeP>&iQYFXR2mhkda* zxzQz}O_=eqmTjTZB3eUhw_nMEzJ>k-$qD|Rze_^P1sg4osA7>H$jaz;lB@wXdOjiU zVOO^UE;>wPe+ptsey!D$oI{ff#P{Rnp{ajAjL0J?IU?7esb58DJuB4EVe%y`PE(-h-kM6@VAZo?zIJxt}m6 zNTZ|MmVXQHx*nusJ(a&}jN92#{;*I#AF-69VcFV=}@&EBk`9llHx5jdSVOp&b08M%0?^dU?i*rHGYy< zY0bDkD{2DNuyz&MP=zHzfT{8aLu*YPA7@%D)yl~5mKBnm-p1;`&vCvHyKUqaiKWSd zYTk0}ow*}pY)%`WX+AYleaeac+1B)S>6(~gJOy<*Cm(w&GfKNXXI2%A3bXKQT#tGj zF0{lYn#Im=?gwU6DJ^!CEetnF!q|MAqo)6lGX#}pg;{~PKS?H5&W~Bn+3DcxGtU&43B-OCu-mhf z^P?SRXdyBX{teM>GYS~U;8nyxqT#2z>>04pXCrOG9sdl*HKJQU z40586wYSKQ`pTW;p#HUVwPl`|4h9b9`Lnbv6}fxydOX3W1i50@kRXd=I9|ff!8Mn9 zaBIiZi^?SnQK`zxTY5WMR({l&Xfh#jm%Gcf%sdjmS)#F-zaIfKdL?S?#QWPOejF~( zLZve3ZQig`JuGN~g?2;TL+W5@POm!CVg`5Nzs_U>zZ8t>vvpv{N4#p%%~GOYgKkt$UK5Wlwx2FRilKXN@3q{ML- zNDiDZKgB#g{eaJ9PLhefqUXVcsg)fT$Rk>$&yv2YGmop|BLRq9&jddBGmP~+~iPbYAQxu0E@ErVPBBeED_`E95`ly?&u#k0Ns;u3as;Aueoy?|`hYoH-uJs=lybNk}< z9+d}5x5DzxoW5a@)l?O|@v0X72%6f|?|q<5{C*9nqgY-7Eo?t* zUtD_L^ERNF*1Oc^``!-IL)w?gw-^3a)gG9E2hOC{Ujr&+{Q!^}L^NuFwHf__r__Bx zfAAyJdZ=yUw73{b!hRU(D>uT;$@TBzf=d1ASaEFTda@fE>m%^9uUU=6X^qoA1cw~{ zvveS&MU!Z+%tz={xNUHHFTKSV8+cq#2^ZDf zP<_4Z&3_v1CF;78-Jc-JWOA{3y8w-kH$F}nW{OR>b6%Yq`*6AMO--iqap`VM=8#R* z_vHQx5Gpn}m>|kxaPU zpY!Y2XSb@E);ZE2UVOjcL~hpTBd$F>u?mMJh(=-QSzcvt(k&hIu_mWD{fHeFRBMeDSuzB{fyz=467sEqARXm{?6`4!Fl_ zY|opIn*OYK5*XJRvMNY6e-%AyKP9Hx@#ChaP5*Uru_$ShQoDx2FlD z7TirzNg|DumQ8Ujk|I1JW}usZRsW`{WhL#Sg=aI-yv`ix{?CHbU4_%+r?Bef^s2&7 zJ^i-U$g*3{6FleQWZi?IMO$s|I#0E=O{eT{P1O#sfe_i;@ z$9?+$Y^DF}J|$OwB~6~~#e(EbhCIV>e(LRjPEL2lOMX8gNrvv_L*(LTW#{J+;Nnj< zKNU$1>Se^7+zW)pm7Z(Qy57PhhmiT!&IRE#Ewe-OImKKf2t1ql^KNlqzKavu~K9T|xbDN!khDFKOzDIwE${&$TqhqKG4bQjQY|Fu$SDk4&_1QQpe8sa5-zu6TL z0usZ}eD{i8P+me*ie&&%*8B z!@vFkW=!l18mDsdUTH!F93^dAxT@<+5qXMHfJv<_`BsFol5jS*ZCv5z#}yn6V`YnE zu2SVO1mRTQM|TDZZhU%bud-!-=3H~3iW;NP{ZO>@ongAfelGIE&;kAd_!^k+kO4u? z;%rH#!oSCw^wi@Et|YUnYD-#sgmE?S=F#>zZ?~1idt0PLrGy^5|J9e1Xi$C)gPKtM z30#zt7~qzy7m!q`^rpD7iUb{K*w$#oOWu+0ra% z9T;Zl6j?LLT4TcV{wMk8idIp#4N9BdIO}t34*2uL7yP-6m@VHc9=e>`yaGqe`mn_K z18Gq^vAhep%y}I}*){)1_p8fSEol>_5n#7?H#uGK_TKEkmc^E8@x9Tuec@Y+VT-^T zZ3Hm5U^=kXIB^D{YPWe|v#Gf$&g$|A*>@#LTgAx44fEQJN}ta zV*piMOe0QLrRGqHIhCSmCrl=1v$$i0WU};UapP#l6|*3Rc0ywjl(WW&UjcV@3aG8k zu^#IB`M|VlD^IAIN*GFNq27vME{T=L62`yXND7c$yJ)--}%!=K|%}#LBsa^S{)T zYn6*hn|5eHJn_jYqJSU*W%#G8>Y(d zEs+`-k^PFVg=0~+eiVhxk}hF^NFOcT zR;7pz5E(_FUNJlbA3`>ea$_`XgpmSN@w=3LOG6OvDJJ8X@s880%GSYn2WSF z@IT>;ce$Z;HK+NGCv!OG7k^ZoGXBDsS)&4uRvQbST)~hgyG-;aC*br$5W^v8Y^ktC z%>cnCP(@WCe?bc}j4yZ}nAk$o-%FNAk=^r$H@=v#5ZUER-Y(>d;GkV86my(K?wElT z33=8UzhX6C33GCFBsz@=jm-J|mTPp8=px#=pKcS#cv{q;to~|opdRrz(8kEpzspk# zTM%n1KYw2|frD;qxj{s>` zhl5gE!J<4|FB})d8#Szm0COse%S0}ASWhARoR9c;)XC;xE_4dSlKbcuUf2k~Ldk?A zTKrVRnXbbev$^}vRnP4LvG{Z5G6oHWac6}6RM8ei1|_3ByQNutz9E4I zo9YyU-PHU7-Z~b*nAN3#b-LNr9Qc}KyWlKgT7XNz3bWZLWkVn5iWn$kx0%(v<(iI6y-{+M%^LsK76WqXEhv6xuc> z33rs3IeTASGOnso^&_t1G%}CTOPv|NEwEAugm64v?B*Vg-xchd#JVqjDAUGC;&zNK zViE=>!kJkKK2~{iKDG+ew%?3xECq8|th*JgSeR)3)vOW3@@Yz>9gS>=sZiZO6@XV*2rL5>VyBk4tD~;sM4Kk&>F#6W2$NzXUI^faH<2-WBoC6OiNKhx^IId>6BygXVsP%csSqsA1 z!@1%KBCYY*4|n7sCC;7H6}>6X@JHM!m5??a$#8W9n>=)CR|K@Y9$v%wP`psWV~UK! z-Y{&M(eH;KNb@KD23kzbk&bCIYId`w?n7DegC=hq*_)H-QV#{(#WF^os68Y5Oy|*L;QX z17Fsd%_Gy3i@S53OQ>g*9+C7Bi94fXt0h}8cUAtQe~}U6lk_6nG9e|I2jaDl;h5?Z zy!5MGplA>DYHGqchWoB5r2CzU89pe?KN}e84$d7gobGuKB}g&8K*t`$qtTf0FU>Kd|#Ai&;d*?{`ckwHd6G{J5*;xjx4hHlnkbe;1JxB7kmu zozd)cR(w6?-k(}AgY);<1fk$|NMB=1r8S6e5Y z4qF&PkUd-TI0bMIIll1wAImDg!FL0*ddqyt8k$*oVd&h)PaU-W3ixutGvOcg3qwDq z!&Z>{v3;^3Jac@nP9R@|;oG;FA%VkDNi%HS0yzrW&W8t=-DaJKmg6t!L-@Ep!8_6d zHbLvs=7`*={0U%<*$Z(8>56geHwbz6i<$1n{S7E>NTOWb z1C`}?4KRl&H?fPUq0c#Stbolw!I`cew^>%!tE&w%0@6xVVKQf^Cr(@Kc0k#f^2n-d zCQ48z^h?LBc4Uh>n10^<5^38PWBmqmogcOf@|%ddKeuGxf)7HI9eg|LY#c1b}Ux*+WEOZB>nTT5sq0pTcD0lj6tSE1Q@9Q?l=-AFb;foZ#Mq7YH^G$hMCZ!Gd;gQ_uN! z$YZwB_r1Ow{+8>Z4|#Lpf|5gr>V!XeO={*H+ds$l6QF)vgP6W03Nqjm zTmf;wQ}qiAz2t(2udav#RInW~D$k#s_F3|ZaYQHP{{}3BQBrttZWs?Mg^mqB|7K5T zI?w5Qi03`RVL~7Cr8-_9hF$;OI_hXodY167?JXO?%uNXIWzVdev>G7^)5FTkzZj=! zqRT)PIi>ZOi;6jA0@@&59PpFQH=8E`4E z1-rzvRBKD&w(_kRUYhmVnet`tsEXBO!|*NQsP?gKRJM?Vd&N0y66Ukv|DY{fzBZFO z{KehWEkIf}Tp3bTXxu8*`1`eOk@_D@m(keV0eV5Z-@uNo4FD{hJQ168ay=OydSH%Y zy`tqL2bOIIK_ya!D%q~6gBRg<8vDBIeMOC6c9fH#&q=GEW0x@nn-KWJ{B7vt zS`2Q|MIbXi?4HH`)Fvw~^6?Raq84f^?fHJo3xa!fPz~QDzN*>`M-F(wIa+Ac`E*`$ z*4#Kw6h2%~CYI8=!Q$hW4c?x9S{L+@~g6Oy(_u3oeQzImO2}3k!5LzA+>3~xS@BVk_Mf^>a z6*v~Uu+a&Xi)Au@Pho9gCnG$7pTKBQ3?w(1oqyaK#s7`|6M2nZ3&}2^6(3eiv*O)%|gy#f< zQ`!ZY#BJ(|W8OD1%aarFU`)uvRS$gN*;v{m05jE{eB)rT)HBl5Lud#;SP5Z8>XFJA zbl-Dw9Un_><3nxoP=_gfPrJKrHPn{a1@-Nip6BbS4X~QNHTya(?{ZeNcc2i!ejh24 zN^QS;+WtlEV;d{E<8tZvKctq?mpK!=C~zKvT3*J&4#@y5(-ix~RM}gGQuqb1Aa+ku z>OJ-YuD^uF@r%eJF45N1AJg^S$@-%S?^VpLm0Tp#q`Nu(BZQmMPlpKbQ<%==HnaS^ zcn>%}Vsif2gymYrt{I_}1@JKaqUEkgl}Pkcr@0{)H&0y7M9kSz|A#4(-k*CVMtwQVUKB??38E7&SV(@lzP@L0P9d zi@gybit8+{O?h< z+G|B6`+6HHSd6@`uw zyn}SEfO2 zr-{>+D0$_0tiJme7y$@Y4Iam&0dy=RMNukm<9->4=Uh%#DXwGJ&TmmZ6Av>pRa5Ny zNMKXt34!jPHG&7zf^C#&ezJm;g0b9Y$a`}VF?64_Xm|E4m*9EKtOXT| z7C2jqMle!D9cn*jc#}#H?QZ$;6PO693o8)%o1ajgk`A>Q$ug^P1^UoElg0zom8q-| z^1pN(pVZq<>$`3i=3uDp92IWnO>l##q;{qtn42)DDGd<1Ke1~>K#qQjka-yKhlq45 z`g-hzVG`V%4#lGw$yXo`TvMBQ6d%A& z#$guJ6@3(zss?%DT@~@r8sdEB(Z{Ei!jmmFC9v|< zO}%YIg;+bQF7Mpk`Zkkp85R3QY^27bI^stc{qzD^NfjSYNeI^vGFMV3wlyOH?q#R< zyq+_B49;&e{;e3|@1iFbswP2VbMNt|>MKXK&%pKXGtePR??ZohaRAm*Wxtfx3JlDQ z&qero6h~%0k}-}Yo1(iX=L`YP)il%fJJz=wf>}N_b#>=DwAy!vEYp>@c%%SK&Q~^W zAm_)oZ04hUh`uTZJH2*L-8D{cg2rL`YC-^suLr)GB-qCivW*MpmS~i|m(I3dbJ}s0bHPLH1o02Su;_;;T7#>fJPZ{JacsJXDUDPC>?!3 zh^yYiJ@&`)+l+bT87@f_F;1fbW6?El|-@LEZOQr3{JDC=fH8@8+yy z9YDIHW5;ODpZ3c0*Bigqe?4g31J*DIV?52JZ0eOyU*$mV?~48hR5$WdI+d%a<86CCBZT`CLBj?| zKsNG0=hOegIgAt4hfWzR{?y@u6NSH(Lk7XKZ4=(zZ5=7Hs*@y435etzrD?7zyWsw! z%Ig=2+k$E_27J@YjCd6W}FGw&09XjY%Vb1#^px^4=Gi)yJ&p`{$3E3-*3M4q0K4N7jtK z_TQ5yRp;|hcHAo;Z`SM9j(AlFkFVAJJ(TAu{&Er7Pj-36E-KUM#{u;JFdTzM1Be)4 z+pIfokgh}|_uS@ks*tKiqMyG?O_iNrS<}^4>kwF0&>PXQFEuu|#PLK0JZ2xnRyYFOLjJS~cN9an{xBZiBsJXx%HERgJ z*fi<4w6$D(#BeIhJ^sSu1?`nd$9 zlgC41F)7J#-`^U4O1Jq4@xbJiBUPevI}myQ$N2M!2e68G(2ZS*sm<=sZQ4&5jNk`X z5UZ7i^pEB)Rorj?L{f`B)qH4MG)j~BcGd*PcL_@2%OD@n#U zlHYwGefDMEcx5Q8a`EFQi-S&!G0yN_$#==lygI2TY!z^G?xKZls9vH1y>29LO8*{Q zan0fn-rI%E0bsdm!Ja}=*1^7_ejlW`gT`^H39|EXrNi0J<+YTiHS|LMlUvFqVk$Iy zYe0caQarEF({~RFB~L6|HGJ|j_+88%ld`o5^?xxgsH8= z0Nz9crT^~U`W(xk(8T24dcuPTVZA7dh-nnqk?~i0_ufxUIqjB5=HsgG&*|n7x{xas zX?SFiE{euQf;4N}IgKO-1-zuB1F86HN=Dz~HpfoQKi`bj}#nyCh)S=0Ds%lo&H`fc6 zcm57zIa{~4*T$ZnxBRDDwmYAqtN8ej=Jx${-Et|a_Kkn70*zsWz!5A0bp+c_ZLuUVZL0&w#X!Cw#R2qt{>{)=UYmJrVp+|Y0;wUazSH=m2(!BvvnpB#gH^{2cx6RRhq|dD$-Zx#atfF{(dl*1mfr5$GZVWr{DB)$Wnh%Lpj&Z}j z6%9zHs$H-z@?nodV2lzv#{7u8Nw?$1_p`x;%-pYXO{uyq>=b7NHV}2ahCotne6}TB z_)UZgcJ>UudappDZ`H`5xi#PZV}dQUm=t<(JcC}0%HWe|Xu9kJBdT_HuxOm%%z|1U zl3hK-R7H83N=d2u_vK{H#qdRgy?L2Uq(3Y7US?#cNDWUMekMDO_2Q$R99x!cq=K2h^S51%%-WE_~c?#D=Q8>HG;ed+?p!iC+Ta zeJNWg*a;4U?*bv$a0%ciG5abWmOnjc=B&j36LRI-`?FQR5y)ObEwFQ8FW_~^Ji_hCab@qjDHLpcG8%KUP zRduiFETogdP)XOc<*se`vWFJ#&kM0sv{wKzn(Fk-aNpu1! ze+P0KJrO#jLF)}i_BLB9AePOwsX$cYWW(R1-Tx3VnEbqU$+N~DQz;O@$8-7qa zn(c75VkE~b>Hw)3Mk3@QEF-jK@UJRKKJ9Q+_;s{c_@MzKa>xgg3V27gyZMs|6CFqo zVRracs90DNhip$VqHbK11|DkRE`VpbT8wOqoqt3 zhOdRKfr5jG2v)@a^0VKC@B!tZk%4aoO<5;O53dZ129QsRtHV#Jj}DvcRbi{ z(?O-28M@~dr<$Hd297DoijF+3MkHs45Q*R&8sH%S%+n7R=A zf}f4$@-Et_?$^zwfO3A2iy^`NWrMlJd+uWKB66Tb*CVInAMFF7lOnL`_M;Ygc86fv z=UZyq8<7i}MJ1;&e-V0d=JHjOv)8*w>5|ws1Ly(u#PEU_vG6%AD2TKTN`m{cx}B0qn;-1%23@VgFA^?Q8-{Z6>Q?YvhaJx2Wg8ogt$xk0}h?6M;t zye(|WILY5Zt0HBopkM5{i>1JGyb}1-h>`Xo;VmzL zKc;#mVHcCzmsjr$l0-H~9p*JnWh%8P$=w+MNOz}un_p}MuP%P=g3voXy}oABYs@htT&>ib%!;>y4_1hCsTvb*%rBscF~goKUTUY8;$eKL4b8EBbX=8@4IAX z^rbrd&c>^Wd@QE&5HScv*+ov$2X*uF@mwJ%^V_s? zeJQD4%voZ#S>IbCZLz7GrE$@O+^|sRg9<&ipgy((ifbLf-)eTEkos1zJ-y*ZOVh-c z`w9ZK9Alf|g(n}+SS?aXqC5Y(%f3(&C*269et%!deH;cwx`^-bUk$+@vrd&c>v8=o zHWt|>n0P>D?t#Aehj<|Tm9ex!hJD7PkTYI1&1uwB{gw5D>*SIeqDqRywr! zbg*vBR#Ux@`#d_%6!?3eFU(6rpmFB>#n})*dkJ>m5*y(&(HpZG;A_uy8TsdaU`wQM zp^nu}&{q`YvS{K8Qr3~&P$V#=$f6F!pB&s7SV9P6qmN*q=8-h{&e2Th_L>*{n{9B^ ztMF;=`e6Hc^xwzCmNNgriOd?2+*Zc5k1nS`3x#gn!Tm0VOJe$>-?0bXZ z>P9)kx=@=xOpKX$4}tW#noepOXCl7~Eo~#9QfIe8&%h@@B)SsP)_o6qUreu3a-twh z>PzV`g4~&i@wcup+Z9msu=8opsXl)luYWoAI?S{50NqVD8-B#@ zufTlx?#7yz8(|-DZh58s zx=#5VTvZ>c_}^*o;DGD%>@FJ! zd^xAmhNwCx#c4~wDmn5##4b?+@jRk!=2@vEm-XBifvWTg@w|Kio6}{PY2aWzrl z3*sB8*ce;&$WjBZx=?}39N=|qZkgda_%KEM#e^NWMY%QtzZ{Y5_o|s?)ECxQUz}uI zHL_TM;sV(2%p5zwNkcXutL! zn|DdsQ1^8?LjP#4^Xhq|Y3-YSWLO4dnp@N9*33vB0EsM8h$BKwC_o)I$Qp@_U%mU+bF}%k3S$` zSj4;goDi62KULgAbi}eJv@sY!j2~2DLi6)Rfb8_2hA7?Q(Z5dLo%tNFHt846C9Daoqe2rGv{S@UYm7f~0%O zALpM-KU_sgI$8BFo2=dPcfIXA9y=zjmiO=g&oz$0y`_D<(=Rfm!^|~y+bTys=mYK? zukIV-K=oLiGg%-pkF@EFS5Xp`}Ul=^pM1FB87e{uKIe@~4}t5{=MQ9N~2qU{Niwpm4TDur{oE z*NW2lrHYQJNV&zdhI@-fXS{}TbG%e~rl}7;)je*7{bm1U*7*a|EGJ(JbJ@Pw!7U%; zmk0dqE(E<(({0n^55$T!%Nf>XuQeK?J=F%_!EVSph*EI13#gWGHWEo+cC}N!{C5T{ z%Xj;lnV2b$7=IWrnkJ z)3cuYa>$2)jKmdpgpy3;Fk;ZmTLZ9k=a+IO`(&i!nw{zSJ%!daq18~G{1j|vWsdW- zUf1(l4!yPNU4>@Oz5Nn!sQMJLWPPh=nl|{<_~r<4-AIu33$96T-v+Pw2wrd+s)l?N zWTq2|`^Br7;#7h+1=Vu+k5ml;lOo01cyuE_Z-~fbbTbxn9!*2iDQ1`K$`K$ZI2gj5 zlxn5mh(k0r+R%8a&KoZ>I@+vJ!_722(S+zonf;TtnZc2<_t!+@RSlFXi0WkqMy*lRabW{HwesQ-Ok> zdjA6d3gQ%v62H`h4DS-c#CR+H=?=s!Uqc6Dabp_AmFZC)SQ< z5ThSUB}>JgP}oaxGY}}w(Vk`yV-RENr$0zVo{-to-TQHs?WX@|+*$NeXr%q7RmZTB zN;IKNBZug|9jj!tk91(PN4U~CsC>RIMd}s#;a8?gq z{nW*_r?;_50*GauiYJj*p28#_G)x5kE-d3PaIyD4++Yb=$^}@iF^HHUFVGd%s&@W zb`YN!yI7dqTzI*;%IRqLHE9ps1x)}985N1U71>6*4LGnzjBJ4GQCu_)on*<~(Hxn&cL!Xwg+Be>95K^2`!6&MlnQ zvZ-tamY6-!0u;s;J8xQ_Is{b%By;OUD@991YgyIu)$yxls$v!o7DsMSNeW$#=mTUx z)ic#fi};JB$1%s8o}FEi0Sd;IeKlXIKQcUvx=TyPgtbx2S`KCFO zmg+NsJ>kEnu*a}xXB~VM+oa}$$93U8VX^099d#Abq~)WoU&gGfL(j&*l$xIEXq|cm zL|;`k8R!?+EFIhDwoDt~vnZcbc`kH0h_vLlnzmf8!JZW@Yo3&f6x3)gGZ8Jm9YgSF z{*QSFzf^e4?%DB_C^+Q&1!Tk5Zdid{O?8&`jp-Kiy5KR%Cz1sf$C|Cl+EE~TSf?R< zRWWT!r%`vc+L5PPzP^dak;M=gV{E*2ghp4;JGaLBT=TqoA3ZZdPi-?l$Rr5QJ>S_B1RXyc9 zhUeIT={_^lrux;DQ=)Dj&}2J!fqk%Zuttt@kYprljWy?eZH>6!G(FjUumNB8 z!H)NHn-8JS+56i!APeZ`--mt{e?#UOh<>JgQ~tpIOb2?p_VsV78eA%xI<*1qt-SYA z-C4i6U(&cMC?NXRDBr0lsj3>|Sv3#@_oSZ*W&XrD8TWu(9rHOI_mH0vf1Uoar`vzJ zCSA4C=j?7N?~|3){L88!%C^Bupbqz(V$9Gml#D_$j*j|gl8R)!%SepO2&rcQc$|D# ztPy#aiDV;M46IaOey)LOojl4(hpis~wfYJBOP{S(Ru{bv*~6@6>`2JM&rIV^u2|Axj7OiW$ZX*j-p z(T-i$cW>Zb!@xn(ll>dhXNLX`a9#E$?-!|m#Qr3k+1E$o8CE8fP|f5io1iLsP)f59 zV@P{3Y*Uz(FTD`%N>pIEQ`P^{PR=QMsZ5md}*Req{Yzn}(TCD;(7r9n^9 zL3)v}nE;Z!l6+mrwPFNV<>-Im$809?#qg;}7vEU<eA#PXP4`#IX=U{DiB_}?4Xa|Wx^20Qs#gFzKN~+IKPx{oKYN#g z@`9U{cSFFc;@8Jet*zM7O1&X%RrewXq~cwIl&qhspQ4|(wQPId2zqxb-I%nyqTcyJ z4n6$cpxg2`MlNmKYv#ZQz#ZMx+qAPivPFpaVvu2=enOB#NPf_LrYCn~Hu1Fa+IxdM zHgC=!+Rs*wJikJy*qF4 zZhX$3C+B+RX68obR=&*A!;{mK!;{OCo#)NDxw)~sKa?ADYjZ<$OYu7=!3$I0rWB{# z>OxoMZOk^!*%5~M)-bQpZ_z>MjL;|Q6BuUBbp~TN&)J-4*4sOW!h;s?((knI*6+CQAs-bV86O>fD*R^fOeR|ag9ds3-6Y>s zGma!1$=vbUj5C;F*G1ChwJ|Own~$?+GATts4hk8^-n7@uYuJ^u;9!?UWDZ&xN7gKA zn3uD&VG$eW&5SLZ*swKXRbgvKE=3j&vKhDC6aqDK9%CMB9z)C4=U=`hA&zi_@F3;j z(IBQ6^Pcpc^oI8|ji) z6>GT8;uKLWNx@96%!ZyCNhqt zpifAdrE>P-Sw=ApB}b=5r=X5Y9;!G8an7ZiPO=>(%O}gHO{IoUU{(itj*PSEGpeUq zPdu0nuN!rm*+o*LDbrE#6`IJDBs(#p14cB1Dv>4F%9MqAGVjSyjMR*>MyW&fK|4w| z1BZf|OjZm(+3YVT@~U_X)kXapL< zn|`tIZGiv(0rAtAK%R2q>FP1-B4kiC|XD0?C@RLA+jZ)xtJ{P0d>cw}`he za*4tMwLx;##5RmgHLXx~$;^VeL37oHUOFvrVu4`k&{E#wu7R?lsJ^HHa+P^i=t9#r z7L?wo;jO2g+mTJbpf{grIo5!_D!nRoVM?#9UC@!+QChLMXkp#p3aonB24KvxS*6wg zKWv-TwhYwTD7#kKk<(FfG3{p6R^L>=vAVWOaDi`I1*&Y6_m*F)!k^w;;+y81=Ue=k zuCxNImg>(|5iSZ7^8#IGQ+}P)Rvzmtx#+UHC_f(Sb^N)UGrrf@sM2n&fWG(lBJQZx z6Zu_=Ik$Je>-B>d(377I@XFOwlK;{)3m%xfG&|Du^s2Hc&(I&Fyi7a7^i-<~)t9V~ zSs%2#Y~O!%MCqwl6>U{4EnUsv9wR)Uz3X+vZfe-)vM;2aJf2KEV0cM)By4Kg=QS-{ zu}3FwrEaBcrHM}%A0iz(-ie=xpZs-E;v&yToRlyxaGsS1zG%zevz{mZE{ZRztz_>M zx`}>Cl@fr2dI5id^{nejkc;wYY%kM@OrnXVn#r%ST8gt;;PH{R?zvz=<$3_qKZ=E1HH7lvq<7mfJ z_e-5vTUvDh;jig>ob{Odi0gi<6YsNKOQ%otx_}*3(eUGFwwOsBlvucjF7 z(Te>=C)}0_pRRP8rueln{QW2=%9gryQMvfG(T)8}C#065b!k5Vxg_r~-(?*TN7_)P z!QD!{lRl^LCFNrh^l-|pfM*Pk1_22_6;eX*NZ$bvypM9*cPsIX;`xt9i@?~u$=l=S zMWzxawd^U4YkaFTZ+@oI?-MX;-BbF9*cT~mCH|5w7J<=!P*MT;J+sIsf|kWBGC03@ z$s%J262+vVCGzrTX0a^G?~7UFyku~G%f?Vh#pjRAqFI)*$fo|9h%u9@%U@ASWD!rL z<^44Q#An7FO3O>hOUg^b<(uaR&eqM6oN!v!+_%?@cnNCJbWqX9Cw|e32M^T`313K8CL1DoCX3$!!vq6;yrn>p_}%df_lw@Ut}o%hOV*tG zG{q|2!tInvg9UAeoc9X&s!-KT+lySPkheu4<%sgA@~ZNn@}lyj@}}`LpIX*N-jz|q z``ik%SLx7v)?C&M=GoMl^gZT%!AtlHlW$9>5Fn{PayhHNSofg%LisNEF zCatQkF0HcHD|6@imiZR>R^cyjpXuJSbd&*cK<%UJmD;EDf3To<(3`-30C`EH+c=lq zyG6#e$~BobWrgyh^{+#}p{u+?f71dSQmHBB0_syO}x{;(Z5%`RlM82*}gx%D!*U6UA*JJ;lF3RWxVUYS$e+JHcG-H{mjdtIy#GOg$h>R6-dijAx}r7a^Ar%BcVmX>)YtuAjb6JOFFVXSWW8%W z;*)olhm)6onvRJpW_N7`*)S78)F5+2NJ~XpVdG)5+^IGzn z^4ii@XVze7O=$t)lU?f%VQd5zWzgvjT%*&+7(L`wu^3O2xqd^!3}e(rX8jijhl@ijVlfB3ik@%MejvF zd24xGdF`q9OqH`g4}RG>5C1*nxK6(e`wi+@@LT_`&8h=1*QVB_&oR#nK;a;!vl!Rq zm*toKm-(0Rm-Uz4m)V!mmsLHxs%m}M{AJpUB#1{S97r7K)bFWKsVggs?29O8+GpHn z-e<+G<1amWrd>u|R#lBl%hngJATRF#{95+awDSoN#w)9L*?Vip#HL-BVVC7qwfkz@ zdDHm@Xbk`nyyAOTy;pWj`Au!w6IO3E@mKTLBdrpy1fTbThCq~{B9J-g2!#3HEBM4$ zff@b9?~5wfcFDGr3vh1ObNG7LdJx{-+jh#C=Q{J$-Cy(0BgrY{%pzVmo+%FuugnL! zTb?7$bI;AX{yTs3k|WV6rYWZ>*eU7EhfIXb7{ENwJl?#{Jp71tN^R=w+MW{k&LaHV4fes~9b9Ypn+_u$3wTz( zn+i5QR=$A8wqB1Bc4)ur@IfYh44$1qG1RTS>tKCGy@v_r#a9fhGaq?eT%Rc{USD}E zS%8->FNt!{;&9Dk{b&Xqf$oC4z+~+ld(AOT9(#Jaj+9x<-%Qx7U@Rjes zqBW?_OPIW-8SzimuKm~9M|7UGk84}zi>eFzb5c+f$Q|?uQhZH*5Aa?8nBg|~d@#b@p9yplcSHXCO{2ezWcqOQ1=Z{NT1ubgpTaPN6{ClREf;)3F{ zp2@q;)!){uURb*>+20Dc_8wp0o_s&B@(N}~EiSkX%~ByI{LBF7Kfa3}1AOuXx2u>J z`V;W4alQ*5bDd`TP4>&|7kJ!w+22sh@ZbL!9={^YsgGVCUl}iuo&YaWxRCdc0DM+e z#K(VCI+ooH#nj^kP*3^RxjqAr(%ry2=C7NvZRyh(x1KRYgCtQ(w{x*LsUCuXJtoiYax#d zj~jc|24u&S_j@nVVha2fS@ZJP0J$&zJ@bnu>By4er{w1f)xlZ*=k8eqx|;fX`^+@e z-dV2xbpf`iukJ&5r=1w*JG;KSzIX8VzpKQs?-{!4y4fI zY5)CJZ2zODVf_qgRd49pVwN$nLcAn230#ZVVbR`+PRqh%%H3g z+Oovv9x)A7t!}w6aVa5961i;h5<*1j&z4Hi?;-L%468HN z6PJOK$TMwmjVe~}+iu-RDXb8?_}EIa;EK1J@FefZSydD5@>zXg=6f~hkcwr0DR%`uRxEc^0^ z=mL%4(U~Ffb*UKGSZGa}n#=(?rUvZtR=LeWKf?Yzlov`CBLIP{`12Ajk_qc}&h<5- zL35nc&R)>M@h|XU$9h*SitqB{VF;d8WV!Cs{2sHO)99vRFGM}J*_*j3ve1xqhxg8@ zTuYWX_pHk<3aDT=MD?o&5bv?66o-Le352NrMmm_ax*}($4v7?v!f}H@<9@IkiyjV z-m5N%T^5OpG>iBnlG8EA%(*SdXpUKv*QIv4$?QTq@Z4=f^pOS53>1YG9wZs+y8H88 zH_ub)^VbT#`LxGz2bQ^J4SxXpZ#pHN>J*0GYX<1MLN%`a43Lx=vkZtYTwG^5418SK z*Bp#W`;|aJ8shmjEX?XLO+>Z##kvMsTr$<*bh<6|JT!Zbqu?oOQ>aoYS>DyG z=;)<|RF52qsS*qMFc^}z6y^*`pZ^@vX@Gz2C{?3Ha z%0Lu}65pWLO^Jx@D{ozc7)8FiAWAX`Zb{In^7eb0SwY)sLX+m@_n6q{C0pUlWipoE zzv8y+$wM*xj+0rIl#=Wy29RgB<=}c>4C))5!FvjOWM)=! z47>o;A$XU_G29M%AG(fE25$pRlThacoTU&8`=y4@%ANS^o%kcSiN9{aN;KJ!JzB+! z*!1{wI@AlH&f>AfWq}r>7bh)B5r-|xtrc9GZb?NtjKpLlEpnI3SIHPwiFouhPJq6X z&gRh+BsUY^r6OaNMET4h8C%)LAR1ela1+b8 zLuBL7Pe^lDnKd%T5=XDRN?d7TUR&=Ns)5i1k@65Uc0ots3M{F0vJ<(F<_l_(_;i(l zP>0J`JLCQSlNk;%-zLe}=4A;{)ATSU38Ao`l9Hi^YRE<6yA+&`lUrgxFXS0L!!iM* z{1A2tN8FT<)xXK?Sg}18bsS#EO(^mW?zv4hlDLuonkAwnhhu;4IH(nAtGb^iHm*o} zjJM?GitQrpW`6&#$cQc{>M}=TCe)!ysK*F;x7H}I1<_R&ttJM!vl`8d=8Tq`j%&LEFo!ku}Kbh=zCw>Xxn($9(}AF`d_r&~I&bdWff-X~qN zoHx#N9yyjaCS8l1BOMxNTI?Juoionxj#3YF%(<7iCLewsaZR+yxmKcPoP7t5xHelr zj+G^o4K2)(Zg^bHD;pu1wH01 zbO`XG#$pVc;R&>;?5?LnNy8$2$P}ud{s=bT6NX54jSJ{>jh`T))4n+5h~r|);=!%! zCdHkBxn@~rDwqa4g_Sy_ko^Me8~c6?xlsezm&TK<#X9Rc-TLgNX-;6&cc-P(yGDlN(kSnT8)5%R_dZXprL|&gJI?DOE(I^*xmg7H1_fRGhB~b^8EI@%75v% zvOBr1(c4f+_I!E`smdXr9-&XI)cR<@bRLUzm2N8sBuwYnc+LG~qGBXbm>9{S?mf3T zO|;(N#Tke6_z9_09!mg9Qxv%yy+*i&_h)SKXUTd^5sw!PYON+fzwsKII&LRr_MrMB zcfYML5HHWEYgGTpc=7#kF52 zBDYUQj_odDOjPcltUWlrG+?%1laXgi>!coY$)w|B=j*&Yrz7XIPEFx~_L0dPjvJC! zh@+GVXL;P@v(U}5r1QjJKut!J$tWbt$^ad)SZ=eZx#5Jjl^MjYLc%T5SS-+CDd%N3 zc?sre2{u>>wg6Isr8?J}Oy%U(qL9=H4MBeJ=JYv?56c_V|G3J3J!{y4KIE4%rRZu8vW(-Zf3!rvee*>Ra5t1cOLFh&eL=1k+FM7&Mf6;k!fZJqOhHL+=h}z!u zFEz&Y;!SEpnu!x4k#_VcV&*MgH zjv!~`sLX%=V{#_j%p$#WeIxYv@VkZX9qGi=A08T`=A_O+;|nn3d@FPbR=?p~7YZZ& zCm3!GwFF;EU5>2~uZ~(gQaMt5v*cmD&gv9dAXWy+ zVV&r>S(IQ%UO*rCcJ@*(q0WhMIUFWHrQ@fmF6Jj({aF*2u^qBS`7b~ok;dj6XPu*} ztl1H`v;a9Q7}Bsd;ukIsHhMZt68a{mKD@Rlj1t8DgZ zCj5caZLxX~E!K^oBp}Oqt3t#wJ}BjI)i7$%{ix*Hz9-k>w-l_Dx3si4W$K&l<1uwp z_u^Y`2WL-kFrKnEFzk-U%OtxWuQOltwxkC_XL0`Id^`9?{O9K%qc64oTQ`J)t5ZE? zsc2gs5cxs=B6@#!ymEYUe3jP~*@@}P?Zxxrb&olto>wIjEvg^YiRR1rqH}L>KXQyZ zgFj<0-Xz{6+9cK_QWb6&WfwLXEf*RU&XxE1RpuBq417p2P-XUfLW`V}eLQjAAcp{Y zb9a(cjh%IDlC-DKxYkpC&NxVy9#fh(g1g&;4{s^a+n+V_cSrr1UX!qfyA-d(#`|mg zP_=5@$bb=r?ZASyb(yWia+X$#$cT;nI@hxC&nsv9=lz3Sf* z+>mjC{wfb{x$=n5h#j>a(W=cHhiLBcaD&)GF`TM2Thdi%f_r-V){@pKn>s@C6SC9` zi8`xYDp6p~?6@ehU5LQHhAqB;NFI~@PqWAD9p`;D*3-upVN*Qh{;%6yP&oi1k02no z9u~X2$|n5F@wd(EL#i;A@lT)9tc}&&=rHxI%~n~j<8B;*K*kJ==RdsOE-vt;J_p}J ze)0TZ3pgY7p~ZWjGV}1Kk|*&U&mDL|^x0u1CwvJI_x@{nJ!*5qr~YFiPn`Iz1i{yy z>Kou;1IFK)c7EAXbM(!USQJo#<^1O77Qv>R4oC1T_SE9L61?q3b2A2mYP<{Pphwm8Hfr9a|CB7Yt;kcmg9v*532jK2|(^g{wyEtAN*{~gnr zk`n866F(>l`Dha>;D2*Sj;T-jAsHM(?AwHhO$#&fmx`?{J?30U$O-LF^p79w;u4qI zfA^6fJ)&d4kUcR3^4T3Yhy%1-sBpeJ#Dfu@Fko2_z~4g`AuI7j#SkO&CoTW@QSi-2 zLPC@4+qMRxOYnaLZw)m$z_dE#v@T~-49)f&Lv|U?OJz{8IY&D)cy0zxwmDgSm9CHk z{&pca--Gi9-13e5_Hh?j78&smNeQ8!aWQ|%{;#LN|9**2d9cqgYLvz>YZ!SMGTnw0 zs^7?ZX!PJe@ZHseqxuRiJv1$s6V7OcT@Uzrfo0ziZnQL_O3p6dCWaqg9Lsmu8{}?6 zNK7SPR^F7RYR@XG_O(Kk&FGFW&k%Pe&^#%EuH4<9g81ljTQ8hy0Sl>KpXp&f5PE8* zgh_VdcM#cHt2BCam)YJMmXok^t70D}vgBpwHbqxb^&5M3n#j%1SubW%URk<2_xoq< zXy4ma^V!NWMO;!0Sko=TW}dUC=7(zN$iqtHUPx-Q3Zz)O!@ zjdEGhZzAMl+9VrfyMRt62}DmpU7A;_*kTe>hjtSw_Ge~ix36I9i+VE|LvL@V8I>NHvU!WpCl_*%dB{7h-gVSU z*XcT8f}NZ{nFE)!OQ@5kAcr6KA@}hHt>6wxUU{sZp^XEtgUQh|2QOH<(95bxL5m2UhnZ^qkvxckJt9gDv&8(pmjsd z6gEy2KGJ4&I6iV8W;QCGYH{|Rt01gVWp)LTORym}H0i&6Rc^Fe3Z-ActKT6%KL*eh zh@-OhG0JlcMIkVP`p0KdD%?exAkU6@QObfNcuEPr?8v`oo1di2n1HsyG|+hf$84= zcIH*|!{P(N96U`E)Z<`BtvM~=?Y)$1Il1cpj!nhODBP>6g>98(G6Fd@4hm}zk0Pr` zdi1wE|;~&!6;g7DBVRP#x4897NLh*g^z0#*MM4UXK0zr&bsFp zPzr?DFFS4S61$Q9-COLk<6-|(M$bF-xq4z&&ouTIr&8@8sG@lcl}1;w$Ih)}u3SsE zgZ+m&{~l`m$fZqwI>2~#-ITO4XEd`{v89DH%#843r{kf(SlT!2ouKHhalP~=pt9Zb zBl)~ORyj!)%U9KykC2v7c~_UI%|gevq|AdghvVv4f$i#Cevc4|(sjsEB1?~<;oeg; z`)dkK#g4zKDbaz0hK`#dal;ak_fsBx*D^GdqTfs`B?Ubu1$btO#^gie>G|%y%T6hQ zzZ$q`5Oau{B-H1yTX-?+CrImVJyf6P!UsJU@oTQpiee(jxKQXolI`#>smST`t|e9s z-sQ7UgJ8~Ruh`+vhd9Ty<=sxEb16hH+gh=U7FiK>6zt1?9QTNqC-`qOx-Q9XHtgw9 zv#j^__rQsmEuemWw*0xfJhA@Tjz8!YH(-VRTOsgBv~FRC%zwp*Q9g1Qqquh2Gm2EM zjcjF{%{f4`n#<#~I=T*whF@sTq9L$%XM5$=N&jIiNLE2kHMkq^j~PyBY5Sd%CiS|~ z478Y?fvRA_aPTwuW~DFat=9WW8`SP*29w~k<~vU&17L%e%&cZQ?LN+`W#KGJK#So0 z52#KV)!HyWaj~loZ{>QL>fa+a+s)F1>)=!CVVnhJ~So>abt_6{Mh>z)miZ@;`r7bZM+QJM)bJ5TNBG2A0 zj{oGW!In9+?z&GGit5q4pe)-0GLJHM*}7p;N_%HYVn^@}z@HwIsS0uy6=;7nK%s1e z>0Fj92kQ{<0uY@`GtQ}U#8qJOOsbf%t!Ajvz`>7=z(72Pd)Dlz>&)LhqVHfCip4p^ z4LSKH^Tly-P{&0_D$!|#y@%qdryA1KirwRi%?Cn6V(HX9YEpO9{A6sVzug7S-?pp^ zw7a2Yubxr25I`!#eoFaXBWy{u8*Q=;qnUCsp~q(tA(lZ4xgQEIn$t@AUa*vs&z^yS zfI;SZLc-3ss(mP(Z$9qtK}G8Ip9ZS38!v;zS;Oi!WJlxAi;}!IJin45&CFe zX$XE@WM{{j<;i8{?f~U&_$`!Ze?;>V#NbeyA~V$DfY291w(dWMI9%RzI%=tDS5CKu zVOpIu;~jNV%zmKW*-_WBDw=Zi&4+&p0AeFQN$?qtb8MM9YH!x}QmA+wR_?XB3D|}K z&9!-*xC3~Ti^%V9YGuc0+@x}-$VViGK#1o4DM#exY2ASUMP0UmA?+VAGv6HeLDr?T zaHy8j#G}C68t32yJ;uG-x4|K{@pfy?jqZ^py+((ze!NS}jV%I~flQF3tyNGAu*A^C z7o(Spc#gx$#`77qIQA8tjm2lDNXGOwS)+cw-0pc>EgHW1?FxY?lJt)|ie}DYk)8A- z{Pu*Wr&+CR!a+7Cea7g?{9sYhYu#H$ESO#N&<6I6N4aL96f?Qm03O2~#`UAxjMZ>t zY|tj;^DxzUnGvznizcSRS(%v-;0oRVL95iaEk^Ti{VmL)o0Wwfso1=qHkUo^C_19+ z#$xEkl{?E)i=8yzwY(!}a;dZZXwY_QV%1f(!OiJyP}9(Bsr|L8BxAlI*I}I`q0l!i zwM)wdkbW+om{|SPp-3(>s~k8U`r(+Jp!w@}iE5oEja`z;0JUW86kW0@;B4M6q${VH zm_4fS-JMl~x|=ZnF99o_oVwA$&@|lNj^}a2KX!ja9d3QbcKVP84#z!jLU|2szrEL= z6uOS}PhN()Tgp$5*=gSnG{^)$b2VZNLWfX#||4eJ3i|caGT)mUYerZ!O z%`7O>mrGhzyfDGheW-I1HeyW2(LtG)cOG>75|j$zETyH!dfA+{2bt;Z+{Bi)XPw9& z(yoK}WSz|p#`G^j5xTj;MBC2JlmUUl$;{B4jF-7i#jQrW|{@>k8E|9qB9->sz7|gW1ITQ_Zg=rTkqG2MGFf^ zx@#^M^~B`yYhp4$v!R`;#j4f637_OKeSe#ElVKF2T=o(>RkpMq1C)USC6Jg-9QFb! zpKt8L!pX23B?qsvU%?szGy3?iPgA=y)eGlA8r{o6+9Z*p!hz8z?tYYo=+3)@#ftZf zptF+5*(tph+;s$qI8ELxrnY4HQVGhgWszA7$KTo@BVmjuqZ4waZ$J%gU(8CR$+~; zhC@ezzoQ(m3DVNYo}{WuR!kDVD%Qicy+QKz=-E#@R7Xey=JFwtkRF;u)YYb1+&yhC zZoSvU8`v=s?Ck7|Ez^{KrZ@i!|7$*viMBXJMaZQbcqTL7$(ikI{!;%t$%gqAt$?Xn z_Mt`kQB2?tR#c@=W=`~uVlwB{!2bZ@kt_Kre#LfT7gG|Jt3DFO_fIn7_QCTX#VK zcjXI^h$D`q`!pZHLm_w!WD6n|)MW4A7?+%gBV{%Z@BiMJ5FSh*gtF5OL^l_HRPI2` zG)9qu>l3Dcn^(~+tj$;z#V0JH;V;n0+(zKJE^TF4t~d5E9(o$|>zISFO&7D+gKxn~ z#9HY-_#SSDtlXF>EwThLGdZH*>sy?klY<5LXY!#LN8{cgsS-6>W2PFa@<=u4OPBoE zLyG$855!NKQKE8tz$&(Vdn9~^3HTL@14e)V*_X3DMurvy^TQ01E?5iB0y5B*7=5+v z@kYI$&3UUe$}KXR@@n=Hz22BAN#3HOI?dkv?7EspdiM?`bno~M1xvYq`G#mPDwh!m z!UF%9WB(J}l4>YI0De!*(EahNY3BQ7d_|4EZAUT&40M!(BL~s< z;g&xbu=U$Wv%R*Fw)<7vLaYCHU6Mue+$~oG#u789o|w$6dl>-O&@`G{X}Q=(5vA`+ zJlW0Gpl|Zq&Ykz6XHYYO0Xml26^pO{=4uP-wxO1MyR$!aijxfgnIIQ4mA@UuE+WqW zwTH5jug|7{hen_ne!g|wu}L`dI!_s=PPQD}yTRV3?*uzN9-qrCdVFx<>LA9^4j~#L zcoC16_RBnp>rHt{QWGL=hC-&B@zT0r{E|#+wbf>QNga)J>TE;He*%(Jl3l2OHBu0#!q%9$n#oCp@wls^Zf`Zq=2?5s_ z(#@Pkv13Y4R-LV!BzH{u-=x;?e!!B+kL=<3=w%a4<53eKYC49qvXUq4*G*r(~ify+UF!L=#-SlD-J39vwiyYSy!jBDR1Zw4?K<>S(( zj&7e>&UfIT52Y#eTnIZTLERTq4uQ~@{DyTs;Ezbj%>FS~ZgzrhK;Q7&vinRKKOCbu zj0Z^o>lAU9`UM7bg3Z5*G|2wi@Bb#x-CN$cNq?#1kXv$-a^Sm*QQ1q@NlVoKrBD@$ zZ>5IAcu3YVQE&586~3mTmF_p&Ej;TEGpy_heIf$l)$Ail{1J}ym;K%G_xbJf0HQ^(GY+UY!weN`QM z4|yTv)o}7={So4aWPH_AwX2`K`75_wa-R3q%P3_8O~31S3TWB(hok3ZpFenUOijWZ z5wlsC*Kv+VWuVjv*c22ixn_s6W%-Y*##oP1DE?O)BJ-1%&8!1^AXyz^Zxz!Cx4>W- z-R#u=FRDg{^z&f5i6SjV-+^jx)a#U$y@mVqtHs3`yDPyv4n`qoR;RoE1WRj1sSCvh z{}-9GN_-LF2IzUa{+cA3#;93L7IY8LJv8J+Fbmg6R!UZ+{*G4kCmEJX&Ma3sO8-P zt{#F!{Qwj($u<$O-p^ffTQ>a5=b(cZgvvd1V|?Y|!Xig6M`nfqlEQx)1V0r0S;@Mz z#Vz_6d_NyaH6$Fa4U9>$zn~?MWlkokkC*CuXJ=mFe)8Pauu$aYQoti)Sb3E>Z(8hJv_`ix6?u@j!OE>)S?IW1%BR!0P1dt5j~06%UG zYRI|a$!2pA%n~MZOII2dG(|>FN|6I8Xuu^HX)Xq=-xfVqZUdJngXHuWGbqYGN1U9M z86nb|l523$Dw#)u-udq_)XJuS9Ur9oP)HEN-=LD~>62x9Cz;-lcmKJmX8?O`Y(sH7 z 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 PJokeQg@QstN%B7cqjlE6 From 12ca01f984d83eb06a6009b30a869cd6787855a3 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sun, 25 Oct 2020 15:46:29 +0100 Subject: [PATCH 2/7] Aggiunta metodi x nuovo campo tempo prev in tabella --- AppData/DS_App.Designer.cs | 57 ++++++++++++++++++++++++++++++++++++-- AppData/DS_App.xsd | 32 +++++++++++---------- AppData/DS_App.xss | 16 +++++------ 3 files changed, 80 insertions(+), 25 deletions(-) diff --git a/AppData/DS_App.Designer.cs b/AppData/DS_App.Designer.cs index ed3a870..0bf419e 100644 --- a/AppData/DS_App.Designer.cs +++ b/AppData/DS_App.Designer.cs @@ -707,6 +707,8 @@ namespace AppData { private global::System.Data.DataColumn columnQtaRic; + private global::System.Data.DataColumn columnTimeEst; + private global::System.Data.DataColumn columnQtaEv; private global::System.Data.DataColumn columnPrior; @@ -790,6 +792,14 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TimeEstColumn { + get { + return this.columnTimeEst; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public global::System.Data.DataColumn QtaEvColumn { @@ -899,13 +909,14 @@ namespace AppData { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] - public TaskListRow AddTaskListRow(string NumTask, string CodGruppo, string CodArt, int QtaRic, int QtaEv, int Prior, bool Concluso, System.DateTime DataIns, int NumRec, int CurrStatus, decimal MinTotWrk, decimal TCMedio, decimal MinTotFix) { + public TaskListRow AddTaskListRow(string NumTask, string CodGruppo, string CodArt, int QtaRic, double TimeEst, int QtaEv, int Prior, bool Concluso, System.DateTime DataIns, int NumRec, int CurrStatus, decimal MinTotWrk, decimal TCMedio, decimal MinTotFix) { TaskListRow rowTaskListRow = ((TaskListRow)(this.NewRow())); object[] columnValuesArray = new object[] { NumTask, CodGruppo, CodArt, QtaRic, + TimeEst, QtaEv, Prior, Concluso, @@ -948,6 +959,7 @@ namespace AppData { this.columnCodGruppo = base.Columns["CodGruppo"]; this.columnCodArt = base.Columns["CodArt"]; this.columnQtaRic = base.Columns["QtaRic"]; + this.columnTimeEst = base.Columns["TimeEst"]; this.columnQtaEv = base.Columns["QtaEv"]; this.columnPrior = base.Columns["Prior"]; this.columnConcluso = base.Columns["Concluso"]; @@ -970,6 +982,8 @@ namespace AppData { base.Columns.Add(this.columnCodArt); this.columnQtaRic = new global::System.Data.DataColumn("QtaRic", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnQtaRic); + this.columnTimeEst = new global::System.Data.DataColumn("TimeEst", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTimeEst); this.columnQtaEv = new global::System.Data.DataColumn("QtaEv", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnQtaEv); this.columnPrior = new global::System.Data.DataColumn("Prior", typeof(int), null, global::System.Data.MappingType.Element); @@ -998,6 +1012,7 @@ namespace AppData { this.columnCodArt.AllowDBNull = false; this.columnCodArt.MaxLength = 50; this.columnQtaRic.AllowDBNull = false; + this.columnTimeEst.ReadOnly = true; this.columnPrior.AllowDBNull = false; this.columnConcluso.AllowDBNull = false; this.columnDataIns.AllowDBNull = false; @@ -5645,6 +5660,22 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double TimeEst { + get { + try { + return ((double)(this[this.tableTaskList.TimeEstColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'TimeEst\' nella tabella \'TaskList\' è DBNull.", e); + } + } + set { + this[this.tableTaskList.TimeEstColumn] = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public int QtaEv { @@ -5774,6 +5805,18 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsTimeEstNull() { + return this.IsNull(this.tableTaskList.TimeEstColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetTimeEstNull() { + this[this.tableTaskList.TimeEstColumn] = global::System.Convert.DBNull; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public bool IsQtaEvNull() { @@ -8237,6 +8280,7 @@ namespace AppData.DS_AppTableAdapters { tableMapping.ColumnMappings.Add("CodGruppo", "CodGruppo"); tableMapping.ColumnMappings.Add("CodArt", "CodArt"); tableMapping.ColumnMappings.Add("QtaRic", "QtaRic"); + tableMapping.ColumnMappings.Add("TimeEst", "TimeEst"); tableMapping.ColumnMappings.Add("QtaEv", "QtaEv"); tableMapping.ColumnMappings.Add("Prior", "Prior"); tableMapping.ColumnMappings.Add("Concluso", "Concluso"); @@ -8262,7 +8306,7 @@ namespace AppData.DS_AppTableAdapters { this._commandCollection = new global::System.Data.SqlClient.SqlCommand[8]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT * FROM v_TaskList"; + this._commandCollection[0].CommandText = "SELECT *\r\nFROM v_TaskList"; this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[1].Connection = this.Connection; @@ -8304,6 +8348,7 @@ namespace AppData.DS_AppTableAdapters { this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@NumTask", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodArt", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QtaRic", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@TimeEst", global::System.Data.SqlDbType.Float, 8, global::System.Data.ParameterDirection.Input, 53, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[7] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[7].Connection = this.Connection; this._commandCollection[7].CommandText = "dbo.stp_TL_updateClose"; @@ -8459,7 +8504,7 @@ namespace AppData.DS_AppTableAdapters { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int insertQuery(string NumTask, string CodArt, global::System.Nullable QtaRic) { + public virtual int insertQuery(string NumTask, string CodArt, global::System.Nullable QtaRic, global::System.Nullable TimeEst) { global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[6]; if ((NumTask == null)) { command.Parameters[1].Value = global::System.DBNull.Value; @@ -8479,6 +8524,12 @@ namespace AppData.DS_AppTableAdapters { else { command.Parameters[3].Value = global::System.DBNull.Value; } + if ((TimeEst.HasValue == true)) { + command.Parameters[4].Value = ((double)(TimeEst.Value)); + } + else { + command.Parameters[4].Value = global::System.DBNull.Value; + } global::System.Data.ConnectionState previousConnectionState = command.Connection.State; if (((command.Connection.State & global::System.Data.ConnectionState.Open) != global::System.Data.ConnectionState.Open)) { diff --git a/AppData/DS_App.xsd b/AppData/DS_App.xsd index 9cfae08..1122fee 100644 --- a/AppData/DS_App.xsd +++ b/AppData/DS_App.xsd @@ -12,7 +12,8 @@ - SELECT * FROM v_TaskList + SELECT * +FROM v_TaskList @@ -23,6 +24,7 @@ + @@ -100,6 +102,7 @@ + @@ -1134,7 +1137,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1159,6 +1162,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + @@ -1171,7 +1175,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1193,7 +1197,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1220,7 +1224,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1296,7 +1300,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1338,7 +1342,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1400,7 +1404,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1434,7 +1438,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1526,7 +1530,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1575,7 +1579,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1635,7 +1639,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1663,7 +1667,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1698,7 +1702,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + diff --git a/AppData/DS_App.xss b/AppData/DS_App.xss index 0bf15c4..776deb1 100644 --- a/AppData/DS_App.xss +++ b/AppData/DS_App.xss @@ -4,21 +4,21 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + - + - + - - - - - + + + + + \ No newline at end of file From 5ef91375222b9e4c14047da76a01d8a832f73ff2 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sun, 25 Oct 2020 15:46:41 +0100 Subject: [PATCH 3/7] Modifica x caricamento manuale commesse + visualizzazione --- AppData/mUtils.cs | 200 +++++---- C-TRACK/Web.config | 303 +++++++------- C-TRACK/WebUserControls/mod_addTask.ascx | 40 +- C-TRACK/WebUserControls/mod_addTask.ascx.cs | 387 +++++++++++------- .../mod_addTask.ascx.designer.cs | 46 ++- C-TRACK/WebUserControls/mod_taskList.ascx | 165 ++++---- 6 files changed, 638 insertions(+), 503 deletions(-) diff --git a/AppData/mUtils.cs b/AppData/mUtils.cs index 729c0ca..0ea1907 100644 --- a/AppData/mUtils.cs +++ b/AppData/mUtils.cs @@ -4,84 +4,116 @@ namespace AppData { public class mUtils { + #region Public Fields - #region definizione Regexp ///

- /// RegExp x Cod ARTICOLO + /// Array di regole di sostituzione per valori Time /// - public static string reCodArt = memLayer.ML.cdv("regExp_CodArt"); + public static string[] lRepCleanTime = memLayer.ML.CRS("confAddTaskCleanTime").Split('#'); + /// - /// RegExp x Cod OPERATORE + /// OPZIONE: indica che è da eseguire il preprocessing /// - public static string reCodOper = memLayer.ML.cdv("regExp_CodOper"); - /// - /// RegExp x Cod POSTAZIONE - /// - public static string reCodPost = memLayer.ML.cdv("regExp_CodPost"); - /// - /// RegExp x Cod COMMESSA (NumTask) - /// - public static string reNumTask = memLayer.ML.cdv("regExp_NumTask"); - /// - /// RegExp x QTA - /// - public static string reQta = memLayer.ML.cdv("regExp_QtaRic"); - /// - /// RegExp x RESET / CANCEL - /// - public static string reReset = memLayer.ML.cdv("regExp_KO"); - /// - /// RegExp x CONFERMA ADD - /// - public static string reAddNew = memLayer.ML.cdv("regExp_AddNew"); - /// - /// RegExp x CONFERMA DELETE - /// - public static string reDelete = memLayer.ML.cdv("regExp_DEL"); - /// - /// Comando x RESET OPERATORE - /// - public static string reCmdResetOper = memLayer.ML.cdv("regExp_CmdResetOper"); - /// - /// Comando x RESET COMMESSA (NumTask) - /// - public static string reCmdResetNumTask = memLayer.ML.cdv("regExp_CmdResetNumTask"); - /// - /// Comando x PAUSA (es COMMESSA/NumTask) - /// - public static string reCmdPause = memLayer.ML.cdv("regExp_CmdPause"); - /// - /// Comando x CHIUSURA COMMESSA (NumTask) - /// - public static string reCmdClose = memLayer.ML.cdv("regExp_CmdClose"); + public static bool OptBCodePrepDo = memLayer.ML.CRB("OptBCodePrepDo"); /// /// OPZIONE: indica che è abilitato BCode /// public static bool OptUseBCode = memLayer.ML.CRB("OptUseBCode"); - /// - /// OPZIONE: indica che è abilitata selezione TASK/COMMESSA - /// - public static bool OptUseSelTask = memLayer.ML.CRB("OptUseSelTask"); + /// /// OPZIONE: indica che è abilitata selezione TAG /// public static bool OptUseSelTag = memLayer.ML.CRB("OptUseSelTag"); /// - /// OPZIONE: indica che è da eseguire il preprocessing + /// OPZIONE: indica che è abilitata selezione TASK/COMMESSA /// - public static bool OptBCodePrepDo = memLayer.ML.CRB("OptBCodePrepDo"); + public static bool OptUseSelTask = memLayer.ML.CRB("OptUseSelTask"); + + /// + /// RegExp x CONFERMA ADD + /// + public static string reAddNew = memLayer.ML.cdv("regExp_AddNew"); + + /// + /// Comando x CHIUSURA COMMESSA (NumTask) + /// + public static string reCmdClose = memLayer.ML.cdv("regExp_CmdClose"); + + /// + /// Comando x PAUSA (es COMMESSA/NumTask) + /// + public static string reCmdPause = memLayer.ML.cdv("regExp_CmdPause"); + + /// + /// Comando x RESET COMMESSA (NumTask) + /// + public static string reCmdResetNumTask = memLayer.ML.cdv("regExp_CmdResetNumTask"); + + /// + /// Comando x RESET OPERATORE + /// + public static string reCmdResetOper = memLayer.ML.cdv("regExp_CmdResetOper"); + + /// + /// RegExp x Cod ARTICOLO + /// + public static string reCodArt = memLayer.ML.cdv("regExp_CodArt"); + + /// + /// RegExp x Cod OPERATORE + /// + public static string reCodOper = memLayer.ML.cdv("regExp_CodOper"); + + /// + /// RegExp x Cod POSTAZIONE + /// + public static string reCodPost = memLayer.ML.cdv("regExp_CodPost"); + + /// + /// RegExp x CONFERMA DELETE + /// + public static string reDelete = memLayer.ML.cdv("regExp_DEL"); + + /// + /// RegExp x Cod COMMESSA (NumTask) + /// + public static string reNumTask = memLayer.ML.cdv("regExp_NumTask"); + /// /// RegExp x Cod dati raw x preprocessare /// public static string rePreproc = memLayer.ML.cdv("regExp_Preproc"); + /// /// RegExp x Cod dati da TENERE post preprocessing /// public static string rePreprocKeep = memLayer.ML.cdv("regExp_PreprocKeep"); - #endregion + /// + /// RegExp x QTA + /// + public static string reQta = memLayer.ML.cdv("regExp_QtaRic"); + + /// + /// RegExp x RESET / CANCEL + /// + public static string reReset = memLayer.ML.cdv("regExp_KO"); + + /// + /// RegExp x TempoPrevisto + /// + public static string reTempoPrev = memLayer.ML.cdv("regExp_TimePrev"); + + /// + /// Fattore conversione tempo stimato letto da BCode (def 1 = NO conversione, 10=da dividere per 10) + /// + public static int TimeEstFactor = memLayer.ML.cdvi("confAddTaskTimeFactor"); + + #endregion Public Fields + + #region Public Properties /// /// Codice Operatore @@ -96,7 +128,7 @@ namespace AppData if (answ == "") { answ = memLayer.ML.getCookieVal("CTrack_CodOpr"); - // se non vuoto salvo... + // se non vuoto salvo... memLayer.ML.setSessionVal("CodOpr", answ); } return answ; @@ -108,6 +140,7 @@ namespace AppData memLayer.ML.emptySessionVal("NomeOpr"); } } + /// /// Codice postazione di lavoro /// @@ -120,7 +153,7 @@ namespace AppData if (string.IsNullOrEmpty(answ)) { answ = memLayer.ML.getCookieVal("CTrack_CodPost"); - // se non vuoto salvo... + // se non vuoto salvo... memLayer.ML.setSessionVal("CodPost", answ); } return answ; @@ -132,33 +165,6 @@ namespace AppData memLayer.ML.emptySessionVal("DescPost"); } } - /// - /// Restituisce boolean se post corrente sia multi operatore - /// - public static bool postIsMulti - { - get - { - bool answ = false; - if (memLayer.ML.isInSessionObject("postIsMulti")) - { - answ = memLayer.ML.BoolSessionObj("postIsMulti"); - } - else - { - string rawAnsw = memLayer.ML.getCookieVal("CTrack_postIsMulti"); - bool.TryParse(rawAnsw, out answ); - // se non vuoto salvo... - memLayer.ML.setSessionVal("postIsMulti", answ); - } - return answ; - } - set - { - memLayer.ML.setSessionVal("postIsMulti", value); - memLayer.ML.setCookieVal("CTrack_postIsMulti", value.ToString()); - } - } /// /// oggetto valore opzionale letto 8e scorporato da barcode), es TAG in commessa + tag @@ -183,5 +189,35 @@ namespace AppData memLayer.ML.setSessionVal("optValueBC", value, false); } } + + /// + /// Restituisce boolean se post corrente sia multi operatore + /// + public static bool postIsMulti + { + get + { + bool answ = false; + if (memLayer.ML.isInSessionObject("postIsMulti")) + { + answ = memLayer.ML.BoolSessionObj("postIsMulti"); + } + else + { + string rawAnsw = memLayer.ML.getCookieVal("CTrack_postIsMulti"); + bool.TryParse(rawAnsw, out answ); + // se non vuoto salvo... + memLayer.ML.setSessionVal("postIsMulti", answ); + } + return answ; + } + set + { + memLayer.ML.setSessionVal("postIsMulti", value); + memLayer.ML.setCookieVal("CTrack_postIsMulti", value.ToString()); + } + } + + #endregion Public Properties } -} +} \ No newline at end of file diff --git a/C-TRACK/Web.config b/C-TRACK/Web.config index 6005156..879307f 100644 --- a/C-TRACK/Web.config +++ b/C-TRACK/Web.config @@ -4,69 +4,72 @@ https://go.microsoft.com/fwlink/?LinkId=169433 --> - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -279,101 +282,99 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/C-TRACK/WebUserControls/mod_addTask.ascx b/C-TRACK/WebUserControls/mod_addTask.ascx index 9971445..304ae22 100644 --- a/C-TRACK/WebUserControls/mod_addTask.ascx +++ b/C-TRACK/WebUserControls/mod_addTask.ascx @@ -1,20 +1,24 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_addTask.ascx.cs" Inherits="C_TRACK.WebUserControls.mod_addTask" %> -
-
-
- Cod.ARTICOLO -
<%: CodArticolo %>
+
+
+
+ Cod.ARTICOLO +
<%: CodArticolo %>
+
+
+ COMMESSA +
<%: NumTask %>
+
+
+ QUANTITA +
<%: Quantita %>
+
+
+ TEMPO prev +
<%: TimeEst %>
+
+
+ RESET +
-
- COMMESSA -
<%: NumTask %>
-
-
- QUANTITA -
<%: Quantita %>
-
-
- RESET -
-
-
+
\ No newline at end of file diff --git a/C-TRACK/WebUserControls/mod_addTask.ascx.cs b/C-TRACK/WebUserControls/mod_addTask.ascx.cs index 7531c5b..6410b93 100644 --- a/C-TRACK/WebUserControls/mod_addTask.ascx.cs +++ b/C-TRACK/WebUserControls/mod_addTask.ascx.cs @@ -1,182 +1,255 @@ using AppData; using SteamWare; using System; +using System.Linq; using System.Text.RegularExpressions; namespace C_TRACK.WebUserControls { - public partial class mod_addTask : System.Web.UI.UserControl - { - /// - /// evento aggiunta record - /// - public event EventHandler eh_created; - protected void Page_Load(object sender, EventArgs e) + public partial class mod_addTask : System.Web.UI.UserControl { - if (!Page.IsPostBack) - { - CodArticolo = ""; - NumTask = ""; - Quantita = 0; - } - checkValori(); - } + #region Public Events - private void checkValori() - { - // verifica quali valori siano disponibili e di conseguenza visualizza COLORE... - divArticolo.Attributes.Remove("class"); - divCommessa.Attributes.Remove("class"); - divQta.Attributes.Remove("class"); - divArticolo.Attributes.Add("class", CodArticolo != "" ? "col-3 text-center table-success text-success" : "col-3 text-center text-secondary"); - divCommessa.Attributes.Add("class", NumTask != "" ? "col-3 text-center table-success text-success" : "col-3 text-center text-secondary"); - divQta.Attributes.Add("class", Quantita > 0 ? "col-3 text-center table-success text-success" : "col-3 text-center text-secondary"); - } - /// - /// Input da processare... - /// - public string newInput - { - set - { - processInput(value); - } - } - /// - /// Effettua riconoscimento input e determina valori commessa / articolo / qta - /// - /// - private void processInput(string value) - { - // verifico se sia un articolo... - Match testReset = Regex.Match(value, mUtils.reReset); - Match testDelete = Regex.Match(value, mUtils.reDelete); - Match testAddNew = Regex.Match(value, mUtils.reAddNew); - Match testCodArt = Regex.Match(value, mUtils.reCodArt); - Match testNumTask = Regex.Match(value, mUtils.reNumTask); - Match testQta = Regex.Match(value, mUtils.reQta); + /// + /// evento aggiunta record + /// + public event EventHandler eh_created; + #endregion Public Events - if (testReset.Success) - { - CodArticolo = ""; - NumTask = ""; - Quantita = 0; - } - else if (testDelete.Success) - { - // creo... - dataLayer.man.taTL.deleteQuery(NumTask); - // resetto! - CodArticolo = ""; - NumTask = ""; - Quantita = 0; - // invoco update... - if (eh_created != null) + #region Public Properties + + /// + /// Cod ARTICOLO corrente + /// + public string CodArticolo { - eh_created(this, new EventArgs()); + get + { + return memLayer.ML.StringSessionObj("currCodArt"); + } + set + { + memLayer.ML.setSessionVal("currCodArt", value); + } } - } - else if (testAddNew.Success) - { - // se qta > 0 ed ho articolo e commessa... - if (Quantita > 0 && CodArticolo != "" && NumTask != "") + + /// + /// Input da processare... + /// + public string newInput { - // creo... - dataLayer.man.taTL.insertQuery(NumTask, CodArticolo, Quantita); - // resetto! - CodArticolo = ""; - NumTask = ""; - Quantita = 0; - // invoco update... - if (eh_created != null) - { - eh_created(this, new EventArgs()); - } + set + { + processInput(value); + } } - } - else if (testCodArt.Success) - { - CodArticolo = value; - } - else if (testNumTask.Success) - { - NumTask = value; - } - else if (testQta.Success) - { - int qta = 0; - int.TryParse(value, out qta); - Quantita = qta; - } - // non match con RegExp --> ricerca ESPLICITA, se abilitato ricerca estesa - if (memLayer.ML.CRB("OptEnableMapoIn") && !(testCodArt.Success || testNumTask.Success)) - { - var tabArt = dataLayer.man.taAnArt.getByKey(value); - if (tabArt.Rows.Count > 0) + /// + /// Cod COMMESSA corrente + /// + public string NumTask { - CodArticolo = value; + get + { + return memLayer.ML.StringSessionObj("currNumTask"); + } + set + { + memLayer.ML.setSessionVal("currNumTask", value); + } } - else + + /// + /// QTA da produrre + /// + public int Quantita { - var tabTask = dataLayer.man.taTL.getByKey(value); - if (tabTask.Rows.Count > 0) - { - NumTask = value; - } + get + { + return memLayer.ML.IntSessionObj("currQta"); + } + set + { + memLayer.ML.setSessionVal("currQta", value); + } } - } - checkValori(); - } + /// + /// Tempo stimato x produzione + /// + public float TimeEst + { + get + { + float answ = -1; + string rawVal = memLayer.ML.StringSessionObj("currTimeEst"); + float.TryParse(rawVal, out answ); + return answ; + } + set + { + memLayer.ML.setSessionVal("currTimeEst", value); + } + } - /// - /// Cod ARTICOLO corrente - /// - public string CodArticolo - { - get - { - return memLayer.ML.StringSessionObj("currCodArt"); - } - set - { - memLayer.ML.setSessionVal("currCodArt", value); - } - } - /// - /// Cod COMMESSA corrente - /// - public string NumTask - { - get - { - return memLayer.ML.StringSessionObj("currNumTask"); - } - set - { - memLayer.ML.setSessionVal("currNumTask", value); - } - } - /// - /// QTA da produrre - /// - public int Quantita - { - get - { - return memLayer.ML.IntSessionObj("currQta"); - } - set - { - memLayer.ML.setSessionVal("currQta", value); - } - } + #endregion Public Properties - protected void lbtReset_Click(object sender, EventArgs e) - { - processInput(memLayer.ML.CRS("regExp_KO")); + #region Private Methods + + private void checkValori() + { + // verifica quali valori siano disponibili e di conseguenza visualizza COLORE... + divArticolo.Attributes.Remove("class"); + divCommessa.Attributes.Remove("class"); + divQta.Attributes.Remove("class"); + divTime.Attributes.Remove("class"); + divArticolo.Attributes.Add("class", CodArticolo != "" ? "col text-center table-success text-success" : "col text-center text-secondary"); + divCommessa.Attributes.Add("class", NumTask != "" ? "col text-center table-success text-success" : "col text-center text-secondary"); + divQta.Attributes.Add("class", Quantita > 0 ? "col text-center table-success text-success" : "col text-center text-secondary"); + divTime.Attributes.Add("class", TimeEst > 0 ? "col text-center table-success text-success" : "col text-center text-secondary"); + } + + /// + /// Effettua riconoscimento input e determina valori commessa / articolo / qta + /// + /// + private void processInput(string value) + { + // verifico se sia un articolo... + Match testReset = Regex.Match(value, mUtils.reReset); + Match testDelete = Regex.Match(value, mUtils.reDelete); + Match testAddNew = Regex.Match(value, mUtils.reAddNew); + Match testCodArt = Regex.Match(value, mUtils.reCodArt); + Match testNumTask = Regex.Match(value, mUtils.reNumTask); + Match testQta = Regex.Match(value, mUtils.reQta); + Match testTempo = Regex.Match(value, mUtils.reTempoPrev); + + if (testReset.Success) + { + CodArticolo = ""; + NumTask = ""; + Quantita = 0; + TimeEst = 0; + } + else if (testDelete.Success) + { + // creo... + dataLayer.man.taTL.deleteQuery(NumTask); + // resetto! + CodArticolo = ""; + NumTask = ""; + Quantita = 0; + // invoco update... + if (eh_created != null) + { + eh_created(this, new EventArgs()); + } + } + else if (testAddNew.Success) + { + // controllo condizione richiesta tempo x setup Task + bool confAddTaskReqTime = memLayer.ML.CRB("confAddTaskReqTime"); + // se NON richiesto --> Time=0 + if (!confAddTaskReqTime) + { + TimeEst = 0; + } + + // se qta > 0 ed ho articolo e commessa... + if (Quantita > 0 && !string.IsNullOrEmpty(CodArticolo) && !string.IsNullOrEmpty(NumTask) && (!confAddTaskReqTime || TimeEst > 0)) + { + // creo... + dataLayer.man.taTL.insertQuery(NumTask, CodArticolo, Quantita, TimeEst); + // resetto! + CodArticolo = ""; + NumTask = ""; + Quantita = 0; + // invoco update... + if (eh_created != null) + { + eh_created(this, new EventArgs()); + } + } + } + else if (testTempo.Success) + { + string newVal = value; + // effettuo pulizia variabile da conf... + foreach (var item in mUtils.lRepCleanTime) + { + string[] repVal = item.Split('|'); + if (repVal.Length > 1) + { + newVal = newVal.Replace(repVal[0], repVal[1]); + } + } + float tPrev = 0; + float.TryParse(newVal, out tPrev); + // se configurata conversione procedo + if (mUtils.TimeEstFactor != 1) + { + tPrev = tPrev / mUtils.TimeEstFactor; + } + // assegno! + TimeEst = tPrev; + } + else if (testCodArt.Success) + { + CodArticolo = value; + } + else if (testNumTask.Success) + { + NumTask = value; + } + else if (testQta.Success) + { + int qta = 0; + int.TryParse(value, out qta); + Quantita = qta; + } + + // non match con RegExp --> ricerca ESPLICITA, se abilitato ricerca estesa + if (memLayer.ML.CRB("OptEnableMapoIn") && !(testCodArt.Success || testNumTask.Success)) + { + var tabArt = dataLayer.man.taAnArt.getByKey(value); + if (tabArt.Rows.Count > 0) + { + CodArticolo = value; + } + else + { + var tabTask = dataLayer.man.taTL.getByKey(value); + if (tabTask.Rows.Count > 0) + { + NumTask = value; + } + } + } + + checkValori(); + } + + #endregion Private Methods + + #region Protected Methods + + protected void lbtReset_Click(object sender, EventArgs e) + { + processInput(memLayer.ML.CRS("regExp_KO")); + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + CodArticolo = ""; + NumTask = ""; + Quantita = 0; + } + checkValori(); + } + + #endregion Protected Methods } - } } \ No newline at end of file diff --git a/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs b/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs index 57452d8..7254386 100644 --- a/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs +++ b/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace C_TRACK.WebUserControls { - - - public partial class mod_addTask { - +namespace C_TRACK.WebUserControls +{ + + + public partial class mod_addTask + { + /// /// Controllo divAddNew. /// @@ -20,7 +22,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAddNew; - + /// /// Controllo divArticolo. /// @@ -29,7 +31,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.HtmlControls.HtmlGenericControl divArticolo; - + /// /// Controllo lblCodArt. /// @@ -38,7 +40,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.WebControls.Label lblCodArt; - + /// /// Controllo divCommessa. /// @@ -47,7 +49,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.HtmlControls.HtmlGenericControl divCommessa; - + /// /// Controllo lblNumTask. /// @@ -56,7 +58,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.WebControls.Label lblNumTask; - + /// /// Controllo divQta. /// @@ -65,7 +67,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.HtmlControls.HtmlGenericControl divQta; - + /// /// Controllo lblQta. /// @@ -74,7 +76,25 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.WebControls.Label lblQta; - + + /// + /// Controllo divTime. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divTime; + + /// + /// Controllo Label1. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Label Label1; + /// /// Controllo divReset. /// @@ -83,7 +103,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.HtmlControls.HtmlGenericControl divReset; - + /// /// Controllo lbtReset. /// diff --git a/C-TRACK/WebUserControls/mod_taskList.ascx b/C-TRACK/WebUserControls/mod_taskList.ascx index 350a5c1..bcfaa72 100644 --- a/C-TRACK/WebUserControls/mod_taskList.ascx +++ b/C-TRACK/WebUserControls/mod_taskList.ascx @@ -3,90 +3,91 @@ <%@ Register Src="~/WebUserControls/mod_fasiAttive.ascx" TagPrefix="uc1" TagName="mod_fasiAttive" %>
-
- [1] Caricate -
-
- [2] In Corso -
-
- [3] Concluse -
-
- [0] Tutte Comm -
-
- [4] Fasi Attive -
+
+ [1] Caricate +
+
+ [2] In Corso +
+
+ [3] Concluse +
+
+ [0] Tutte Comm +
+
+ [4] Fasi Attive +
-
- - - NB: tempi espressi in minuti.centesimi - - - - - - - Nessun Risultato - - - - - - - - - +
+ + + NB: tempi espressi in minuti.centesimi + + + + + + + Nessun Risultato + + + + + + + + + - - - - - - - - - - - - - -
- -
- -
-
+ +
+ + + + + + + + + + + + +
+ +
+ +
+
- -
- - -
-
- - -
-
-
+ +
+ + +
+
+ + +
+
+
- -
-
-
- - - - - - - - - - - -
-
+ + + + + + + + + + + + + + + +
+
\ No newline at end of file From 9e0326ffc2f8b37bca0d12642bfe0d6b6c404f1a Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sun, 25 Oct 2020 15:47:52 +0100 Subject: [PATCH 4/7] New rel --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7906949..f25ba4a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,7 +13,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=223']) { + withEnv(['NEXT_BUILD_NUMBER=224']) { // env.versionNumber = VersionNumber(versionNumberString : '1.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2018-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '1.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2018-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'C.TRACK' From 581aa797634b6f65adc743d459fb0f2fdf0d8d09 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sun, 25 Oct 2020 17:15:45 +0100 Subject: [PATCH 5/7] Aggiunta metodi e pagina x export aggregato o meno --- AppData/DS_App.Designer.cs | 883 ++++++++++++++++++ AppData/DS_App.xsd | 60 ++ AppData/DS_App.xss | 29 +- AppData/dataLayer.cs | 251 ++--- C-TRACK/BaseUserControl.cs | 90 ++ C-TRACK/C-TRACK.csproj | 3 + C-TRACK/WebUserControls/mod_addTask.ascx | 5 + .../mod_addTask.ascx.designer.cs | 18 + C-TRACK/WebUserControls/mod_periodo.ascx | 22 +- C-TRACK/WebUserControls/mod_periodo.ascx.cs | 98 +- .../mod_periodo.ascx.designer.cs | 23 +- C-TRACK/doExport.aspx.cs | 186 ++-- C-TRACK/export.aspx | 29 +- C-TRACK/export.aspx.cs | 27 +- C-TRACK/export.aspx.designer.cs | 32 +- 15 files changed, 1465 insertions(+), 291 deletions(-) create mode 100644 C-TRACK/BaseUserControl.cs diff --git a/AppData/DS_App.Designer.cs b/AppData/DS_App.Designer.cs index 0bf419e..328a66f 100644 --- a/AppData/DS_App.Designer.cs +++ b/AppData/DS_App.Designer.cs @@ -50,6 +50,8 @@ namespace AppData { private AnagTagDataTable tableAnagTag; + private TaskRecAggDataTable tableTaskRecAgg; + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -117,6 +119,9 @@ namespace AppData { if ((ds.Tables["AnagTag"] != null)) { base.Tables.Add(new AnagTagDataTable(ds.Tables["AnagTag"])); } + if ((ds.Tables["TaskRecAgg"] != null)) { + base.Tables.Add(new TaskRecAggDataTable(ds.Tables["TaskRecAgg"])); + } this.DataSetName = ds.DataSetName; this.Prefix = ds.Prefix; this.Namespace = ds.Namespace; @@ -265,6 +270,16 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public TaskRecAggDataTable TaskRecAgg { + get { + return this.tableTaskRecAgg; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] [global::System.ComponentModel.BrowsableAttribute(true)] @@ -371,6 +386,9 @@ namespace AppData { if ((ds.Tables["AnagTag"] != null)) { base.Tables.Add(new AnagTagDataTable(ds.Tables["AnagTag"])); } + if ((ds.Tables["TaskRecAgg"] != null)) { + base.Tables.Add(new TaskRecAggDataTable(ds.Tables["TaskRecAgg"])); + } this.DataSetName = ds.DataSetName; this.Prefix = ds.Prefix; this.Namespace = ds.Namespace; @@ -482,6 +500,12 @@ namespace AppData { this.tableAnagTag.InitVars(); } } + this.tableTaskRecAgg = ((TaskRecAggDataTable)(base.Tables["TaskRecAgg"])); + if ((initTable == true)) { + if ((this.tableTaskRecAgg != null)) { + this.tableTaskRecAgg.InitVars(); + } + } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -518,6 +542,8 @@ namespace AppData { base.Tables.Add(this.tableOpr2Post); this.tableAnagTag = new AnagTagDataTable(); base.Tables.Add(this.tableAnagTag); + this.tableTaskRecAgg = new TaskRecAggDataTable(); + base.Tables.Add(this.tableTaskRecAgg); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -598,6 +624,12 @@ namespace AppData { return false; } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeTaskRecAgg() { + return false; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { @@ -692,6 +724,9 @@ namespace AppData { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public delegate void AnagTagRowChangeEventHandler(object sender, AnagTagRowChangeEvent e); + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void TaskRecAggRowChangeEventHandler(object sender, TaskRecAggRowChangeEvent e); + /// ///Represents the strongly named DataTable class. /// @@ -5602,6 +5637,386 @@ namespace AppData { } } + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class TaskRecAggDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnNumTask; + + private global::System.Data.DataColumn columnCodArt; + + private global::System.Data.DataColumn columnQtaRic; + + private global::System.Data.DataColumn columnIdxRec; + + private global::System.Data.DataColumn columnDtStart; + + private global::System.Data.DataColumn columnDtEnd; + + private global::System.Data.DataColumn columnQtaEv; + + private global::System.Data.DataColumn columnDurataMin; + + private global::System.Data.DataColumn columnTCiclo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggDataTable() { + this.TableName = "TaskRecAgg"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal TaskRecAggDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected TaskRecAggDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn NumTaskColumn { + get { + return this.columnNumTask; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn CodArtColumn { + get { + return this.columnCodArt; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QtaRicColumn { + get { + return this.columnQtaRic; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn IdxRecColumn { + get { + return this.columnIdxRec; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn DtStartColumn { + get { + return this.columnDtStart; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn DtEndColumn { + get { + return this.columnDtEnd; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QtaEvColumn { + get { + return this.columnQtaEv; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn DurataMinColumn { + get { + return this.columnDurataMin; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TCicloColumn { + get { + return this.columnTCiclo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggRow this[int index] { + get { + return ((TaskRecAggRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event TaskRecAggRowChangeEventHandler TaskRecAggRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event TaskRecAggRowChangeEventHandler TaskRecAggRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event TaskRecAggRowChangeEventHandler TaskRecAggRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event TaskRecAggRowChangeEventHandler TaskRecAggRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddTaskRecAggRow(TaskRecAggRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggRow AddTaskRecAggRow(string NumTask, string CodArt, int QtaRic, int IdxRec, System.DateTime DtStart, System.DateTime DtEnd, int QtaEv, decimal DurataMin, decimal TCiclo) { + TaskRecAggRow rowTaskRecAggRow = ((TaskRecAggRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + NumTask, + CodArt, + QtaRic, + IdxRec, + DtStart, + DtEnd, + QtaEv, + DurataMin, + TCiclo}; + rowTaskRecAggRow.ItemArray = columnValuesArray; + this.Rows.Add(rowTaskRecAggRow); + return rowTaskRecAggRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggRow FindByNumTask(string NumTask) { + return ((TaskRecAggRow)(this.Rows.Find(new object[] { + NumTask}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + TaskRecAggDataTable cln = ((TaskRecAggDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new TaskRecAggDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnNumTask = base.Columns["NumTask"]; + this.columnCodArt = base.Columns["CodArt"]; + this.columnQtaRic = base.Columns["QtaRic"]; + this.columnIdxRec = base.Columns["IdxRec"]; + this.columnDtStart = base.Columns["DtStart"]; + this.columnDtEnd = base.Columns["DtEnd"]; + this.columnQtaEv = base.Columns["QtaEv"]; + this.columnDurataMin = base.Columns["DurataMin"]; + this.columnTCiclo = base.Columns["TCiclo"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnNumTask = new global::System.Data.DataColumn("NumTask", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNumTask); + this.columnCodArt = new global::System.Data.DataColumn("CodArt", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCodArt); + this.columnQtaRic = new global::System.Data.DataColumn("QtaRic", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQtaRic); + this.columnIdxRec = new global::System.Data.DataColumn("IdxRec", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIdxRec); + this.columnDtStart = new global::System.Data.DataColumn("DtStart", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDtStart); + this.columnDtEnd = new global::System.Data.DataColumn("DtEnd", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDtEnd); + this.columnQtaEv = new global::System.Data.DataColumn("QtaEv", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQtaEv); + this.columnDurataMin = new global::System.Data.DataColumn("DurataMin", typeof(decimal), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDurataMin); + this.columnTCiclo = new global::System.Data.DataColumn("TCiclo", typeof(decimal), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTCiclo); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnNumTask}, true)); + this.columnNumTask.AllowDBNull = false; + this.columnNumTask.Unique = true; + this.columnNumTask.MaxLength = 50; + this.columnCodArt.ReadOnly = true; + this.columnCodArt.MaxLength = 50; + this.columnQtaRic.ReadOnly = true; + this.columnIdxRec.ReadOnly = true; + this.columnDtStart.ReadOnly = true; + this.columnDtEnd.ReadOnly = true; + this.columnQtaEv.ReadOnly = true; + this.columnDurataMin.ReadOnly = true; + this.columnTCiclo.ReadOnly = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggRow NewTaskRecAggRow() { + return ((TaskRecAggRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new TaskRecAggRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(TaskRecAggRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.TaskRecAggRowChanged != null)) { + this.TaskRecAggRowChanged(this, new TaskRecAggRowChangeEvent(((TaskRecAggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.TaskRecAggRowChanging != null)) { + this.TaskRecAggRowChanging(this, new TaskRecAggRowChangeEvent(((TaskRecAggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.TaskRecAggRowDeleted != null)) { + this.TaskRecAggRowDeleted(this, new TaskRecAggRowChangeEvent(((TaskRecAggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.TaskRecAggRowDeleting != null)) { + this.TaskRecAggRowDeleting(this, new TaskRecAggRowChangeEvent(((TaskRecAggRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveTaskRecAggRow(TaskRecAggRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DS_App ds = new DS_App(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "TaskRecAggDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + /// ///Represents strongly named DataRow class. /// @@ -7709,6 +8124,256 @@ namespace AppData { } } + /// + ///Represents strongly named DataRow class. + /// + public partial class TaskRecAggRow : global::System.Data.DataRow { + + private TaskRecAggDataTable tableTaskRecAgg; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal TaskRecAggRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTaskRecAgg = ((TaskRecAggDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string NumTask { + get { + return ((string)(this[this.tableTaskRecAgg.NumTaskColumn])); + } + set { + this[this.tableTaskRecAgg.NumTaskColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string CodArt { + get { + try { + return ((string)(this[this.tableTaskRecAgg.CodArtColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'CodArt\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.CodArtColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int QtaRic { + get { + try { + return ((int)(this[this.tableTaskRecAgg.QtaRicColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'QtaRic\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.QtaRicColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int IdxRec { + get { + try { + return ((int)(this[this.tableTaskRecAgg.IdxRecColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'IdxRec\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.IdxRecColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime DtStart { + get { + try { + return ((global::System.DateTime)(this[this.tableTaskRecAgg.DtStartColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'DtStart\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.DtStartColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime DtEnd { + get { + try { + return ((global::System.DateTime)(this[this.tableTaskRecAgg.DtEndColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'DtEnd\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.DtEndColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int QtaEv { + get { + try { + return ((int)(this[this.tableTaskRecAgg.QtaEvColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'QtaEv\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.QtaEvColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public decimal DurataMin { + get { + try { + return ((decimal)(this[this.tableTaskRecAgg.DurataMinColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'DurataMin\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.DurataMinColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public decimal TCiclo { + get { + try { + return ((decimal)(this[this.tableTaskRecAgg.TCicloColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'TCiclo\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.TCicloColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsCodArtNull() { + return this.IsNull(this.tableTaskRecAgg.CodArtColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetCodArtNull() { + this[this.tableTaskRecAgg.CodArtColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQtaRicNull() { + return this.IsNull(this.tableTaskRecAgg.QtaRicColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQtaRicNull() { + this[this.tableTaskRecAgg.QtaRicColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsIdxRecNull() { + return this.IsNull(this.tableTaskRecAgg.IdxRecColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetIdxRecNull() { + this[this.tableTaskRecAgg.IdxRecColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsDtStartNull() { + return this.IsNull(this.tableTaskRecAgg.DtStartColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetDtStartNull() { + this[this.tableTaskRecAgg.DtStartColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsDtEndNull() { + return this.IsNull(this.tableTaskRecAgg.DtEndColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetDtEndNull() { + this[this.tableTaskRecAgg.DtEndColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQtaEvNull() { + return this.IsNull(this.tableTaskRecAgg.QtaEvColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQtaEvNull() { + this[this.tableTaskRecAgg.QtaEvColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsDurataMinNull() { + return this.IsNull(this.tableTaskRecAgg.DurataMinColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetDurataMinNull() { + this[this.tableTaskRecAgg.DurataMinColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsTCicloNull() { + return this.IsNull(this.tableTaskRecAgg.TCicloColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetTCicloNull() { + this[this.tableTaskRecAgg.TCicloColumn] = global::System.Convert.DBNull; + } + } + /// ///Row event argument class /// @@ -8150,6 +8815,40 @@ namespace AppData { } } } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class TaskRecAggRowChangeEvent : global::System.EventArgs { + + private TaskRecAggRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggRowChangeEvent(TaskRecAggRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } } } namespace AppData.DS_AppTableAdapters { @@ -13550,6 +14249,190 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag)"; } } + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class TaskRecAggTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public TaskRecAggTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "TaskRecAgg"; + tableMapping.ColumnMappings.Add("NumTask", "NumTask"); + tableMapping.ColumnMappings.Add("CodArt", "CodArt"); + tableMapping.ColumnMappings.Add("QtaRic", "QtaRic"); + tableMapping.ColumnMappings.Add("IdxRec", "IdxRec"); + tableMapping.ColumnMappings.Add("DtStart", "DtStart"); + tableMapping.ColumnMappings.Add("DtEnd", "DtEnd"); + tableMapping.ColumnMappings.Add("QtaEv", "QtaEv"); + tableMapping.ColumnMappings.Add("DurataMin", "DurataMin"); + tableMapping.ColumnMappings.Add("TCiclo", "TCiclo"); + this._adapter.TableMappings.Add(tableMapping); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::AppData.Properties.Settings.Default.C_TRACKConnectionString; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "dbo.stp_TRA_GetByFilt"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodArt", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@DtFrom", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@DtTo", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 23, 3, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DS_App.TaskRecAggDataTable getByFilt(string CodArt, global::System.Nullable DtFrom, global::System.Nullable DtTo) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((CodArt == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(CodArt)); + } + if ((DtFrom.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[2].Value = ((System.DateTime)(DtFrom.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = global::System.DBNull.Value; + } + if ((DtTo.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[3].Value = ((System.DateTime)(DtTo.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = global::System.DBNull.Value; + } + DS_App.TaskRecAggDataTable dataTable = new DS_App.TaskRecAggDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + } + /// ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios /// diff --git a/AppData/DS_App.xsd b/AppData/DS_App.xsd index 1122fee..c94a374 100644 --- a/AppData/DS_App.xsd +++ b/AppData/DS_App.xsd @@ -1129,6 +1129,35 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + + + + + + dbo.stp_TRA_GetByFilt + + + + + + + + + + + + + + + + + + + + + + + @@ -1729,6 +1758,33 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1778,5 +1834,9 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + + + + \ No newline at end of file diff --git a/AppData/DS_App.xss b/AppData/DS_App.xss index 776deb1..4ac2bc4 100644 --- a/AppData/DS_App.xss +++ b/AppData/DS_App.xss @@ -4,21 +4,22 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + - - - - - - - - - - - - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AppData/dataLayer.cs b/AppData/dataLayer.cs index 6168c2c..e451558 100644 --- a/AppData/dataLayer.cs +++ b/AppData/dataLayer.cs @@ -2,115 +2,146 @@ namespace AppData { - public class dataLayer - { - /// - /// avvio classe - /// - protected dataLayer() + public class dataLayer { - avvioTA(); - setupConnectionStringBase(); + #region Public Fields + + /// + /// singleton classe + /// + public static dataLayer man = new dataLayer(); + + /// + /// Elenco POSTAZIONI + /// + public DS_AppTableAdapters.AnagFasiTableAdapter taAF; + + /// + /// Elenco TASK + /// + public DS_UtilityTableAdapters.AnagKeyValueTableAdapter taAKV; + + /// + /// Elenco ARTICOLI + /// + public DS_AppTableAdapters.AnagArticoliTableAdapter taAnArt; + + /// + /// Elenco OPERATORI + /// + public DS_AppTableAdapters.AnagOprTableAdapter taAO; + + /// + /// Elenco POSTAZIONI + /// + public DS_AppTableAdapters.AnagPostTableAdapter taAP; + + /// + /// Elenco TAG + /// + public DS_AppTableAdapters.AnagTagTableAdapter taAT; + + /// + /// Elenco PROMESSE ODL + /// + public DS_AppTableAdapters.Opr2PostTableAdapter taO2P; + + /// + /// Elenco PROMESSE ODL + /// + public DS_AppTableAdapters.PODLTableAdapter taPODL; + + /// + /// Elenco TASK + /// + public DS_AppTableAdapters.TraEv2StatiTableAdapter taTE2S; + + /// + /// Elenco TASK + /// + public DS_AppTableAdapters.TaskListTableAdapter taTL; + + /// + /// Elenco TASK + /// + public DS_AppTableAdapters.TaskList2PostTableAdapter taTL2Post; + + /// + /// Elenco TASK + /// + public DS_AppTableAdapters.TaskRecTableAdapter taTR; + + /// + /// Elenco TASK Aggregati + /// + public DS_AppTableAdapters.TaskRecAggTableAdapter taTRA; + + #endregion Public Fields + + #region Protected Constructors + + /// + /// avvio classe + /// + protected dataLayer() + { + avvioTA(); + setupConnectionStringBase(); + } + + #endregion Protected Constructors + + #region Private Methods + + /// + /// avvia table adapters + /// + private void avvioTA() + { + // avvio i table adapters... + taAnArt = new DS_AppTableAdapters.AnagArticoliTableAdapter(); + taAF = new DS_AppTableAdapters.AnagFasiTableAdapter(); + taAO = new DS_AppTableAdapters.AnagOprTableAdapter(); + taAP = new DS_AppTableAdapters.AnagPostTableAdapter(); + taAT = new DS_AppTableAdapters.AnagTagTableAdapter(); + taO2P = new DS_AppTableAdapters.Opr2PostTableAdapter(); + taPODL = new DS_AppTableAdapters.PODLTableAdapter(); + taTL = new DS_AppTableAdapters.TaskListTableAdapter(); + taTL2Post = new DS_AppTableAdapters.TaskList2PostTableAdapter(); + taTR = new DS_AppTableAdapters.TaskRecTableAdapter(); + taTRA = new DS_AppTableAdapters.TaskRecAggTableAdapter(); + taTE2S = new DS_AppTableAdapters.TraEv2StatiTableAdapter(); + + taAKV = new DS_UtilityTableAdapters.AnagKeyValueTableAdapter(); + } + + #endregion Private Methods + + #region Protected Methods + + /// + /// effettua setup dei connection strings da web.config delal singola applicazione + /// + protected virtual void setupConnectionStringBase() + { + string connString = memLayer.ML.confReadString("CTrackConnectionString"); + // connections strings del db + taAnArt.Connection.ConnectionString = connString; + taAF.Connection.ConnectionString = connString; + taAO.Connection.ConnectionString = connString; + taAP.Connection.ConnectionString = connString; + taAT.Connection.ConnectionString = connString; + taO2P.Connection.ConnectionString = connString; + taPODL.Connection.ConnectionString = connString; + taTL.Connection.ConnectionString = connString; + taTL2Post.Connection.ConnectionString = connString; + taTR.Connection.ConnectionString = connString; + taTRA.Connection.ConnectionString = connString; + taTE2S.Connection.ConnectionString = connString; + + taAKV.Connection.ConnectionString = connString; + } + + #endregion Protected Methods } - /// - /// avvia table adapters - /// - private void avvioTA() - { - // avvio i table adapters... - taAnArt = new DS_AppTableAdapters.AnagArticoliTableAdapter(); - taAF = new DS_AppTableAdapters.AnagFasiTableAdapter(); - taAO = new DS_AppTableAdapters.AnagOprTableAdapter(); - taAP = new DS_AppTableAdapters.AnagPostTableAdapter(); - taAT = new DS_AppTableAdapters.AnagTagTableAdapter(); - taO2P = new DS_AppTableAdapters.Opr2PostTableAdapter(); - taPODL = new DS_AppTableAdapters.PODLTableAdapter(); - taTL = new DS_AppTableAdapters.TaskListTableAdapter(); - taTL2Post = new DS_AppTableAdapters.TaskList2PostTableAdapter(); - taTR = new DS_AppTableAdapters.TaskRecTableAdapter(); - taTE2S = new DS_AppTableAdapters.TraEv2StatiTableAdapter(); - - taAKV = new DS_UtilityTableAdapters.AnagKeyValueTableAdapter(); - } - /// - /// effettua setup dei connection strings da web.config delal singola applicazione - /// - protected virtual void setupConnectionStringBase() - { - string connString = memLayer.ML.confReadString("CTrackConnectionString"); - // connections strings del db - taAnArt.Connection.ConnectionString = connString; - taAF.Connection.ConnectionString = connString; - taAO.Connection.ConnectionString = connString; - taAP.Connection.ConnectionString = connString; - taAT.Connection.ConnectionString = connString; - taO2P.Connection.ConnectionString = connString; - taPODL.Connection.ConnectionString = connString; - taTL.Connection.ConnectionString = connString; - taTL2Post.Connection.ConnectionString = connString; - taTR.Connection.ConnectionString = connString; - taTE2S.Connection.ConnectionString = connString; - - taAKV.Connection.ConnectionString = connString; - } - - /// - /// Elenco ARTICOLI - /// - public DS_AppTableAdapters.AnagArticoliTableAdapter taAnArt; - - /// - /// Elenco POSTAZIONI - /// - public DS_AppTableAdapters.AnagFasiTableAdapter taAF; - /// - /// Elenco OPERATORI - /// - public DS_AppTableAdapters.AnagOprTableAdapter taAO; - /// - /// Elenco POSTAZIONI - /// - public DS_AppTableAdapters.AnagPostTableAdapter taAP; - /// - /// Elenco TAG - /// - public DS_AppTableAdapters.AnagTagTableAdapter taAT; - /// - /// Elenco PROMESSE ODL - /// - public DS_AppTableAdapters.Opr2PostTableAdapter taO2P; - /// - /// Elenco PROMESSE ODL - /// - public DS_AppTableAdapters.PODLTableAdapter taPODL; - /// - /// Elenco TASK - /// - public DS_AppTableAdapters.TaskListTableAdapter taTL; - /// - /// Elenco TASK - /// - public DS_AppTableAdapters.TaskList2PostTableAdapter taTL2Post; - /// - /// Elenco TASK - /// - public DS_AppTableAdapters.TaskRecTableAdapter taTR; - /// - /// Elenco TASK - /// - public DS_AppTableAdapters.TraEv2StatiTableAdapter taTE2S; - - - /// - /// Elenco TASK - /// - public DS_UtilityTableAdapters.AnagKeyValueTableAdapter taAKV; - - /// - /// singleton classe - /// - public static dataLayer man = new dataLayer(); - - - } -} +} \ No newline at end of file diff --git a/C-TRACK/BaseUserControl.cs b/C-TRACK/BaseUserControl.cs new file mode 100644 index 0000000..d920eab --- /dev/null +++ b/C-TRACK/BaseUserControl.cs @@ -0,0 +1,90 @@ +using Newtonsoft.Json; +using SteamWare; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace C_TRACK +{ + public class BaseUserControl : System.Web.UI.UserControl + { + #region Public Events + + /// + /// Generico evento di richiesta refresh a aprent + /// + public event EventHandler eh_doRefresh; + + /// + /// Generico evento di richiesta refresh a aprent + /// + public event EventHandler eh_doReset; + + #endregion Public Events + + #region Protected Properties + + /// + /// Codice operatore salvato in cookie + /// + protected string cookieCodOpr + { + get + { + return memLayer.ML.getCookieVal("CTrack_CodOpr"); + } + } + + /// + /// Codice post salvato in cookie + /// + protected string cookieCodPost + { + get + { + return memLayer.ML.getCookieVal("CTrack_CodPost"); + } + } + + #endregion Protected Properties + + #region Public Methods + + /// + /// Chiamata evento + /// + public void raiseEvent() + { + // se qualcuno ascolta sollevo evento nuovo valore... + if (eh_doRefresh != null) + { + eh_doRefresh(this, new EventArgs()); + } + } + + /// + /// Chiamata evento + /// + public void raiseReset() + { + // se qualcuno ascolta sollevo evento nuovo valore... + if (eh_doReset != null) + { + eh_doReset(this, new EventArgs()); + } + } + + /// + /// Wrapper traduzione termini + /// + /// + /// + public string traduci(string lemma) + { + return SteamWare.user_std.UtSn.Traduci(lemma); + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/C-TRACK/C-TRACK.csproj b/C-TRACK/C-TRACK.csproj index 90a3ed9..37f5bca 100644 --- a/C-TRACK/C-TRACK.csproj +++ b/C-TRACK/C-TRACK.csproj @@ -551,6 +551,9 @@ barcode.aspx + + ASPXCodeBehind + closeAllRec.aspx ASPXCodeBehind diff --git a/C-TRACK/WebUserControls/mod_addTask.ascx b/C-TRACK/WebUserControls/mod_addTask.ascx index 304ae22..d7f8e62 100644 --- a/C-TRACK/WebUserControls/mod_addTask.ascx +++ b/C-TRACK/WebUserControls/mod_addTask.ascx @@ -1,6 +1,11 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_addTask.ascx.cs" Inherits="C_TRACK.WebUserControls.mod_addTask" %> +<%@ Register Src="~/WebUserControls/mod_periodo.ascx" TagPrefix="uc1" TagName="mod_periodo" %> +
+
+ Data Export +
Cod.ARTICOLO
<%: CodArticolo %>
diff --git a/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs b/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs index 7254386..6a378e6 100644 --- a/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs +++ b/C-TRACK/WebUserControls/mod_addTask.ascx.designer.cs @@ -23,6 +23,24 @@ namespace C_TRACK.WebUserControls /// protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAddNew; + /// + /// Controllo divExport. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divExport; + + /// + /// Controllo hlExport. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.HyperLink hlExport; + /// /// Controllo divArticolo. /// diff --git a/C-TRACK/WebUserControls/mod_periodo.ascx b/C-TRACK/WebUserControls/mod_periodo.ascx index 7782f88..c0bff5c 100644 --- a/C-TRACK/WebUserControls/mod_periodo.ascx +++ b/C-TRACK/WebUserControls/mod_periodo.ascx @@ -1,18 +1,10 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_periodo.ascx.cs" Inherits="C_TRACK.WebUserControls.mod_periodo" %>
-
- -
-
-
- -
-
-
-
-
- EXPORT -
-
-
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/C-TRACK/WebUserControls/mod_periodo.ascx.cs b/C-TRACK/WebUserControls/mod_periodo.ascx.cs index b428c51..77980de 100644 --- a/C-TRACK/WebUserControls/mod_periodo.ascx.cs +++ b/C-TRACK/WebUserControls/mod_periodo.ascx.cs @@ -3,59 +3,61 @@ using System.Web.UI; namespace C_TRACK.WebUserControls { - public partial class mod_periodo : System.Web.UI.UserControl - { - protected void Page_Load(object sender, EventArgs e) + public partial class mod_periodo : BaseUserControl { - if (!Page.IsPostBack) - { - dataFrom = DateTime.Today.AddMonths(-1); - dataTo = DateTime.Today.AddDays(1); - updateUrl(); - } - } + #region Public Properties - protected DateTime dataFrom - { - get - { - DateTime answ = DateTime.Today; - DateTime.TryParse(txtFrom.Text.Trim(), out answ); - return answ; - } - set - { - txtFrom.Text = value.ToString("yyyy-MM-dd"); - } - } + public DateTime dataFrom + { + get + { + DateTime answ = DateTime.Today; + DateTime.TryParse(txtFrom.Text.Trim(), out answ); + return answ; + } + set + { + txtFrom.Text = value.ToString("yyyy-MM-dd"); + } + } - protected DateTime dataTo - { - get - { - DateTime answ = DateTime.Today; - DateTime.TryParse(txtTo.Text.Trim(), out answ); - return answ; - } - set - { - txtTo.Text = value.ToString("yyyy-MM-dd"); - } - } + public DateTime dataTo + { + get + { + DateTime answ = DateTime.Today; + DateTime.TryParse(txtTo.Text.Trim(), out answ); + return answ; + } + set + { + txtTo.Text = value.ToString("yyyy-MM-dd"); + } + } - protected void txtFrom_TextChanged(object sender, EventArgs e) - { - updateUrl(); - } + #endregion Public Properties - protected void txtTo_TextChanged(object sender, EventArgs e) - { - updateUrl(); - } + #region Protected Methods - private void updateUrl() - { - hlExport.NavigateUrl = string.Format("~/doExport?from={0:yyyy-MM-dd}&to={1:yyyy-MM-dd}", dataFrom, dataTo); + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + dataFrom = DateTime.Today.AddMonths(-1); + dataTo = DateTime.Today.AddDays(1); + } + } + + protected void txtFrom_TextChanged(object sender, EventArgs e) + { + raiseEvent(); + } + + protected void txtTo_TextChanged(object sender, EventArgs e) + { + raiseEvent(); + } + + #endregion Protected Methods } - } } \ No newline at end of file diff --git a/C-TRACK/WebUserControls/mod_periodo.ascx.designer.cs b/C-TRACK/WebUserControls/mod_periodo.ascx.designer.cs index fb4a820..f908db8 100644 --- a/C-TRACK/WebUserControls/mod_periodo.ascx.designer.cs +++ b/C-TRACK/WebUserControls/mod_periodo.ascx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace C_TRACK.WebUserControls { - - - public partial class mod_periodo { - +namespace C_TRACK.WebUserControls +{ + + + public partial class mod_periodo + { + /// /// Controllo txtFrom. /// @@ -20,7 +22,7 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.WebControls.TextBox txtFrom; - + /// /// Controllo txtTo. /// @@ -29,14 +31,5 @@ namespace C_TRACK.WebUserControls { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::System.Web.UI.WebControls.TextBox txtTo; - - /// - /// Controllo hlExport. - /// - /// - /// Campo generato automaticamente. - /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. - /// - protected global::System.Web.UI.WebControls.HyperLink hlExport; } } diff --git a/C-TRACK/doExport.aspx.cs b/C-TRACK/doExport.aspx.cs index ced6d84..df95bdc 100644 --- a/C-TRACK/doExport.aspx.cs +++ b/C-TRACK/doExport.aspx.cs @@ -5,84 +5,132 @@ using System.Text; namespace C_TRACK { - public partial class doExport : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) + public partial class doExport : System.Web.UI.Page { - string delimiter = ","; + #region Protected Properties - //prepare the output stream - Response.Clear(); - Response.ContentType = "text/csv"; - Response.AppendHeader("Content-Disposition", "attachment; filename=ctrack_report.csv"); - - string value = ""; - StringBuilder builder = new StringBuilder(); - - // recupero oggetti parametrici... - string from = Request.QueryString["from"]; - string to = Request.QueryString["to"]; - DateTime dateFrom = DateTime.Today.AddYears(-1); - DateTime dateTo = DateTime.Today.AddDays(1); - // se è diverso da vuoto faccio parse... - if (from != "" && from !=null) - { - DateTime.TryParse(from, out dateFrom); - } - if (to != "" && to != null) - { - DateTime.TryParse(to, out dateTo); - } - - // leggo tabella - var dt = dataLayer.man.taTR.getByFilt("", dateFrom, dateTo); - - //write the csv column headers - for (int i = 0; i < dt.Columns.Count; i++) - { - - value = dt.Columns[i].ColumnName; - // Implement special handling for values that contain comma or quote - // Enclose in quotes and double up any double quotes - if (value.IndexOfAny(new char[] { '"', ',' }) != -1) - builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\"")); - else + protected DateTime dateFrom { - builder.Append(value); - + get + { + DateTime answ = DateTime.Today.AddYears(-1); + // se è diverso da vuoto faccio parse... + if (!string.IsNullOrEmpty(from)) + { + DateTime.TryParse(from, out answ); + } + return answ; + } } - Response.Write(value); - Response.Write((i < dt.Columns.Count - 1) ? delimiter : Environment.NewLine); - builder.Clear(); - } - - //write the data - foreach (DataRow row in dt.Rows) - { - for (int i = 0; i < dt.Columns.Count; i++) + protected DateTime dateTo { - value = row[i].ToString(); - // Implement special handling for values that contain comma or quote - // Enclose in quotes and double up any double quotes - - if (value.IndexOfAny(new char[] { '"', ',' }) != -1) - builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\"")); - else - { - builder.Append(value); - - } - - Response.Write(builder.ToString()); - Response.Write((i < dt.Columns.Count - 1) ? delimiter : Environment.NewLine); - builder.Clear(); + get + { + DateTime answ = DateTime.Today.AddDays(1); + // se è diverso da vuoto faccio parse... + if (!string.IsNullOrEmpty(to)) + { + DateTime.TryParse(to, out answ); + } + return answ; + } } - } - Response.End(); + protected string from + { + get + { + return Request.QueryString["from"]; + } + } + protected string mode + { + get + { + return Request.QueryString["mode"]; + } + } + protected string to + { + get + { + return Request.QueryString["to"]; + } + } + + #endregion Protected Properties + + #region Protected Methods + + protected void Page_Load(object sender, EventArgs e) + { + string delimiter = ","; + + //prepare the output stream + Response.Clear(); + Response.ContentType = "text/csv"; + Response.AppendHeader("Content-Disposition", "attachment; filename=ctrack_report.csv"); + + string value = ""; + StringBuilder builder = new StringBuilder(); + DataTable dt = new DataTable(); + + // leggo tabella secondo il MODO + if (mode == "aggr") + { + dt = (DataTable)dataLayer.man.taTRA.getByFilt("", dateFrom, dateTo); + } + else + { + dt = (DataTable)dataLayer.man.taTR.getByFilt("", dateFrom, dateTo); + } + + // write the csv column headers + for (int i = 0; i < dt.Columns.Count; i++) + { + value = dt.Columns[i].ColumnName; + // Implement special handling for values that contain comma or quote + // Enclose in quotes and double up any double quotes + if (value.IndexOfAny(new char[] { '"', ',' }) != -1) + builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\"")); + else + { + builder.Append(value); + } + + Response.Write(value); + Response.Write((i < dt.Columns.Count - 1) ? delimiter : Environment.NewLine); + builder.Clear(); + } + + //write the data + foreach (DataRow row in dt.Rows) + { + for (int i = 0; i < dt.Columns.Count; i++) + { + value = row[i].ToString(); + // Implement special handling for values that contain comma or quote + // Enclose in quotes and double up any double quotes + + if (value.IndexOfAny(new char[] { '"', ',' }) != -1) + builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\"")); + else + { + builder.Append(value); + } + + Response.Write(builder.ToString()); + Response.Write((i < dt.Columns.Count - 1) ? delimiter : Environment.NewLine); + builder.Clear(); + } + } + + Response.End(); + } + + #endregion Protected Methods } - } } \ No newline at end of file diff --git a/C-TRACK/export.aspx b/C-TRACK/export.aspx index 73d4c14..84d71e4 100644 --- a/C-TRACK/export.aspx +++ b/C-TRACK/export.aspx @@ -3,17 +3,26 @@ <%@ Register Src="~/WebUserControls/mod_checkOpr.ascx" TagPrefix="uc1" TagName="mod_checkOpr" %> <%@ Register Src="~/WebUserControls/mod_periodo.ascx" TagPrefix="uc1" TagName="mod_periodo" %> - -
-
- Gestione Commesse +
+
+ Gestione Commesse +
+
+ +
+
+ +
+
+ Export FULL +
+
+ Export Compatto +
+
+
-
- - -
-
- + \ No newline at end of file diff --git a/C-TRACK/export.aspx.cs b/C-TRACK/export.aspx.cs index e42d461..9843539 100644 --- a/C-TRACK/export.aspx.cs +++ b/C-TRACK/export.aspx.cs @@ -7,11 +7,30 @@ using System.Web.UI.WebControls; namespace C_TRACK { - public partial class export : System.Web.UI.Page - { - protected void Page_Load(object sender, EventArgs e) + public partial class export : System.Web.UI.Page { + #region Private Methods + private void mod_periodo_eh_doRefresh(object sender, EventArgs e) + { + updateUrl(); + } + + private void updateUrl() + { + hlExportFull.NavigateUrl = string.Format("~/doExport?mode=full&from={0:yyyy-MM-dd}&to={1:yyyy-MM-dd}", mod_periodo.dataFrom, mod_periodo.dataTo); + hlExportComp.NavigateUrl = string.Format("~/doExport?mode=aggr&from={0:yyyy-MM-dd}&to={1:yyyy-MM-dd}", mod_periodo.dataFrom, mod_periodo.dataTo); + } + + #endregion Private Methods + + #region Protected Methods + + protected void Page_Load(object sender, EventArgs e) + { + mod_periodo.eh_doRefresh += mod_periodo_eh_doRefresh; + } + + #endregion Protected Methods } - } } \ No newline at end of file diff --git a/C-TRACK/export.aspx.designer.cs b/C-TRACK/export.aspx.designer.cs index 8db2a21..e86cb40 100644 --- a/C-TRACK/export.aspx.designer.cs +++ b/C-TRACK/export.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace C_TRACK { - - - public partial class export { - +namespace C_TRACK +{ + + + public partial class export + { + /// /// Controllo mod_checkOpr. /// @@ -20,7 +22,7 @@ namespace C_TRACK { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::C_TRACK.WebUserControls.mod_checkOpr mod_checkOpr; - + /// /// Controllo mod_periodo. /// @@ -29,5 +31,23 @@ namespace C_TRACK { /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// protected global::C_TRACK.WebUserControls.mod_periodo mod_periodo; + + /// + /// Controllo hlExportFull. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.HyperLink hlExportFull; + + /// + /// Controllo hlExportComp. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.HyperLink hlExportComp; } } From 010b5635b9155e95ab1da666d18693496719f2c0 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sun, 25 Oct 2020 17:15:50 +0100 Subject: [PATCH 6/7] Rel 1.5! --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f25ba4a..b22652b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,8 +14,8 @@ pipeline { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { withEnv(['NEXT_BUILD_NUMBER=224']) { - // env.versionNumber = VersionNumber(versionNumberString : '1.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2018-01-01', skipFailedBuilds: true) - env.versionNumber = VersionNumber(versionNumberString : '1.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2018-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') + // env.versionNumber = VersionNumber(versionNumberString : '1.5.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2018-01-01', skipFailedBuilds: true) + env.versionNumber = VersionNumber(versionNumberString : '1.5.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2018-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'C.TRACK' } } From 062cb9986cc9de5cb1fe7f7e36551af8bf6cd04c Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 26 Oct 2020 16:46:54 +0100 Subject: [PATCH 7/7] Fix rinominate colonne --- AppData/DS_App.Designer.cs | 101 ++++++++++++++++++++++++++++++++++--- AppData/DS_App.xsd | 9 ++-- AppData/DS_App.xss | 12 ++--- 3 files changed, 106 insertions(+), 16 deletions(-) diff --git a/AppData/DS_App.Designer.cs b/AppData/DS_App.Designer.cs index 328a66f..f3241a2 100644 --- a/AppData/DS_App.Designer.cs +++ b/AppData/DS_App.Designer.cs @@ -944,7 +944,7 @@ namespace AppData { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] - public TaskListRow AddTaskListRow(string NumTask, string CodGruppo, string CodArt, int QtaRic, double TimeEst, int QtaEv, int Prior, bool Concluso, System.DateTime DataIns, int NumRec, int CurrStatus, decimal MinTotWrk, decimal TCMedio, decimal MinTotFix) { + public TaskListRow AddTaskListRow(string NumTask, string CodGruppo, string CodArt, int QtaRic, decimal TimeEst, int QtaEv, int Prior, bool Concluso, System.DateTime DataIns, int NumRec, int CurrStatus, decimal MinTotWrk, decimal TCMedio, decimal MinTotFix) { TaskListRow rowTaskListRow = ((TaskListRow)(this.NewRow())); object[] columnValuesArray = new object[] { NumTask, @@ -1017,7 +1017,7 @@ namespace AppData { base.Columns.Add(this.columnCodArt); this.columnQtaRic = new global::System.Data.DataColumn("QtaRic", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnQtaRic); - this.columnTimeEst = new global::System.Data.DataColumn("TimeEst", typeof(double), null, global::System.Data.MappingType.Element); + this.columnTimeEst = new global::System.Data.DataColumn("TimeEst", typeof(decimal), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnTimeEst); this.columnQtaEv = new global::System.Data.DataColumn("QtaEv", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnQtaEv); @@ -1793,6 +1793,8 @@ namespace AppData { private global::System.Data.DataColumn columnQtaRic; + private global::System.Data.DataColumn columnTempoPrev; + private global::System.Data.DataColumn columnCodOpr; private global::System.Data.DataColumn columnNomeOpr; @@ -1888,6 +1890,14 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TempoPrevColumn { + get { + return this.columnTempoPrev; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public global::System.Data.DataColumn CodOprColumn { @@ -2013,7 +2023,23 @@ namespace AppData { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] - public TaskRecRow AddTaskRecRow(string NumTask, string CodTag, string CodArt, int QtaRic, string CodOpr, string NomeOpr, string CodPost, string Descrizione, string CodFase, string DescrFase, System.DateTime DtStart, System.DateTime DtEnd, int QtaEv, decimal DurataMin, decimal TCiclo) { + public TaskRecRow AddTaskRecRow( + string NumTask, + string CodTag, + string CodArt, + int QtaRic, + decimal TempoPrev, + string CodOpr, + string NomeOpr, + string CodPost, + string Descrizione, + string CodFase, + string DescrFase, + System.DateTime DtStart, + System.DateTime DtEnd, + int QtaEv, + decimal DurataMin, + decimal TCiclo) { TaskRecRow rowTaskRecRow = ((TaskRecRow)(this.NewRow())); object[] columnValuesArray = new object[] { null, @@ -2021,6 +2047,7 @@ namespace AppData { CodTag, CodArt, QtaRic, + TempoPrev, CodOpr, NomeOpr, CodPost, @@ -2066,6 +2093,7 @@ namespace AppData { this.columnCodTag = base.Columns["CodTag"]; this.columnCodArt = base.Columns["CodArt"]; this.columnQtaRic = base.Columns["QtaRic"]; + this.columnTempoPrev = base.Columns["TempoPrev"]; this.columnCodOpr = base.Columns["CodOpr"]; this.columnNomeOpr = base.Columns["NomeOpr"]; this.columnCodPost = base.Columns["CodPost"]; @@ -2092,6 +2120,8 @@ namespace AppData { base.Columns.Add(this.columnCodArt); this.columnQtaRic = new global::System.Data.DataColumn("QtaRic", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnQtaRic); + this.columnTempoPrev = new global::System.Data.DataColumn("TempoPrev", typeof(decimal), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTempoPrev); this.columnCodOpr = new global::System.Data.DataColumn("CodOpr", typeof(string), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnCodOpr); this.columnNomeOpr = new global::System.Data.DataColumn("NomeOpr", typeof(string), null, global::System.Data.MappingType.Element); @@ -2129,6 +2159,7 @@ namespace AppData { this.columnCodArt.AllowDBNull = false; this.columnCodArt.MaxLength = 50; this.columnQtaRic.AllowDBNull = false; + this.columnTempoPrev.AllowDBNull = false; this.columnCodOpr.AllowDBNull = false; this.columnCodOpr.MaxLength = 50; this.columnNomeOpr.ReadOnly = true; @@ -5650,6 +5681,8 @@ namespace AppData { private global::System.Data.DataColumn columnQtaRic; + private global::System.Data.DataColumn columnTempoPrev; + private global::System.Data.DataColumn columnIdxRec; private global::System.Data.DataColumn columnDtStart; @@ -5719,6 +5752,14 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TempoPrevColumn { + get { + return this.columnTempoPrev; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public global::System.Data.DataColumn IdxRecColumn { @@ -5804,12 +5845,13 @@ namespace AppData { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] - public TaskRecAggRow AddTaskRecAggRow(string NumTask, string CodArt, int QtaRic, int IdxRec, System.DateTime DtStart, System.DateTime DtEnd, int QtaEv, decimal DurataMin, decimal TCiclo) { + public TaskRecAggRow AddTaskRecAggRow(string NumTask, string CodArt, int QtaRic, decimal TempoPrev, int IdxRec, System.DateTime DtStart, System.DateTime DtEnd, int QtaEv, decimal DurataMin, decimal TCiclo) { TaskRecAggRow rowTaskRecAggRow = ((TaskRecAggRow)(this.NewRow())); object[] columnValuesArray = new object[] { NumTask, CodArt, QtaRic, + TempoPrev, IdxRec, DtStart, DtEnd, @@ -5848,6 +5890,7 @@ namespace AppData { this.columnNumTask = base.Columns["NumTask"]; this.columnCodArt = base.Columns["CodArt"]; this.columnQtaRic = base.Columns["QtaRic"]; + this.columnTempoPrev = base.Columns["TempoPrev"]; this.columnIdxRec = base.Columns["IdxRec"]; this.columnDtStart = base.Columns["DtStart"]; this.columnDtEnd = base.Columns["DtEnd"]; @@ -5865,6 +5908,8 @@ namespace AppData { base.Columns.Add(this.columnCodArt); this.columnQtaRic = new global::System.Data.DataColumn("QtaRic", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnQtaRic); + this.columnTempoPrev = new global::System.Data.DataColumn("TempoPrev", typeof(decimal), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTempoPrev); this.columnIdxRec = new global::System.Data.DataColumn("IdxRec", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnIdxRec); this.columnDtStart = new global::System.Data.DataColumn("DtStart", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); @@ -5885,6 +5930,7 @@ namespace AppData { this.columnCodArt.ReadOnly = true; this.columnCodArt.MaxLength = 50; this.columnQtaRic.ReadOnly = true; + this.columnTempoPrev.ReadOnly = true; this.columnIdxRec.ReadOnly = true; this.columnDtStart.ReadOnly = true; this.columnDtEnd.ReadOnly = true; @@ -6077,10 +6123,10 @@ namespace AppData { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] - public double TimeEst { + public decimal TimeEst { get { try { - return ((double)(this[this.tableTaskList.TimeEstColumn])); + return ((decimal)(this[this.tableTaskList.TimeEstColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("Il valore della colonna \'TimeEst\' nella tabella \'TaskList\' è DBNull.", e); @@ -6515,6 +6561,17 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public decimal TempoPrev { + get { + return ((decimal)(this[this.tableTaskRec.TempoPrevColumn])); + } + set { + this[this.tableTaskRec.TempoPrevColumn] = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public string CodOpr { @@ -8181,6 +8238,22 @@ namespace AppData { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public decimal TempoPrev { + get { + try { + return ((decimal)(this[this.tableTaskRecAgg.TempoPrevColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("Il valore della colonna \'TempoPrev\' nella tabella \'TaskRecAgg\' è DBNull.", e); + } + } + set { + this[this.tableTaskRecAgg.TempoPrevColumn] = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public int IdxRec { @@ -8301,6 +8374,18 @@ namespace AppData { this[this.tableTaskRecAgg.QtaRicColumn] = global::System.Convert.DBNull; } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsTempoPrevNull() { + return this.IsNull(this.tableTaskRecAgg.TempoPrevColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetTempoPrevNull() { + this[this.tableTaskRecAgg.TempoPrevColumn] = global::System.Convert.DBNull; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] public bool IsIdxRecNull() { @@ -9005,7 +9090,7 @@ namespace AppData.DS_AppTableAdapters { this._commandCollection = new global::System.Data.SqlClient.SqlCommand[8]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT *\r\nFROM v_TaskList"; + this._commandCollection[0].CommandText = "SELECT * FROM v_TaskList"; this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[1].Connection = this.Connection; @@ -10216,6 +10301,7 @@ SELECT CodOpr, Cognome, Nome FROM AnagOpr WHERE (CodOpr = @CodOpr)"; tableMapping.ColumnMappings.Add("CodTag", "CodTag"); tableMapping.ColumnMappings.Add("CodArt", "CodArt"); tableMapping.ColumnMappings.Add("QtaRic", "QtaRic"); + tableMapping.ColumnMappings.Add("TempoPrev", "TempoPrev"); tableMapping.ColumnMappings.Add("CodOpr", "CodOpr"); tableMapping.ColumnMappings.Add("NomeOpr", "NomeOpr"); tableMapping.ColumnMappings.Add("CodPost", "CodPost"); @@ -14373,6 +14459,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag)"; tableMapping.ColumnMappings.Add("NumTask", "NumTask"); tableMapping.ColumnMappings.Add("CodArt", "CodArt"); tableMapping.ColumnMappings.Add("QtaRic", "QtaRic"); + tableMapping.ColumnMappings.Add("TempoPrev", "TempoPrev"); tableMapping.ColumnMappings.Add("IdxRec", "IdxRec"); tableMapping.ColumnMappings.Add("DtStart", "DtStart"); tableMapping.ColumnMappings.Add("DtEnd", "DtEnd"); diff --git a/AppData/DS_App.xsd b/AppData/DS_App.xsd index c94a374..4c3c817 100644 --- a/AppData/DS_App.xsd +++ b/AppData/DS_App.xsd @@ -12,8 +12,7 @@ - SELECT * -FROM v_TaskList + SELECT * FROM v_TaskList @@ -289,6 +288,7 @@ FROM v_TaskRec + @@ -1149,6 +1149,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + @@ -1191,7 +1192,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) - + @@ -1279,6 +1280,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + @@ -1776,6 +1778,7 @@ SELECT CodTag, TipoTag, DescrTag FROM AnagTag WHERE (CodTag = @CodTag) + diff --git a/AppData/DS_App.xss b/AppData/DS_App.xss index 4ac2bc4..bdeec2e 100644 --- a/AppData/DS_App.xss +++ b/AppData/DS_App.xss @@ -4,22 +4,22 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + - + - + - - + + - + \ No newline at end of file