From 32f978262d1c51fab6dbfa508d19bb5537f98c7e Mon Sep 17 00:00:00 2001 From: Salvatore La Manna Date: Wed, 9 Sep 2020 14:54:19 +0200 Subject: [PATCH] Fix Post Http per patch di sicurezza --- .../docroot/WEB-INF/.gitignore | 1 + .../docroot/WEB-INF/lib/httpcore-4.4.6.jar | Bin 0 -> 323824 bytes .../docroot/WEB-INF/lib/httpmime-4.5.3.jar | Bin 0 -> 41029 bytes .../docroot/WEB-INF/service.xml | 1 + .../portos/bo/model/DettPraticaClp.java | 47 +- .../portos/bo/model/DettPraticaModel.java | 16 + .../portos/bo/model/DettPraticaSoap.java | 11 + .../portos/bo/model/DettPraticaWrapper.java | 30 + .../bo/service/IntPraticaLocalService.java | 22 - .../bo/service/IntPraticaLocalServiceClp.java | 602 ++++---- .../service/IntPraticaLocalServiceUtil.java | 26 - .../IntPraticaLocalServiceWrapper.java | 29 - .../portos/bo/util/AzioniPraticheUtil.java | 5 - .../portos/bo/util/DocumentiPraticaUtil.java | 65 +- .../liferay/portos/bo/util/SoggettiUtil.java | 3 + .../bo/util/ValidazionePraticaUtil.java | 124 +- .../docroot/WEB-INF/sql/tables.sql | 1 + .../WEB-INF/src/META-INF/portlet-hbm.xml | 1 + .../src/META-INF/portlet-model-hints.xml | 1 + .../WEB-INF/src/META-INF/portlet-orm.xml | 1 + .../WEB-INF/src/content/Portal.properties | 4 +- .../bo/startup/DatabaseUpdateAction.java | 5 + .../it/mwg/sismica/bo/util/SismicaUtil.java | 92 +- .../sismica/bo/util/SorteggioPraticaUtil.java | 237 --- .../bo/indexer/ControlloPraticaIndexer.java | 7 +- .../bo/model/impl/AsseverazioneImpl.java | 2 + .../bo/model/impl/DettPraticaCacheModel.java | 20 +- .../bo/model/impl/DettPraticaModelImpl.java | 51 +- .../scheduler/SchedulerEstrazioneFirme.java | 55 +- .../scheduler/SchedulerGeneraDocumento.java | 23 - .../IntPraticaLocalServiceClpInvoker.java | 584 ++++---- .../impl/AsseverazioneLocalServiceImpl.java | 2 +- .../service/impl/AvvisoLocalServiceImpl.java | 8 +- .../impl/DettPraticaLocalServiceImpl.java | 48 +- .../impl/IntPraticaLocalServiceImpl.java | 96 -- .../DettPraticaPersistenceImpl.java | 1 + .../portos/bo/util/ProtocollazioneUtil.java | 6 +- .../docroot/WEB-INF/src/service.properties | 4 +- .../portos/fe/portlet/FascicoloFePortlet.java | 8 +- .../fe/portlet/SoggettiPraticaPortlet.java | 1321 +++++++++-------- .../docroot/html/allegatipratica/view.jsp | 6 +- .../domanda/page_dettagli_principali.jsp | 8 +- .../html/soggettipratica/edit_soggetto.jsp | 28 +- .../docroot/html/soggettipratica/view.jsp | 30 - .../messaging/ReportMessageListener.java | 181 +-- .../messaging/ReportTaskMessageListener.java | 146 +- .../docroot/WEB-INF/src/service.properties | 4 +- .../portos/bo/shared/util/Constants.java | 9 - .../portos/report/shared/util/ReportUtil.java | 3 +- 49 files changed, 1771 insertions(+), 2204 deletions(-) create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-autodestroy-portlet/docroot/WEB-INF/.gitignore create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/httpcore-4.4.6.jar create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/httpmime-4.5.3.jar diff --git a/liferay-plugins-sdk-6.2/portlets/portos-autodestroy-portlet/docroot/WEB-INF/.gitignore b/liferay-plugins-sdk-6.2/portlets/portos-autodestroy-portlet/docroot/WEB-INF/.gitignore new file mode 100644 index 00000000..840e7d31 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-autodestroy-portlet/docroot/WEB-INF/.gitignore @@ -0,0 +1 @@ +/classes/ diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/httpcore-4.4.6.jar b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/httpcore-4.4.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..16ed0d160d7deed898d2f65f7c970bc2ccf6d97f GIT binary patch literal 323824 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
3b}GXGE`-B$`ir?q06LZv-o}|$RfIt ztRR>J8WyO-x7~gG8uJ&nCae}Ct3j8EO;wXbN6-Sb35vu5=G za>_n!5yAJ}NG$<|wq~c$)U~^YBe*OBNmZ2!!?#w4urL{y;%mgfbD zV-1AM3{!(AVypzN^aQ8K(7!_Ppj=){u2Ix5N?$iv27^`1PG@kYK2Bagl0qkY<%u14 z!DcjL?k8tATp<~C4CH!W@ctW1H3v9rCHY%EQ}9pnnSV78`FEx~f11+#ebfDG%MFaz zl$QU7wYLkm8w2Giz^MFibxOx_OVIFVA;d~h1T64m5zp;d8z2v{?Ai|dvip#ewPMK$ zF(f;fZduUxFYG7@30Ddjt{sexvobe7-|jC#eaJY$@>#-2twi94unmb5=n_&Dh;jQA z5`J&OT?N`?`e1XjdpC zp~n?Uc8y1ZG@A>nw)ItU8Gw~Ho*6g>>6RR{F!^8G)LWrDk~v2R(Q743nRT(d;@?B{ zs_H_%hTz3ep$sdRu6NX1(LE#tSaw=iR;yYCRx?p9ZqtRPA#x0EMSH2DO0IQGvS24q z$ttL=h>5UZEuT-(mX&4y&~U;&O_ACMqSs2=*ihT!(E7NkSiSkfQ#BBk>Ra^EfD)i4 znZdprkOm|0rZ}FYw@$v+o<~+Pgt+cRn4G|uk#7v=V!WF3DxRDkM~h!~rRI@oG(l^- zl{MDg!B#%y9JpULIapYjI2PYJSC95ahusfXH9%W2K~$i3B7cN02jo5#S=yP59`wb) z5R~AB(nmM;rWy)69DhEYq#(SI~Y+=9~)(cp_AX$PgA9|KNka z+$HUfTM3^v^@moEboU>z8gYdT+B1*8tZ@l3iK-F$Nbw}i4p`yQHHFDAU=n4+hzruA zcFL4rdMGqRkE3?hMK}evx}$lkGKrJNF7O`EeVu{;5PF^5qU{jiu>;q(;k_zdz8_61 zT-A3MJfE*22X|6eaI*q^>L29qN_hib7I zYJcn@)id1C(c6F+7abENC7=}2(}(EN(GdcbjBXGQjD^LlI>Ak{g}R=;eg0DAm5p)y zhl$sHp^Re-5pnVXs^Xb%108+I9t%zx8XCe$6D>WMe<1z+BiF}nm;T@EyY&9}A&epn zVg!QnGa7kB|3_FoT@9eB1QZr8l&&qkjjyTI-{cY8r+@71e^nL!$zR4?$vpArvCh$gIQp6--JZ z%)0dBMd<3JgvNuLnVYXK^6Z*xd)($OHVz~yzHdE$268`wKID!&WskziBg}FiTyVW# zbbcFnP<3~{y%PD@dYli!(Q94w3xVHj8N{0R6Hzwk(NMdew&3Gm2L_aD*hvmJ(yW!? zvb@;J59EcYYdP4`XvPpx+N#~;A&zgz?1F@atZ%3Xts@Clh{_OEh^fTq{8CBI5vL_g zAl!i04I^a`y;WdF{UxLiMS>8d3N=pDT9X%`Oj(Ykv@EXXBK+N=7|o-A?#D92`zlE1)duR$~y3ZnN(?l>XS;(gye8nl%fmm zZZ)z*9~wuqF2^m1Q6fbUs;ygAOXrQJn3?V+O54mbjctH~QPBcQYAa|Rh!r${DJ~@= zF_6%h65f(T_*GDi6peLb=jv3JBml`$6+04nrsJVmAh_fkypW?;QY?kla!zTo^pcMh zxdwz3od~LAe?u4FR(yut#tay)hP%Ri{|$_kBzG9*(gdRzFC&#umRs2MTV)$7%6In zepp-7(|scJcfE#Lm7a@fY|D(36Oreg2N7}L!7y=BFIV-;3N%aD3G+3mQ550R$ag^L zx33;FJr*S*y9zK#SYb&M(;VW@ho->lgT3qI_U+jBLEjvNt=#NVUxl_@_aDFX1?xt< z+~7&cT3>otX_6%$<{@Myjhp4dus(nG1jAhi%v&>s$*NVn({<*c8-_I>=_l}bWW0l2 zKEyU~&={($ij^9qB-Lq9uuSewjY%mhSgO)_z94ARJ%E&XV&*6SkF7s(a~|jn-!SoX za0im}!bxB&<<0a+OjTO`jYNU$))~7~E&6O21w!3u*yY@*{!B5IZKAM^o zc_By4KUE+{A<}dvjtigq7`AsaRV15{z+NlV&a4@U>N2dv`tI4Kf`{~tX4dhxJCM2F z#ob|rX1gJ(2be*1iDf1j{i$x}W~7qArF@~nI?1(#SCr&RbE;%qy}L#nWH(7v{O|Jw z$zowr)KM$~t3U1B{5`~zYBlSM!11?-w=AP6cYc0&L;LQMZk!xv@_pq2dc;{^*qxLJ zM6WMMzA+{^WaU)DhR{=EuL8Ztrl4dL%!?zX`1`PaPyu$8A(Vn%s;9{h_v+6*z;Q9h zVR^c4G2uNx_;2g$G$^C-9A7yHXXPKlZ}i1q13kTD^JqwmE*kR8id^{sxy20plw;-n z4M)8;ok^0+^&rCKJ72Kq*Uu_Y+YE=>qnbegi?AwzKyp(|XGpNWA!5)wf^*_?j!X!T z%dqsE9QlSQI06d$CS7L_Um5Vb3Kfnz*vl^+?-eO)78MS+w;7lWcTMmdR(iKGbggAX zB=1SMGAdI|{ba&Am!doLSvb4@`nqVJ&5e2X-JA+o9|*n$3SOCXgA@6lJn;bo`HJ1} z1*Eqn6jG(2U?VS`h=a-3Y)6WSl_iqY_ndbYWLwYQ+W&?HCM@Ol{Uaon_h+IM2WY(% zjF+=rjc|#8)6FGw)~w`%?Fy4>I@Nl=Ez9h=$xOKbjvL}#zDc2cp_E!7f3+?TV_&@# zm?L=+A74_8uWGPMWsu7x8T~Q!0-XEL2M1^8W#7aS@8#wHJ`?4a9+J# z9phhKPw1Ripke?rfH)4vtKd8YB?ybIhEw=V~5+=hx`yIBg&~Wj({H3AG%})^n z%raiU&4z!4(Tc$jU5>sXWy4#NTmpT>K{$H8{cT2uim4O^eLo-l{$3IPbD#frsUCmp z^M6@~|7~1am>OFB8Jza_T+P1&qblwWNXqD6lUKy?7Q}?AKY_sDasmxlbkkAD7~%0` z4Ax_Q{>sfkAxXzmUAeGuHqI5Y^jvZ__nb*?GBcOO{3eJtkXlxL>n3E^%f4P%v+_lv zk4uJ!Z*`*mx~+}sRxhmhJ$~0dZ?)cgc3*#Na=iBil1%?-LEyQyZ>dDMY|#vIR@~Y2 z>Hxj2?0Hw{*oH-RE_w06O>D^rz*orQE@xz7Phv!MV6+*{J>?EjT zFWVER-zJ9APTHmLyH^1gHheFq$GYD)XD!-m2}30Bs_HQ&jtl@WjP|>0K zJ_miY`Q~zZJ}H4}I}IVwnRfzM+mB1tS<-_-12b*b2F%8zqtnWLyzypm_*yZP4LhHe zrf{~WbDOg!Da~wI76tXW$wk9p?&^+<1?dxvwovF(WU~zF3-_%V5F-dLgr$OyRW8k& z5*R+FC{pL1gT{6f)Sea4NlgkxI z$w{9QoYs`oZE86+AeCDLh2NHzc=u=(>Iau5BIFKZF#?Yp{|x@UyoJCNr^lpvBu!ty zqJOAb_xxr3tLu-lJ8BW1=iptmmc}a2{Wf_#nbkn|R$DPv` zQEToxb2ANTs6cDc0)|mSWM+`l{sd~m*9Pw1M#vYwc9M*O-1muv5UWEd?ahqfW#dA< z(A+8sO74*zlr@$s#r7gcZc>wsi|0{?heeZskjff)!yVW{{3_WA{*g{aM zc|JMX;?_biZ6En~{fa>n!^rOGiGsYLq?CprB6*f1MF7dWNnv_JK~+)@ zLK9yFnSi-*oy#p%zHG)g53n*H3(eyiS#Scm{fAvRomO(KDUq^j^%PdPz31l+f+A0T z^f6zPRcV~kn17A?hgaN-hf6`rR*eCijSlQ10$B8R0=}QdL?M(RA(E-M{o=|HAdjnQ zibjn{QG>#bogX1dCIU`9Lf67Ia$}yJ(X6+SyvHxI>t_REdWW0HR9%}X5OJK@K$tEF z2B-5%VY@3VY{zWcy2um|LYKEu;Bd2Gnn%Pubc@T3nrx~RED6K>9Ppi6=`ej;jy=^{ zKDGh?PVLHhVWzj8o5b!mMxt#@40&^yGl!%)4D8I@Muw>J3&u_)0p($CJ3!mT+ToT) zj#|DcjYono_P$|E$gzXSLiD)H@!zL(VYBjqtv&`F5uO7`6PV0=%(M16hF|6l>~dej5#{VkMt|K@0c*N9Vco*rG9*Xfh<`-vchO4ujXG55fB75HNz&!e|_>%M4%P@9+&R!Kn2!%}FrgA13DtX!g-X;(u*DT&h z)N}vdnY<-Rv&_<{Zr&MZh%Im)>Z4@hmtUoOQb8Zo6GNLS1F#(wHn8!>Tb!252MwC> z^G=bK`N3HCmYw&FiZ#$&R)qZ-fn5^#Y-&4kpmzW&Nsu};P02b>NN@MK2oqr%*cwMx z$*oc;!!ktjDD}}4!}hJG2Jih2y#yt_`K~^WuCJ$oa{ZE9B1J-33}@(6yx-=I`GVZc zTzAmPGp<&(Q_+a8gt7JW1lJt_Q;&n}^-3;@<-M(^vCg}~sIN}KLTH$NsuT7z<_2mh zLV)kRO^5~MdQOWB@>qP3XnZ$j$NQ62Va`pfF0t0x!<<^)f+mQkN48s$Tuxk!2Y1y! ztc|M3n()avITSmD{63d5QVB8w4Wsf$D2FG2^EYv76N2F@D@MuWrU!m#?Oly;cmg-N zBxar#Hz7O@lpabaz~N4e-v1DKmTPz@NnfeYXk%mzKUw9YIhO!(4j#%0s#9T|g~kr$ z*?+Nbs?e56*OuF>wnG@b8jI!ed0HDJMxe;~jrarEI$go&t;MD=wm#vEy%_ObN`kbv zhEXn52mx|R+`wrWGP-Y@zcK421Ces zfET9BTgkQL`4#X=ATe zi}u#Liu9JuT;rMt?uOv3p*c%Fr!hnQk|eV5Ly=te@^Q23(LK8=WrJF~WmyG~)8=s} zNx`LGXWp~es47gTwuO6#%jvM#Vy@JsOleMk*sfok^vLwjBlRwu>@#l3OXo z%EhAiTXl(Ubx=ijHfRatL|FV*vw?P-lJuh{d0oyFy1$w?IduyA*)o|bz*VVlVuIP9 zA+wI&5CmYUTCs*~mgtDGyWfGVK{spV=YWpHqfiLJ6c*$v#*{=_UlXU9qgXnqD2Ba6 zE}>>oLgc^)a&}z&Pbk)NqDUHL$DcTBraz4P1fUOy!t$p|xSw{MPT%ewppu zLiLr|^OxLQ18!neHKnYX6F6u>YrvT+iCt;X9pB*M>%3Ug9sWX?a5jM;lRH zD+7!FlAl{f)mj12!3hor*nt1yll+y)s7jWX4XEUP*_x=};YRtXTE{@J<#? z8&F8aw2@;lJ+=G(6t#y$i-J@6gyKQdW-r2-r-If^-D08_i>yXw-et}$mkpQo+@zT@ z{<)f8B04F)1uYGNM(Dg{I>~qnHF!5tXSKK$d^_u2JHoY1cQpfpMr zW0ZJSQ%QGb?m$vywr;B?5#hf2s8KFJp{E^;2Z}|xphTPp6?cmU@_N}Xe!NRKrbA@j)7{@{ z-p0JcbT;&Y;o4hoMN%2|6@Ho0s+noiUa~!NTBBGw@2sIk@wkdiE#h62`5FV?DHl{y znbvZCT`#3mke^7t*sS{dMugwASYH?Z9P?{qiicrxmpp1r8VL*TH~}xOpbCZHpsPso6d?r9@ke8qm#nT159N)Zf7wU zCuU4cykU)lK^6UA^r`N%k_8UpJ$|3;d4CUaw{HH>|1F~=ww#7+{Nwdtr8pp4748|I z92OQ%a3uo0;UHj4`7r0;=sMvs^u&06aCFhy*lgU;Wxa4mV(x{JlJAlk zH64Hc4Rwnb`gB(MMl9F=N5t}f@#QL**cs{?{2g=q^^M5=b&e(eJ(P4l$*R4|2RRH@ z!DH8Hz0PM3^1u)vmeDLA=Ek-S``i7;is9nzMLA70U33rjMg;xZf(5Jr?PG?+`6|PG zy4BwK?SAr0z_Q|rHH;BeS&PDV~tbcC^iZT zg^_dVMzCKVWOJYDRw?ZHiX=$GFxz{_Dc;@Dog=17S=#`uOq|DpK_Y{7!&J1_JpGIp z4~ypk0Hi(`46xahqw6?84uYn}b*EWlSSvg!4EI~=+?s_+$&fJNHDw?KJX zp`an%0i&*n=j_r*mf*0xJE=*n*%<9#nzM^TJE82M+U%On0j&U=4AsX zx)r6$+=BRWcTd4i5V#K*KnAQT?QyYNx*MP3oO?{RHprjtwP@30s5wIv2`!e(X7Qfu zFc4JkaQqH5SwaZ7d^6F5HUxb@*Gv0h{cO1dQB`(u4wY}*IIA=L)QZzKnHB?*<)2Vn z=S$Qf({2bzp`w_$gl6>hEGHe?U3vu>T(v*dgCccEPblelZ@Og#84Z*S8d*extYubAKcDFrPa1YE@u>L>cbJMMZMjQGfFir#96P^Rb$G5oLHC>~0L#b`onRC1 z*B>aIANWDCd0~bd1t$s`&nT`ToP$&N(zhh|*G>~{{3gh=75L};?*h3ZyQ&3rsEL!$ zI>UyIEtHZN&ii^9c@T=+{6^DnK?b*AstDEb*(W>vQ$Gc~+Wf<@p`2;w22Yap#~cdm zc7ZfsQ>r4|TX1J3MP5Mvnrv=>;frzKUp?19(OCbrU;jIt{%;t>KPH>9wVnBYjj~8Z zb$dibtglSM%cjwxB?#mjxn2O%Ic7Cd2%#9QoaBPp257%z-F7x&$aRYi3zOn5_Whfy zkrUJ%MI%bo%von1pJ*=_?S{{(U)A%X_ch1f-CxtIJf9zjEPoKZ;D_NvIPDo~$PBxm zxqJ&XN!MsG28kksY|(KCY=D*XU*MJ#bTncS&r%p^k^3DtXlX5VhI%S|*?d*lz{;3T zx1BA>Y>4+?3mX(0FX|*Hezl#s`x?7jxuq@e3s_71)N@Z1WB9OSI+d0YSo7UiEZHVn zwop|R9HK}pps~60IbHBVR%_IDBA2oe%1JY!s$H66W4z<_MV4|Aaw?$MS2*zSG*o>H zU#b(Ak{+t3YSwv;%4<%E&AC_rn!>TUtWel|s5=I3>}f7LP0#X{PDY^_)nOs>71YaF z)C&4whwcMUEIchUAcZ+l`x*20#T=>5G^~WvoNzi)(|j36V|5*HJg!+Eqk+hp)@r`l zJQtOmHG0`#Z4rE}mMG^&!_x()^3++OxCp(!hB0!&lri_7f*eBa;<%l(jJ-Imk}umo zmKut9!eR>~BKfeVh&XJcp_6kchCVvLX$Qhhe@k}jIky*zH7hP5cj8AV;U{!EBTY%7<%zE@xprm(J|98Aq83a6oO`Uu#F<7CfRb^zj0)r3q#_t zqfK^auA_BzpyFG4rF>Tq+H65#+Bb8SU8!U9ca~p3w&S{`EHtM@8h6FH%F9o7u9>6E zEqYnyQg)z0H25F?}sT+DcjXy?*^|q^gh8I9#@@lu>c6_oq|)hk;v3SJWSY~O!P*>jNsf<&sTepw*w`9M4F4Lx zd{UB7(fqQ57&{_yd|eAgRSU&fUJmKaAnX$srr^}=OKSBe3r>{Vb$Wwjx(mkitv~MF z(eqXNd*^i*=gWPv_K%9;%s-U!ngJ+mVv+?qu#OJFXgoU}%2_dZ*`jWbTzrxce{e>} z|2RPd>*>+?13(~RFCqv%H9{CIQ!hb>aco4-fI$qz79%Pw0fNP6P!yCdh=F_x#1`gw zbq}(mW5h{I?zS#WS)rqhSA2DdY`1BBDF$7+hTe?hHY95yQWqZGY13dJh9p)6X59z{ zaVo`zQx_OAkKio@r#1jHbQCZ;6V1OOz_bVtsbWk%+reU)`9jcOnh`g2F-BD!t;$rr z-Lbzh(;hZxcGl;34V^QFe&+?f(AWJn+fM9qoUEQnJ8o|Wf*fq1zddpxp?&_PyNz7Lpf+S5AYcTMjCBe*1dexvORq}ViE0$}1U?MXjdj_g* zVq#2+)51eMk z4dHUX#;+?k@)VZJPIsLEtipF5$+KVTNzSU}#*c>u+C|u>Cs}vlX-o^#(3$y7&MWZj zj-oRSB^((Ja!=v{z3P&a<(L)W3&Cj+8-a&H5>RK8EjId2)okP!4HWM60$uH`g5D+m z*p-a(bne-3qe}s7#GF+dRF18&7j@2I0aDi{M43}7@wqtq6;xbE4Ab`N^RCgfK%)qj zA$@TMM&YXd@)k@NVKD(@Sve1>LA4&p{-qn5rX||!>B~I8#ps6HISK9f&5z6hcXg|b z!!`vDB=;f?xBAT1jFW7fY(vO{P%^+}&&fVBelm>Rx`ky#_AB{QqALs3kOIIY*;sS7 zR%2rQIFe^kCXFEa9mQ@B_bn7m2u@-;WFN?y;At~5vg7;VpR-GMK=ImX+IQmp5ia-v zo+={l7^ZPj@{(SrQnSm_oar}=x10j)pbg5eU$!sQ2{!jY9=lA4q~I)XBs;Lp5;=?; zD(t@B#I9AKg&WU==fn-6K_GyALPbAgQ_VmKwdRq?|}jYZ7fI zJqFv$+Y0z+C0_g};nvM0sig){$ zk>bLA$>9zeny}c0%bgUqLOM1$}XeSL#hU>B76iKp1ToX`Q zO~18ReVVI|f_Q~#Zhkf0^<-3jHy}G?0rhpvi?ttd)yrD zXb0jamOoJkCUWQ((CC#l8xo`(SXq4{VB(wicgxQ|mt#*9D#MYv{*@WY7$?FdndsWx` z$gKL*3ih7ab!YD==pSeQoe%S6u#+vI5<;=)0{oSi;Jvu}&i

SlRJ~1^bgL0C$fE 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

!O)w6;yB`l#NULmCPy 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 OwkVO<9isJV|zcm8U5Ctr}>ic67K+7uGet^ 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 literal 0 HcmV?d00001 diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml index e20e6329..7e1a09c5 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml @@ -457,6 +457,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaClp.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaClp.java index 78810e51..736aea2f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaClp.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaClp.java @@ -148,6 +148,8 @@ public class DettPraticaClp extends BaseModelImpl getCodiceFiscalePrincipaleDitta()); attributes.put("codiceFiscalePrincipaleGeologo", getCodiceFiscalePrincipaleGeologo()); + attributes.put("codiceFiscalePrincipaleArcheologo", + getCodiceFiscalePrincipaleArcheologo()); attributes.put("lavoriInEconomiaCommittente", getLavoriInEconomiaCommittente()); attributes.put("inizioLavoriContestualeOpera", @@ -781,6 +783,13 @@ public class DettPraticaClp extends BaseModelImpl setCodiceFiscalePrincipaleGeologo(codiceFiscalePrincipaleGeologo); } + String codiceFiscalePrincipaleArcheologo = (String)attributes.get( + "codiceFiscalePrincipaleArcheologo"); + + if (codiceFiscalePrincipaleArcheologo != null) { + setCodiceFiscalePrincipaleArcheologo(codiceFiscalePrincipaleArcheologo); + } + Boolean lavoriInEconomiaCommittente = (Boolean)attributes.get( "lavoriInEconomiaCommittente"); @@ -3547,6 +3556,32 @@ public class DettPraticaClp extends BaseModelImpl } } + @Override + public String getCodiceFiscalePrincipaleArcheologo() { + return _codiceFiscalePrincipaleArcheologo; + } + + @Override + public void setCodiceFiscalePrincipaleArcheologo( + String codiceFiscalePrincipaleArcheologo) { + _codiceFiscalePrincipaleArcheologo = codiceFiscalePrincipaleArcheologo; + + if (_dettPraticaRemoteModel != null) { + try { + Class clazz = _dettPraticaRemoteModel.getClass(); + + Method method = clazz.getMethod("setCodiceFiscalePrincipaleArcheologo", + String.class); + + method.invoke(_dettPraticaRemoteModel, + codiceFiscalePrincipaleArcheologo); + } + catch (Exception e) { + throw new UnsupportedOperationException(e); + } + } + } + @Override public boolean getLavoriInEconomiaCommittente() { return _lavoriInEconomiaCommittente; @@ -8952,6 +8987,7 @@ public class DettPraticaClp extends BaseModelImpl clone.setCodiceFiscalePrincipaleDirettoreLavori(getCodiceFiscalePrincipaleDirettoreLavori()); clone.setCodiceFiscalePrincipaleDitta(getCodiceFiscalePrincipaleDitta()); clone.setCodiceFiscalePrincipaleGeologo(getCodiceFiscalePrincipaleGeologo()); + clone.setCodiceFiscalePrincipaleArcheologo(getCodiceFiscalePrincipaleArcheologo()); clone.setLavoriInEconomiaCommittente(getLavoriInEconomiaCommittente()); clone.setInizioLavoriContestualeOpera(getInizioLavoriContestualeOpera()); clone.setDataInizioLavoriOpera(getDataInizioLavoriOpera()); @@ -9191,7 +9227,7 @@ public class DettPraticaClp extends BaseModelImpl @Override public String toString() { - StringBundler sb = new StringBundler(499); + StringBundler sb = new StringBundler(501); sb.append("{uuid="); sb.append(getUuid()); @@ -9317,6 +9353,8 @@ public class DettPraticaClp extends BaseModelImpl sb.append(getCodiceFiscalePrincipaleDitta()); sb.append(", codiceFiscalePrincipaleGeologo="); sb.append(getCodiceFiscalePrincipaleGeologo()); + sb.append(", codiceFiscalePrincipaleArcheologo="); + sb.append(getCodiceFiscalePrincipaleArcheologo()); sb.append(", lavoriInEconomiaCommittente="); sb.append(getLavoriInEconomiaCommittente()); sb.append(", inizioLavoriContestualeOpera="); @@ -9698,7 +9736,7 @@ public class DettPraticaClp extends BaseModelImpl @Override public String toXmlString() { - StringBundler sb = new StringBundler(751); + StringBundler sb = new StringBundler(754); sb.append(""); sb.append("it.tref.liferay.portos.bo.model.DettPratica"); @@ -9952,6 +9990,10 @@ public class DettPraticaClp extends BaseModelImpl "codiceFiscalePrincipaleGeologo"); + sb.append( + "codiceFiscalePrincipaleArcheologo"); sb.append( "lavoriInEconomiaCommittente private String _codiceFiscalePrincipaleDirettoreLavori; private String _codiceFiscalePrincipaleDitta; private String _codiceFiscalePrincipaleGeologo; + private String _codiceFiscalePrincipaleArcheologo; private boolean _lavoriInEconomiaCommittente; private boolean _inizioLavoriContestualeOpera; private Date _dataInizioLavoriOpera; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaModel.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaModel.java index 1347f305..1d8d336a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaModel.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaModel.java @@ -1086,6 +1086,22 @@ public interface DettPraticaModel extends BaseModel, public void setCodiceFiscalePrincipaleGeologo( String codiceFiscalePrincipaleGeologo); + /** + * Returns the codice fiscale principale archeologo of this dett pratica. + * + * @return the codice fiscale principale archeologo of this dett pratica + */ + @AutoEscape + public String getCodiceFiscalePrincipaleArcheologo(); + + /** + * Sets the codice fiscale principale archeologo of this dett pratica. + * + * @param codiceFiscalePrincipaleArcheologo the codice fiscale principale archeologo of this dett pratica + */ + public void setCodiceFiscalePrincipaleArcheologo( + String codiceFiscalePrincipaleArcheologo); + /** * Returns the lavori in economia committente of this dett pratica. * diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaSoap.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaSoap.java index 2e39aaa3..96698c73 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaSoap.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaSoap.java @@ -93,6 +93,7 @@ public class DettPraticaSoap implements Serializable { soapModel.setCodiceFiscalePrincipaleDirettoreLavori(model.getCodiceFiscalePrincipaleDirettoreLavori()); soapModel.setCodiceFiscalePrincipaleDitta(model.getCodiceFiscalePrincipaleDitta()); soapModel.setCodiceFiscalePrincipaleGeologo(model.getCodiceFiscalePrincipaleGeologo()); + soapModel.setCodiceFiscalePrincipaleArcheologo(model.getCodiceFiscalePrincipaleArcheologo()); soapModel.setLavoriInEconomiaCommittente(model.getLavoriInEconomiaCommittente()); soapModel.setInizioLavoriContestualeOpera(model.getInizioLavoriContestualeOpera()); soapModel.setDataInizioLavoriOpera(model.getDataInizioLavoriOpera()); @@ -869,6 +870,15 @@ public class DettPraticaSoap implements Serializable { _codiceFiscalePrincipaleGeologo = codiceFiscalePrincipaleGeologo; } + public String getCodiceFiscalePrincipaleArcheologo() { + return _codiceFiscalePrincipaleArcheologo; + } + + public void setCodiceFiscalePrincipaleArcheologo( + String codiceFiscalePrincipaleArcheologo) { + _codiceFiscalePrincipaleArcheologo = codiceFiscalePrincipaleArcheologo; + } + public boolean getLavoriInEconomiaCommittente() { return _lavoriInEconomiaCommittente; } @@ -2907,6 +2917,7 @@ public class DettPraticaSoap implements Serializable { private String _codiceFiscalePrincipaleDirettoreLavori; private String _codiceFiscalePrincipaleDitta; private String _codiceFiscalePrincipaleGeologo; + private String _codiceFiscalePrincipaleArcheologo; private boolean _lavoriInEconomiaCommittente; private boolean _inizioLavoriContestualeOpera; private Date _dataInizioLavoriOpera; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaWrapper.java index c5bf946d..6dd436bd 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/DettPraticaWrapper.java @@ -122,6 +122,8 @@ public class DettPraticaWrapper implements DettPratica, getCodiceFiscalePrincipaleDitta()); attributes.put("codiceFiscalePrincipaleGeologo", getCodiceFiscalePrincipaleGeologo()); + attributes.put("codiceFiscalePrincipaleArcheologo", + getCodiceFiscalePrincipaleArcheologo()); attributes.put("lavoriInEconomiaCommittente", getLavoriInEconomiaCommittente()); attributes.put("inizioLavoriContestualeOpera", @@ -755,6 +757,13 @@ public class DettPraticaWrapper implements DettPratica, setCodiceFiscalePrincipaleGeologo(codiceFiscalePrincipaleGeologo); } + String codiceFiscalePrincipaleArcheologo = (String)attributes.get( + "codiceFiscalePrincipaleArcheologo"); + + if (codiceFiscalePrincipaleArcheologo != null) { + setCodiceFiscalePrincipaleArcheologo(codiceFiscalePrincipaleArcheologo); + } + Boolean lavoriInEconomiaCommittente = (Boolean)attributes.get( "lavoriInEconomiaCommittente"); @@ -3378,6 +3387,27 @@ public class DettPraticaWrapper implements DettPratica, _dettPratica.setCodiceFiscalePrincipaleGeologo(codiceFiscalePrincipaleGeologo); } + /** + * Returns the codice fiscale principale archeologo of this dett pratica. + * + * @return the codice fiscale principale archeologo of this dett pratica + */ + @Override + public java.lang.String getCodiceFiscalePrincipaleArcheologo() { + return _dettPratica.getCodiceFiscalePrincipaleArcheologo(); + } + + /** + * Sets the codice fiscale principale archeologo of this dett pratica. + * + * @param codiceFiscalePrincipaleArcheologo the codice fiscale principale archeologo of this dett pratica + */ + @Override + public void setCodiceFiscalePrincipaleArcheologo( + java.lang.String codiceFiscalePrincipaleArcheologo) { + _dettPratica.setCodiceFiscalePrincipaleArcheologo(codiceFiscalePrincipaleArcheologo); + } + /** * Returns the lavori in economia committente of this dett pratica. * diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalService.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalService.java index 7dcac012..e41e4601 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalService.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalService.java @@ -317,28 +317,6 @@ public interface IntPraticaLocalService extends BaseLocalService, java.lang.String[] parameterTypes, java.lang.Object[] arguments) throws java.lang.Throwable; - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. Modificata secondo il D.D.G. 334/2020 - * - * @author Manifattura Web Group per Regione Siciliana. - */ - public java.util.Map> findSorteggiabiliNew( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException; - - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. - * - * @author Manifattura Web Group per Regione Siciliana. - */ - public java.util.Map> findSorteggiabili( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException; - public it.tref.liferay.portos.bo.model.IntPratica addIntPratica( long territorioId, java.lang.String tipoProcedura, com.liferay.portal.service.ServiceContext serviceContext) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceClp.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceClp.java index ede69503..6e2ef282 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceClp.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceClp.java @@ -131,337 +131,329 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { _methodParameterTypes21 = new String[] { "java.lang.String" }; - _methodName23 = "findSorteggiabiliNew"; + _methodName23 = "addIntPratica"; - _methodParameterTypes23 = new String[] { "long", "java.util.Date" }; - - _methodName24 = "findSorteggiabili"; - - _methodParameterTypes24 = new String[] { "long", "java.util.Date" }; - - _methodName25 = "addIntPratica"; - - _methodParameterTypes25 = new String[] { + _methodParameterTypes23 = new String[] { "long", "java.lang.String", "com.liferay.portal.service.ServiceContext" }; - _methodName26 = "addIntPratica"; + _methodName24 = "addIntPratica"; - _methodParameterTypes26 = new String[] { + _methodParameterTypes24 = new String[] { "long", "java.lang.String", "java.lang.String", "long", "java.lang.String", "java.util.Date", "java.lang.String", "java.lang.String", "boolean", "int", "java.util.Date", "long", "com.liferay.portal.service.ServiceContext" }; - _methodName27 = "svuotaDatabase2"; + _methodName25 = "svuotaDatabase2"; - _methodParameterTypes27 = new String[] { + _methodParameterTypes25 = new String[] { "com.liferay.portal.service.ServiceContext" }; - _methodName28 = "clearDb"; + _methodName26 = "clearDb"; - _methodParameterTypes28 = new String[] { }; + _methodParameterTypes26 = new String[] { }; - _methodName29 = "deleteIntPratica"; + _methodName27 = "deleteIntPratica"; - _methodParameterTypes29 = new String[] { + _methodParameterTypes27 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "boolean" }; - _methodName30 = "cloneIntPratica"; + _methodName28 = "cloneIntPratica"; - _methodParameterTypes30 = new String[] { + _methodParameterTypes28 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName31 = "updateDelegati"; + _methodName29 = "updateDelegati"; - _methodParameterTypes31 = new String[] { + _methodParameterTypes29 = new String[] { "long", "java.lang.String", "java.lang.String", "boolean" }; - _methodName32 = "findFascicoliNotProgetto"; + _methodName30 = "findFascicoliNotProgetto"; - _methodParameterTypes32 = new String[] { "int", "int" }; + _methodParameterTypes30 = new String[] { "int", "int" }; - _methodName33 = "countFascicoliNotProgetto"; + _methodName31 = "countFascicoliNotProgetto"; - _methodParameterTypes33 = new String[] { }; + _methodParameterTypes31 = new String[] { }; - _methodName34 = "addNumeroProgetto"; + _methodName32 = "addNumeroProgetto"; - _methodParameterTypes34 = new String[] { "long" }; + _methodParameterTypes32 = new String[] { "long" }; - _methodName35 = "sospendiPratica"; + _methodName33 = "sospendiPratica"; - _methodParameterTypes35 = new String[] { "long", "boolean" }; + _methodParameterTypes33 = new String[] { "long", "boolean" }; - _methodName36 = "cambiaTitolare"; + _methodName34 = "cambiaTitolare"; - _methodParameterTypes36 = new String[] { + _methodParameterTypes34 = new String[] { "long", "long", "com.liferay.portal.service.ServiceContext" }; - _methodName37 = "updateStatoPratica"; + _methodName35 = "updateStatoPratica"; - _methodParameterTypes37 = new String[] { + _methodParameterTypes35 = new String[] { "long", "long", "java.lang.String" }; - _methodName38 = "updateIntPraticaSorteggio"; + _methodName36 = "updateIntPraticaSorteggio"; - _methodParameterTypes38 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes36 = new String[] { "long", "java.util.Date" }; - _methodName39 = "updateIntPraticaSorteggio"; + _methodName37 = "updateIntPraticaSorteggio"; - _methodParameterTypes39 = new String[] { + _methodParameterTypes37 = new String[] { "long", "java.util.Date", "java.lang.String" }; - _methodName40 = "findByC_UserId"; + _methodName38 = "findByC_UserId"; - _methodParameterTypes40 = new String[] { "long", "long", "int", "int" }; + _methodParameterTypes38 = new String[] { "long", "long", "int", "int" }; - _methodName41 = "countByC_UserId"; + _methodName39 = "countByC_UserId"; - _methodParameterTypes41 = new String[] { "long", "long" }; + _methodParameterTypes39 = new String[] { "long", "long" }; - _methodName42 = "fetchByOldIntPraticaId"; + _methodName40 = "fetchByOldIntPraticaId"; - _methodParameterTypes42 = new String[] { "long" }; + _methodParameterTypes40 = new String[] { "long" }; - _methodName43 = "updateStatus"; + _methodName41 = "updateStatus"; - _methodParameterTypes43 = new String[] { "long", "int" }; + _methodParameterTypes41 = new String[] { "long", "int" }; - _methodName44 = "findByCompanyIdSoggettoProgetti"; + _methodName42 = "findByCompanyIdSoggettoProgetti"; - _methodParameterTypes44 = new String[] { "long", "long" }; + _methodParameterTypes42 = new String[] { "long", "long" }; - _methodName45 = "countByCompanyIdSoggettoProgetti"; + _methodName43 = "countByCompanyIdSoggettoProgetti"; - _methodParameterTypes45 = new String[] { "long", "long" }; + _methodParameterTypes43 = new String[] { "long", "long" }; - _methodName46 = "findByCompanyIdSoggettoArchivio"; + _methodName44 = "findByCompanyIdSoggettoArchivio"; - _methodParameterTypes46 = new String[] { "long", "long" }; + _methodParameterTypes44 = new String[] { "long", "long" }; - _methodName47 = "countByCompanyIdSoggettoArchivio"; + _methodName45 = "countByCompanyIdSoggettoArchivio"; - _methodParameterTypes47 = new String[] { "long", "long" }; + _methodParameterTypes45 = new String[] { "long", "long" }; - _methodName48 = "findByCompanyIdSoggettoAltriProgetti"; + _methodName46 = "findByCompanyIdSoggettoAltriProgetti"; - _methodParameterTypes48 = new String[] { "long", "long", "int", "int" }; + _methodParameterTypes46 = new String[] { "long", "long", "int", "int" }; - _methodName49 = "countByCompanyIdSoggettoAltriProgetti"; + _methodName47 = "countByCompanyIdSoggettoAltriProgetti"; - _methodParameterTypes49 = new String[] { "long", "long" }; + _methodParameterTypes47 = new String[] { "long", "long" }; - _methodName50 = "findByCanAddFineLavori"; + _methodName48 = "findByCanAddFineLavori"; - _methodParameterTypes50 = new String[] { + _methodParameterTypes48 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName51 = "countByCanAddFineLavori"; + _methodName49 = "countByCanAddFineLavori"; - _methodParameterTypes51 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes49 = new String[] { "long", "java.lang.String" }; - _methodName52 = "findByCanAddCollaudo"; + _methodName50 = "findByCanAddCollaudo"; - _methodParameterTypes52 = new String[] { + _methodParameterTypes50 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName53 = "countByCanAddCollaudo"; + _methodName51 = "countByCanAddCollaudo"; - _methodParameterTypes53 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes51 = new String[] { "long", "java.lang.String" }; - _methodName54 = "search"; + _methodName52 = "search"; - _methodParameterTypes54 = new String[] { "java.util.List", "int", "int" }; + _methodParameterTypes52 = new String[] { "java.util.List", "int", "int" }; - _methodName55 = "countSearch"; + _methodName53 = "countSearch"; - _methodParameterTypes55 = new String[] { "java.util.List" }; + _methodParameterTypes53 = new String[] { "java.util.List" }; - _methodName56 = "searchWithIntPraticaId"; + _methodName54 = "searchWithIntPraticaId"; - _methodParameterTypes56 = new String[] { + _methodParameterTypes54 = new String[] { "java.util.List", "long", "int", "int" }; - _methodName57 = "countSearchWithIntPraticaId"; + _methodName55 = "countSearchWithIntPraticaId"; - _methodParameterTypes57 = new String[] { "java.util.List", "long" }; + _methodParameterTypes55 = new String[] { "java.util.List", "long" }; - _methodName58 = "allegaFileAnnullamento"; + _methodName56 = "allegaFileAnnullamento"; - _methodParameterTypes58 = new String[] { + _methodParameterTypes56 = new String[] { "long", "byte[][]", "java.lang.String", "java.lang.String", "com.liferay.portal.service.ServiceContext" }; - _methodName59 = "generateFileAnnullamento"; + _methodName57 = "generateFileAnnullamento"; - _methodParameterTypes59 = new String[] { + _methodParameterTypes57 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName60 = "deleteFileAnnullamento"; + _methodName58 = "deleteFileAnnullamento"; - _methodParameterTypes60 = new String[] { "long" }; + _methodParameterTypes58 = new String[] { "long" }; - _methodName61 = "completeAnnullamento"; + _methodName59 = "completeAnnullamento"; - _methodParameterTypes61 = new String[] { "long" }; + _methodParameterTypes59 = new String[] { "long" }; - _methodName62 = "cambiaIstruttore"; + _methodName60 = "cambiaIstruttore"; - _methodParameterTypes62 = new String[] { "long", "long", "long" }; + _methodParameterTypes60 = new String[] { "long", "long", "long" }; - _methodName63 = "countCaricoLavoroCF"; + _methodName61 = "countCaricoLavoroCF"; - _methodParameterTypes63 = new String[] { + _methodParameterTypes61 = new String[] { "long", "java.lang.String", "java.lang.Boolean", "java.lang.Long[][]" }; - _methodName64 = "countCaricoLavoroIstruttore"; + _methodName62 = "countCaricoLavoroIstruttore"; - _methodParameterTypes64 = new String[] { + _methodParameterTypes62 = new String[] { "long", "java.lang.String", "java.lang.Boolean" }; - _methodName65 = "generateReportPratica"; + _methodName63 = "generateReportPratica"; - _methodParameterTypes65 = new String[] { + _methodParameterTypes63 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName66 = "updateModifiedDate"; + _methodName64 = "updateModifiedDate"; - _methodParameterTypes66 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes64 = new String[] { "long", "java.util.Date" }; - _methodName67 = "countAutorizzazione"; + _methodName65 = "countAutorizzazione"; - _methodParameterTypes67 = new String[] { + _methodParameterTypes65 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName68 = "countSanatorie"; + _methodName66 = "countSanatorie"; - _methodParameterTypes68 = new String[] { + _methodParameterTypes66 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName69 = "countOpereMinoreImportanza"; + _methodName67 = "countOpereMinoreImportanza"; - _methodParameterTypes69 = new String[] { + _methodParameterTypes67 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName70 = "countDeposito"; + _methodName68 = "countDeposito"; - _methodParameterTypes70 = new String[] { + _methodParameterTypes68 = new String[] { "java.util.Date", "java.util.Date", "long", "boolean" }; - _methodName71 = "countVidimate"; + _methodName69 = "countVidimate"; - _methodParameterTypes71 = new String[] { + _methodParameterTypes69 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName72 = "countControllo"; + _methodName70 = "countControllo"; - _methodParameterTypes72 = new String[] { + _methodParameterTypes70 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName73 = "importaVecchiFilesFascicolo"; + _methodName71 = "importaVecchiFilesFascicolo"; - _methodParameterTypes73 = new String[] { "long", "int", "int" }; + _methodParameterTypes71 = new String[] { "long", "int", "int" }; - _methodName74 = "findIntPraticaNotExist"; + _methodName72 = "findIntPraticaNotExist"; - _methodParameterTypes74 = new String[] { }; + _methodParameterTypes72 = new String[] { }; - _methodName75 = "riparaWorkflow"; + _methodName73 = "riparaWorkflow"; - _methodParameterTypes75 = new String[] { }; + _methodParameterTypes73 = new String[] { }; - _methodName76 = "reIndexFascicolo"; + _methodName74 = "reIndexFascicolo"; - _methodParameterTypes76 = new String[] { + _methodParameterTypes74 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName77 = "reIndexFasciolo"; + _methodName75 = "reIndexFasciolo"; - _methodParameterTypes77 = new String[] { "java.lang.String", "long" }; + _methodParameterTypes75 = new String[] { "java.lang.String", "long" }; - _methodName78 = "reIndexFasciolo"; + _methodName76 = "reIndexFasciolo"; - _methodParameterTypes78 = new String[] { "long", "long" }; + _methodParameterTypes76 = new String[] { "long", "long" }; - _methodName79 = "trovaDoppioni"; + _methodName77 = "trovaDoppioni"; - _methodParameterTypes79 = new String[] { }; + _methodParameterTypes77 = new String[] { }; - _methodName80 = "findByNumeroProgetto"; + _methodName78 = "findByNumeroProgetto"; - _methodParameterTypes80 = new String[] { "java.lang.String" }; + _methodParameterTypes78 = new String[] { "java.lang.String" }; - _methodName81 = "findByTerritorioId"; + _methodName79 = "findByTerritorioId"; - _methodParameterTypes81 = new String[] { "long" }; + _methodParameterTypes79 = new String[] { "long" }; - _methodName82 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; + _methodName80 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; - _methodParameterTypes82 = new String[] { + _methodParameterTypes80 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName83 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; + _methodName81 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; - _methodParameterTypes83 = new String[] { + _methodParameterTypes81 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName84 = "reportPraticheVidimate"; + _methodName82 = "reportPraticheVidimate"; - _methodParameterTypes84 = new String[] { + _methodParameterTypes82 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName85 = "reportPraticheVidimateCalcolaDataSorteggio"; + _methodName83 = "reportPraticheVidimateCalcolaDataSorteggio"; - _methodParameterTypes85 = new String[] { + _methodParameterTypes83 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName86 = "countIngressiAutorizzazioni"; + _methodName84 = "countIngressiAutorizzazioni"; - _methodParameterTypes86 = new String[] { + _methodParameterTypes84 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName87 = "countIngressiDepositi"; + _methodName85 = "countIngressiDepositi"; - _methodParameterTypes87 = new String[] { + _methodParameterTypes85 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName88 = "countIngressiCO"; + _methodName86 = "countIngressiCO"; - _methodParameterTypes88 = new String[] { + _methodParameterTypes86 = new String[] { "java.util.Date", "java.util.Date", "long" }; } @@ -1166,84 +1158,6 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { throw new UnsupportedOperationException(); } - @Override - public java.util.Map> findSorteggiabiliNew( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException { - Object returnObj = null; - - try { - returnObj = _invokableLocalService.invokeMethod(_methodName23, - _methodParameterTypes23, - new Object[] { - companyId, - - ClpSerializer.translateInput(dtSorteggio) - }); - } - catch (Throwable t) { - t = ClpSerializer.translateThrowable(t); - - if (t instanceof com.liferay.portal.kernel.exception.PortalException) { - throw (com.liferay.portal.kernel.exception.PortalException)t; - } - - if (t instanceof com.liferay.portal.kernel.exception.SystemException) { - throw (com.liferay.portal.kernel.exception.SystemException)t; - } - - if (t instanceof RuntimeException) { - throw (RuntimeException)t; - } - else { - throw new RuntimeException(t.getClass().getName() + - " is not a valid exception"); - } - } - - return (java.util.Map>)ClpSerializer.translateOutput(returnObj); - } - - @Override - public java.util.Map> findSorteggiabili( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException { - Object returnObj = null; - - try { - returnObj = _invokableLocalService.invokeMethod(_methodName24, - _methodParameterTypes24, - new Object[] { - companyId, - - ClpSerializer.translateInput(dtSorteggio) - }); - } - catch (Throwable t) { - t = ClpSerializer.translateThrowable(t); - - if (t instanceof com.liferay.portal.kernel.exception.PortalException) { - throw (com.liferay.portal.kernel.exception.PortalException)t; - } - - if (t instanceof com.liferay.portal.kernel.exception.SystemException) { - throw (com.liferay.portal.kernel.exception.SystemException)t; - } - - if (t instanceof RuntimeException) { - throw (RuntimeException)t; - } - else { - throw new RuntimeException(t.getClass().getName() + - " is not a valid exception"); - } - } - - return (java.util.Map>)ClpSerializer.translateOutput(returnObj); - } - @Override public it.tref.liferay.portos.bo.model.IntPratica addIntPratica( long territorioId, java.lang.String tipoProcedura, @@ -1253,8 +1167,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName25, - _methodParameterTypes25, + returnObj = _invokableLocalService.invokeMethod(_methodName23, + _methodParameterTypes23, new Object[] { territorioId, @@ -1299,8 +1213,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName26, - _methodParameterTypes26, + returnObj = _invokableLocalService.invokeMethod(_methodName24, + _methodParameterTypes24, new Object[] { userId, @@ -1358,8 +1272,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName27, - _methodParameterTypes27, + returnObj = _invokableLocalService.invokeMethod(_methodName25, + _methodParameterTypes25, new Object[] { ClpSerializer.translateInput(serviceContext) }); } catch (Throwable t) { @@ -1380,8 +1294,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { @Override public void clearDb() throws java.lang.Exception { try { - _invokableLocalService.invokeMethod(_methodName28, - _methodParameterTypes28, new Object[] { }); + _invokableLocalService.invokeMethod(_methodName26, + _methodParameterTypes26, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1408,8 +1322,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName29, - _methodParameterTypes29, + returnObj = _invokableLocalService.invokeMethod(_methodName27, + _methodParameterTypes27, new Object[] { ClpSerializer.translateInput(intPratica), @@ -1448,8 +1362,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName30, - _methodParameterTypes30, + returnObj = _invokableLocalService.invokeMethod(_methodName28, + _methodParameterTypes28, new Object[] { intPraticaId, @@ -1489,8 +1403,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName31, - _methodParameterTypes31, + returnObj = _invokableLocalService.invokeMethod(_methodName29, + _methodParameterTypes29, new Object[] { intPraticaId, @@ -1532,8 +1446,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName32, - _methodParameterTypes32, new Object[] { start, end }); + returnObj = _invokableLocalService.invokeMethod(_methodName30, + _methodParameterTypes30, new Object[] { start, end }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1560,8 +1474,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName33, - _methodParameterTypes33, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName31, + _methodParameterTypes31, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1590,8 +1504,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName34, - _methodParameterTypes34, new Object[] { intPraticaId }); + returnObj = _invokableLocalService.invokeMethod(_methodName32, + _methodParameterTypes32, new Object[] { intPraticaId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1624,8 +1538,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName35, - _methodParameterTypes35, + returnObj = _invokableLocalService.invokeMethod(_methodName33, + _methodParameterTypes33, new Object[] { intPraticaId, sospesa }); } catch (Throwable t) { @@ -1660,8 +1574,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName36, - _methodParameterTypes36, + returnObj = _invokableLocalService.invokeMethod(_methodName34, + _methodParameterTypes34, new Object[] { intPraticaId, @@ -1701,8 +1615,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName37, - _methodParameterTypes37, + returnObj = _invokableLocalService.invokeMethod(_methodName35, + _methodParameterTypes35, new Object[] { intPraticaId, @@ -1741,8 +1655,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName38, - _methodParameterTypes38, + returnObj = _invokableLocalService.invokeMethod(_methodName36, + _methodParameterTypes36, new Object[] { intPraticaId, @@ -1776,8 +1690,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName39, - _methodParameterTypes39, + returnObj = _invokableLocalService.invokeMethod(_methodName37, + _methodParameterTypes37, new Object[] { intPraticaId, @@ -1812,8 +1726,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName40, - _methodParameterTypes40, + returnObj = _invokableLocalService.invokeMethod(_methodName38, + _methodParameterTypes38, new Object[] { companyId, userId, start, end }); } catch (Throwable t) { @@ -1841,8 +1755,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName41, - _methodParameterTypes41, new Object[] { companyId, userId }); + returnObj = _invokableLocalService.invokeMethod(_methodName39, + _methodParameterTypes39, new Object[] { companyId, userId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1870,8 +1784,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName42, - _methodParameterTypes42, new Object[] { oldIntPraticaId }); + returnObj = _invokableLocalService.invokeMethod(_methodName40, + _methodParameterTypes40, new Object[] { oldIntPraticaId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1897,8 +1811,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { try { - _invokableLocalService.invokeMethod(_methodName43, - _methodParameterTypes43, new Object[] { intPraticaId, status }); + _invokableLocalService.invokeMethod(_methodName41, + _methodParameterTypes41, new Object[] { intPraticaId, status }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1929,8 +1843,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName44, - _methodParameterTypes44, + returnObj = _invokableLocalService.invokeMethod(_methodName42, + _methodParameterTypes42, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -1963,8 +1877,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName45, - _methodParameterTypes45, + returnObj = _invokableLocalService.invokeMethod(_methodName43, + _methodParameterTypes43, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -1998,8 +1912,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName46, - _methodParameterTypes46, + returnObj = _invokableLocalService.invokeMethod(_methodName44, + _methodParameterTypes44, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -2032,8 +1946,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName47, - _methodParameterTypes47, + returnObj = _invokableLocalService.invokeMethod(_methodName45, + _methodParameterTypes45, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -2067,8 +1981,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName48, - _methodParameterTypes48, + returnObj = _invokableLocalService.invokeMethod(_methodName46, + _methodParameterTypes46, new Object[] { companyId, soggettoId, start, end }); } catch (Throwable t) { @@ -2102,8 +2016,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName49, - _methodParameterTypes49, + returnObj = _invokableLocalService.invokeMethod(_methodName47, + _methodParameterTypes47, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -2137,8 +2051,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName50, - _methodParameterTypes50, + returnObj = _invokableLocalService.invokeMethod(_methodName48, + _methodParameterTypes48, new Object[] { companyId, @@ -2180,8 +2094,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName51, - _methodParameterTypes51, + returnObj = _invokableLocalService.invokeMethod(_methodName49, + _methodParameterTypes49, new Object[] { companyId, @@ -2219,8 +2133,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName52, - _methodParameterTypes52, + returnObj = _invokableLocalService.invokeMethod(_methodName50, + _methodParameterTypes50, new Object[] { companyId, @@ -2262,8 +2176,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName53, - _methodParameterTypes53, + returnObj = _invokableLocalService.invokeMethod(_methodName51, + _methodParameterTypes51, new Object[] { companyId, @@ -2300,8 +2214,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName54, - _methodParameterTypes54, + returnObj = _invokableLocalService.invokeMethod(_methodName52, + _methodParameterTypes52, new Object[] { ClpSerializer.translateInput(groupIds), @@ -2335,8 +2249,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName55, - _methodParameterTypes55, + returnObj = _invokableLocalService.invokeMethod(_methodName53, + _methodParameterTypes53, new Object[] { ClpSerializer.translateInput(groupIds) }); } catch (Throwable t) { @@ -2365,8 +2279,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName56, - _methodParameterTypes56, + returnObj = _invokableLocalService.invokeMethod(_methodName54, + _methodParameterTypes54, new Object[] { ClpSerializer.translateInput(groupIds), @@ -2403,8 +2317,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName57, - _methodParameterTypes57, + returnObj = _invokableLocalService.invokeMethod(_methodName55, + _methodParameterTypes55, new Object[] { ClpSerializer.translateInput(groupIds), @@ -2441,8 +2355,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName58, - _methodParameterTypes58, + returnObj = _invokableLocalService.invokeMethod(_methodName56, + _methodParameterTypes56, new Object[] { intPraticaId, @@ -2492,8 +2406,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName59, - _methodParameterTypes59, + returnObj = _invokableLocalService.invokeMethod(_methodName57, + _methodParameterTypes57, new Object[] { intPraticaId, @@ -2532,8 +2446,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { try { - _invokableLocalService.invokeMethod(_methodName60, - _methodParameterTypes60, + _invokableLocalService.invokeMethod(_methodName58, + _methodParameterTypes58, new Object[] { docPraticaAnnullamentoId }); } catch (Throwable t) { @@ -2562,8 +2476,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { try { - _invokableLocalService.invokeMethod(_methodName61, - _methodParameterTypes61, new Object[] { intPraticaId }); + _invokableLocalService.invokeMethod(_methodName59, + _methodParameterTypes59, new Object[] { intPraticaId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -2592,8 +2506,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { try { - _invokableLocalService.invokeMethod(_methodName62, - _methodParameterTypes62, + _invokableLocalService.invokeMethod(_methodName60, + _methodParameterTypes60, new Object[] { intPraticaId, controlloPraticaId, istruttoreId }); } catch (Throwable t) { @@ -2626,8 +2540,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName63, - _methodParameterTypes63, + returnObj = _invokableLocalService.invokeMethod(_methodName61, + _methodParameterTypes61, new Object[] { ispettoreId, @@ -2668,8 +2582,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName64, - _methodParameterTypes64, + returnObj = _invokableLocalService.invokeMethod(_methodName62, + _methodParameterTypes62, new Object[] { ispettoreId, @@ -2705,8 +2619,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName65, - _methodParameterTypes65, + returnObj = _invokableLocalService.invokeMethod(_methodName63, + _methodParameterTypes63, new Object[] { ClpSerializer.translateInput(intPratica), @@ -2744,8 +2658,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName66, - _methodParameterTypes66, + returnObj = _invokableLocalService.invokeMethod(_methodName64, + _methodParameterTypes64, new Object[] { intPraticaId, @@ -2782,8 +2696,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName67, - _methodParameterTypes67, + returnObj = _invokableLocalService.invokeMethod(_methodName65, + _methodParameterTypes65, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2818,8 +2732,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName68, - _methodParameterTypes68, + returnObj = _invokableLocalService.invokeMethod(_methodName66, + _methodParameterTypes66, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2854,8 +2768,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName69, - _methodParameterTypes69, + returnObj = _invokableLocalService.invokeMethod(_methodName67, + _methodParameterTypes67, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2890,8 +2804,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName70, - _methodParameterTypes70, + returnObj = _invokableLocalService.invokeMethod(_methodName68, + _methodParameterTypes68, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2928,8 +2842,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName71, - _methodParameterTypes71, + returnObj = _invokableLocalService.invokeMethod(_methodName69, + _methodParameterTypes69, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2969,8 +2883,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName72, - _methodParameterTypes72, + returnObj = _invokableLocalService.invokeMethod(_methodName70, + _methodParameterTypes70, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3009,8 +2923,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName73, - _methodParameterTypes73, + returnObj = _invokableLocalService.invokeMethod(_methodName71, + _methodParameterTypes71, new Object[] { companyId, start, end }); } catch (Throwable t) { @@ -3038,8 +2952,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName74, - _methodParameterTypes74, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName72, + _methodParameterTypes72, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3066,8 +2980,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName75, - _methodParameterTypes75, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName73, + _methodParameterTypes73, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3092,8 +3006,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { public void reIndexFascicolo( it.tref.liferay.portos.bo.model.IntPratica intPratica, long companyId) { try { - _invokableLocalService.invokeMethod(_methodName76, - _methodParameterTypes76, + _invokableLocalService.invokeMethod(_methodName74, + _methodParameterTypes74, new Object[] { ClpSerializer.translateInput(intPratica), companyId }); } catch (Throwable t) { @@ -3113,8 +3027,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { public void reIndexFasciolo(java.lang.String numeroProgetto, long companyId) throws com.liferay.portal.kernel.exception.SystemException { try { - _invokableLocalService.invokeMethod(_methodName77, - _methodParameterTypes77, + _invokableLocalService.invokeMethod(_methodName75, + _methodParameterTypes75, new Object[] { ClpSerializer.translateInput(numeroProgetto), @@ -3143,8 +3057,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { try { - _invokableLocalService.invokeMethod(_methodName78, - _methodParameterTypes78, + _invokableLocalService.invokeMethod(_methodName76, + _methodParameterTypes76, new Object[] { intPraticaId, companyId }); } catch (Throwable t) { @@ -3174,8 +3088,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName79, - _methodParameterTypes79, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName77, + _methodParameterTypes77, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3203,8 +3117,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName80, - _methodParameterTypes80, + returnObj = _invokableLocalService.invokeMethod(_methodName78, + _methodParameterTypes78, new Object[] { ClpSerializer.translateInput(numeroProgetto) }); } catch (Throwable t) { @@ -3233,8 +3147,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName81, - _methodParameterTypes81, new Object[] { territorioId }); + returnObj = _invokableLocalService.invokeMethod(_methodName79, + _methodParameterTypes79, new Object[] { territorioId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3263,8 +3177,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName82, - _methodParameterTypes82, + returnObj = _invokableLocalService.invokeMethod(_methodName80, + _methodParameterTypes80, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3301,8 +3215,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName83, - _methodParameterTypes83, + returnObj = _invokableLocalService.invokeMethod(_methodName81, + _methodParameterTypes81, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3338,8 +3252,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName84, - _methodParameterTypes84, + returnObj = _invokableLocalService.invokeMethod(_methodName82, + _methodParameterTypes82, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3376,8 +3290,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName85, - _methodParameterTypes85, + returnObj = _invokableLocalService.invokeMethod(_methodName83, + _methodParameterTypes83, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3412,8 +3326,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName86, - _methodParameterTypes86, + returnObj = _invokableLocalService.invokeMethod(_methodName84, + _methodParameterTypes84, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3448,8 +3362,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName87, - _methodParameterTypes87, + returnObj = _invokableLocalService.invokeMethod(_methodName85, + _methodParameterTypes85, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3484,8 +3398,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName88, - _methodParameterTypes88, + returnObj = _invokableLocalService.invokeMethod(_methodName86, + _methodParameterTypes86, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3686,8 +3600,4 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { private String[] _methodParameterTypes85; private String _methodName86; private String[] _methodParameterTypes86; - private String _methodName87; - private String[] _methodParameterTypes87; - private String _methodName88; - private String[] _methodParameterTypes88; } \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceUtil.java index c37ab4d7..4cd8a82e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceUtil.java @@ -342,32 +342,6 @@ public class IntPraticaLocalServiceUtil { return getService().invokeMethod(name, parameterTypes, arguments); } - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. Modificata secondo il D.D.G. 334/2020 - * - * @author Manifattura Web Group per Regione Siciliana. - */ - public static java.util.Map> findSorteggiabiliNew( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException { - return getService().findSorteggiabiliNew(companyId, dtSorteggio); - } - - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. - * - * @author Manifattura Web Group per Regione Siciliana. - */ - public static java.util.Map> findSorteggiabili( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException { - return getService().findSorteggiabili(companyId, dtSorteggio); - } - public static it.tref.liferay.portos.bo.model.IntPratica addIntPratica( long territorioId, java.lang.String tipoProcedura, com.liferay.portal.service.ServiceContext serviceContext) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceWrapper.java index 61d4b8b6..6795515a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/IntPraticaLocalServiceWrapper.java @@ -362,35 +362,6 @@ public class IntPraticaLocalServiceWrapper implements IntPraticaLocalService, arguments); } - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. Modificata secondo il D.D.G. 334/2020 - * - * @author Manifattura Web Group per Regione Siciliana. - */ - @Override - public java.util.Map> findSorteggiabiliNew( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException { - return _intPraticaLocalService.findSorteggiabiliNew(companyId, - dtSorteggio); - } - - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. - * - * @author Manifattura Web Group per Regione Siciliana. - */ - @Override - public java.util.Map> findSorteggiabili( - long companyId, java.util.Date dtSorteggio) - throws com.liferay.portal.kernel.exception.PortalException, - com.liferay.portal.kernel.exception.SystemException { - return _intPraticaLocalService.findSorteggiabili(companyId, dtSorteggio); - } - @Override public it.tref.liferay.portos.bo.model.IntPratica addIntPratica( long territorioId, java.lang.String tipoProcedura, diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AzioniPraticheUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AzioniPraticheUtil.java index c06ec852..d03e75bc 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AzioniPraticheUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AzioniPraticheUtil.java @@ -275,11 +275,6 @@ public class AzioniPraticheUtil { return intPratica.getTipoPratica().equalsIgnoreCase(Constants.TIPO_PRATICA_AUTORIZZAZIONE); } - public static boolean isSorteggio(long intPraticaId) throws PortalException, SystemException { - IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); - return intPratica.getTipoProcedura().equalsIgnoreCase(Constants.PROCEDURA_B1); - } - //ADT BUG ID = 7 public static boolean canAddVariazioneSoggetti(long intPraticaId) throws PortalException, SystemException{ IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DocumentiPraticaUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DocumentiPraticaUtil.java index b4037ce3..ea8c97b5 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DocumentiPraticaUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DocumentiPraticaUtil.java @@ -71,26 +71,12 @@ public class DocumentiPraticaUtil { public static List getDocObbligatori() { List docObbligatori = new ArrayList(); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A04); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A08); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A10); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A13); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A15); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A17); - docObbligatori.add(TIPOLOGIA_ALLEGATO_DELEGA); return docObbligatori; } public static List getDocObbligatoriCheck() { List docObbligatoriCheck = new ArrayList(); - // docObbligatoriCheck.add(TIPOLOGIA_ALLEGATO_A05); - docObbligatoriCheck.add(TIPOLOGIA_ALLEGATO_A09); - return docObbligatoriCheck; - } public static List getDocDomanda() { @@ -131,17 +117,11 @@ public class DocumentiPraticaUtil { switch (intPratica.getTipoProcedura()) { case Constants.PROCEDURA_P1: - docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - break; case Constants.PROCEDURA_P2: + case Constants.PROCEDURA_P3: docObbligatori.add(TIPOLOGIA_ALLEGATO_A01); docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - break; - case Constants.PROCEDURA_P3: break; case Constants.PROCEDURA_P4: case Constants.PROCEDURA_P5: @@ -151,36 +131,38 @@ public class DocumentiPraticaUtil { docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A10); + if (dettPratica.getTcInterventoOpereEscavazione()) { + docObbligatori.add(TIPOLOGIA_ALLEGATO_A10); + } docObbligatori.add(TIPOLOGIA_ALLEGATO_A11); docObbligatori.add(TIPOLOGIA_ALLEGATO_A12); + if (dettPratica.getTcViarch()) { + docObbligatori.add(TIPOLOGIA_ALLEGATO_A24); + } + if (dettPratica.getTcOperaA25()) { + docObbligatori.add(TIPOLOGIA_ALLEGATO_A25); + } + if (dettPratica.getTcCostruzioniEsistenti() || dettPratica.getTcNuovaCostruzionePertinenza()) { + docObbligatori.add(TIPOLOGIA_ALLEGATO_A26); + } + if (dettPratica.getNoCollaudo()) { + docObbligatori.add(TIPOLOGIA_ALLEGATO_A27); + } break; case Constants.PROCEDURA_P8: docObbligatori.add(TIPOLOGIA_ALLEGATO_A01); docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A12); docObbligatori.add(TIPOLOGIA_ALLEGATO_A15); - break; - case Constants.PROCEDURA_P9: - docObbligatori.add(TIPOLOGIA_ALLEGATO_A01); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A12); docObbligatori.add(TIPOLOGIA_ALLEGATO_A16); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A17); docObbligatori.add(TIPOLOGIA_ALLEGATO_A18); docObbligatori.add(TIPOLOGIA_ALLEGATO_A19); - docObbligatori.add(TIPOLOGIA_ALLEGATO_A20); docObbligatori.add(TIPOLOGIA_ALLEGATO_A21); break; + case Constants.PROCEDURA_P9: case Constants.PROCEDURA_P10: - docObbligatori.add(TIPOLOGIA_ALLEGATO_A12); break; } - return docObbligatori; } @@ -208,7 +190,6 @@ public class DocumentiPraticaUtil { doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_ALTRO); doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_VARIE); return doc; - } public static List getIndaginiGeologiche() { @@ -230,22 +211,11 @@ public class DocumentiPraticaUtil { doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_ARCHIVIO); doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_ALTRO); return doc; - } public static List getDocUnivoci() { List doc = new ArrayList(); - // doc.add(TIPOLOGIA_ALLEGATO_A06); - // doc.add(TIPOLOGIA_ALLEGATO_A07); - // doc.add(TIPOLOGIA_ALLEGATO_A14); - - // doc.add(TIPOLOGIA_ALLEGATO_A00); - doc.add(TIPOLOGIA_ALLEGATO_A01); - doc.add(TIPOLOGIA_ALLEGATO_A11); - doc.add(TIPOLOGIA_ALLEGATO_A12); - doc.add(TIPOLOGIA_ALLEGATO_A13); - doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_CAROTAGGIO); doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_LABORATORIO); doc.add(TIPOLOGIA_ALLEGATO_GEOLOGO_CPT); @@ -277,7 +247,6 @@ public class DocumentiPraticaUtil { doc.add(TIPOLOGIA_DOCUMENTAZIONE_ALTRA_FINE_LAVORI); return doc; - } public static List getDocObbligatoriFineLavori() { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/SoggettiUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/SoggettiUtil.java index 98d72faa..c19068ab 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/SoggettiUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/SoggettiUtil.java @@ -151,6 +151,9 @@ public class SoggettiUtil { case TipoSoggettoUtil.DITTA: return codiceFiscale.equalsIgnoreCase(dettPratica.getCodiceFiscalePrincipaleDitta()); + + case TipoSoggettoUtil.ARCHEOLOGO: + return codiceFiscale.equalsIgnoreCase(dettPratica.getCodiceFiscalePrincipaleArcheologo()); default: return false; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/ValidazionePraticaUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/ValidazionePraticaUtil.java index d2a16579..a5c914fd 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/ValidazionePraticaUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/ValidazionePraticaUtil.java @@ -32,10 +32,13 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.StringUtils; + import com.liferay.portal.kernel.dao.orm.QueryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; @@ -52,7 +55,9 @@ import com.liferay.portal.kernel.util.UniqueList; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.workflow.WorkflowConstants; import com.liferay.portal.model.Company; +import com.liferay.portal.model.User; import com.liferay.portal.service.CompanyLocalServiceUtil; +import com.liferay.portal.service.UserLocalServiceUtil; public class ValidazionePraticaUtil { @@ -446,7 +451,7 @@ public class ValidazionePraticaUtil { case SezioniUtil.SEZIONE_ALLEGATI: return notCompletedSezioneAllegati(dettPraticaId); default: - return new ArrayList(); + return Collections.emptyList(); } } @@ -479,18 +484,6 @@ public class ValidazionePraticaUtil { notCompleted.add("ag"); } - /* - * boolean aiSensi = - * AzioniPraticheUtil.isDeposito(intPratica.getIntPraticaId()) ? - * (dettPratica .getNormDpr01Dep() || dettPratica.getNormDpr02Dep()) : - * (dettPratica.getNormDpr01Aut() || dettPratica.getNormDpr02Aut()); if - * (!aiSensi) { notCompleted.add("at-least-aiSensi"); } - * - * boolean nelRispetto = dettPratica.getNormDm01() || - * dettPratica.getNormDm02() || dettPratica.getNormDm2018(); if - * (!nelRispetto) { notCompleted.add("at-least-nelRispetto"); } - */ - if (dettPratica.getNormSismaBonus() && Validator.isNull(dettPratica.getClRischioPreInt()) && Validator.isNull(dettPratica.getClRischioPostInt())) { if (Validator.isNull(dettPratica.getClRischioPreInt())) { @@ -509,37 +502,27 @@ public class ValidazionePraticaUtil { notCompleted.add("desc-long-intervento"); } - if (!(dettPratica.getTcNuovaCostruzione() || dettPratica.getTcMiglioramentoSismico() - || dettPratica.getTcAdeguamentoSismico() || dettPratica.getTcRiparazioneInterventoLocale())) { + if (!(dettPratica.getTcNuovaCostruzione() || dettPratica.getTcNuovaCostruzionePertinenza() + || dettPratica.getTcCostruzioniEsistenti() || dettPratica.getTcManutOrdStraord() + || dettPratica.getTcInterventoOpereEscavazione() || dettPratica.getTcViarch() + || dettPratica.getTcOperaA25() || dettPratica.getTcAltriInterventi())) { notCompleted.add("fascicolo_title_intervento"); } if (Validator.isNull(dettPratica.getDestinazione())) { notCompleted.add("destinazione"); } - // if( Validator.isNull(dettPratica.getLocalita()) ){ - // notCompleted.add("localita");} if (Validator.isNull(dettPratica.getVia())) { notCompleted.add("via"); } - // if (Validator.isNull(dettPratica.getDcFoglio())) { - // notCompleted.add("dc-foglio"); - // } - // if (Validator.isNull(dettPratica.getDcAllegato())) { - // notCompleted.add("dp-allegato"); - // } - // if (!(Validator.isNotNull(dettPratica.getDcParticelle()) && - // !"|||".equalsIgnoreCase(dettPratica.getDcParticelle()))) { - // notCompleted.add("dp-particelle"); - // } if (Validator.isNull(dettPratica.getLocalizzazioneGeografica()) || dettPratica.getLocalizzazioneGeografica().startsWith("||")) { notCompleted.add("Localizzazione geografica mancante"); } - // ADT BUG ID = 17 - boolean tipologiaCostruttiva = intPratica.getTipoProcedura().equalsIgnoreCase(Constants.PROCEDURA_C) - || dettPratica.getTcInCA() || dettPratica.getTcInAcciaio() || dettPratica.getTcInMuratura() + + boolean tipologiaCostruttiva = dettPratica.getDestinazione().equals("3") || dettPratica.getTcInCA() + || dettPratica.getTcInAcciaio() || dettPratica.getTcInMuratura() || dettPratica.getTcInLegno() || dettPratica.getTcAltro(); if (!tipologiaCostruttiva) { notCompleted.add("Tipologia Costruttiva Mancante"); @@ -591,7 +574,7 @@ public class ValidazionePraticaUtil { && !dettPratica.getTcNuovaCostruzione() && !dettPratica.getTcAdeguamentoSismico() && !dettPratica.getTcMiglioramentoSismico(); boolean collaudatoreNotRequired = dettPratica.getCollaudoStatico() || dettPratica.getLavoriPubblici() - || isRiparazioneLocale; + || dettPratica.getNoCollaudo() || isRiparazioneLocale; boolean direttoreLavoriNotRequired = dettPratica.getLavoriPubblici(); boolean dittaNotRequired = dettPratica.getNormLavoriInProprio() || dettPratica.getLavoriPubblici(); @@ -709,6 +692,12 @@ public class ValidazionePraticaUtil { DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); List notCompleted = new ArrayList<>(); + // Se in "Dettagli/Destinazione" è selezionato "altri interventi" + // rendere non obbligatoria la compilazione della sezione + // "descrizione interventi" + if (dettPratica.getDestinazione().equals("3")) { + return notCompleted; + } List infrastrutture = Arrays.asList("1A", "2A", "A4A", "A4B", "A4C", "A4D", "A4E", "A4F", "A5A", "B4A", "B4B", "B4C", "B5A"); // se infrastruttura controllo solo DATI INFRASTRUTTURA @@ -858,6 +847,27 @@ public class ValidazionePraticaUtil { notCompleted.addAll(notCompletedDatiSezionGeologica(dettPraticaId)); + String pericolositaGeomorfica = dettPratica.getGeoPericolositaGeomorfica(); + String rischioGeomorfologico = dettPratica.getGeoRischioGeomorfologicoPai(); + + // Se nuova costruzione e sia pericolosita che rischio sono uguali a + // "non presente" + if (dettPratica.getTcNuovaCostruzione() && Validator.isNotNull(pericolositaGeomorfica) + && pericolositaGeomorfica.equalsIgnoreCase("NA") + && Validator.isNotNull(rischioGeomorfologico) && rischioGeomorfologico.equalsIgnoreCase("NA")) { + notCompleted.add("Nessun allegato per " + + LanguageUtil.get(LocaleUtil.getDefault(), "label-documenti-tipologia-A22")); + } + // Se nuova costruzione e almeno uno tra pericolosita e rischio sono + // diversi da "non presente" + if (dettPratica.getTcNuovaCostruzione() + && ((Validator.isNotNull(pericolositaGeomorfica) && !pericolositaGeomorfica + .equalsIgnoreCase("NA")) || (Validator.isNotNull(rischioGeomorfologico) && !rischioGeomorfologico + .equalsIgnoreCase("NA")))) { + notCompleted.add("Nessun allegato per " + + LanguageUtil.get(LocaleUtil.getDefault(), "label-documenti-tipologia-A23")); + } + return notCompleted; } @@ -992,31 +1002,48 @@ public class ValidazionePraticaUtil { IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); List docObbligatori = DocumentiPraticaUtil.getDocObbligatoriDomanda(intPratica, dettPratica); + List soggetti = SoggettoLocalServiceUtil.getValidTmpByDettPratica(dettPraticaId); + String cfTitolare = intPratica.getUserName(); + for (String docObbligatorio : docObbligatori) { List docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( intPraticaId, docObbligatorio, QueryUtil.ALL_POS, QueryUtil.ALL_POS); if (docs.isEmpty()) { - notCompleted.add("Nessun Allegato per " + notCompleted.add("Nessun allegato per " + LanguageUtil.get(LocaleUtil.getDefault(), "label-documenti-tipologia-" + docObbligatorio)); } else { + List firmeMancanti = new UniqueList<>(); for (DocPratica doc : docs) { + List firmeObbligatorie = getFirmeObbligatorie(docObbligatorio); FirmeBean firmeBean = FirmeUtil.deserialize(doc.getJsonFirmatari()); List firmePresenti = firmeBean.allSignatures(); - List firmeObbligatorie = getFirmeObbligatorie(docObbligatorio); - List soggetti = SoggettoLocalServiceUtil - .getValidTmpByDettPratica(dettPraticaId); + for (Soggetto soggetto : soggetti) { if (firmePresenti.contains(soggetto.getCodiceFiscale().toLowerCase())) { firmeObbligatorie.remove(soggetto.getTipologiaSoggetto()); } } + if (firmePresenti.contains(cfTitolare)) { + firmeObbligatorie.remove(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + for (String firma:firmeObbligatorie) { + firmeMancanti.add(firma); + } } - if (!firmeObbligatorie.isEmpty()) { - + if (!firmeMancanti.isEmpty()) { + List tipologieMancanti = new ArrayList<>(); + for (String firmaMancante : firmeMancanti) { + tipologieMancanti.add(LanguageUtil.get(Locale.getDefault(), "gc-soggetto-" + + firmaMancante)); + } + notCompleted.add(LanguageUtil.get(LocaleUtil.getDefault(), "label-documenti-tipologia-" + + docObbligatorio) + + ", firme mancanti: " + StringUtils.join(tipologieMancanti, ", ")); } } } + return notCompleted; } @@ -1054,26 +1081,8 @@ public class ValidazionePraticaUtil { return true; } - public static boolean isOneRequiredValid(String codiceDoc, long intPraticaId, List signatures, - List tipologiaSoggetti, DocPratica docPratica) throws SystemException { - - for (String tipoSoggetto : tipologiaSoggetti) { - boolean isRequired = AsseverazioniUtil - .isAsseverazioneRequiredByCodiceDoc(codiceDoc, tipoSoggetto); - if (isRequired) { - List signaturesPerSubject = getSignaturePerSubject(intPraticaId, signatures, - tipoSoggetto, docPratica.getClassPk()); - if (!signaturesPerSubject.isEmpty()) { - return true; - } - } - } - return false; - } - public static boolean isFineLavoriDatiCompleted(long fineLavoriId) throws PortalException, SystemException { - return notCompletedFineLavoriDati(fineLavoriId).isEmpty(); } @@ -1295,9 +1304,8 @@ public class ValidazionePraticaUtil { options.setLocation(urlPdfExtractor); options.setPost(true); List fileParts = new ArrayList<>(); - // TODO perché cazzo non funziona il contentType??? - // FilePart filePart = new FilePart("file", fileName, fileBytes, - // ContentType.P7M.getContentType(), "UTF-8"); + // Amo l'ignoto autore di questo TODO! + // TODO perché cazzo non funziona il contentType??? FilePart filePart = new FilePart("file", fileName, fileBytes, "application/pkcs7-signature", "UTF-8"); fileParts.add(filePart); options.setFileParts(fileParts); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql index e5ba1d84..3551819e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql @@ -258,6 +258,7 @@ create table portos_bo_DettPratica ( codiceFiscalePrincipaleDirettoreLavori VARCHAR(75) null, codiceFiscalePrincipaleDitta VARCHAR(75) null, codiceFiscalePrincipaleGeologo VARCHAR(75) null, + codiceFiscalePrincipaleArcheologo VARCHAR(75) null, lavoriInEconomiaCommittente BOOLEAN, inizioLavoriContestualeOpera BOOLEAN, dataInizioLavoriOpera DATE null, diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml index 8d6ccc59..dd9b945e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml @@ -308,6 +308,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml index 1d5bf3d2..3d23431f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml @@ -302,6 +302,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml index 06c93265..cc264a02 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml @@ -410,6 +410,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties index 600fec7e..98ade026 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties @@ -296,7 +296,7 @@ interv-fin-pub-desc = Descrizione intervento oggetto di Finanziamento Pubblico destinazione = Destinazione destinazione-1 = EDIFICI ORDINARI destinazione-2 = INFRASTRUTTURE o ALTRI ORDINARI -destinazione-3 = ALTRI INTERVENTI (es. fotovoltaico, pali eolici...) +destinazione-3 = ALTRI INTERVENTI (es. fotovoltaico, pali eolici, piscine e vasche di irrigazione, muri di cinta e recinzioni, etc) destinazione-uso-1 = EDIFICIO ORDINARIO destinazione-uso-2 = INFRASTRUTTURA O ALTRO ORDINARIO @@ -414,7 +414,7 @@ tc-adeguamento-sismico = Adeguamento sismico tc-miglioramento-sismico = Miglioramento sismico tc-riparazione-intervento-locale = Riparazione o intervento locale tc-manut-ord-rest-dem = Manut. ord. e straord. - Restauro - Demolizione e ricostruzione -tc-altro-intervento = ALTRA TIPOLOGIA DI INTERVENTO (cave ...) +tc-altro-intervento = ALTRA TIPOLOGIA DI INTERVENTO tc-nuova-costruzione-pertinenza = Nuova costruzione di pertinenza tc-intervento-opere-escavazione = Intervento che prevede opere di escavazione (obbligo A10) tc-viarch = Opera pubblica o di interesse pubblico - Viarch (A24) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java index 7a057237..613d1ff7 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java @@ -99,6 +99,11 @@ public class DatabaseUpdateAction extends SimpleAction { s.executeUpdate("ALTER TABLE portos_bo_dettpratica ADD COLUMN destinazionealtrointervento TEXT NULL"); } + if (!hasColumn("portos_bo_dettpratica", "codicefiscaleprincipalearcheologo")) { + _log.info("Aggiornamento a v9 di portos_bo_dettpratica"); + s.executeUpdate("ALTER TABLE portos_bo_dettpratica ADD COLUMN codicefiscaleprincipalearcheologo VARCHAR(75) NULL"); + } + if (!hasColumn("portos_bo_territorio", "articolo61")) { _log.info("Aggiornamento a v2 di portos_bo_territorio"); s.executeUpdate("ALTER TABLE portos_bo_territorio ADD COLUMN articolo61 BOOL"); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SismicaUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SismicaUtil.java index b68ca731..446ccbfc 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SismicaUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SismicaUtil.java @@ -177,7 +177,6 @@ public class SismicaUtil { List esito = new ArrayList<>(); esito.addAll(riparaConformita(companyId)); esito.addAll(riparaAssegnazioniAlRuolo(companyId, userId)); - esito.addAll(riparaNonValidate(companyId)); esito.addAll(creaWorkflowMancanti(companyId)); esito.addAll(riparaContextWorkflow(companyId)); try { @@ -267,85 +266,6 @@ public class SismicaUtil { return esito; } - private static List riparaNonValidate(long companyId) { - List esito = new ArrayList<>(); - esito.add("Controllo pratiche B1 non validate"); - - int dow; - Date data; - try { - dow = Integer.parseInt(ConfigurazioneLocalServiceUtil.findByC_ChiaveString(companyId, - ConfigurazioneConstants.DAY_OF_WEEK_SORTEGGIO)); - data = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(ConfigurazioneLocalServiceUtil - .findByC_ChiaveString(companyId, ConfigurazioneConstants.DATE_ULTIMO_SORTEGGIO)); - } catch (ParseException | NumberFormatException | SystemException e) { - esito.add("Errore nel recupero della configurazione sorteggio: " + e.getMessage()); - return esito; - } - data = getWeekInterval(dow, data)[1]; - - List pratiche = null; - int start = 0; - do { - try { - pratiche = IntPraticaLocalServiceUtil.getIntPraticas(start, start + SLICE); - start += SLICE; - for (IntPratica pratica : pratiche) { - int numeroAvvisi = 0; - numeroAvvisi = AvvisoLocalServiceUtil.findByIntPratica_Inviato(pratica.getIntPraticaId(), - "S", QueryUtil.ALL_POS, QueryUtil.ALL_POS, null).size(); - if (pratica.getTipoProcedura().equalsIgnoreCase(Constants.PROCEDURA_B1) - && Validator.isNull(pratica.getDtSorteggio()) - && pratica.getStatoPratica().equalsIgnoreCase(StatoPraticaConstants.VIDIMATA) - && (numeroAvvisi < 2) && (pratica.getDtPratica().compareTo(data) <= 0)) { - esito.add(" Pratica " + pratica.getNumeroProgetto() + " (" - + pratica.getIntPraticaId() + ") - " + pratica.getUserName() + ", " - + numeroAvvisi + " avvisi"); - - DettPratica dettPratica = DettPraticaLocalServiceUtil - .getLastCompletedByIntPratica(pratica.getIntPraticaId()); - long fileEntryIdTemplate = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong( - companyId, "conf.geniocivile.avviso.template.id.deposito.B2"); - - ServiceContext serviceContext = new ServiceContext(); - serviceContext.setCompanyId(dettPratica.getCompanyId()); - serviceContext.setScopeGroupId(dettPratica.getGroupId()); - serviceContext.setUserId(dettPratica.getUserId()); - ControlloPratica controllo = null; - try { - List controlli = ControlloPraticaLocalServiceUtil - .findByIntPraticaId_Status(pratica.getIntPraticaId(), - WorkflowConstants.STATUS_PENDING); - controllo = controlli.get(controlli.size() - 1); - } catch (Exception e1) { - try { - controllo = ControlloPraticaLocalServiceUtil.addControlloPratica( - dettPratica.getGroupId(), dettPratica.getUserId(), - pratica.getIntPraticaId(), dettPratica.getDettPraticaId(), false, - serviceContext); - } catch (PortalException | SystemException e2) { - esito.add("Errore durante la creazione di un controllo pratica per progetto " - + pratica.getNumeroProgetto() + ": " + e2.getMessage()); - } - } - controllo.setStatus(WorkflowConstants.STATUS_APPROVED); - AvvisoLocalServiceUtil.addAvviso(pratica.getIntPraticaId(), - "Attestazione di deposito progetto", new Date(), - AvvisoUtil.TIPO_AVVISO_DIRETTO, StatoPraticaConstants.CONFORME, - fileEntryIdTemplate, dettPratica.getDettPraticaId(), - DettPratica.class.getName(), controllo.getControlloPraticaId(), - serviceContext); - pratica.setStatoPratica(StatoPraticaConstants.CONFORME); - IntPraticaLocalServiceUtil.updateIntPratica(pratica); - } - } - } catch (PortalException | SystemException e) { - esito.add("Errore durante l'elaborazione: " + e.getMessage()); - } - } while (pratiche.size() > 0); - return esito; - } - private static List riparaConformita(long companyId) { List esito = new ArrayList<>(); esito.add("Riparazione avvisi di conformità"); @@ -433,19 +353,9 @@ public class SismicaUtil { if (Validator.isNotNull(fileEntryIdTemplate)) { try { - if (!pratica.getTipoProcedura().equalsIgnoreCase( - Constants.PROCEDURA_C)) { - AvvisoLocalServiceUtil.addAvviso(pratica.getIntPraticaId(), - "Attestazione di deposito progetto", new Date(), - AvvisoUtil.TIPO_AVVISO_DIRETTO, - StatoPraticaConstants.CONFORME, fileEntryIdTemplate, - dettPratica.getDettPraticaId(), - DettPratica.class.getName(), - controllo.getControlloPraticaId(), serviceContext); - } pratica.setStatoPratica(StatoPraticaConstants.CONFORME); IntPraticaLocalServiceUtil.updateIntPratica(pratica); - } catch (PortalException | SystemException e) { + } catch (SystemException e) { } } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SorteggioPraticaUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SorteggioPraticaUtil.java index 4e5399ff..84fcf7a6 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SorteggioPraticaUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/util/SorteggioPraticaUtil.java @@ -1,39 +1,9 @@ package it.mwg.sismica.bo.util; -import it.tref.liferay.portos.bo.model.Comune; -import it.tref.liferay.portos.bo.model.ControlloPratica; -import it.tref.liferay.portos.bo.model.DettPratica; -import it.tref.liferay.portos.bo.model.IntPratica; -import it.tref.liferay.portos.bo.model.Provincia; -import it.tref.liferay.portos.bo.model.Soggetto; -import it.tref.liferay.portos.bo.model.Territorio; -import it.tref.liferay.portos.bo.service.AvvisoLocalServiceUtil; -import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; -import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; -import it.tref.liferay.portos.bo.service.ControlloPraticaLocalServiceUtil; -import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; -import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; -import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; -import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; -import it.tref.liferay.portos.bo.service.SorteggioLocalServiceUtil; -import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; -import it.tref.liferay.portos.bo.shared.util.ConfigurazioneConstants; -import it.tref.liferay.portos.bo.shared.util.StatoPraticaConstants; -import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; -import it.tref.liferay.portos.bo.util.AvvisoUtil; -import it.tref.liferay.portos.report.shared.constants.ReportConstants; -import it.tref.liferay.portos.report.shared.dto.ReportDto; -import it.tref.liferay.portos.report.shared.util.ReportUtil; - -import java.security.SecureRandom; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.TreeMap; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -43,14 +13,8 @@ import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.repository.model.FileEntry; import com.liferay.portal.kernel.repository.model.Folder; -import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.model.Company; -import com.liferay.portal.model.Role; -import com.liferay.portal.model.RoleConstants; import com.liferay.portal.service.CompanyLocalServiceUtil; -import com.liferay.portal.service.RoleLocalServiceUtil; -import com.liferay.portal.service.ServiceContext; -import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portlet.documentlibrary.model.DLFolderConstants; import com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil; @@ -65,8 +29,6 @@ public class SorteggioPraticaUtil { private static final String FOLDER_SORTEGGIO = "Report_Sorteggio"; - private static final String FILE_ENTRY_TEMPLATE_SORTEGGIO = "Sorteggio"; - /** * * Implementazione della procedura di sorteggio secondo i requisiti della @@ -82,142 +44,9 @@ public class SorteggioPraticaUtil { SystemException { List esito = new ArrayList<>(); - if (lock.tryLock()) { - SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_FORMAT); - esito.add("Sorteggio iniziato in data " + sdf.format(dtSorteggio) + ".

"); - - Map> sorteggiabili = IntPraticaLocalServiceUtil.findSorteggiabiliNew( - companyId, dtSorteggio); - - int numeroSorteggiabili = 0; - for (Map.Entry> s : sorteggiabili.entrySet()) { - numeroSorteggiabili += s.getValue().size(); - } - esito.add("

" + numeroSorteggiabili + " pratiche sottoposte a sorteggio.

"); - - SecureRandom rnd = new SecureRandom(); - List sorteggiate = new ArrayList<>(); - for (Map.Entry> s : sorteggiabili.entrySet()) { - String codiceProvincia = s.getKey(); - List elenco = s.getValue(); - - Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(companyId, codiceProvincia); - long numeroSorteggiate = (long) Math.ceil(0.1 * elenco.size()); - String testoSorteggio; - if (numeroSorteggiate > 1) { - testoSorteggio = "saranno estratte " + numeroSorteggiate + " pratiche"; - } else { - testoSorteggio = "sarà estratta 1 pratica"; - } - esito.add("

(" + sdf.format(new Date()) + ") Provincia di " - + provincia.getProvincia() + " " + elenco.size() + " pratiche, " + testoSorteggio - + ".

    "); - - Map ordinate = new HashMap<>(); - - int chiave; - for (IntPratica pratica : elenco) { - do { - chiave = rnd.nextInt(); - } while (ordinate.containsKey(chiave)); - ordinate.put(chiave, pratica); - } - TreeMap mescolate = new TreeMap(ordinate); - - long contatore = 0; - for (Map.Entry m : mescolate.entrySet()) { - IntPratica pratica = m.getValue(); - long intPraticaId = pratica.getIntPraticaId(); - DettPratica dettPratica = DettPraticaLocalServiceUtil - .getLastCompletedByIntPratica(intPraticaId); - - ServiceContext serviceContext = new ServiceContext(); - serviceContext.setCompanyId(dettPratica.getCompanyId()); - serviceContext.setScopeGroupId(dettPratica.getGroupId()); - serviceContext.setUserId(dettPratica.getUserId()); - - if (contatore++ < numeroSorteggiate) { - sorteggiate.add(pratica); - esito.add("
  1. Sorteggiata: " + pratica.getNumeroProgetto() + " (id " + intPraticaId - + ") del " + sdf.format(pratica.getDtPratica()) + " (" + m.getKey() - + ")
  2. "); - } else { - pratica.setDtSorteggio(dtSorteggio); - IntPraticaLocalServiceUtil.updateIntPratica(pratica); - - esito.add("
  3. Non sorteggiata: " + pratica.getNumeroProgetto() + " (id " - + intPraticaId + ") del " + sdf.format(pratica.getDtPratica()) + " (" - + m.getKey() + ")
  4. "); - } - } - esito.add("
"); - } - if (sorteggiate.size() > 0) { - saveSorteggio(companyId, sorteggiate, dtSorteggio); - } - esito.add("Sorteggio terminato in data " + sdf.format(new Date()) + ".

"); - - creaReportSorteggio(companyId, dtSorteggio, esito); - - // Salvataggio data ultimo sorteggio - ServiceContext serviceContext = new ServiceContext(); - serviceContext.setCompanyId(companyId); - serviceContext.setScopeGroupId(-1L); - serviceContext.setUserId(UserLocalServiceUtil.getDefaultUserId(companyId)); - ConfigurazioneLocalServiceUtil.storeConfig(ConfigurazioneConstants.DATE_ULTIMO_SORTEGGIO, - sdf.format(dtSorteggio), serviceContext); - - lock.unlock(); - } - return esito; } - private static FileEntry creaReportSorteggio(long companyId, Date dtSorteggio, List contenuto) - throws PortalException, SystemException { - - Role role = RoleLocalServiceUtil.getRole(companyId, RoleConstants.ADMINISTRATOR); - long userId = UserLocalServiceUtil.getRoleUsers(role.getRoleId(), 0, 1).get(0).getUserId(); - - Company company = CompanyLocalServiceUtil.getCompany(companyId); - Folder folderTemplate = DLAppLocalServiceUtil.getFolder(company.getGroupId(), - DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, "Template"); - FileEntry fileEntryTemplate = DLAppLocalServiceUtil.getFileEntry(folderTemplate.getGroupId(), - folderTemplate.getFolderId(), FILE_ENTRY_TEMPLATE_SORTEGGIO); - - Folder folderReport = DLAppLocalServiceUtil.getFolder(company.getGroupId(), - DLFolderConstants.DEFAULT_PARENT_FOLDER_ID, FOLDER_SORTEGGIO); - - StringBuilder sb = new StringBuilder(contenuto.size()); - for (String riga : contenuto) { - sb.append(riga); - } - Map parameters = new HashMap(); - parameters.put("html", sb.toString()); - - ReportDto reportDto = new ReportDto(); - reportDto.setFileEntryIds(new long[] { fileEntryTemplate.getFileEntryId() }); - reportDto.setFolderId(folderReport.getFolderId()); - reportDto.setFileName(reportFileName(companyId, dtSorteggio)); - - reportDto.setHeader(""); - reportDto.setHeaderHeight(1); - reportDto.setFooter(""); - reportDto.setFooterHeight(40); - - reportDto.setParameters(parameters); - reportDto.setShowNumberOfPage(true); - reportDto.setType(ReportConstants.ReportType.VELOCITY_TO_PDF.toString()); - - String resourcePath = SorteggioPraticaUtil.class.getName().replaceAll("\\w+\\.", "../") - .replace(SorteggioPraticaUtil.class.getSimpleName(), "resource/asseverazioni"); - reportDto.setPortalURL(SorteggioPraticaUtil.class.getResource(resourcePath).getPath()); - - ReportUtil.generateReport(companyId, userId, reportDto, null); - - return null; - } - private static String reportFileName(long companyId, Date dtSorteggio) { Calendar calSorteggio = DateUtils.toCalendar(dtSorteggio); String anno = String.valueOf(calSorteggio.get(Calendar.YEAR)); @@ -240,72 +69,6 @@ public class SorteggioPraticaUtil { * @throws PortalException * @throws SystemException */ - private static void saveSorteggio(long companyId, List pratiche, Date dtSorteggio) - throws PortalException, SystemException { - - long numeroEstrazione = 1; - for (IntPratica pratica : pratiche) { - - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(pratica.getTerritorioId()); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), - comune.getCodiceProvincia()); - - DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(pratica - .getIntPraticaId()); - - String committente = ""; - List soggetti = SoggettoLocalServiceUtil - .findByIntPratica_TipologiaSoggetto_Aggiuntivo_Rimosso(pratica.getIntPraticaId(), - TipoSoggettoUtil.COMMITTENTE, false, false); - if (soggetti.size() > 0) { - Soggetto soggetto = soggetti.get(0); - - // Bug 32771 - if (Validator.isNotNull(soggetto.getNome()) && Validator.isNotNull(soggetto.getCognome())) - committente = soggetto.getNome() + " " + soggetto.getCognome(); - else if (Validator.isNotNull(soggetto.getDenominazione())) - committente = soggetto.getDenominazione(); - else - committente = soggetto.getLegaleRap(); - } - - // anno, mese, settimana della data sorteggio - Calendar calSorteggio = Calendar.getInstance(); - calSorteggio.setTime(dtSorteggio); - - String anno = String.valueOf(calSorteggio.get(Calendar.YEAR)); - String mese = String.format("%02d", calSorteggio.get(Calendar.MONTH) + 1); - int settimana = calSorteggio.get(Calendar.WEEK_OF_YEAR); - - ServiceContext serviceContext = new ServiceContext(); - serviceContext.setCompanyId(dettPratica.getCompanyId()); - serviceContext.setScopeGroupId(dettPratica.getGroupId()); - serviceContext.setUserId(dettPratica.getUserId()); - - SorteggioLocalServiceUtil.addSorteggio(pratica.getIntPraticaId(), dettPratica.getDettPraticaId(), - anno, mese, settimana, dtSorteggio, "", APERTO, "", numeroEstrazione++, - pratica.getNumeroProgetto(), committente, comune.getDenominazione(), - provincia.getProvincia(), false, pratica.getIntPraticaId(), false, serviceContext); - - ControlloPratica controlloPratica = ControlloPraticaLocalServiceUtil.addControlloPratica( - pratica.getGroupId(), pratica.getUserId(), pratica.getIntPraticaId(), - dettPratica.getDettPraticaId(), true, serviceContext); - - long fileEntryIdTemplate = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong( - serviceContext.getCompanyId(), "conf.geniocivile.avviso.template.id.deposito.S"); - - AvvisoLocalServiceUtil.addAvviso(pratica.getIntPraticaId(), "Avviso di sorteggio", dtSorteggio, - AvvisoUtil.TIPO_AVVISO_DIRETTO, StatoPraticaConstants.SOTTOPOSTA_A_PARERE, - fileEntryIdTemplate, dettPratica.getDettPraticaId(), DettPratica.class.getName(), - controlloPratica.getControlloPraticaId(), serviceContext); - - IntPraticaLocalServiceUtil.updateIntPraticaSorteggio(pratica.getIntPraticaId(), dtSorteggio, - StatoPraticaConstants.SOTTOPOSTA_A_PARERE); - - } - } - public static FileEntry getFileEntrySorteggio(long companyId, long groupId, Date dtSorteggio) throws PortalException, SystemException { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/indexer/ControlloPraticaIndexer.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/indexer/ControlloPraticaIndexer.java index 8d3d52b0..e78d389a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/indexer/ControlloPraticaIndexer.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/indexer/ControlloPraticaIndexer.java @@ -206,11 +206,8 @@ public class ControlloPraticaIndexer extends BaseIndexer { document.addKeyword("sorteggiata", sorteggiata); document.addKeyword("controlloObbligatorio", intPratica.isControlloObbligatorio()); - String tipoProcedura = intPratica.getTipoProcedura(); - if (Validator.isNotNull(tipoProcedura)) { - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_B1)) - tipoProcedura = Constants.PROCEDURA_B; - document.addKeyword(PortosIndexField.TIPO_PROCEDURA, tipoProcedura); + if (Validator.isNotNull(intPratica.getTipoProcedura())) { + document.addKeyword(PortosIndexField.TIPO_PROCEDURA, intPratica.getTipoProcedura()); } // Prendo l ultimo DettPratica legato a IntPratica diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/AsseverazioneImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/AsseverazioneImpl.java index 6bdce598..bffb0367 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/AsseverazioneImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/AsseverazioneImpl.java @@ -88,6 +88,8 @@ public class AsseverazioneImpl extends AsseverazioneBaseImpl { modello = "AS-PRC"; } break; + case TipoSoggettoUtil.ARCHEOLOGO: + modello = "AS-ARC"; } return modello; } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaCacheModel.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaCacheModel.java index d1bede87..73f23a6e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaCacheModel.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaCacheModel.java @@ -38,7 +38,7 @@ public class DettPraticaCacheModel implements CacheModel, Externalizable { @Override public String toString() { - StringBundler sb = new StringBundler(499); + StringBundler sb = new StringBundler(501); sb.append("{uuid="); sb.append(uuid); @@ -164,6 +164,8 @@ public class DettPraticaCacheModel implements CacheModel, sb.append(codiceFiscalePrincipaleDitta); sb.append(", codiceFiscalePrincipaleGeologo="); sb.append(codiceFiscalePrincipaleGeologo); + sb.append(", codiceFiscalePrincipaleArcheologo="); + sb.append(codiceFiscalePrincipaleArcheologo); sb.append(", lavoriInEconomiaCommittente="); sb.append(lavoriInEconomiaCommittente); sb.append(", inizioLavoriContestualeOpera="); @@ -856,6 +858,13 @@ public class DettPraticaCacheModel implements CacheModel, dettPraticaImpl.setCodiceFiscalePrincipaleGeologo(codiceFiscalePrincipaleGeologo); } + if (codiceFiscalePrincipaleArcheologo == null) { + dettPraticaImpl.setCodiceFiscalePrincipaleArcheologo(StringPool.BLANK); + } + else { + dettPraticaImpl.setCodiceFiscalePrincipaleArcheologo(codiceFiscalePrincipaleArcheologo); + } + dettPraticaImpl.setLavoriInEconomiaCommittente(lavoriInEconomiaCommittente); dettPraticaImpl.setInizioLavoriContestualeOpera(inizioLavoriContestualeOpera); @@ -1556,6 +1565,7 @@ public class DettPraticaCacheModel implements CacheModel, codiceFiscalePrincipaleDirettoreLavori = objectInput.readUTF(); codiceFiscalePrincipaleDitta = objectInput.readUTF(); codiceFiscalePrincipaleGeologo = objectInput.readUTF(); + codiceFiscalePrincipaleArcheologo = objectInput.readUTF(); lavoriInEconomiaCommittente = objectInput.readBoolean(); inizioLavoriContestualeOpera = objectInput.readBoolean(); dataInizioLavoriOpera = objectInput.readLong(); @@ -2021,6 +2031,13 @@ public class DettPraticaCacheModel implements CacheModel, objectOutput.writeUTF(codiceFiscalePrincipaleGeologo); } + if (codiceFiscalePrincipaleArcheologo == null) { + objectOutput.writeUTF(StringPool.BLANK); + } + else { + objectOutput.writeUTF(codiceFiscalePrincipaleArcheologo); + } + objectOutput.writeBoolean(lavoriInEconomiaCommittente); objectOutput.writeBoolean(inizioLavoriContestualeOpera); objectOutput.writeLong(dataInizioLavoriOpera); @@ -2688,6 +2705,7 @@ public class DettPraticaCacheModel implements CacheModel, public String codiceFiscalePrincipaleDirettoreLavori; public String codiceFiscalePrincipaleDitta; public String codiceFiscalePrincipaleGeologo; + public String codiceFiscalePrincipaleArcheologo; public boolean lavoriInEconomiaCommittente; public boolean inizioLavoriContestualeOpera; public long dataInizioLavoriOpera; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaModelImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaModelImpl.java index 18404303..770cf0a1 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaModelImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/DettPraticaModelImpl.java @@ -130,6 +130,7 @@ public class DettPraticaModelImpl extends BaseModelImpl { "codiceFiscalePrincipaleDirettoreLavori", Types.VARCHAR }, { "codiceFiscalePrincipaleDitta", Types.VARCHAR }, { "codiceFiscalePrincipaleGeologo", Types.VARCHAR }, + { "codiceFiscalePrincipaleArcheologo", Types.VARCHAR }, { "lavoriInEconomiaCommittente", Types.BOOLEAN }, { "inizioLavoriContestualeOpera", Types.BOOLEAN }, { "dataInizioLavoriOpera", Types.TIMESTAMP }, @@ -318,7 +319,7 @@ public class DettPraticaModelImpl extends BaseModelImpl { "intervFinPubDesc", Types.VARCHAR }, { "suap", Types.BOOLEAN } }; - public static final String TABLE_SQL_CREATE = "create table portos_bo_DettPratica (uuid_ VARCHAR(75) null,dettPraticaId LONG not null primary key,companyId LONG,userId LONG,userName VARCHAR(75) null,createDate DATE null,modifiedDate DATE null,groupId LONG,intPraticaId LONG,integrazione LONG,protocollo VARCHAR(75) null,dtProtocollo DATE null,tipoIntegrazione VARCHAR(10) null,completa BOOLEAN,gestita BOOLEAN,importoSpeseIstruttoria VARCHAR(75) null,codicePagamentoOneri VARCHAR(75) null,causalePagamentoOneri VARCHAR(75) null,mezzoPagamentoOneri VARCHAR(75) null,importoBolli VARCHAR(75) null,codicePagamentoBolli VARCHAR(75) null,causalePagamentoBolli VARCHAR(75) null,mezzoPagamentoBolli VARCHAR(75) null,dataEffettuazione DATE null,version INTEGER,versionata BOOLEAN,status INTEGER,statusByUserId LONG,statusByUserName VARCHAR(75) null,statusDate DATE null,statusTask INTEGER,workflowForzato BOOLEAN,soggettoSostituitoId LONG,dtInvioSignal DATE null,oldDettPraticaId LONG,destinazione VARCHAR(10) null,ag VARCHAR(10) null,descLongIntervento STRING null,paesaggioLocale VARCHAR(75) null,livelloDiTutela VARCHAR(75) null,vincoli VARCHAR(75) null,via VARCHAR(75) null,localita VARCHAR(75) null,estremiCatastali STRING null,estremiPratCom STRING null,variataDa LONG,varianteNumero LONG,varianteSostanziale BOOLEAN,operaConforme BOOLEAN,collaudoStatico BOOLEAN,noCollaudo BOOLEAN,codiceFiscaleDelegato VARCHAR(16) null,codiceRuoloDelegato VARCHAR(75) null,codiceFiscaleDelegatoCommittente VARCHAR(75) null,codiceFiscaleDelegatoFineLavori VARCHAR(75) null,codiceFiscaleDelegatoCollaudo VARCHAR(75) null,codiceFiscalePrincipaleCommittente VARCHAR(75) null,codiceFiscalePrincipaleCollaudatore VARCHAR(75) null,codiceFiscalePrincipaleProgettista VARCHAR(75) null,codiceFiscalePrincipaleDirettoreLavori VARCHAR(75) null,codiceFiscalePrincipaleDitta VARCHAR(75) null,codiceFiscalePrincipaleGeologo VARCHAR(75) null,lavoriInEconomiaCommittente BOOLEAN,inizioLavoriContestualeOpera BOOLEAN,dataInizioLavoriOpera DATE null,dataInizioEsecuzioneOpera DATE null,dataFineEsecuzioneOpera DATE null,metratura VARCHAR(75) null,lavoriPubblici BOOLEAN,pagamentoIdOneri LONG,pagamentoIdBolli LONG,lavoriPubbliciPercentuale INTEGER,numeroCivico VARCHAR(75) null,dcParticelle VARCHAR(75) null,dcFoglio VARCHAR(75) null,dcAllegato VARCHAR(75) null,dePiani VARCHAR(75) null,deAltezza VARCHAR(75) null,deInterrati VARCHAR(75) null,deSuperficie VARCHAR(75) null,deCostruzione VARCHAR(75) null,deRistrutturazione VARCHAR(75) null,deUso VARCHAR(75) null,dePubblica VARCHAR(75) null,dePrivata VARCHAR(75) null,deUtilizzazione VARCHAR(75) null,dePosizioneEdificio VARCHAR(75) null,deInfStradalePonte BOOLEAN,deInfStradaleStrada BOOLEAN,deInfStradaleAltro BOOLEAN,deInfIdraulicaLong BOOLEAN,deInfIdraulicaTrasv BOOLEAN,deInfIdraulicaAltro BOOLEAN,deInfOperaAccStradale BOOLEAN,deInfOperaAccIdraulica BOOLEAN,deInfOperaAccAltro BOOLEAN,deInfAltraInfrastruttura BOOLEAN,deInfAltro BOOLEAN,deInfAltroDesc STRING null,dccFondazioni VARCHAR(75) null,destinazioneAltroIntervento VARCHAR(75) null,dccStruttureEleMuraturePietrame BOOLEAN,dccStruttureEleMuratureLaterizio BOOLEAN,dccStruttureEleMuratureMisto BOOLEAN,dccStruttureEleMuratureStoriche BOOLEAN,dccStruttureEleAcciaio VARCHAR(75) null,dccStruttureEleCA VARCHAR(75) null,dccStruttureEleLegno VARCHAR(75) null,dccStruttureEleMistoCA BOOLEAN,dccStruttureEleMistoAcciaio BOOLEAN,dccStruttureEleMistoMuratura BOOLEAN,dccStruttureEleMistoLegno BOOLEAN,dccStruttureElePrefabbricato BOOLEAN,dccStruttureEleAltro BOOLEAN,dccStruttureEleAltroDescrizione STRING null,dccOrizzontamentiCAAcciaio BOOLEAN,dccOrizzontamentiLegno BOOLEAN,dccOrizzontamentiLegnoCA BOOLEAN,dccOrizzontamentiLamieraGrecata BOOLEAN,dccOrizzontamentiVolte BOOLEAN,dccOrizzontamentiAltro BOOLEAN,dccOrizzontamentiAltroDescrizione STRING null,dccCopertura VARCHAR(75) null,dccCoperturaCAAcciaio BOOLEAN,dccCoperturaLegno BOOLEAN,dccCoperturaLegnoCA BOOLEAN,dccCoperturaLamieraGrecata BOOLEAN,dccCoperturaPannelli BOOLEAN,dccCoperturaPVCTelonati BOOLEAN,dccCoperturaLeggere BOOLEAN,dccCoperturaAltro BOOLEAN,dccCoperturaAltroDesrizione STRING null,dccElemNonStrutLaterizio BOOLEAN,dccElemNonStrutCartongesso BOOLEAN,dccElemNonStrutCalcestruzzo BOOLEAN,dccElemNonStrutLegno BOOLEAN,dccElemNonStrutAltro BOOLEAN,dccElemNonStrutAltroDescrizione STRING null,dccOpereDiRinforzoInsCatene BOOLEAN,dccOpereDiRinforzoInsCordoli BOOLEAN,dccOpereDiRinforzoIniArmate BOOLEAN,dccOpereDiRinforzoPlaccaggi BOOLEAN,dccOpereDiRinforzoIrrSolai BOOLEAN,dccOpereDiRinforzoRinforziFRP BOOLEAN,dccOpereDiRinforzoTelaiECerchiature BOOLEAN,dccOpereDiRinforzoInsRompitratta BOOLEAN,dccOpereDiRinforzoAltro BOOLEAN,dccOpereDiRinforzoAltroDescrizione STRING null,geoClasseIndagine VARCHAR(75) null,geoCategoriaSottosuolo VARCHAR(75) null,geoCategoriaTopografica VARCHAR(75) null,geoConsolidamento VARCHAR(75) null,geoPericolositaGeologica VARCHAR(75) null,geoPericolositaSismica VARCHAR(75) null,geoPericolositaIdraulica VARCHAR(75) null,geoPericolositaGeomorfica VARCHAR(75) null,geoRischioGeomorfologicoPai VARCHAR(75) null,geoPericolositaIdraulicaPai VARCHAR(75) null,geoRischioIdraulicoPai VARCHAR(75) null,geoFattibilitaGeologica VARCHAR(75) null,geoFattibilitaSismica VARCHAR(75) null,geoFattibilitaIdraulica VARCHAR(75) null,geoOperaRilevante VARCHAR(75) null,geoOpereDiSostegno VARCHAR(75) null,geoOpereInSotterranea VARCHAR(75) null,geoPresenzaPrescrizioni VARCHAR(75) null,geoNotePrescrizioni STRING null,geoNoteIndagini STRING null,geoEvidenzeGeomorfiche VARCHAR(75) null,geoEvidenzeGeologiche VARCHAR(75) null,geoDtRelazione DATE null,pagNuoveCostruzioni BOOLEAN,pagAdeguamentoSismico INTEGER,pagMiglioramentoSismico INTEGER,pagMiglioramentoSismicoSicilia BOOLEAN,pagRiparazioneInterventoLocale BOOLEAN,pagOperaNonQuantificabile BOOLEAN,pagNuovaCostruzione INTEGER,pagVarianti BOOLEAN,pagAltro INTEGER,pagCalcolatoAdeguamentoSismico VARCHAR(75) null,pagCalcolatoMiglioramentoSismico VARCHAR(75) null,pagCalcolatoRiparazioneInterventoLocale VARCHAR(75) null,pagCalcolatoOperaNonQuantificabile VARCHAR(75) null,pagEffettivoAdeguamentoSismico VARCHAR(75) null,pagEffettivoMiglioramentoSismico VARCHAR(75) null,pagEffettivoRiparazioneInterventoLocale VARCHAR(75) null,pagEffettivoOperaNonQuantificabile VARCHAR(75) null,pagNoteUtente TEXT null,note STRING null,noteUfficio STRING null,localizzazioneGeografica VARCHAR(75) null,tcNuovaCostruzione BOOLEAN,tcNuovaCostruzioneComplessa BOOLEAN,tcAdeguamentoSismico BOOLEAN,tcMiglioramentoSismico BOOLEAN,tcRiparazioneInterventoLocale BOOLEAN,tcCostruzioniEsistenti BOOLEAN,tcManutOrdStraord BOOLEAN,tcNuovaCostruzionePertinenza BOOLEAN,tcInterventoOpereEscavazione BOOLEAN,tcViarch BOOLEAN,tcOperaA25 BOOLEAN,tcAltriInterventi BOOLEAN,tcAltriInterventiDesc VARCHAR(75) null,tcInCA BOOLEAN,tcInOpera BOOLEAN,tcPrefabbricato BOOLEAN,tcInAcciaio BOOLEAN,tcMista BOOLEAN,tcInMuratura BOOLEAN,tcInMuraturaOrdinaria BOOLEAN,tcInMuraturaArmata BOOLEAN,tcInMuraturaMista BOOLEAN,tcInLegno BOOLEAN,tcAltro BOOLEAN,tcAltroDescrizione STRING null,tcConDispositivi BOOLEAN,normLavoriInProprio BOOLEAN,normEsenteBollo BOOLEAN,normEsenteSpese BOOLEAN,normDpr01Dep BOOLEAN,normDpr02Dep BOOLEAN,normDpr01Aut BOOLEAN,normDpr02Aut BOOLEAN,normDpr03 BOOLEAN,normDpr04 BOOLEAN,normDpr05 BOOLEAN,normDm01 BOOLEAN,normDm02 BOOLEAN,normDm03 BOOLEAN,normDm2018 BOOLEAN,normDm04 BOOLEAN,normDm05 BOOLEAN,normDprg01 BOOLEAN,normDprg02 BOOLEAN,normAnr BOOLEAN,normOrd01 BOOLEAN,normCI01 BOOLEAN,normLTC01 BOOLEAN,normArt3com3 BOOLEAN,normArt3com4 BOOLEAN,dpdc BOOLEAN,normSismaBonus BOOLEAN,clRischioPreInt VARCHAR(75) null,clRischioPostInt VARCHAR(75) null,intervFinPub BOOLEAN,intervFinPubDesc STRING null,suap BOOLEAN)"; + public static final String TABLE_SQL_CREATE = "create table portos_bo_DettPratica (uuid_ VARCHAR(75) null,dettPraticaId LONG not null primary key,companyId LONG,userId LONG,userName VARCHAR(75) null,createDate DATE null,modifiedDate DATE null,groupId LONG,intPraticaId LONG,integrazione LONG,protocollo VARCHAR(75) null,dtProtocollo DATE null,tipoIntegrazione VARCHAR(10) null,completa BOOLEAN,gestita BOOLEAN,importoSpeseIstruttoria VARCHAR(75) null,codicePagamentoOneri VARCHAR(75) null,causalePagamentoOneri VARCHAR(75) null,mezzoPagamentoOneri VARCHAR(75) null,importoBolli VARCHAR(75) null,codicePagamentoBolli VARCHAR(75) null,causalePagamentoBolli VARCHAR(75) null,mezzoPagamentoBolli VARCHAR(75) null,dataEffettuazione DATE null,version INTEGER,versionata BOOLEAN,status INTEGER,statusByUserId LONG,statusByUserName VARCHAR(75) null,statusDate DATE null,statusTask INTEGER,workflowForzato BOOLEAN,soggettoSostituitoId LONG,dtInvioSignal DATE null,oldDettPraticaId LONG,destinazione VARCHAR(10) null,ag VARCHAR(10) null,descLongIntervento STRING null,paesaggioLocale VARCHAR(75) null,livelloDiTutela VARCHAR(75) null,vincoli VARCHAR(75) null,via VARCHAR(75) null,localita VARCHAR(75) null,estremiCatastali STRING null,estremiPratCom STRING null,variataDa LONG,varianteNumero LONG,varianteSostanziale BOOLEAN,operaConforme BOOLEAN,collaudoStatico BOOLEAN,noCollaudo BOOLEAN,codiceFiscaleDelegato VARCHAR(16) null,codiceRuoloDelegato VARCHAR(75) null,codiceFiscaleDelegatoCommittente VARCHAR(75) null,codiceFiscaleDelegatoFineLavori VARCHAR(75) null,codiceFiscaleDelegatoCollaudo VARCHAR(75) null,codiceFiscalePrincipaleCommittente VARCHAR(75) null,codiceFiscalePrincipaleCollaudatore VARCHAR(75) null,codiceFiscalePrincipaleProgettista VARCHAR(75) null,codiceFiscalePrincipaleDirettoreLavori VARCHAR(75) null,codiceFiscalePrincipaleDitta VARCHAR(75) null,codiceFiscalePrincipaleGeologo VARCHAR(75) null,codiceFiscalePrincipaleArcheologo VARCHAR(75) null,lavoriInEconomiaCommittente BOOLEAN,inizioLavoriContestualeOpera BOOLEAN,dataInizioLavoriOpera DATE null,dataInizioEsecuzioneOpera DATE null,dataFineEsecuzioneOpera DATE null,metratura VARCHAR(75) null,lavoriPubblici BOOLEAN,pagamentoIdOneri LONG,pagamentoIdBolli LONG,lavoriPubbliciPercentuale INTEGER,numeroCivico VARCHAR(75) null,dcParticelle VARCHAR(75) null,dcFoglio VARCHAR(75) null,dcAllegato VARCHAR(75) null,dePiani VARCHAR(75) null,deAltezza VARCHAR(75) null,deInterrati VARCHAR(75) null,deSuperficie VARCHAR(75) null,deCostruzione VARCHAR(75) null,deRistrutturazione VARCHAR(75) null,deUso VARCHAR(75) null,dePubblica VARCHAR(75) null,dePrivata VARCHAR(75) null,deUtilizzazione VARCHAR(75) null,dePosizioneEdificio VARCHAR(75) null,deInfStradalePonte BOOLEAN,deInfStradaleStrada BOOLEAN,deInfStradaleAltro BOOLEAN,deInfIdraulicaLong BOOLEAN,deInfIdraulicaTrasv BOOLEAN,deInfIdraulicaAltro BOOLEAN,deInfOperaAccStradale BOOLEAN,deInfOperaAccIdraulica BOOLEAN,deInfOperaAccAltro BOOLEAN,deInfAltraInfrastruttura BOOLEAN,deInfAltro BOOLEAN,deInfAltroDesc STRING null,dccFondazioni VARCHAR(75) null,destinazioneAltroIntervento VARCHAR(75) null,dccStruttureEleMuraturePietrame BOOLEAN,dccStruttureEleMuratureLaterizio BOOLEAN,dccStruttureEleMuratureMisto BOOLEAN,dccStruttureEleMuratureStoriche BOOLEAN,dccStruttureEleAcciaio VARCHAR(75) null,dccStruttureEleCA VARCHAR(75) null,dccStruttureEleLegno VARCHAR(75) null,dccStruttureEleMistoCA BOOLEAN,dccStruttureEleMistoAcciaio BOOLEAN,dccStruttureEleMistoMuratura BOOLEAN,dccStruttureEleMistoLegno BOOLEAN,dccStruttureElePrefabbricato BOOLEAN,dccStruttureEleAltro BOOLEAN,dccStruttureEleAltroDescrizione STRING null,dccOrizzontamentiCAAcciaio BOOLEAN,dccOrizzontamentiLegno BOOLEAN,dccOrizzontamentiLegnoCA BOOLEAN,dccOrizzontamentiLamieraGrecata BOOLEAN,dccOrizzontamentiVolte BOOLEAN,dccOrizzontamentiAltro BOOLEAN,dccOrizzontamentiAltroDescrizione STRING null,dccCopertura VARCHAR(75) null,dccCoperturaCAAcciaio BOOLEAN,dccCoperturaLegno BOOLEAN,dccCoperturaLegnoCA BOOLEAN,dccCoperturaLamieraGrecata BOOLEAN,dccCoperturaPannelli BOOLEAN,dccCoperturaPVCTelonati BOOLEAN,dccCoperturaLeggere BOOLEAN,dccCoperturaAltro BOOLEAN,dccCoperturaAltroDesrizione STRING null,dccElemNonStrutLaterizio BOOLEAN,dccElemNonStrutCartongesso BOOLEAN,dccElemNonStrutCalcestruzzo BOOLEAN,dccElemNonStrutLegno BOOLEAN,dccElemNonStrutAltro BOOLEAN,dccElemNonStrutAltroDescrizione STRING null,dccOpereDiRinforzoInsCatene BOOLEAN,dccOpereDiRinforzoInsCordoli BOOLEAN,dccOpereDiRinforzoIniArmate BOOLEAN,dccOpereDiRinforzoPlaccaggi BOOLEAN,dccOpereDiRinforzoIrrSolai BOOLEAN,dccOpereDiRinforzoRinforziFRP BOOLEAN,dccOpereDiRinforzoTelaiECerchiature BOOLEAN,dccOpereDiRinforzoInsRompitratta BOOLEAN,dccOpereDiRinforzoAltro BOOLEAN,dccOpereDiRinforzoAltroDescrizione STRING null,geoClasseIndagine VARCHAR(75) null,geoCategoriaSottosuolo VARCHAR(75) null,geoCategoriaTopografica VARCHAR(75) null,geoConsolidamento VARCHAR(75) null,geoPericolositaGeologica VARCHAR(75) null,geoPericolositaSismica VARCHAR(75) null,geoPericolositaIdraulica VARCHAR(75) null,geoPericolositaGeomorfica VARCHAR(75) null,geoRischioGeomorfologicoPai VARCHAR(75) null,geoPericolositaIdraulicaPai VARCHAR(75) null,geoRischioIdraulicoPai VARCHAR(75) null,geoFattibilitaGeologica VARCHAR(75) null,geoFattibilitaSismica VARCHAR(75) null,geoFattibilitaIdraulica VARCHAR(75) null,geoOperaRilevante VARCHAR(75) null,geoOpereDiSostegno VARCHAR(75) null,geoOpereInSotterranea VARCHAR(75) null,geoPresenzaPrescrizioni VARCHAR(75) null,geoNotePrescrizioni STRING null,geoNoteIndagini STRING null,geoEvidenzeGeomorfiche VARCHAR(75) null,geoEvidenzeGeologiche VARCHAR(75) null,geoDtRelazione DATE null,pagNuoveCostruzioni BOOLEAN,pagAdeguamentoSismico INTEGER,pagMiglioramentoSismico INTEGER,pagMiglioramentoSismicoSicilia BOOLEAN,pagRiparazioneInterventoLocale BOOLEAN,pagOperaNonQuantificabile BOOLEAN,pagNuovaCostruzione INTEGER,pagVarianti BOOLEAN,pagAltro INTEGER,pagCalcolatoAdeguamentoSismico VARCHAR(75) null,pagCalcolatoMiglioramentoSismico VARCHAR(75) null,pagCalcolatoRiparazioneInterventoLocale VARCHAR(75) null,pagCalcolatoOperaNonQuantificabile VARCHAR(75) null,pagEffettivoAdeguamentoSismico VARCHAR(75) null,pagEffettivoMiglioramentoSismico VARCHAR(75) null,pagEffettivoRiparazioneInterventoLocale VARCHAR(75) null,pagEffettivoOperaNonQuantificabile VARCHAR(75) null,pagNoteUtente TEXT null,note STRING null,noteUfficio STRING null,localizzazioneGeografica VARCHAR(75) null,tcNuovaCostruzione BOOLEAN,tcNuovaCostruzioneComplessa BOOLEAN,tcAdeguamentoSismico BOOLEAN,tcMiglioramentoSismico BOOLEAN,tcRiparazioneInterventoLocale BOOLEAN,tcCostruzioniEsistenti BOOLEAN,tcManutOrdStraord BOOLEAN,tcNuovaCostruzionePertinenza BOOLEAN,tcInterventoOpereEscavazione BOOLEAN,tcViarch BOOLEAN,tcOperaA25 BOOLEAN,tcAltriInterventi BOOLEAN,tcAltriInterventiDesc VARCHAR(75) null,tcInCA BOOLEAN,tcInOpera BOOLEAN,tcPrefabbricato BOOLEAN,tcInAcciaio BOOLEAN,tcMista BOOLEAN,tcInMuratura BOOLEAN,tcInMuraturaOrdinaria BOOLEAN,tcInMuraturaArmata BOOLEAN,tcInMuraturaMista BOOLEAN,tcInLegno BOOLEAN,tcAltro BOOLEAN,tcAltroDescrizione STRING null,tcConDispositivi BOOLEAN,normLavoriInProprio BOOLEAN,normEsenteBollo BOOLEAN,normEsenteSpese BOOLEAN,normDpr01Dep BOOLEAN,normDpr02Dep BOOLEAN,normDpr01Aut BOOLEAN,normDpr02Aut BOOLEAN,normDpr03 BOOLEAN,normDpr04 BOOLEAN,normDpr05 BOOLEAN,normDm01 BOOLEAN,normDm02 BOOLEAN,normDm03 BOOLEAN,normDm2018 BOOLEAN,normDm04 BOOLEAN,normDm05 BOOLEAN,normDprg01 BOOLEAN,normDprg02 BOOLEAN,normAnr BOOLEAN,normOrd01 BOOLEAN,normCI01 BOOLEAN,normLTC01 BOOLEAN,normArt3com3 BOOLEAN,normArt3com4 BOOLEAN,dpdc BOOLEAN,normSismaBonus BOOLEAN,clRischioPreInt VARCHAR(75) null,clRischioPostInt VARCHAR(75) null,intervFinPub BOOLEAN,intervFinPubDesc STRING null,suap BOOLEAN)"; public static final String TABLE_SQL_DROP = "drop table portos_bo_DettPratica"; public static final String ORDER_BY_JPQL = " ORDER BY dettPratica.dettPraticaId ASC"; public static final String ORDER_BY_SQL = " ORDER BY portos_bo_DettPratica.dettPraticaId ASC"; @@ -419,6 +420,7 @@ public class DettPraticaModelImpl extends BaseModelImpl model.setCodiceFiscalePrincipaleDirettoreLavori(soapModel.getCodiceFiscalePrincipaleDirettoreLavori()); model.setCodiceFiscalePrincipaleDitta(soapModel.getCodiceFiscalePrincipaleDitta()); model.setCodiceFiscalePrincipaleGeologo(soapModel.getCodiceFiscalePrincipaleGeologo()); + model.setCodiceFiscalePrincipaleArcheologo(soapModel.getCodiceFiscalePrincipaleArcheologo()); model.setLavoriInEconomiaCommittente(soapModel.getLavoriInEconomiaCommittente()); model.setInizioLavoriContestualeOpera(soapModel.getInizioLavoriContestualeOpera()); model.setDataInizioLavoriOpera(soapModel.getDataInizioLavoriOpera()); @@ -741,6 +743,8 @@ public class DettPraticaModelImpl extends BaseModelImpl getCodiceFiscalePrincipaleDitta()); attributes.put("codiceFiscalePrincipaleGeologo", getCodiceFiscalePrincipaleGeologo()); + attributes.put("codiceFiscalePrincipaleArcheologo", + getCodiceFiscalePrincipaleArcheologo()); attributes.put("lavoriInEconomiaCommittente", getLavoriInEconomiaCommittente()); attributes.put("inizioLavoriContestualeOpera", @@ -1374,6 +1378,13 @@ public class DettPraticaModelImpl extends BaseModelImpl setCodiceFiscalePrincipaleGeologo(codiceFiscalePrincipaleGeologo); } + String codiceFiscalePrincipaleArcheologo = (String)attributes.get( + "codiceFiscalePrincipaleArcheologo"); + + if (codiceFiscalePrincipaleArcheologo != null) { + setCodiceFiscalePrincipaleArcheologo(codiceFiscalePrincipaleArcheologo); + } + Boolean lavoriInEconomiaCommittente = (Boolean)attributes.get( "lavoriInEconomiaCommittente"); @@ -3613,6 +3624,23 @@ public class DettPraticaModelImpl extends BaseModelImpl _codiceFiscalePrincipaleGeologo = codiceFiscalePrincipaleGeologo; } + @JSON + @Override + public String getCodiceFiscalePrincipaleArcheologo() { + if (_codiceFiscalePrincipaleArcheologo == null) { + return StringPool.BLANK; + } + else { + return _codiceFiscalePrincipaleArcheologo; + } + } + + @Override + public void setCodiceFiscalePrincipaleArcheologo( + String codiceFiscalePrincipaleArcheologo) { + _codiceFiscalePrincipaleArcheologo = codiceFiscalePrincipaleArcheologo; + } + @JSON @Override public boolean getLavoriInEconomiaCommittente() { @@ -6781,6 +6809,7 @@ public class DettPraticaModelImpl extends BaseModelImpl dettPraticaImpl.setCodiceFiscalePrincipaleDirettoreLavori(getCodiceFiscalePrincipaleDirettoreLavori()); dettPraticaImpl.setCodiceFiscalePrincipaleDitta(getCodiceFiscalePrincipaleDitta()); dettPraticaImpl.setCodiceFiscalePrincipaleGeologo(getCodiceFiscalePrincipaleGeologo()); + dettPraticaImpl.setCodiceFiscalePrincipaleArcheologo(getCodiceFiscalePrincipaleArcheologo()); dettPraticaImpl.setLavoriInEconomiaCommittente(getLavoriInEconomiaCommittente()); dettPraticaImpl.setInizioLavoriContestualeOpera(getInizioLavoriContestualeOpera()); dettPraticaImpl.setDataInizioLavoriOpera(getDataInizioLavoriOpera()); @@ -7441,6 +7470,15 @@ public class DettPraticaModelImpl extends BaseModelImpl dettPraticaCacheModel.codiceFiscalePrincipaleGeologo = null; } + dettPraticaCacheModel.codiceFiscalePrincipaleArcheologo = getCodiceFiscalePrincipaleArcheologo(); + + String codiceFiscalePrincipaleArcheologo = dettPraticaCacheModel.codiceFiscalePrincipaleArcheologo; + + if ((codiceFiscalePrincipaleArcheologo != null) && + (codiceFiscalePrincipaleArcheologo.length() == 0)) { + dettPraticaCacheModel.codiceFiscalePrincipaleArcheologo = null; + } + dettPraticaCacheModel.lavoriInEconomiaCommittente = getLavoriInEconomiaCommittente(); dettPraticaCacheModel.inizioLavoriContestualeOpera = getInizioLavoriContestualeOpera(); @@ -8286,7 +8324,7 @@ public class DettPraticaModelImpl extends BaseModelImpl @Override public String toString() { - StringBundler sb = new StringBundler(499); + StringBundler sb = new StringBundler(501); sb.append("{uuid="); sb.append(getUuid()); @@ -8412,6 +8450,8 @@ public class DettPraticaModelImpl extends BaseModelImpl sb.append(getCodiceFiscalePrincipaleDitta()); sb.append(", codiceFiscalePrincipaleGeologo="); sb.append(getCodiceFiscalePrincipaleGeologo()); + sb.append(", codiceFiscalePrincipaleArcheologo="); + sb.append(getCodiceFiscalePrincipaleArcheologo()); sb.append(", lavoriInEconomiaCommittente="); sb.append(getLavoriInEconomiaCommittente()); sb.append(", inizioLavoriContestualeOpera="); @@ -8793,7 +8833,7 @@ public class DettPraticaModelImpl extends BaseModelImpl @Override public String toXmlString() { - StringBundler sb = new StringBundler(751); + StringBundler sb = new StringBundler(754); sb.append(""); sb.append("it.tref.liferay.portos.bo.model.DettPratica"); @@ -9047,6 +9087,10 @@ public class DettPraticaModelImpl extends BaseModelImpl "codiceFiscalePrincipaleGeologo"); + sb.append( + "codiceFiscalePrincipaleArcheologo"); sb.append( "lavoriInEconomiaCommittente private String _codiceFiscalePrincipaleDirettoreLavori; private String _codiceFiscalePrincipaleDitta; private String _codiceFiscalePrincipaleGeologo; + private String _codiceFiscalePrincipaleArcheologo; private boolean _lavoriInEconomiaCommittente; private boolean _inizioLavoriContestualeOpera; private Date _dataInizioLavoriOpera; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerEstrazioneFirme.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerEstrazioneFirme.java index 006c1e4e..089d2304 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerEstrazioneFirme.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerEstrazioneFirme.java @@ -4,13 +4,8 @@ import it.tref.liferay.portos.bo.model.DocPratica; import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.shared.util.ConfigurazioneConstants; -import it.tref.liferay.portos.bo.util.ContentType; - -import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -18,6 +13,14 @@ import java.util.concurrent.locks.ReentrantLock; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FileUtils; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.entity.mime.content.ByteArrayBody; +import org.apache.http.entity.mime.content.ContentBody; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; import com.liferay.portal.kernel.dao.orm.QueryUtil; import com.liferay.portal.kernel.json.JSONArray; @@ -28,10 +31,8 @@ import com.liferay.portal.kernel.messaging.Message; import com.liferay.portal.kernel.messaging.MessageListener; import com.liferay.portal.kernel.messaging.MessageListenerException; import com.liferay.portal.kernel.util.FileUtil; -import com.liferay.portal.kernel.util.Http.FilePart; -import com.liferay.portal.kernel.util.Http.Options; -import com.liferay.portal.kernel.util.HttpUtil; import com.liferay.portal.kernel.util.PropsUtil; +import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.UniqueList; import com.liferay.portal.kernel.workflow.WorkflowConstants; import com.liferay.portal.model.Company; @@ -68,10 +69,10 @@ public class SchedulerEstrazioneFirme implements MessageListener { List docPratiche = DocPraticaLocalServiceUtil.findByStaus( WorkflowConstants.STATUS_PENDING, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); - for (DocPratica docPratica : docPratiche) { - String urlPdfExtractor = (String) company.getExpandoBridge().getAttribute( - "url_pdf_extractor", false); + String urlPdfExtractor = (String) company.getExpandoBridge().getAttribute( + "url_pdf_extractor", false); + for (DocPratica docPratica : docPratiche) { DLFileEntry fileEntry = DLFileEntryLocalServiceUtil.getFileEntry(docPratica .getDlFileEntryId()); User user = UserLocalServiceUtil.getRoleUsers( @@ -81,23 +82,18 @@ public class SchedulerEstrazioneFirme implements MessageListener { .create(user)); byte[] fileBytes = FileUtil.getBytes(fileEntry.getContentStream()); - Options options = new Options(); - options.setLocation(urlPdfExtractor); - options.setPost(true); - List fileParts = new ArrayList<>(); - fileParts.add(new FilePart("file", fileEntry.getTitle(), fileBytes, - ContentType.P7M.getContentType(), "UTF-8")); - options.setFileParts(fileParts); - - String responseBody; - try { - responseBody = HttpUtil.URLtoString(options); - } catch (Exception e) { - responseBody = ""; - } - - if (options.getResponse().getResponseCode() == HttpServletResponse.SC_OK - || options.getResponse().getResponseCode() == HttpServletResponse.SC_CREATED) { + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + ContentBody body = new ByteArrayBody(fileBytes, fileEntry.getTitle()); + builder.addPart("file", body); + HttpPost request = new HttpPost(urlPdfExtractor); + request.setEntity(builder.build()); + CloseableHttpClient client = HttpClientBuilder.create().build(); + HttpResponse response = client.execute(request); + + int statusCode = response.getStatusLine().getStatusCode(); + String responseBody = EntityUtils.toString(response.getEntity(), StringPool.UTF8); + if (statusCode == HttpServletResponse.SC_OK + || statusCode == HttpServletResponse.SC_CREATED) { JSONArray arrayFirme = JSONFactoryUtil.createJSONObject(responseBody) .getJSONArray("cf"); List cf = new UniqueList(); @@ -117,8 +113,7 @@ public class SchedulerEstrazioneFirme implements MessageListener { errorCode); _log.warn("P7M REST extractor error. Response: " + new String(responseBody) + " id=" + fileEntry.getFileEntryId()); - // salvaCampione(fileEntry, fileBytes, - // "0-firme"); + salvaCampione(fileEntry, fileBytes, "0-firme"); } } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerGeneraDocumento.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerGeneraDocumento.java index f470422c..6621f8aa 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerGeneraDocumento.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerGeneraDocumento.java @@ -132,29 +132,6 @@ public class SchedulerGeneraDocumento implements MessageListener { if (Validator.isNotNull(avviso.getJsonParameters())) { JSONDeserializer> deserializer = JSONFactoryUtil.createJSONDeserializer(); parameters.putAll(deserializer.deserialize(avviso.getJsonParameters())); - - // TODO vedere se vann oaggiunti dati presi in altro modo - // if - // (parameters.containsKey(WorkflowConstants.WORKFLOW_PARAM_NAME_DELEGATO_OUT)) - // { - // User user = null; - // String delegato = - // GetterUtil.getString(parameters.get(WorkflowConstants.WORKFLOW_PARAM_NAME_DELEGATO_OUT)); - // List expandoValues = - // ExpandoValueLocalServiceUtil.getColumnValues(companyId, - // User.class.getName(), - // Constants.CUSTOM_FIELD_TABLE_NAME, - // Constants.CUSTOM_FIELD_GC_USERID, delegato, - // QueryUtil.ALL_POS, - // QueryUtil.ALL_POS); - // if (expandoValues != null && !expandoValues.isEmpty()) { - // ExpandoValue expandoValue = expandoValues.get(0); - // user = - // UserLocalServiceUtil.fetchUserById(expandoValue.getClassPK()); - // } - // parameters.put(WorkflowConstants.WORKFLOW_PARAM_NAME_DELEGATO, - // user.getFullName()); - // } } Object bean; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/IntPraticaLocalServiceClpInvoker.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/IntPraticaLocalServiceClpInvoker.java index 5f0ac1d7..40792122 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/IntPraticaLocalServiceClpInvoker.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/IntPraticaLocalServiceClpInvoker.java @@ -130,347 +130,339 @@ public class IntPraticaLocalServiceClpInvoker { _methodParameterTypes199 = new String[] { "java.lang.String" }; - _methodName204 = "findSorteggiabiliNew"; + _methodName204 = "addIntPratica"; - _methodParameterTypes204 = new String[] { "long", "java.util.Date" }; - - _methodName205 = "findSorteggiabili"; - - _methodParameterTypes205 = new String[] { "long", "java.util.Date" }; - - _methodName206 = "addIntPratica"; - - _methodParameterTypes206 = new String[] { + _methodParameterTypes204 = new String[] { "long", "java.lang.String", "com.liferay.portal.service.ServiceContext" }; - _methodName207 = "addIntPratica"; + _methodName205 = "addIntPratica"; - _methodParameterTypes207 = new String[] { + _methodParameterTypes205 = new String[] { "long", "java.lang.String", "java.lang.String", "long", "java.lang.String", "java.util.Date", "java.lang.String", "java.lang.String", "boolean", "int", "java.util.Date", "long", "com.liferay.portal.service.ServiceContext" }; - _methodName208 = "svuotaDatabase2"; + _methodName206 = "svuotaDatabase2"; - _methodParameterTypes208 = new String[] { + _methodParameterTypes206 = new String[] { "com.liferay.portal.service.ServiceContext" }; - _methodName210 = "clearDb"; + _methodName208 = "clearDb"; - _methodParameterTypes210 = new String[] { }; + _methodParameterTypes208 = new String[] { }; - _methodName211 = "deleteIntPratica"; + _methodName209 = "deleteIntPratica"; - _methodParameterTypes211 = new String[] { + _methodParameterTypes209 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "boolean" }; - _methodName212 = "deleteIntPratica"; + _methodName210 = "deleteIntPratica"; - _methodParameterTypes212 = new String[] { + _methodParameterTypes210 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica" }; - _methodName213 = "cloneIntPratica"; + _methodName211 = "cloneIntPratica"; - _methodParameterTypes213 = new String[] { + _methodParameterTypes211 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName215 = "updateDelegati"; + _methodName213 = "updateDelegati"; - _methodParameterTypes215 = new String[] { + _methodParameterTypes213 = new String[] { "long", "java.lang.String", "java.lang.String", "boolean" }; - _methodName216 = "fetchIntPratica"; + _methodName214 = "fetchIntPratica"; - _methodParameterTypes216 = new String[] { "long" }; + _methodParameterTypes214 = new String[] { "long" }; - _methodName217 = "findFascicoliNotProgetto"; + _methodName215 = "findFascicoliNotProgetto"; - _methodParameterTypes217 = new String[] { "int", "int" }; + _methodParameterTypes215 = new String[] { "int", "int" }; - _methodName218 = "countFascicoliNotProgetto"; + _methodName216 = "countFascicoliNotProgetto"; - _methodParameterTypes218 = new String[] { }; + _methodParameterTypes216 = new String[] { }; - _methodName220 = "addNumeroProgetto"; + _methodName218 = "addNumeroProgetto"; - _methodParameterTypes220 = new String[] { "long" }; + _methodParameterTypes218 = new String[] { "long" }; - _methodName222 = "sospendiPratica"; + _methodName220 = "sospendiPratica"; - _methodParameterTypes222 = new String[] { "long", "boolean" }; + _methodParameterTypes220 = new String[] { "long", "boolean" }; - _methodName223 = "cambiaTitolare"; + _methodName221 = "cambiaTitolare"; - _methodParameterTypes223 = new String[] { + _methodParameterTypes221 = new String[] { "long", "long", "com.liferay.portal.service.ServiceContext" }; - _methodName224 = "updateStatoPratica"; + _methodName222 = "updateStatoPratica"; - _methodParameterTypes224 = new String[] { + _methodParameterTypes222 = new String[] { "long", "long", "java.lang.String" }; - _methodName226 = "updateIntPraticaSorteggio"; + _methodName224 = "updateIntPraticaSorteggio"; - _methodParameterTypes226 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes224 = new String[] { "long", "java.util.Date" }; - _methodName227 = "updateIntPraticaSorteggio"; + _methodName225 = "updateIntPraticaSorteggio"; - _methodParameterTypes227 = new String[] { + _methodParameterTypes225 = new String[] { "long", "java.util.Date", "java.lang.String" }; - _methodName228 = "findByC_UserId"; + _methodName226 = "findByC_UserId"; - _methodParameterTypes228 = new String[] { "long", "long", "int", "int" }; + _methodParameterTypes226 = new String[] { "long", "long", "int", "int" }; - _methodName229 = "countByC_UserId"; + _methodName227 = "countByC_UserId"; - _methodParameterTypes229 = new String[] { "long", "long" }; + _methodParameterTypes227 = new String[] { "long", "long" }; - _methodName230 = "fetchByOldIntPraticaId"; + _methodName228 = "fetchByOldIntPraticaId"; - _methodParameterTypes230 = new String[] { "long" }; + _methodParameterTypes228 = new String[] { "long" }; - _methodName231 = "updateStatus"; + _methodName229 = "updateStatus"; - _methodParameterTypes231 = new String[] { "long", "int" }; + _methodParameterTypes229 = new String[] { "long", "int" }; - _methodName232 = "findByCompanyIdSoggettoProgetti"; + _methodName230 = "findByCompanyIdSoggettoProgetti"; - _methodParameterTypes232 = new String[] { "long", "long" }; + _methodParameterTypes230 = new String[] { "long", "long" }; - _methodName233 = "countByCompanyIdSoggettoProgetti"; + _methodName231 = "countByCompanyIdSoggettoProgetti"; - _methodParameterTypes233 = new String[] { "long", "long" }; + _methodParameterTypes231 = new String[] { "long", "long" }; - _methodName235 = "findByCompanyIdSoggettoArchivio"; + _methodName233 = "findByCompanyIdSoggettoArchivio"; - _methodParameterTypes235 = new String[] { "long", "long" }; + _methodParameterTypes233 = new String[] { "long", "long" }; - _methodName236 = "countByCompanyIdSoggettoArchivio"; + _methodName234 = "countByCompanyIdSoggettoArchivio"; - _methodParameterTypes236 = new String[] { "long", "long" }; + _methodParameterTypes234 = new String[] { "long", "long" }; - _methodName238 = "findByCompanyIdSoggettoAltriProgetti"; + _methodName236 = "findByCompanyIdSoggettoAltriProgetti"; - _methodParameterTypes238 = new String[] { "long", "long", "int", "int" }; + _methodParameterTypes236 = new String[] { "long", "long", "int", "int" }; - _methodName239 = "countByCompanyIdSoggettoAltriProgetti"; + _methodName237 = "countByCompanyIdSoggettoAltriProgetti"; - _methodParameterTypes239 = new String[] { "long", "long" }; + _methodParameterTypes237 = new String[] { "long", "long" }; - _methodName241 = "findByCanAddFineLavori"; + _methodName239 = "findByCanAddFineLavori"; - _methodParameterTypes241 = new String[] { + _methodParameterTypes239 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName242 = "countByCanAddFineLavori"; + _methodName240 = "countByCanAddFineLavori"; - _methodParameterTypes242 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes240 = new String[] { "long", "java.lang.String" }; - _methodName244 = "findByCanAddCollaudo"; + _methodName242 = "findByCanAddCollaudo"; - _methodParameterTypes244 = new String[] { + _methodParameterTypes242 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName245 = "countByCanAddCollaudo"; + _methodName243 = "countByCanAddCollaudo"; - _methodParameterTypes245 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes243 = new String[] { "long", "java.lang.String" }; - _methodName247 = "search"; + _methodName245 = "search"; - _methodParameterTypes247 = new String[] { "java.util.List", "int", "int" }; + _methodParameterTypes245 = new String[] { "java.util.List", "int", "int" }; - _methodName248 = "countSearch"; + _methodName246 = "countSearch"; - _methodParameterTypes248 = new String[] { "java.util.List" }; + _methodParameterTypes246 = new String[] { "java.util.List" }; - _methodName249 = "searchWithIntPraticaId"; + _methodName247 = "searchWithIntPraticaId"; - _methodParameterTypes249 = new String[] { + _methodParameterTypes247 = new String[] { "java.util.List", "long", "int", "int" }; - _methodName250 = "countSearchWithIntPraticaId"; + _methodName248 = "countSearchWithIntPraticaId"; - _methodParameterTypes250 = new String[] { "java.util.List", "long" }; + _methodParameterTypes248 = new String[] { "java.util.List", "long" }; - _methodName251 = "allegaFileAnnullamento"; + _methodName249 = "allegaFileAnnullamento"; - _methodParameterTypes251 = new String[] { + _methodParameterTypes249 = new String[] { "long", "byte[][]", "java.lang.String", "java.lang.String", "com.liferay.portal.service.ServiceContext" }; - _methodName252 = "generateFileAnnullamento"; + _methodName250 = "generateFileAnnullamento"; - _methodParameterTypes252 = new String[] { + _methodParameterTypes250 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName253 = "deleteFileAnnullamento"; + _methodName251 = "deleteFileAnnullamento"; - _methodParameterTypes253 = new String[] { "long" }; + _methodParameterTypes251 = new String[] { "long" }; - _methodName254 = "completeAnnullamento"; + _methodName252 = "completeAnnullamento"; - _methodParameterTypes254 = new String[] { "long" }; + _methodParameterTypes252 = new String[] { "long" }; - _methodName255 = "cambiaIstruttore"; + _methodName253 = "cambiaIstruttore"; - _methodParameterTypes255 = new String[] { "long", "long", "long" }; + _methodParameterTypes253 = new String[] { "long", "long", "long" }; - _methodName256 = "countCaricoLavoroCF"; + _methodName254 = "countCaricoLavoroCF"; - _methodParameterTypes256 = new String[] { + _methodParameterTypes254 = new String[] { "long", "java.lang.String", "java.lang.Boolean", "java.lang.Long[][]" }; - _methodName257 = "countCaricoLavoroIstruttore"; + _methodName255 = "countCaricoLavoroIstruttore"; - _methodParameterTypes257 = new String[] { + _methodParameterTypes255 = new String[] { "long", "java.lang.String", "java.lang.Boolean" }; - _methodName258 = "generateReportPratica"; + _methodName256 = "generateReportPratica"; - _methodParameterTypes258 = new String[] { + _methodParameterTypes256 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName259 = "updateModifiedDate"; + _methodName257 = "updateModifiedDate"; - _methodParameterTypes259 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes257 = new String[] { "long", "java.util.Date" }; - _methodName260 = "countAutorizzazione"; + _methodName258 = "countAutorizzazione"; - _methodParameterTypes260 = new String[] { + _methodParameterTypes258 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName261 = "countSanatorie"; + _methodName259 = "countSanatorie"; - _methodParameterTypes261 = new String[] { + _methodParameterTypes259 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName262 = "countOpereMinoreImportanza"; + _methodName260 = "countOpereMinoreImportanza"; - _methodParameterTypes262 = new String[] { + _methodParameterTypes260 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName263 = "countDeposito"; + _methodName261 = "countDeposito"; - _methodParameterTypes263 = new String[] { + _methodParameterTypes261 = new String[] { "java.util.Date", "java.util.Date", "long", "boolean" }; - _methodName264 = "countVidimate"; + _methodName262 = "countVidimate"; - _methodParameterTypes264 = new String[] { + _methodParameterTypes262 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName265 = "countControllo"; + _methodName263 = "countControllo"; - _methodParameterTypes265 = new String[] { + _methodParameterTypes263 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName266 = "importaVecchiFilesFascicolo"; + _methodName264 = "importaVecchiFilesFascicolo"; - _methodParameterTypes266 = new String[] { "long", "int", "int" }; + _methodParameterTypes264 = new String[] { "long", "int", "int" }; - _methodName267 = "findIntPraticaNotExist"; + _methodName265 = "findIntPraticaNotExist"; - _methodParameterTypes267 = new String[] { }; + _methodParameterTypes265 = new String[] { }; - _methodName268 = "riparaWorkflow"; + _methodName266 = "riparaWorkflow"; - _methodParameterTypes268 = new String[] { }; + _methodParameterTypes266 = new String[] { }; - _methodName269 = "reIndexFascicolo"; + _methodName267 = "reIndexFascicolo"; - _methodParameterTypes269 = new String[] { + _methodParameterTypes267 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName270 = "reIndexFasciolo"; + _methodName268 = "reIndexFasciolo"; - _methodParameterTypes270 = new String[] { "java.lang.String", "long" }; + _methodParameterTypes268 = new String[] { "java.lang.String", "long" }; - _methodName271 = "reIndexFasciolo"; + _methodName269 = "reIndexFasciolo"; - _methodParameterTypes271 = new String[] { "long", "long" }; + _methodParameterTypes269 = new String[] { "long", "long" }; - _methodName272 = "trovaDoppioni"; + _methodName270 = "trovaDoppioni"; - _methodParameterTypes272 = new String[] { }; + _methodParameterTypes270 = new String[] { }; - _methodName273 = "findByNumeroProgetto"; + _methodName271 = "findByNumeroProgetto"; - _methodParameterTypes273 = new String[] { "java.lang.String" }; + _methodParameterTypes271 = new String[] { "java.lang.String" }; - _methodName274 = "findByTerritorioId"; + _methodName272 = "findByTerritorioId"; - _methodParameterTypes274 = new String[] { "long" }; + _methodParameterTypes272 = new String[] { "long" }; - _methodName275 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; + _methodName273 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; - _methodParameterTypes275 = new String[] { + _methodParameterTypes273 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName276 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; + _methodName274 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; - _methodParameterTypes276 = new String[] { + _methodParameterTypes274 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName277 = "reportPraticheVidimate"; + _methodName275 = "reportPraticheVidimate"; - _methodParameterTypes277 = new String[] { + _methodParameterTypes275 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName278 = "reportPraticheVidimateCalcolaDataSorteggio"; + _methodName276 = "reportPraticheVidimateCalcolaDataSorteggio"; - _methodParameterTypes278 = new String[] { + _methodParameterTypes276 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName279 = "countIngressiAutorizzazioni"; + _methodName277 = "countIngressiAutorizzazioni"; - _methodParameterTypes279 = new String[] { + _methodParameterTypes277 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName280 = "countIngressiDepositi"; + _methodName278 = "countIngressiDepositi"; - _methodParameterTypes280 = new String[] { + _methodParameterTypes278 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName281 = "countIngressiCO"; + _methodName279 = "countIngressiCO"; - _methodParameterTypes281 = new String[] { + _methodParameterTypes279 = new String[] { "java.util.Date", "java.util.Date", "long" }; } @@ -602,25 +594,13 @@ public class IntPraticaLocalServiceClpInvoker { if (_methodName204.equals(name) && Arrays.deepEquals(_methodParameterTypes204, parameterTypes)) { - return IntPraticaLocalServiceUtil.findSorteggiabiliNew(((Long)arguments[0]).longValue(), - (java.util.Date)arguments[1]); - } - - if (_methodName205.equals(name) && - Arrays.deepEquals(_methodParameterTypes205, parameterTypes)) { - return IntPraticaLocalServiceUtil.findSorteggiabili(((Long)arguments[0]).longValue(), - (java.util.Date)arguments[1]); - } - - if (_methodName206.equals(name) && - Arrays.deepEquals(_methodParameterTypes206, parameterTypes)) { return IntPraticaLocalServiceUtil.addIntPratica(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], (com.liferay.portal.service.ServiceContext)arguments[2]); } - if (_methodName207.equals(name) && - Arrays.deepEquals(_methodParameterTypes207, parameterTypes)) { + if (_methodName205.equals(name) && + Arrays.deepEquals(_methodParameterTypes205, parameterTypes)) { return IntPraticaLocalServiceUtil.addIntPratica(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], (java.lang.String)arguments[2], ((Long)arguments[3]).longValue(), @@ -633,243 +613,243 @@ public class IntPraticaLocalServiceClpInvoker { (com.liferay.portal.service.ServiceContext)arguments[12]); } - if (_methodName208.equals(name) && - Arrays.deepEquals(_methodParameterTypes208, parameterTypes)) { + if (_methodName206.equals(name) && + Arrays.deepEquals(_methodParameterTypes206, parameterTypes)) { return IntPraticaLocalServiceUtil.svuotaDatabase2((com.liferay.portal.service.ServiceContext)arguments[0]); } - if (_methodName210.equals(name) && - Arrays.deepEquals(_methodParameterTypes210, parameterTypes)) { + if (_methodName208.equals(name) && + Arrays.deepEquals(_methodParameterTypes208, parameterTypes)) { IntPraticaLocalServiceUtil.clearDb(); return null; } - if (_methodName211.equals(name) && - Arrays.deepEquals(_methodParameterTypes211, parameterTypes)) { + if (_methodName209.equals(name) && + Arrays.deepEquals(_methodParameterTypes209, parameterTypes)) { return IntPraticaLocalServiceUtil.deleteIntPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], ((Boolean)arguments[1]).booleanValue()); } - if (_methodName212.equals(name) && - Arrays.deepEquals(_methodParameterTypes212, parameterTypes)) { + if (_methodName210.equals(name) && + Arrays.deepEquals(_methodParameterTypes210, parameterTypes)) { return IntPraticaLocalServiceUtil.deleteIntPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0]); } - if (_methodName213.equals(name) && - Arrays.deepEquals(_methodParameterTypes213, parameterTypes)) { + if (_methodName211.equals(name) && + Arrays.deepEquals(_methodParameterTypes211, parameterTypes)) { return IntPraticaLocalServiceUtil.cloneIntPratica(((Long)arguments[0]).longValue(), (com.liferay.portal.service.ServiceContext)arguments[1]); } - if (_methodName215.equals(name) && - Arrays.deepEquals(_methodParameterTypes215, parameterTypes)) { + if (_methodName213.equals(name) && + Arrays.deepEquals(_methodParameterTypes213, parameterTypes)) { return IntPraticaLocalServiceUtil.updateDelegati(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], (java.lang.String)arguments[2], ((Boolean)arguments[3]).booleanValue()); } - if (_methodName216.equals(name) && - Arrays.deepEquals(_methodParameterTypes216, parameterTypes)) { + if (_methodName214.equals(name) && + Arrays.deepEquals(_methodParameterTypes214, parameterTypes)) { return IntPraticaLocalServiceUtil.fetchIntPratica(((Long)arguments[0]).longValue()); } - if (_methodName217.equals(name) && - Arrays.deepEquals(_methodParameterTypes217, parameterTypes)) { + if (_methodName215.equals(name) && + Arrays.deepEquals(_methodParameterTypes215, parameterTypes)) { return IntPraticaLocalServiceUtil.findFascicoliNotProgetto(((Integer)arguments[0]).intValue(), ((Integer)arguments[1]).intValue()); } - if (_methodName218.equals(name) && - Arrays.deepEquals(_methodParameterTypes218, parameterTypes)) { + if (_methodName216.equals(name) && + Arrays.deepEquals(_methodParameterTypes216, parameterTypes)) { return IntPraticaLocalServiceUtil.countFascicoliNotProgetto(); } - if (_methodName220.equals(name) && - Arrays.deepEquals(_methodParameterTypes220, parameterTypes)) { + if (_methodName218.equals(name) && + Arrays.deepEquals(_methodParameterTypes218, parameterTypes)) { return IntPraticaLocalServiceUtil.addNumeroProgetto(((Long)arguments[0]).longValue()); } - if (_methodName222.equals(name) && - Arrays.deepEquals(_methodParameterTypes222, parameterTypes)) { + if (_methodName220.equals(name) && + Arrays.deepEquals(_methodParameterTypes220, parameterTypes)) { return IntPraticaLocalServiceUtil.sospendiPratica(((Long)arguments[0]).longValue(), ((Boolean)arguments[1]).booleanValue()); } - if (_methodName223.equals(name) && - Arrays.deepEquals(_methodParameterTypes223, parameterTypes)) { + if (_methodName221.equals(name) && + Arrays.deepEquals(_methodParameterTypes221, parameterTypes)) { return IntPraticaLocalServiceUtil.cambiaTitolare(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue(), (com.liferay.portal.service.ServiceContext)arguments[2]); } - if (_methodName224.equals(name) && - Arrays.deepEquals(_methodParameterTypes224, parameterTypes)) { + if (_methodName222.equals(name) && + Arrays.deepEquals(_methodParameterTypes222, parameterTypes)) { return IntPraticaLocalServiceUtil.updateStatoPratica(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue(), (java.lang.String)arguments[2]); } - if (_methodName226.equals(name) && - Arrays.deepEquals(_methodParameterTypes226, parameterTypes)) { + if (_methodName224.equals(name) && + Arrays.deepEquals(_methodParameterTypes224, parameterTypes)) { return IntPraticaLocalServiceUtil.updateIntPraticaSorteggio(((Long)arguments[0]).longValue(), (java.util.Date)arguments[1]); } - if (_methodName227.equals(name) && - Arrays.deepEquals(_methodParameterTypes227, parameterTypes)) { + if (_methodName225.equals(name) && + Arrays.deepEquals(_methodParameterTypes225, parameterTypes)) { return IntPraticaLocalServiceUtil.updateIntPraticaSorteggio(((Long)arguments[0]).longValue(), (java.util.Date)arguments[1], (java.lang.String)arguments[2]); } - if (_methodName228.equals(name) && - Arrays.deepEquals(_methodParameterTypes228, parameterTypes)) { + if (_methodName226.equals(name) && + Arrays.deepEquals(_methodParameterTypes226, parameterTypes)) { return IntPraticaLocalServiceUtil.findByC_UserId(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue(), ((Integer)arguments[2]).intValue(), ((Integer)arguments[3]).intValue()); } - if (_methodName229.equals(name) && - Arrays.deepEquals(_methodParameterTypes229, parameterTypes)) { + if (_methodName227.equals(name) && + Arrays.deepEquals(_methodParameterTypes227, parameterTypes)) { return IntPraticaLocalServiceUtil.countByC_UserId(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName230.equals(name) && - Arrays.deepEquals(_methodParameterTypes230, parameterTypes)) { + if (_methodName228.equals(name) && + Arrays.deepEquals(_methodParameterTypes228, parameterTypes)) { return IntPraticaLocalServiceUtil.fetchByOldIntPraticaId(((Long)arguments[0]).longValue()); } - if (_methodName231.equals(name) && - Arrays.deepEquals(_methodParameterTypes231, parameterTypes)) { + if (_methodName229.equals(name) && + Arrays.deepEquals(_methodParameterTypes229, parameterTypes)) { IntPraticaLocalServiceUtil.updateStatus(((Long)arguments[0]).longValue(), ((Integer)arguments[1]).intValue()); return null; } - if (_methodName232.equals(name) && - Arrays.deepEquals(_methodParameterTypes232, parameterTypes)) { + if (_methodName230.equals(name) && + Arrays.deepEquals(_methodParameterTypes230, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCompanyIdSoggettoProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName233.equals(name) && - Arrays.deepEquals(_methodParameterTypes233, parameterTypes)) { + if (_methodName231.equals(name) && + Arrays.deepEquals(_methodParameterTypes231, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCompanyIdSoggettoProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName235.equals(name) && - Arrays.deepEquals(_methodParameterTypes235, parameterTypes)) { + if (_methodName233.equals(name) && + Arrays.deepEquals(_methodParameterTypes233, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCompanyIdSoggettoArchivio(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName236.equals(name) && - Arrays.deepEquals(_methodParameterTypes236, parameterTypes)) { + if (_methodName234.equals(name) && + Arrays.deepEquals(_methodParameterTypes234, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCompanyIdSoggettoArchivio(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName238.equals(name) && - Arrays.deepEquals(_methodParameterTypes238, parameterTypes)) { + if (_methodName236.equals(name) && + Arrays.deepEquals(_methodParameterTypes236, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCompanyIdSoggettoAltriProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue(), ((Integer)arguments[2]).intValue(), ((Integer)arguments[3]).intValue()); } - if (_methodName239.equals(name) && - Arrays.deepEquals(_methodParameterTypes239, parameterTypes)) { + if (_methodName237.equals(name) && + Arrays.deepEquals(_methodParameterTypes237, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCompanyIdSoggettoAltriProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName241.equals(name) && - Arrays.deepEquals(_methodParameterTypes241, parameterTypes)) { + if (_methodName239.equals(name) && + Arrays.deepEquals(_methodParameterTypes239, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCanAddFineLavori(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], ((Integer)arguments[2]).intValue(), ((Integer)arguments[3]).intValue()); } - if (_methodName242.equals(name) && - Arrays.deepEquals(_methodParameterTypes242, parameterTypes)) { + if (_methodName240.equals(name) && + Arrays.deepEquals(_methodParameterTypes240, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCanAddFineLavori(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1]); } - if (_methodName244.equals(name) && - Arrays.deepEquals(_methodParameterTypes244, parameterTypes)) { + if (_methodName242.equals(name) && + Arrays.deepEquals(_methodParameterTypes242, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCanAddCollaudo(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], ((Integer)arguments[2]).intValue(), ((Integer)arguments[3]).intValue()); } - if (_methodName245.equals(name) && - Arrays.deepEquals(_methodParameterTypes245, parameterTypes)) { + if (_methodName243.equals(name) && + Arrays.deepEquals(_methodParameterTypes243, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCanAddCollaudo(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1]); } - if (_methodName247.equals(name) && - Arrays.deepEquals(_methodParameterTypes247, parameterTypes)) { + if (_methodName245.equals(name) && + Arrays.deepEquals(_methodParameterTypes245, parameterTypes)) { return IntPraticaLocalServiceUtil.search((java.util.List)arguments[0], ((Integer)arguments[1]).intValue(), ((Integer)arguments[2]).intValue()); } - if (_methodName248.equals(name) && - Arrays.deepEquals(_methodParameterTypes248, parameterTypes)) { + if (_methodName246.equals(name) && + Arrays.deepEquals(_methodParameterTypes246, parameterTypes)) { return IntPraticaLocalServiceUtil.countSearch((java.util.List)arguments[0]); } - if (_methodName249.equals(name) && - Arrays.deepEquals(_methodParameterTypes249, parameterTypes)) { + if (_methodName247.equals(name) && + Arrays.deepEquals(_methodParameterTypes247, parameterTypes)) { return IntPraticaLocalServiceUtil.searchWithIntPraticaId((java.util.List)arguments[0], ((Long)arguments[1]).longValue(), ((Integer)arguments[2]).intValue(), ((Integer)arguments[3]).intValue()); } - if (_methodName250.equals(name) && - Arrays.deepEquals(_methodParameterTypes250, parameterTypes)) { + if (_methodName248.equals(name) && + Arrays.deepEquals(_methodParameterTypes248, parameterTypes)) { return IntPraticaLocalServiceUtil.countSearchWithIntPraticaId((java.util.List)arguments[0], ((Long)arguments[1]).longValue()); } - if (_methodName251.equals(name) && - Arrays.deepEquals(_methodParameterTypes251, parameterTypes)) { + if (_methodName249.equals(name) && + Arrays.deepEquals(_methodParameterTypes249, parameterTypes)) { return IntPraticaLocalServiceUtil.allegaFileAnnullamento(((Long)arguments[0]).longValue(), (byte[])arguments[1], (java.lang.String)arguments[2], (java.lang.String)arguments[3], (com.liferay.portal.service.ServiceContext)arguments[4]); } - if (_methodName252.equals(name) && - Arrays.deepEquals(_methodParameterTypes252, parameterTypes)) { + if (_methodName250.equals(name) && + Arrays.deepEquals(_methodParameterTypes250, parameterTypes)) { return IntPraticaLocalServiceUtil.generateFileAnnullamento(((Long)arguments[0]).longValue(), (com.liferay.portal.service.ServiceContext)arguments[1]); } - if (_methodName253.equals(name) && - Arrays.deepEquals(_methodParameterTypes253, parameterTypes)) { + if (_methodName251.equals(name) && + Arrays.deepEquals(_methodParameterTypes251, parameterTypes)) { IntPraticaLocalServiceUtil.deleteFileAnnullamento(((Long)arguments[0]).longValue()); return null; } - if (_methodName254.equals(name) && - Arrays.deepEquals(_methodParameterTypes254, parameterTypes)) { + if (_methodName252.equals(name) && + Arrays.deepEquals(_methodParameterTypes252, parameterTypes)) { IntPraticaLocalServiceUtil.completeAnnullamento(((Long)arguments[0]).longValue()); return null; } - if (_methodName255.equals(name) && - Arrays.deepEquals(_methodParameterTypes255, parameterTypes)) { + if (_methodName253.equals(name) && + Arrays.deepEquals(_methodParameterTypes253, parameterTypes)) { IntPraticaLocalServiceUtil.cambiaIstruttore(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue(), ((Long)arguments[2]).longValue()); @@ -877,168 +857,168 @@ public class IntPraticaLocalServiceClpInvoker { return null; } - if (_methodName256.equals(name) && - Arrays.deepEquals(_methodParameterTypes256, parameterTypes)) { + if (_methodName254.equals(name) && + Arrays.deepEquals(_methodParameterTypes254, parameterTypes)) { return IntPraticaLocalServiceUtil.countCaricoLavoroCF(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], (java.lang.Boolean)arguments[2], (java.lang.Long[])arguments[3]); } - if (_methodName257.equals(name) && - Arrays.deepEquals(_methodParameterTypes257, parameterTypes)) { + if (_methodName255.equals(name) && + Arrays.deepEquals(_methodParameterTypes255, parameterTypes)) { return IntPraticaLocalServiceUtil.countCaricoLavoroIstruttore(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1], (java.lang.Boolean)arguments[2]); } - if (_methodName258.equals(name) && - Arrays.deepEquals(_methodParameterTypes258, parameterTypes)) { + if (_methodName256.equals(name) && + Arrays.deepEquals(_methodParameterTypes256, parameterTypes)) { return IntPraticaLocalServiceUtil.generateReportPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], ((Long)arguments[1]).longValue()); } - if (_methodName259.equals(name) && - Arrays.deepEquals(_methodParameterTypes259, parameterTypes)) { + if (_methodName257.equals(name) && + Arrays.deepEquals(_methodParameterTypes257, parameterTypes)) { return IntPraticaLocalServiceUtil.updateModifiedDate(((Long)arguments[0]).longValue(), (java.util.Date)arguments[1]); } - if (_methodName260.equals(name) && - Arrays.deepEquals(_methodParameterTypes260, parameterTypes)) { + if (_methodName258.equals(name) && + Arrays.deepEquals(_methodParameterTypes258, parameterTypes)) { return IntPraticaLocalServiceUtil.countAutorizzazione((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName261.equals(name) && - Arrays.deepEquals(_methodParameterTypes261, parameterTypes)) { + if (_methodName259.equals(name) && + Arrays.deepEquals(_methodParameterTypes259, parameterTypes)) { return IntPraticaLocalServiceUtil.countSanatorie((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName262.equals(name) && - Arrays.deepEquals(_methodParameterTypes262, parameterTypes)) { + if (_methodName260.equals(name) && + Arrays.deepEquals(_methodParameterTypes260, parameterTypes)) { return IntPraticaLocalServiceUtil.countOpereMinoreImportanza((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName263.equals(name) && - Arrays.deepEquals(_methodParameterTypes263, parameterTypes)) { + if (_methodName261.equals(name) && + Arrays.deepEquals(_methodParameterTypes261, parameterTypes)) { return IntPraticaLocalServiceUtil.countDeposito((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), ((Boolean)arguments[3]).booleanValue()); } - if (_methodName264.equals(name) && - Arrays.deepEquals(_methodParameterTypes264, parameterTypes)) { + if (_methodName262.equals(name) && + Arrays.deepEquals(_methodParameterTypes262, parameterTypes)) { return IntPraticaLocalServiceUtil.countVidimate((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), (java.lang.String)arguments[3], ((Boolean)arguments[4]).booleanValue()); } - if (_methodName265.equals(name) && - Arrays.deepEquals(_methodParameterTypes265, parameterTypes)) { + if (_methodName263.equals(name) && + Arrays.deepEquals(_methodParameterTypes263, parameterTypes)) { return IntPraticaLocalServiceUtil.countControllo((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), (java.lang.String)arguments[3], ((Boolean)arguments[4]).booleanValue()); } - if (_methodName266.equals(name) && - Arrays.deepEquals(_methodParameterTypes266, parameterTypes)) { + if (_methodName264.equals(name) && + Arrays.deepEquals(_methodParameterTypes264, parameterTypes)) { return IntPraticaLocalServiceUtil.importaVecchiFilesFascicolo(((Long)arguments[0]).longValue(), ((Integer)arguments[1]).intValue(), ((Integer)arguments[2]).intValue()); } - if (_methodName267.equals(name) && - Arrays.deepEquals(_methodParameterTypes267, parameterTypes)) { + if (_methodName265.equals(name) && + Arrays.deepEquals(_methodParameterTypes265, parameterTypes)) { return IntPraticaLocalServiceUtil.findIntPraticaNotExist(); } - if (_methodName268.equals(name) && - Arrays.deepEquals(_methodParameterTypes268, parameterTypes)) { + if (_methodName266.equals(name) && + Arrays.deepEquals(_methodParameterTypes266, parameterTypes)) { return IntPraticaLocalServiceUtil.riparaWorkflow(); } - if (_methodName269.equals(name) && - Arrays.deepEquals(_methodParameterTypes269, parameterTypes)) { + if (_methodName267.equals(name) && + Arrays.deepEquals(_methodParameterTypes267, parameterTypes)) { IntPraticaLocalServiceUtil.reIndexFascicolo((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], ((Long)arguments[1]).longValue()); return null; } - if (_methodName270.equals(name) && - Arrays.deepEquals(_methodParameterTypes270, parameterTypes)) { + if (_methodName268.equals(name) && + Arrays.deepEquals(_methodParameterTypes268, parameterTypes)) { IntPraticaLocalServiceUtil.reIndexFasciolo((java.lang.String)arguments[0], ((Long)arguments[1]).longValue()); return null; } - if (_methodName271.equals(name) && - Arrays.deepEquals(_methodParameterTypes271, parameterTypes)) { + if (_methodName269.equals(name) && + Arrays.deepEquals(_methodParameterTypes269, parameterTypes)) { IntPraticaLocalServiceUtil.reIndexFasciolo(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); return null; } - if (_methodName272.equals(name) && - Arrays.deepEquals(_methodParameterTypes272, parameterTypes)) { + if (_methodName270.equals(name) && + Arrays.deepEquals(_methodParameterTypes270, parameterTypes)) { return IntPraticaLocalServiceUtil.trovaDoppioni(); } - if (_methodName273.equals(name) && - Arrays.deepEquals(_methodParameterTypes273, parameterTypes)) { + if (_methodName271.equals(name) && + Arrays.deepEquals(_methodParameterTypes271, parameterTypes)) { return IntPraticaLocalServiceUtil.findByNumeroProgetto((java.lang.String)arguments[0]); } - if (_methodName274.equals(name) && - Arrays.deepEquals(_methodParameterTypes274, parameterTypes)) { + if (_methodName272.equals(name) && + Arrays.deepEquals(_methodParameterTypes272, parameterTypes)) { return IntPraticaLocalServiceUtil.findByTerritorioId(((Long)arguments[0]).longValue()); } - if (_methodName275.equals(name) && - Arrays.deepEquals(_methodParameterTypes275, parameterTypes)) { + if (_methodName273.equals(name) && + Arrays.deepEquals(_methodParameterTypes273, parameterTypes)) { return IntPraticaLocalServiceUtil.reportTempisticheIstruttorieAvvisiAutorizzazioni((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), (java.lang.String)arguments[3]); } - if (_methodName276.equals(name) && - Arrays.deepEquals(_methodParameterTypes276, parameterTypes)) { + if (_methodName274.equals(name) && + Arrays.deepEquals(_methodParameterTypes274, parameterTypes)) { return IntPraticaLocalServiceUtil.reportTempisticheIstruttorieCalcolaDataSorteggio((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName277.equals(name) && - Arrays.deepEquals(_methodParameterTypes277, parameterTypes)) { + if (_methodName275.equals(name) && + Arrays.deepEquals(_methodParameterTypes275, parameterTypes)) { return IntPraticaLocalServiceUtil.reportPraticheVidimate((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), (java.lang.String)arguments[3]); } - if (_methodName278.equals(name) && - Arrays.deepEquals(_methodParameterTypes278, parameterTypes)) { + if (_methodName276.equals(name) && + Arrays.deepEquals(_methodParameterTypes276, parameterTypes)) { return IntPraticaLocalServiceUtil.reportPraticheVidimateCalcolaDataSorteggio((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName279.equals(name) && - Arrays.deepEquals(_methodParameterTypes279, parameterTypes)) { + if (_methodName277.equals(name) && + Arrays.deepEquals(_methodParameterTypes277, parameterTypes)) { return IntPraticaLocalServiceUtil.countIngressiAutorizzazioni((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName280.equals(name) && - Arrays.deepEquals(_methodParameterTypes280, parameterTypes)) { + if (_methodName278.equals(name) && + Arrays.deepEquals(_methodParameterTypes278, parameterTypes)) { return IntPraticaLocalServiceUtil.countIngressiDepositi((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } - if (_methodName281.equals(name) && - Arrays.deepEquals(_methodParameterTypes281, parameterTypes)) { + if (_methodName279.equals(name) && + Arrays.deepEquals(_methodParameterTypes279, parameterTypes)) { return IntPraticaLocalServiceUtil.countIngressiCO((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } @@ -1096,34 +1076,34 @@ public class IntPraticaLocalServiceClpInvoker { private String[] _methodParameterTypes205; private String _methodName206; private String[] _methodParameterTypes206; - private String _methodName207; - private String[] _methodParameterTypes207; private String _methodName208; private String[] _methodParameterTypes208; + private String _methodName209; + private String[] _methodParameterTypes209; private String _methodName210; private String[] _methodParameterTypes210; private String _methodName211; private String[] _methodParameterTypes211; - private String _methodName212; - private String[] _methodParameterTypes212; private String _methodName213; private String[] _methodParameterTypes213; + private String _methodName214; + private String[] _methodParameterTypes214; private String _methodName215; private String[] _methodParameterTypes215; private String _methodName216; private String[] _methodParameterTypes216; - private String _methodName217; - private String[] _methodParameterTypes217; private String _methodName218; private String[] _methodParameterTypes218; private String _methodName220; private String[] _methodParameterTypes220; + private String _methodName221; + private String[] _methodParameterTypes221; private String _methodName222; private String[] _methodParameterTypes222; - private String _methodName223; - private String[] _methodParameterTypes223; private String _methodName224; private String[] _methodParameterTypes224; + private String _methodName225; + private String[] _methodParameterTypes225; private String _methodName226; private String[] _methodParameterTypes226; private String _methodName227; @@ -1136,26 +1116,26 @@ public class IntPraticaLocalServiceClpInvoker { private String[] _methodParameterTypes230; private String _methodName231; private String[] _methodParameterTypes231; - private String _methodName232; - private String[] _methodParameterTypes232; private String _methodName233; private String[] _methodParameterTypes233; - private String _methodName235; - private String[] _methodParameterTypes235; + private String _methodName234; + private String[] _methodParameterTypes234; private String _methodName236; private String[] _methodParameterTypes236; - private String _methodName238; - private String[] _methodParameterTypes238; + private String _methodName237; + private String[] _methodParameterTypes237; private String _methodName239; private String[] _methodParameterTypes239; - private String _methodName241; - private String[] _methodParameterTypes241; + private String _methodName240; + private String[] _methodParameterTypes240; private String _methodName242; private String[] _methodParameterTypes242; - private String _methodName244; - private String[] _methodParameterTypes244; + private String _methodName243; + private String[] _methodParameterTypes243; private String _methodName245; private String[] _methodParameterTypes245; + private String _methodName246; + private String[] _methodParameterTypes246; private String _methodName247; private String[] _methodParameterTypes247; private String _methodName248; @@ -1222,8 +1202,4 @@ public class IntPraticaLocalServiceClpInvoker { private String[] _methodParameterTypes278; private String _methodName279; private String[] _methodParameterTypes279; - private String _methodName280; - private String[] _methodParameterTypes280; - private String _methodName281; - private String[] _methodParameterTypes281; } \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AsseverazioneLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AsseverazioneLocalServiceImpl.java index 4fb6e8c5..71e1e1b6 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AsseverazioneLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AsseverazioneLocalServiceImpl.java @@ -128,7 +128,7 @@ public class AsseverazioneLocalServiceImpl extends AsseverazioneLocalServiceBase .getNome(); String cognome = Validator.isNull(soggetto.getCognome()) ? StringPool.BLANK : soggetto .getCognome(); - _log.info(soggetto.getNome() + "|" + soggetto.getCognome() + "|" + soggetto.getLegaleRap()); + return testoAsseverazione(tipo, nome, cognome, codiceFiscale, soggetto.getAmbitoProfessione(), dettPratica, relazioni, false); } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AvvisoLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AvvisoLocalServiceImpl.java index 91586ef6..8cc4ca4b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AvvisoLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/AvvisoLocalServiceImpl.java @@ -123,15 +123,9 @@ public class AvvisoLocalServiceImpl extends AvvisoLocalServiceBaseImpl { // case StatoPraticaConstants.INTEGRAZIONE: // break; case StatoPraticaConstants.SOTTOPOSTA_A_PARERE: - if (Validator.isNull(tipoProcedura) || tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_A)) { - propertiesTemplate = AvvisoUtil.getAllTipoDocumentoFileTemplateProps().get(statoPratica); - } else { - propertiesTemplate = AvvisoUtil.getAllTipoDocumentoFileTemplateProps().get("DPPS"); - } + propertiesTemplate = AvvisoUtil.getAllTipoDocumentoFileTemplateProps().get("DPPS"); break; case StatoPraticaConstants.VIDIMATA: - if (null == tipoProcedura) - tipoProcedura = Constants.PROCEDURA_A; propertiesTemplate = AvvisoUtil.getAllTipoDocumentoFileTemplateProps().get( "DP" + tipoProcedura); break; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/DettPraticaLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/DettPraticaLocalServiceImpl.java index 648c5707..80f94d6a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/DettPraticaLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/DettPraticaLocalServiceImpl.java @@ -198,7 +198,7 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl @Indexable(type = IndexableType.REINDEX) public DettPratica addDettPraticaClonedToIntPratica(long intPraticaId, long dettPraticaToCloneId, String tipoIntegrazione, ServiceContext serviceContext) throws PortalException, SystemException { - + _log.info("Cloning dettPratica " + dettPraticaToCloneId); IntPratica intPratica = intPraticaLocalService.getIntPratica(intPraticaId); DettPratica dettPratica = initDettPratica(serviceContext); @@ -305,8 +305,9 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl dettPraticaToClone.getNormLTC01(), dettPraticaToClone.getSuap(), dettPraticaToClone.getNormSismaBonus(), dettPraticaToClone.getClRischioPreInt(), dettPraticaToClone.getClRischioPostInt(), dettPraticaToClone.getIntervFinPub(), - dettPraticaToClone.getIntervFinPubDesc(), serviceContext, true, dettPraticaToClone.getPaesaggioLocale(), - dettPraticaToClone.getLivelloDiTutela(), dettPraticaToClone.getVincoli(), dettPraticaToClone.getDestinazioneAltroIntervento(), + dettPraticaToClone.getIntervFinPubDesc(), serviceContext, true, + dettPraticaToClone.getPaesaggioLocale(), dettPraticaToClone.getLivelloDiTutela(), + dettPraticaToClone.getVincoli(), dettPraticaToClone.getDestinazioneAltroIntervento(), dettPraticaToClone.getTcCostruzioniEsistenti(), dettPraticaToClone.getTcManutOrdStraord(), dettPraticaToClone.getTcAltriInterventi(), dettPraticaToClone.getTcAltriInterventiDesc(), dettPraticaToClone.getNoCollaudo(), dettPraticaToClone.getTcNuovaCostruzionePertinenza(), @@ -748,10 +749,11 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl boolean normArt3com4, boolean normOrd01, boolean normDm04, boolean normDm05, boolean normCI01, boolean normLTC01, boolean suap, boolean normSismaBonus, String clRischioPreInt, String clRischioPostInt, boolean intervFinPub, String intervFinPubDesc, - ServiceContext serviceContext, boolean bozza, String paesaggioLocale, - String livelloDiTutela, String vincoli, String destinazioneAltroIntervento, Boolean tcCostruzioniEsistenti, Boolean tcManutOrdStraord, - Boolean tcAltriInterventi, String tcAltriInterventiDesc, boolean noCollaudo, boolean tcNuovaCostruzionePertinenza, - boolean tcInterventoOpereEscavazione, boolean tcViarch, boolean tcOperaA25) throws PortalException, SystemException { + ServiceContext serviceContext, boolean bozza, String paesaggioLocale, String livelloDiTutela, + String vincoli, String destinazioneAltroIntervento, Boolean tcCostruzioniEsistenti, + Boolean tcManutOrdStraord, Boolean tcAltriInterventi, String tcAltriInterventiDesc, + boolean noCollaudo, boolean tcNuovaCostruzionePertinenza, boolean tcInterventoOpereEscavazione, + boolean tcViarch, boolean tcOperaA25) throws PortalException, SystemException { Date now = new Date(); @@ -843,7 +845,7 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl dettPratica.setTcNuovaCostruzionePertinenza(tcNuovaCostruzionePertinenza); dettPratica.setTcInterventoOpereEscavazione(tcInterventoOpereEscavazione); dettPratica.setTcViarch(tcViarch); - dettPratica.setTcOperaA25(tcOperaA25); + dettPratica.setTcOperaA25(tcOperaA25); dettPratica.setCodiceFiscaleDelegatoCommittente(codiceFiscaleDelegatoCommittente); dettPratica.setCodiceFiscaleDelegatoFineLavori(codiceFiscaleDelegatoFineLavori); dettPratica.setCodiceFiscaleDelegatoCollaudo(codiceFiscaleDelegatoCollaudo); @@ -1023,11 +1025,11 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl dettPratica.setClRischioPostInt(clRischioPostInt); dettPratica.setIntervFinPub(intervFinPub); dettPratica.setIntervFinPubDesc(intervFinPubDesc); - + dettPratica.setPaesaggioLocale(paesaggioLocale); dettPratica.setLivelloDiTutela(livelloDiTutela); dettPratica.setVincoli(vincoli); - + dettPratica.setDestinazioneAltroIntervento(destinazioneAltroIntervento); dettPratica.setTcCostruzioniEsistenti(tcCostruzioniEsistenti); dettPratica.setTcManutOrdStraord(tcManutOrdStraord); @@ -1090,11 +1092,12 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl boolean normDprg02, boolean normAnr, boolean normArt3com3, boolean normArt3com4, boolean normOrd01, boolean normDm04, boolean normDm05, boolean normCI01, boolean normLTC01, boolean suap, boolean normSismaBonus, String clRischioPreInt, String clRischioPostInt, - boolean intervFinPub, String intervFinPubDesc, ServiceContext serviceContext, boolean bozza, String paesaggioLocale, - String livelloDiTutela, String vincoli, String destinazioneAltroIntervento, Boolean tcCostruzioniEsistenti, Boolean tcManutOrdStraord, - Boolean tcAltriInterventi, String tcAltriInterventiDesc, boolean noCollaudo, boolean tcNuovaCostruzionePertinenza, - boolean tcInterventoOpereEscavazione, boolean tcViarch, boolean tcOperaA25) - throws PortalException, SystemException { + boolean intervFinPub, String intervFinPubDesc, ServiceContext serviceContext, boolean bozza, + String paesaggioLocale, String livelloDiTutela, String vincoli, + String destinazioneAltroIntervento, Boolean tcCostruzioniEsistenti, Boolean tcManutOrdStraord, + Boolean tcAltriInterventi, String tcAltriInterventiDesc, boolean noCollaudo, + boolean tcNuovaCostruzionePertinenza, boolean tcInterventoOpereEscavazione, boolean tcViarch, + boolean tcOperaA25) throws PortalException, SystemException { Date now = new Date(); @@ -1152,7 +1155,7 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl dettPratica.setTcNuovaCostruzionePertinenza(tcNuovaCostruzionePertinenza); dettPratica.setTcInterventoOpereEscavazione(tcInterventoOpereEscavazione); dettPratica.setTcViarch(tcViarch); - dettPratica.setTcOperaA25(tcOperaA25); + dettPratica.setTcOperaA25(tcOperaA25); dettPratica.setMetratura(metratura); dettPratica.setLavoriPubblici(lavoriPubblici); dettPratica.setPagamentoIdOneri(pagamentoIdOneri); @@ -1285,11 +1288,11 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl dettPratica.setCodiceFiscaleDelegatoCommittente(codiceFiscaleDelegatoCommittente); dettPratica.setCodiceFiscaleDelegatoFineLavori(codiceFiscaleDelegatoFineLavori); dettPratica.setCodiceFiscaleDelegatoCollaudo(codiceFiscaleDelegatoCollaudo); - + dettPratica.setPaesaggioLocale(paesaggioLocale); dettPratica.setLivelloDiTutela(livelloDiTutela); dettPratica.setVincoli(vincoli); - + dettPratica.setDestinazioneAltroIntervento(destinazioneAltroIntervento); dettPratica.setTcCostruzioniEsistenti(tcCostruzioniEsistenti); dettPratica.setTcManutOrdStraord(tcManutOrdStraord); @@ -1339,8 +1342,9 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl boolean tcRiparazioneInterventoLocale, boolean normLavoriInProprio, boolean normEsenteBollo, boolean normEsenteSpese, boolean normDpr01Dep, boolean normDpr02Dep, boolean normDpr01Aut, boolean normDpr02Aut, boolean normArt3com3, boolean normArt3com4, ServiceContext serviceContext, - boolean bozza, boolean noCollaudo, boolean tcNuovaCostruzionePertinenza, - boolean tcInterventoOpereEscavazione, boolean tcViarch, boolean tcOperaA25) throws PortalException, SystemException { + boolean bozza, boolean noCollaudo, boolean tcNuovaCostruzionePertinenza, + boolean tcInterventoOpereEscavazione, boolean tcViarch, boolean tcOperaA25) + throws PortalException, SystemException { Date now = new Date(); @@ -2427,6 +2431,10 @@ public class DettPraticaLocalServiceImpl extends DettPraticaLocalServiceBaseImpl case TipoSoggettoUtil.DITTA: dettPratica.setCodiceFiscalePrincipaleDitta(codiceFiscale); break; + + case TipoSoggettoUtil.ARCHEOLOGO: + dettPratica.setCodiceFiscalePrincipaleArcheologo(codiceFiscale); + break; default: break; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/IntPraticaLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/IntPraticaLocalServiceImpl.java index dfd9e8e9..bbb79e19 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/IntPraticaLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/IntPraticaLocalServiceImpl.java @@ -178,102 +178,6 @@ public class IntPraticaLocalServiceImpl extends IntPraticaLocalServiceBaseImpl { private static Log _log = LogFactoryUtil.getLog(IntPraticaLocalServiceImpl.class); - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. Modificata secondo il D.D.G. 334/2020 - * - * @author Manifattura Web Group per Regione Siciliana. - */ - public Map> findSorteggiabiliNew(long companyId, Date dtSorteggio) - throws SystemException, PortalException { - HashMap> ret = new HashMap<>(); - List lista = new ArrayList(); - - int dow = Integer.parseInt(ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, - ConfigurazioneConstants.DAY_OF_WEEK_SORTEGGIO)); - - Date[] date = SismicaUtil.getWeekInterval(dow, dtSorteggio); - - DynamicQuery dq = intPraticaLocalService.dynamicQuery(); - dq.add(PropertyFactoryUtil.forName("companyId").eq(companyId)); - dq.add(PropertyFactoryUtil.forName("status").eq(WorkflowConstants.STATUS_DRAFT)); - dq.add(PropertyFactoryUtil.forName("statoPratica").eq(StatoPraticaConstants.CONFORME)); - - Disjunction or = RestrictionsFactoryUtil.disjunction(); - or.add(RestrictionsFactoryUtil.eq("tipoProcedura", Constants.PROCEDURA_B)); - or.add(RestrictionsFactoryUtil.eq("tipoProcedura", Constants.PROCEDURA_B1)); - dq.add(or); - - dq.add(PropertyFactoryUtil.forName("dtPratica").between(date[0], date[1])); - dq.add(PropertyFactoryUtil.forName("dtSorteggio").isNull()); - try { - lista = intPraticaPersistence.findWithDynamicQuery(dq); - } catch (SystemException e) { - _log.error("Errore durante la selezione di pratiche sorteggiabili.", e); - } - HashMap territoriProvince = new HashMap(); - for (IntPratica pratica : lista) { - long territorioId = pratica.getTerritorioId(); - if (!territoriProvince.containsKey(territorioId)) { - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(territorioId); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - territoriProvince.put(territorioId, comune.getCodiceProvincia()); - } - String codiceProvincia = territoriProvince.get(territorioId); - if (!ret.containsKey(codiceProvincia)) - ret.put(codiceProvincia, new ArrayList()); - ret.get(codiceProvincia).add(pratica); - } - return ret; - } - - /** - * Restituisce la lista di pratiche da sottoporre a sorteggio suddivisa per - * codice provincia. - * - * @author Manifattura Web Group per Regione Siciliana. - */ - @SuppressWarnings("unchecked") - public Map> findSorteggiabili(long companyId, Date dtSorteggio) - throws SystemException, PortalException { - HashMap> ret = new HashMap<>(); - List lista = new ArrayList(); - - int dow = Integer.parseInt(ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, - ConfigurazioneConstants.DAY_OF_WEEK_SORTEGGIO)); - - Date[] date = SismicaUtil.getWeekInterval(dow, dtSorteggio); - - DynamicQuery dq = intPraticaLocalService.dynamicQuery(); - dq.add(PropertyFactoryUtil.forName("companyId").eq(companyId)); - dq.add(PropertyFactoryUtil.forName("status").eq(WorkflowConstants.STATUS_DRAFT)); - dq.add(PropertyFactoryUtil.forName("statoPratica").eq(StatoPraticaConstants.VIDIMATA)); - dq.add(PropertyFactoryUtil.forName("tipoProcedura").eq(Constants.PROCEDURA_B1)); - dq.add(PropertyFactoryUtil.forName("dtPratica").between(date[0], date[1])); - dq.add(PropertyFactoryUtil.forName("dtSorteggio").isNull()); - - try { - lista = intPraticaPersistence.findWithDynamicQuery(dq); - } catch (SystemException e) { - _log.error("Errore durante la selezione di mappe sorteggiabili.", e); - } - HashMap territoriProvince = new HashMap(); - for (IntPratica pratica : lista) { - long territorioId = pratica.getTerritorioId(); - if (!territoriProvince.containsKey(territorioId)) { - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(territorioId); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - territoriProvince.put(territorioId, comune.getCodiceProvincia()); - } - String codiceProvincia = territoriProvince.get(territorioId); - if (!ret.containsKey(codiceProvincia)) - ret.put(codiceProvincia, new ArrayList()); - ret.get(codiceProvincia).add(pratica); - _log.info("Pratica numero " + pratica.getNumeroProgetto() + ", id " + pratica.getIntPraticaId()); - } - return ret; - } - public IntPratica addIntPratica(long territorioId, String tipoProcedura, ServiceContext serviceContext) throws SystemException, PortalException { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DettPraticaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DettPraticaPersistenceImpl.java index f2c2fdfd..a023a69e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DettPraticaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DettPraticaPersistenceImpl.java @@ -4811,6 +4811,7 @@ public class DettPraticaPersistenceImpl extends BasePersistenceImpl dettPraticaImpl.setCodiceFiscalePrincipaleDirettoreLavori(dettPratica.getCodiceFiscalePrincipaleDirettoreLavori()); dettPraticaImpl.setCodiceFiscalePrincipaleDitta(dettPratica.getCodiceFiscalePrincipaleDitta()); dettPraticaImpl.setCodiceFiscalePrincipaleGeologo(dettPratica.getCodiceFiscalePrincipaleGeologo()); + dettPraticaImpl.setCodiceFiscalePrincipaleArcheologo(dettPratica.getCodiceFiscalePrincipaleArcheologo()); dettPraticaImpl.setLavoriInEconomiaCommittente(dettPratica.isLavoriInEconomiaCommittente()); dettPraticaImpl.setInizioLavoriContestualeOpera(dettPratica.isInizioLavoriContestualeOpera()); dettPraticaImpl.setDataInizioLavoriOpera(dettPratica.getDataInizioLavoriOpera()); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/util/ProtocollazioneUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/util/ProtocollazioneUtil.java index 2cb6ddd1..1fdfdf14 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/util/ProtocollazioneUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/util/ProtocollazioneUtil.java @@ -306,8 +306,12 @@ public class ProtocollazioneUtil { } } + + private static void createCall(Protocollo protocollo) { + + } - private static Options createCall(long companyId, Protocollo protocolloBean, boolean post) throws SystemException { + private static Options createCall2(long companyId, Protocollo protocolloBean, boolean post) throws SystemException { String url = ConfigurazioneLocalServiceUtil.findByC_ChiaveString(companyId, diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/service.properties b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/service.properties index f3c5d31a..e408862c 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/service.properties +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/service.properties @@ -13,8 +13,8 @@ ## build.namespace=portos_bo - build.number=2539 - build.date=1599216162979 + build.number=2564 + build.date=1599647467248 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java index 9d008dc3..55370bc5 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java @@ -177,13 +177,6 @@ public class FascicoloFePortlet extends MVCPortlet { for (Territorio territorio : territori) { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); - if ((territorio.getZona().equalsIgnoreCase(Constants.ZONA_1)) - || (territorio.getZona().equalsIgnoreCase(Constants.ZONA_2)) - || territorio.getArticolo61()) - jsonObject.put("procedura", Constants.PROCEDURA_B1); - else - jsonObject.put("procedura", Constants.PROCEDURA_B); - jsonObject.put("territorioId", territorio.getTerritorioId()); jsonObject.put("descLong", territorio.getZonaFasciaDesc()); @@ -1116,6 +1109,7 @@ public class FascicoloFePortlet extends MVCPortlet { JSONSerializer serializer = JSONFactoryUtil.createJSONSerializer(); dichiarazioni = serializer.serializeDeep(parametri); } + _log.info("Dichiarazioni=" + dichiarazioni); ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), actionRequest); long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java index 07e37f8e..866784f2 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java @@ -58,626 +58,709 @@ import javax.portlet.PortletException; import javax.portlet.ResourceRequest; import javax.portlet.ResourceResponse; - public class SoggettiPraticaPortlet extends MVCPortlet { - private static Log _log = LogFactoryUtil.getLog(SoggettiPraticaPortlet.class); - - - public void deleteSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - try { - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - - SoggettoServiceUtil.deleteSoggetto(soggettoId); - - } catch (PortalException | SystemException e) { - _log.error(e, e); - throw e; - } - - } - - public void invalidaSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - try { - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - long dettPraticaIdRimozione = ParamUtil.getLong(actionRequest, "dettPraticaId"); - - SoggettoLocalServiceUtil.invalidaSoggetto(soggettoId, dettPraticaIdRimozione); - - } catch (PortalException | SystemException e) { - _log.error(e, e); - throw e; - } - } - - public void validaSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - try { - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - - SoggettoLocalServiceUtil.validaSoggetto(soggettoId, dettPraticaId); - - } catch (PortalException | SystemException e) { - _log.error(e, e); - throw e; - } - } - - public void makePrincipale(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - try { - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - Soggetto soggetto = SoggettoServiceUtil.getSoggetto(soggettoId); - SoggettoServiceUtil.updatePrincipale(dettPraticaId, soggetto.getCodiceFiscale(), soggetto.getTipologiaSoggetto()); - - } catch (PortalException | SystemException e) { - _log.error(e, e); - throw e; - } - } - - public void removePrincipale(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - try { - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - Soggetto soggetto = SoggettoServiceUtil.getSoggetto(soggettoId); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - DettPraticaServiceUtil.updatePrincipale(dettPraticaId, StringPool.BLANK, soggetto.getTipologiaSoggetto()); - - } catch (PortalException | SystemException e) { - _log.error(e, e); - throw e; - } - } - - // public void updateSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws - // Exception { - // - // boolean requiredDoc = ParamUtil.getBoolean(actionRequest, "requiredDoc"); - // long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - // - // long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - // long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - // String tipologiaSoggetto = ParamUtil.getString(actionRequest, "tipologiaSoggetto"); - // String nome = ParamUtil.getString(actionRequest, "nome"); - // String cognome = ParamUtil.getString(actionRequest, "cognome"); - // String codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscale"); - // if (Validator.isNotNull(ParamUtil.getString(actionRequest, "codiceFiscaleDitta"))) { - // codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscaleDitta"); - // } else { - // codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscalePersone"); - // } - // boolean isSigned = false; - // String sourceFileName = StringPool.BLANK; - // byte[] content = null; - // String jsonFirmatari = ""; - // - // if (requiredDoc) { - // UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); - // ServiceContext serviceContext = ServiceContextFactory.getInstance(uploadRequest); - // sourceFileName = uploadRequest.getFileName("docFile"); - // File file = uploadRequest.getFile("docFile"); - // boolean applicaFirma = ParamUtil.getBoolean(actionRequest, "applicaFirma"); - // - // try { - // if (Validator.isNotNull(sourceFileName) && file != null) { - // // validazione: solo alcune estensioni - // String ext = FileUtil.getExtension(sourceFileName); - // if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { - // SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto.allegato.ext.valid"); - // } - // // lunghezza fissata a 200 - // if (sourceFileName.length() > 200) { - // SessionErrors.add(actionRequest, - // "error.geniocivilefe.variazione-soggetto.allegato.length.valid"); - // } - // } else { - // SessionErrors.add(actionRequest, - // "error.geniocivilefe.variazione-soggetto.allegato.is.request"); - // } - // - // if (!SessionErrors.isEmpty(actionRequest)) { - // throw new SystemException("error.geniocivilefe.variazione-soggetto.allegato"); - // } else { - // content = FileUtil.getBytes(file); - // // Per poter completare l'aggiunta di un soggetto è necessario allegare file firmato dal - // // nuovo soggetto e almeno uno dei soggetti già inseriti nella pratica. - // // SOLO nel caso in cui il soggetto che viene inserito è di tipo COMMITTENTE, la sua firma - // // sul file allegato NON è OBBLIGATORIA; inoltre la firma OBBLIGATORIA che deve essere - // // presente sul file allegato è SOLO quella del TITOLARE DIGITALE DELLA PRATICA. - // if (TipoSoggettoUtil.COMMITTENTE.equals(tipologiaSoggetto)) { - // DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); - // String[] titolare = new String[] {dettPratica.getCodiceFiscaleDelegatoCommittente()}; - // isSigned = - // ValidazionePraticaUtil.isAllegatoSignedBySubjects(sourceFileName, content, - // serviceContext.getCompanyId(), Arrays.asList(titolare)); - // } else { - // List soggettiValidi = SoggettoServiceUtil.getValidTmpByIntPratica(intPraticaId); - // List codiciFiscaliValidi = new ArrayList(); - // for (Soggetto soggetto : soggettiValidi) { - // if (!codiciFiscaliValidi.contains(soggetto.getCodiceFiscale())) { - // codiciFiscaliValidi.add(soggetto.getCodiceFiscale()); - // } - // } - // - // isSigned = - // ValidazionePraticaUtil.isAllegatoSignedBySubjectsAndPerson(sourceFileName, content, - // serviceContext.getCompanyId(), codiciFiscaliValidi, codiceFiscale); - // } - // - // FirmeBean firmeBean = new FirmeBean(); - // if (applicaFirma) { - // User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); - // jsonFirmatari = FirmeUtil.addFirma(firmeBean, user.getScreenName()); - // } else { - // jsonFirmatari = FirmeUtil.serialize(firmeBean); - // } - // - // if (!isSigned) { - // SessionErrors.add(actionRequest, - // "error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); - // throw new SystemException("error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); - // } - // - // } - // - // } catch (Exception e) { - // SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto"); - // String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); - // redirectURL = - // HttpUtil.addParameter(redirectURL, actionResponse.getNamespace() + "isEditable", - // String.valueOf(true)); - // - // actionResponse.sendRedirect(redirectURL); - // return; - // } - // - // } - // - // String codiceFiscaleDelegato = ParamUtil.getString(actionRequest, "codiceFiscaleDelegato"); - // Date dataNascita = - // ParamUtil.getDate(actionRequest, "dataNascita", - // DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - // String comuneNascita = ParamUtil.getString(actionRequest, "comuneNascita"); - // String comuneDomicilio = ParamUtil.getString(actionRequest, "comuneDomicilio"); - // String provinciaDomicilio = ParamUtil.getString(actionRequest, "provinciaDomicilio"); - // String viaDomicilio = ParamUtil.getString(actionRequest, "viaDomicilio"); - // String numeroCivicoDomicilio = ParamUtil.getString(actionRequest, "numeroCivicoDomicilio"); - // String capDomicilio = ParamUtil.getString(actionRequest, "capDomicilio"); - // String domicilioExtra = ParamUtil.getString(actionRequest, "domicilioExtra"); - // String comune = ParamUtil.getString(actionRequest, "comune"); - // String provincia = ParamUtil.getString(actionRequest, "provincia"); - // String via = ParamUtil.getString(actionRequest, "via"); - // String numeroCivico = ParamUtil.getString(actionRequest, "numeroCivico"); - // String cap = ParamUtil.getString(actionRequest, "cap"); - // String denominazione = ParamUtil.getString(actionRequest, "denominazione"); - // String sedeLegale = ParamUtil.getString(actionRequest, "sedeLegale"); - // String legaleRap = ParamUtil.getString(actionRequest, "legaleRap"); - // Date dataNascitaRap = - // ParamUtil.getDate(actionRequest, "dataNascitaRap", - // DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - // String comuneNascitaRap = ParamUtil.getString(actionRequest, "comuneNascitaRap"); - // String viaRap = ParamUtil.getString(actionRequest, "viaRap"); - // String numeroCivicoRap = ParamUtil.getString(actionRequest, "numeroCivicoRap"); - // String capRap = ParamUtil.getString(actionRequest, "capRap"); - // String provinciaRap = ParamUtil.getString(actionRequest, "provinciaRap"); - // String comuneRap = ParamUtil.getString(actionRequest, "comuneRap"); - // String albo = ParamUtil.getString(actionRequest, "albo"); - // String regAlbo = ParamUtil.getString(actionRequest, "regAlbo"); - // String provinciaAlbo = ParamUtil.getString(actionRequest, "provinciaAlbo"); - // String numIscrAlbo = ParamUtil.getString(actionRequest, "numIscrAlbo"); - // String telefono = ParamUtil.getString(actionRequest, "telefono"); - // String fax = ParamUtil.getString(actionRequest, "fax"); - // String email = ParamUtil.getString(actionRequest, "email"); - // boolean aggiuntivo = ParamUtil.getBoolean(actionRequest, "aggiuntivo"); - // boolean rimosso = ParamUtil.getBoolean(actionRequest, "rimosso"); - // String ambitoAttivita = ParamUtil.getString(actionRequest, "ambitoAttivita"); - // String ambitoProfessioneDitta = ParamUtil.getString(actionRequest, "ambitoProfessioneDitta"); - // String ambitoProfessioneAltro = ParamUtil.getString(actionRequest, "ambitoProfessioneAltro"); - // String ambitoProfessione = - // Validator.isNotNull(ambitoProfessioneDitta) ? ambitoProfessioneDitta : ambitoProfessioneAltro; - // long intPraticaIdRimozione = ParamUtil.getLong(actionRequest, "intPraticaIdRimozione"); - // long dettPraticaIdRimozione = ParamUtil.getLong(actionRequest, "dettPraticaIdRimozione"); - // // Date dtDataRimozione = - // // ParamUtil.getDate(actionRequest, "dtDataRimozione", - // // DateFormatFactoryUtil.getDate(actionRequest.getLocale()); - // - // ServiceContext serviceContext = ServiceContextFactory.getInstance(Soggetto.class.getName(), - // actionRequest); - // - // long userId = PortalUtil.getUserId(actionRequest); - // - // try { - // - // actionResponse.setRenderParameter("mvcPath", "html/soggettipratica/edit_soggetto.jsp"); - // if (soggettoId == 0) { - // if (isSigned) { - // SoggettoLocalServiceUtil.addSoggettoValidatedByFile(userId, dettPraticaId, intPraticaId, nome, - // cognome, - // codiceFiscale, codiceFiscaleDelegato, dataNascita, comuneNascita, comuneDomicilio, - // provinciaDomicilio, - // viaDomicilio, numeroCivicoDomicilio, capDomicilio, domicilioExtra, comune, provincia, via, - // numeroCivico, - // cap, denominazione, sedeLegale, legaleRap, dataNascitaRap, comuneNascitaRap, viaRap, - // numeroCivicoRap, - // capRap, provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, numIscrAlbo, telefono, fax, - // email, - // tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, - // intPraticaIdRimozione, - // dettPraticaIdRimozione, null, 0L, content, sourceFileName, jsonFirmatari, serviceContext); - // } else { - // SoggettoLocalServiceUtil.addSoggetto(userId, dettPraticaId, intPraticaId, nome, cognome, - // codiceFiscale, - // codiceFiscaleDelegato, dataNascita, comuneNascita, comuneDomicilio, provinciaDomicilio, - // viaDomicilio, - // numeroCivicoDomicilio, capDomicilio, domicilioExtra, comune, provincia, via, numeroCivico, cap, - // denominazione, sedeLegale, legaleRap, dataNascitaRap, comuneNascitaRap, viaRap, - // numeroCivicoRap, capRap, - // provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, numIscrAlbo, telefono, fax, email, - // tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, - // intPraticaIdRimozione, - // dettPraticaIdRimozione, null, 0L, serviceContext); - // } - // } else { - // if (isSigned) { - // SoggettoLocalServiceUtil.updateSoggettoValidatedByFile(userId, soggettoId, dettPraticaId, - // intPraticaId, nome, - // cognome, codiceFiscale, codiceFiscaleDelegato, dataNascita, comuneNascita, comuneDomicilio, - // provinciaDomicilio, viaDomicilio, numeroCivicoDomicilio, capDomicilio, domicilioExtra, comune, - // provincia, - // via, numeroCivico, cap, denominazione, sedeLegale, legaleRap, dataNascitaRap, comuneNascitaRap, - // viaRap, - // numeroCivicoRap, capRap, provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, numIscrAlbo, - // telefono, - // fax, email, tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, - // intPraticaIdRimozione, dettPraticaIdRimozione, null, 0L, content, sourceFileName, - // jsonFirmatari, - // serviceContext); - // } else { - // SoggettoLocalServiceUtil.updateSoggetto(userId, soggettoId, dettPraticaId, intPraticaId, nome, - // cognome, - // codiceFiscale, codiceFiscaleDelegato, dataNascita, comuneNascita, comuneDomicilio, - // provinciaDomicilio, - // viaDomicilio, numeroCivicoDomicilio, capDomicilio, domicilioExtra, comune, provincia, via, - // numeroCivico, - // cap, denominazione, sedeLegale, legaleRap, dataNascitaRap, comuneNascitaRap, viaRap, - // numeroCivicoRap, - // capRap, provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, numIscrAlbo, telefono, fax, - // email, - // tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, - // intPraticaIdRimozione, - // dettPraticaIdRimozione, null, 0L, serviceContext); - // } - // } - // PortalUtil.copyRequestParameters(actionRequest, actionResponse); - // } catch (PortalException e) { - // _log.error(e, e); - // - // throw e; - // } - // } - - public void updateSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - boolean requiredDoc = ParamUtil.getBoolean(actionRequest, "requiredDoc"); - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - String tipologiaSoggetto = ParamUtil.getString(actionRequest, "tipologiaSoggetto"); - String nome = ParamUtil.getString(actionRequest, "nome"); - String cognome = ParamUtil.getString(actionRequest, "cognome"); - String codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscale"); - if (Validator.isNotNull(ParamUtil.getString(actionRequest, "codiceFiscaleDitta"))) { - codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscaleDitta"); - } else { - codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscalePersone"); - } - - String codiceFiscaleDelegato = ParamUtil.getString(actionRequest, "codiceFiscaleDelegato"); - Date dataNascita = - ParamUtil.getDate(actionRequest, "dataNascita", DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - String provinciaNascita = ParamUtil.getString(actionRequest, "provinciaNascita"); - String comuneNascita = ParamUtil.getString(actionRequest, "comuneNascita"); - String comuneDomicilio = ParamUtil.getString(actionRequest, "comuneDomicilio"); - String comuneDomicilioEstero = ParamUtil.getString(actionRequest, "comuneDomicilioEstero"); - String provinciaDomicilio = ParamUtil.getString(actionRequest, "provinciaDomicilio"); - String viaDomicilio = ParamUtil.getString(actionRequest, "viaDomicilio"); - String numeroCivicoDomicilio = ParamUtil.getString(actionRequest, "numeroCivicoDomicilio"); - String capDomicilio = ParamUtil.getString(actionRequest, "capDomicilio"); - String domicilioExtra = ParamUtil.getString(actionRequest, "domicilioExtra"); - String comune = ParamUtil.getString(actionRequest, "comune"); - String comuneEstero = ParamUtil.getString(actionRequest, "comuneEstero"); - String provincia = ParamUtil.getString(actionRequest, "provincia"); - String via = ParamUtil.getString(actionRequest, "via"); - String numeroCivico = ParamUtil.getString(actionRequest, "numeroCivico"); - String cap = ParamUtil.getString(actionRequest, "cap"); - String denominazione = ParamUtil.getString(actionRequest, "denominazione"); - String sedeLegale = ParamUtil.getString(actionRequest, "sedeLegale"); - String legaleRap = ParamUtil.getString(actionRequest, "legaleRap"); - Date dataNascitaRap = - ParamUtil.getDate(actionRequest, "dataNascitaRap", DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - String provinciaNascitaRap = ParamUtil.getString(actionRequest, "provinciaNascitaRap"); - String comuneNascitaRap = ParamUtil.getString(actionRequest, "comuneNascitaRap"); - String viaRap = ParamUtil.getString(actionRequest, "viaRap"); - String numeroCivicoRap = ParamUtil.getString(actionRequest, "numeroCivicoRap"); - String capRap = ParamUtil.getString(actionRequest, "capRap"); - String provinciaRap = ParamUtil.getString(actionRequest, "provinciaRap"); - String comuneRap = ParamUtil.getString(actionRequest, "comuneRap"); - String comuneRapEstero = ParamUtil.getString(actionRequest, "comuneRapEstero"); - String albo = ParamUtil.getString(actionRequest, "albo"); - String alboDescr = ParamUtil.getString(actionRequest, "alboDescr"); - String regAlbo = ParamUtil.getString(actionRequest, "regAlbo"); - String provinciaAlbo = ParamUtil.getString(actionRequest, "provinciaAlbo"); - String numIscrAlbo = ParamUtil.getString(actionRequest, "numIscrAlbo"); - String fax = ParamUtil.getString(actionRequest, "fax"); - - String telefonoResidenza = ParamUtil.getString(actionRequest, "telefonoResidenza"); - String telefono = - Validator.isNotNull(telefonoResidenza) ? telefonoResidenza : ParamUtil.getString(actionRequest, - "telefonoGiuridico"); - - String emailResidenza = ParamUtil.getString(actionRequest, "emailResidenza"); - String email = - Validator.isNotNull(emailResidenza) ? emailResidenza : ParamUtil.getString(actionRequest, "emailGiuridica"); - - - boolean aggiuntivo = ParamUtil.getBoolean(actionRequest, "aggiuntivo"); - boolean rimosso = ParamUtil.getBoolean(actionRequest, "rimosso"); - String ambitoAttivita = ParamUtil.getString(actionRequest, "ambitoAttivita"); - String ambitoProfessioneDitta = ParamUtil.getString(actionRequest, "ambitoProfessioneDitta"); - String ambitoProfessioneAltro = ParamUtil.getString(actionRequest, "ambitoProfessioneAltro"); - String ambitoProfessione = - Validator.isNotNull(ambitoProfessioneDitta) ? ambitoProfessioneDitta : ambitoProfessioneAltro; - long intPraticaIdRimozione = ParamUtil.getLong(actionRequest, "intPraticaIdRimozione"); - long dettPraticaIdRimozione = ParamUtil.getLong(actionRequest, "dettPraticaIdRimozione"); - // Date dtDataRimozione = - // ParamUtil.getDate(actionRequest, "dtDataRimozione", - // DateFormatFactoryUtil.getDate(actionRequest.getLocale()); - long soggettoSostituitoId = ParamUtil.getLong(actionRequest, "soggettoSostituitoId"); - - ServiceContext serviceContext = ServiceContextFactory.getInstance(Soggetto.class.getName(), actionRequest); - - long userId = PortalUtil.getUserId(actionRequest); - - try { - actionResponse.setRenderParameter("mvcPath", "html/soggettipratica/edit_soggetto.jsp"); - - boolean tmp = false; - if (requiredDoc) { - tmp = true; - } - Soggetto soggetto = null; - if (soggettoId == 0) { - soggetto = - SoggettoServiceUtil.addSoggetto(userId, dettPraticaId, intPraticaId, nome, cognome, codiceFiscale, - codiceFiscaleDelegato, dataNascita, provinciaNascita, comuneNascita, comuneDomicilio, - comuneDomicilioEstero, provinciaDomicilio, viaDomicilio, numeroCivicoDomicilio, capDomicilio, - domicilioExtra, comune, comuneEstero, provincia, via, numeroCivico, cap, denominazione, sedeLegale, - legaleRap, dataNascitaRap, provinciaNascitaRap, comuneNascitaRap, viaRap, numeroCivicoRap, capRap, - provinciaRap, comuneRap, comuneEstero, albo, alboDescr, regAlbo, provinciaAlbo, numIscrAlbo, telefono, - fax, email, tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, - intPraticaIdRimozione, dettPraticaIdRimozione, null, soggettoSostituitoId, 0L, tmp, serviceContext); - } else { - soggetto = - SoggettoServiceUtil.updateSoggetto(userId, soggettoId, dettPraticaId, intPraticaId, nome, cognome, - codiceFiscale, codiceFiscaleDelegato, dataNascita, provinciaNascita, comuneNascita, comuneDomicilio, - comuneDomicilioEstero, provinciaDomicilio, viaDomicilio, numeroCivicoDomicilio, capDomicilio, - domicilioExtra, comune, comuneEstero, provincia, via, numeroCivico, cap, denominazione, sedeLegale, - legaleRap, dataNascitaRap, provinciaNascitaRap, comuneNascitaRap, viaRap, numeroCivicoRap, capRap, - provinciaRap, comuneRap, comuneEstero, albo, alboDescr, regAlbo, provinciaAlbo, numIscrAlbo, telefono, - fax, email, tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, - intPraticaIdRimozione, dettPraticaIdRimozione, null, soggettoSostituitoId, 0L, tmp, serviceContext); - } - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("soggettoId", String.valueOf(soggetto.getSoggettoId())); - actionResponse.setRenderParameter("closePopup", String.valueOf(true)); - } catch (PortalException e) { - _log.error(e, e); - - throw e; - } - } - - public void updateAllegatoSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); - Soggetto soggetto = SoggettoLocalServiceUtil.getSoggetto(soggettoId); - - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); - long intPraticaId = dettPratica.getIntPraticaId(); - ServiceContext serviceContext = ServiceContextFactory.getInstance(Soggetto.class.getName(), actionRequest); - - String sourceFileName = StringPool.BLANK; - byte[] content = null; - String jsonFirmatari = ""; - boolean isSigned = false; - - boolean applicaFirma = ParamUtil.getBoolean(actionRequest, "applicaFirma"); - try { - FirmeBean firmeBean = new FirmeBean(); - - if (Validator.isNotNull(soggetto.getFileVariazioneId())) { - DocPratica fileAllegato = DocPraticaLocalServiceUtil.getDocPratica(soggetto.getFileVariazioneId()); - sourceFileName = fileAllegato.getFileName(); - FileEntry attachment = DocPraticaLocalServiceUtil.getAttachment(soggetto.getFileVariazioneId()); - // content = IOUtils.toByteArray(attachment.getContentStream()); - content = FileUtil.getBytes(attachment.getContentStream()); - - firmeBean = FirmeUtil.deserialize(fileAllegato.getJsonFirmatari()); - } - - UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); - sourceFileName = uploadRequest.getFileName("docFile"); - File file = uploadRequest.getFile("docFile"); - - User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); - if (applicaFirma && !firmeBean.allSignatures().contains(user.getScreenName())) { - jsonFirmatari = FirmeUtil.addFirma(firmeBean, user.getScreenName()); - } else { - jsonFirmatari = FirmeUtil.serialize(firmeBean); - } - - if (file.exists()) { - - if (Validator.isNotNull(sourceFileName) && file != null) { - // validazione: solo alcune estensioni - String ext = FileUtil.getExtension(sourceFileName); - if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { - SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto.allegato.ext.valid"); - } - // lunghezza fissata a 200 - if (sourceFileName.length() > 200) { - SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto.allegato.length.valid"); - } - } else if (!TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto())) { - SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto.allegato.is.request"); - } - - if (!SessionErrors.isEmpty(actionRequest)) { - throw new SystemException("error.geniocivilefe.variazione-soggetto.allegato"); - } else if (file != null) { - content = FileUtil.getBytes(file); - } - - } - - // Per poter completare l'aggiunta di un soggetto è necessario allegare file firmato dal - // nuovo soggetto e almeno uno dei soggetti già inseriti nella pratica. - // SOLO nel caso in cui il soggetto che viene inserito è di tipo COMMITTENTE, la sua firma - // sul file allegato NON è OBBLIGATORIA; inoltre la firma OBBLIGATORIA che deve essere - // presente sul file allegato è SOLO quella del TITOLARE DIGITALE DELLA PRATICA. - if (TipoSoggettoUtil.COMMITTENTE.equals(soggetto.getTipologiaSoggetto())) { - String[] titolare = new String[] {dettPratica.getCodiceFiscaleDelegatoCommittente()}; - isSigned = - ValidazionePraticaUtil.isAllegatoSignedBySubjects(sourceFileName, content, serviceContext.getCompanyId(), - Arrays.asList(titolare), jsonFirmatari); - } else { - List soggettiValidi = SoggettoServiceUtil.getValidTmpByIntPratica(intPraticaId); - List codiciFiscaliValidi = new ArrayList(); - for (Soggetto valido : soggettiValidi) { - if (!codiciFiscaliValidi.contains(valido.getCodiceFiscale()) - && !valido.getCodiceFiscale().equalsIgnoreCase(soggetto.getCodiceFiscale())) { - codiciFiscaliValidi.add(valido.getCodiceFiscale()); - } - } - isSigned = - ValidazionePraticaUtil.isAllegatoSignedBySubjectsAndPerson(sourceFileName, content, - serviceContext.getCompanyId(), codiciFiscaliValidi, soggetto.getCodiceFiscale(), jsonFirmatari); - } - - if (!isSigned) { - if (TipoSoggettoUtil.COMMITTENTE.equals(soggetto.getTipologiaSoggetto())) { - SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto.add.file.non.firmato.committente"); - throw new SystemException("error.geniocivilefe.variazione-soggetto.add.file.non.firmato.committente"); - } else { - SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); - throw new SystemException("error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); - } - } - - } catch (Exception e) { - SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto"); - String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); - actionResponse.sendRedirect(redirectURL); - return; - } - - long userId = PortalUtil.getUserId(actionRequest); - - try { - SoggettoServiceUtil.allegaFileModifica(soggettoId, userId, intPraticaId, content, sourceFileName, jsonFirmatari, - serviceContext); - - String successUrl = ParamUtil.getString(actionRequest, "successUrl"); - successUrl = - HttpUtil.addParameter(successUrl, actionResponse.getNamespace() + "closePopup", String.valueOf(applicaFirma)); - - actionResponse.sendRedirect(successUrl); - - } catch (PortalException e) { - _log.error(e, e); - throw e; - } - } - - @Override - public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, - PortletException { - - String id = resourceRequest.getResourceID(); - try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(resourceRequest); - if ("compilaSoggetti".equals(id)) { - long userId = ParamUtil.getLong(resourceRequest, "userId", 0l); - String codiceFiscale = ParamUtil.getString(resourceRequest, "codiceFiscale"); - String tipologiaSoggetto = ParamUtil.getString(resourceRequest, "tipologiaSoggetto"); - JSONArray jsonSoggetti = JSONFactoryUtil.createJSONArray(); - if (Validator.isNotNull(userId) && Validator.isNotNull(codiceFiscale) && Validator.isNotNull(tipologiaSoggetto)) { - OrderByComparator orderByComparator = - OrderByComparatorFactoryUtil.create("portos_bo_soggetto", "createDate", false); - List soggetti = - SoggettoLocalServiceUtil.findByUserId_CodiceFiscale_TipologiaSoggetto(userId, codiceFiscale, - tipologiaSoggetto, QueryUtil.ALL_POS, QueryUtil.ALL_POS, orderByComparator); - if (soggetti.isEmpty()) { - soggetti = - SoggettoLocalServiceUtil.findByUserId_CodiceFiscale(userId, codiceFiscale, QueryUtil.ALL_POS, - QueryUtil.ALL_POS, orderByComparator); - } - for (Soggetto soggetto : soggetti) { - JSONSerializer jsonSerializer = JSONFactoryUtil.createJSONSerializer(); - jsonSerializer.exclude("class"); - String serialized = jsonSerializer.serialize(SoggettoSoap.toSoapModel(soggetto)); - jsonSoggetti.put(serialized); - } - } - writeJSON(resourceRequest, resourceResponse, jsonSoggetti); - - } else if ("province".equals(id)) { - - JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); - List province = - ProvinciaLocalServiceUtil.findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, - OrderByComparatorFactoryUtil.create("portos_bo_Provincia", "provincia", true)); - for (Provincia provincia : province) { - JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); - jsonObject.put("provinciaId", provincia.getCodiceProvincia()); - jsonObject.put("descLong", provincia.getSigla() + "- " + provincia.getProvincia()); - - jsonArray.put(jsonObject); - } - writeJSON(resourceRequest, resourceResponse, jsonArray); - - } else if ("comuni".equals(id)) { - String codiceProvincia = ParamUtil.getString(resourceRequest, "provinciaId"); - JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); - if (Validator.isNotNull(codiceProvincia) && Validator.isNotNull(codiceProvincia)) { - List comuni = - ComuneLocalServiceUtil.findByCompanyIdCodiceProvincia(serviceContext.getCompanyId(), codiceProvincia, - QueryUtil.ALL_POS, QueryUtil.ALL_POS, OrderByComparatorFactoryUtil.create("portos_bo_Comune", - "denominazione", true)); - for (Comune comune : comuni) { - JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); - - jsonObject.put("comuneId", comune.getComuneId()); - jsonObject.put("descLong", comune.getDenominazione()); - - jsonArray.put(jsonObject); - } - } - writeJSON(resourceRequest, resourceResponse, jsonArray); - } else { - super.serveResource(resourceRequest, resourceResponse); - } - } catch (Exception e) { - _log.error(e, e); - throw new IOException(e); - } - } + private static Log _log = LogFactoryUtil.getLog(SoggettiPraticaPortlet.class); + + public void deleteSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + + try { + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + + SoggettoServiceUtil.deleteSoggetto(soggettoId); + + } catch (PortalException | SystemException e) { + _log.error(e, e); + throw e; + } + + } + + public void invalidaSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + + try { + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + long dettPraticaIdRimozione = ParamUtil.getLong(actionRequest, "dettPraticaId"); + + SoggettoLocalServiceUtil.invalidaSoggetto(soggettoId, dettPraticaIdRimozione); + + } catch (PortalException | SystemException e) { + _log.error(e, e); + throw e; + } + } + + public void validaSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + + try { + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + + SoggettoLocalServiceUtil.validaSoggetto(soggettoId, dettPraticaId); + + } catch (PortalException | SystemException e) { + _log.error(e, e); + throw e; + } + } + + public void makePrincipale(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + + try { + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + Soggetto soggetto = SoggettoServiceUtil.getSoggetto(soggettoId); + SoggettoServiceUtil.updatePrincipale(dettPraticaId, soggetto.getCodiceFiscale(), + soggetto.getTipologiaSoggetto()); + + } catch (PortalException | SystemException e) { + _log.error(e, e); + throw e; + } + } + + public void removePrincipale(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + + try { + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + Soggetto soggetto = SoggettoServiceUtil.getSoggetto(soggettoId); + long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + DettPraticaServiceUtil.updatePrincipale(dettPraticaId, StringPool.BLANK, + soggetto.getTipologiaSoggetto()); + + } catch (PortalException | SystemException e) { + _log.error(e, e); + throw e; + } + } + + // public void updateSoggetto(ActionRequest actionRequest, ActionResponse + // actionResponse) throws + // Exception { + // + // boolean requiredDoc = ParamUtil.getBoolean(actionRequest, "requiredDoc"); + // long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + // + // long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + // long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + // String tipologiaSoggetto = ParamUtil.getString(actionRequest, + // "tipologiaSoggetto"); + // String nome = ParamUtil.getString(actionRequest, "nome"); + // String cognome = ParamUtil.getString(actionRequest, "cognome"); + // String codiceFiscale = ParamUtil.getString(actionRequest, + // "codiceFiscale"); + // if (Validator.isNotNull(ParamUtil.getString(actionRequest, + // "codiceFiscaleDitta"))) { + // codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscaleDitta"); + // } else { + // codiceFiscale = ParamUtil.getString(actionRequest, + // "codiceFiscalePersone"); + // } + // boolean isSigned = false; + // String sourceFileName = StringPool.BLANK; + // byte[] content = null; + // String jsonFirmatari = ""; + // + // if (requiredDoc) { + // UploadPortletRequest uploadRequest = + // PortalUtil.getUploadPortletRequest(actionRequest); + // ServiceContext serviceContext = + // ServiceContextFactory.getInstance(uploadRequest); + // sourceFileName = uploadRequest.getFileName("docFile"); + // File file = uploadRequest.getFile("docFile"); + // boolean applicaFirma = ParamUtil.getBoolean(actionRequest, + // "applicaFirma"); + // + // try { + // if (Validator.isNotNull(sourceFileName) && file != null) { + // // validazione: solo alcune estensioni + // String ext = FileUtil.getExtension(sourceFileName); + // if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { + // SessionErrors.add(actionRequest, + // "error.geniocivilefe.variazione-soggetto.allegato.ext.valid"); + // } + // // lunghezza fissata a 200 + // if (sourceFileName.length() > 200) { + // SessionErrors.add(actionRequest, + // "error.geniocivilefe.variazione-soggetto.allegato.length.valid"); + // } + // } else { + // SessionErrors.add(actionRequest, + // "error.geniocivilefe.variazione-soggetto.allegato.is.request"); + // } + // + // if (!SessionErrors.isEmpty(actionRequest)) { + // throw new + // SystemException("error.geniocivilefe.variazione-soggetto.allegato"); + // } else { + // content = FileUtil.getBytes(file); + // // Per poter completare l'aggiunta di un soggetto è necessario allegare + // file firmato dal + // // nuovo soggetto e almeno uno dei soggetti già inseriti nella pratica. + // // SOLO nel caso in cui il soggetto che viene inserito è di tipo + // COMMITTENTE, la sua firma + // // sul file allegato NON è OBBLIGATORIA; inoltre la firma OBBLIGATORIA + // che deve essere + // // presente sul file allegato è SOLO quella del TITOLARE DIGITALE DELLA + // PRATICA. + // if (TipoSoggettoUtil.COMMITTENTE.equals(tipologiaSoggetto)) { + // DettPratica dettPratica = + // DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); + // String[] titolare = new String[] + // {dettPratica.getCodiceFiscaleDelegatoCommittente()}; + // isSigned = + // ValidazionePraticaUtil.isAllegatoSignedBySubjects(sourceFileName, + // content, + // serviceContext.getCompanyId(), Arrays.asList(titolare)); + // } else { + // List soggettiValidi = + // SoggettoServiceUtil.getValidTmpByIntPratica(intPraticaId); + // List codiciFiscaliValidi = new ArrayList(); + // for (Soggetto soggetto : soggettiValidi) { + // if (!codiciFiscaliValidi.contains(soggetto.getCodiceFiscale())) { + // codiciFiscaliValidi.add(soggetto.getCodiceFiscale()); + // } + // } + // + // isSigned = + // ValidazionePraticaUtil.isAllegatoSignedBySubjectsAndPerson(sourceFileName, + // content, + // serviceContext.getCompanyId(), codiciFiscaliValidi, codiceFiscale); + // } + // + // FirmeBean firmeBean = new FirmeBean(); + // if (applicaFirma) { + // User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); + // jsonFirmatari = FirmeUtil.addFirma(firmeBean, user.getScreenName()); + // } else { + // jsonFirmatari = FirmeUtil.serialize(firmeBean); + // } + // + // if (!isSigned) { + // SessionErrors.add(actionRequest, + // "error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); + // throw new + // SystemException("error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); + // } + // + // } + // + // } catch (Exception e) { + // SessionErrors.add(actionRequest, + // "error.geniocivilefe.variazione-soggetto"); + // String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); + // redirectURL = + // HttpUtil.addParameter(redirectURL, actionResponse.getNamespace() + + // "isEditable", + // String.valueOf(true)); + // + // actionResponse.sendRedirect(redirectURL); + // return; + // } + // + // } + // + // String codiceFiscaleDelegato = ParamUtil.getString(actionRequest, + // "codiceFiscaleDelegato"); + // Date dataNascita = + // ParamUtil.getDate(actionRequest, "dataNascita", + // DateFormatFactoryUtil.getDate(actionRequest.getLocale())); + // String comuneNascita = ParamUtil.getString(actionRequest, + // "comuneNascita"); + // String comuneDomicilio = ParamUtil.getString(actionRequest, + // "comuneDomicilio"); + // String provinciaDomicilio = ParamUtil.getString(actionRequest, + // "provinciaDomicilio"); + // String viaDomicilio = ParamUtil.getString(actionRequest, "viaDomicilio"); + // String numeroCivicoDomicilio = ParamUtil.getString(actionRequest, + // "numeroCivicoDomicilio"); + // String capDomicilio = ParamUtil.getString(actionRequest, "capDomicilio"); + // String domicilioExtra = ParamUtil.getString(actionRequest, + // "domicilioExtra"); + // String comune = ParamUtil.getString(actionRequest, "comune"); + // String provincia = ParamUtil.getString(actionRequest, "provincia"); + // String via = ParamUtil.getString(actionRequest, "via"); + // String numeroCivico = ParamUtil.getString(actionRequest, "numeroCivico"); + // String cap = ParamUtil.getString(actionRequest, "cap"); + // String denominazione = ParamUtil.getString(actionRequest, + // "denominazione"); + // String sedeLegale = ParamUtil.getString(actionRequest, "sedeLegale"); + // String legaleRap = ParamUtil.getString(actionRequest, "legaleRap"); + // Date dataNascitaRap = + // ParamUtil.getDate(actionRequest, "dataNascitaRap", + // DateFormatFactoryUtil.getDate(actionRequest.getLocale())); + // String comuneNascitaRap = ParamUtil.getString(actionRequest, + // "comuneNascitaRap"); + // String viaRap = ParamUtil.getString(actionRequest, "viaRap"); + // String numeroCivicoRap = ParamUtil.getString(actionRequest, + // "numeroCivicoRap"); + // String capRap = ParamUtil.getString(actionRequest, "capRap"); + // String provinciaRap = ParamUtil.getString(actionRequest, "provinciaRap"); + // String comuneRap = ParamUtil.getString(actionRequest, "comuneRap"); + // String albo = ParamUtil.getString(actionRequest, "albo"); + // String regAlbo = ParamUtil.getString(actionRequest, "regAlbo"); + // String provinciaAlbo = ParamUtil.getString(actionRequest, + // "provinciaAlbo"); + // String numIscrAlbo = ParamUtil.getString(actionRequest, "numIscrAlbo"); + // String telefono = ParamUtil.getString(actionRequest, "telefono"); + // String fax = ParamUtil.getString(actionRequest, "fax"); + // String email = ParamUtil.getString(actionRequest, "email"); + // boolean aggiuntivo = ParamUtil.getBoolean(actionRequest, "aggiuntivo"); + // boolean rimosso = ParamUtil.getBoolean(actionRequest, "rimosso"); + // String ambitoAttivita = ParamUtil.getString(actionRequest, + // "ambitoAttivita"); + // String ambitoProfessioneDitta = ParamUtil.getString(actionRequest, + // "ambitoProfessioneDitta"); + // String ambitoProfessioneAltro = ParamUtil.getString(actionRequest, + // "ambitoProfessioneAltro"); + // String ambitoProfessione = + // Validator.isNotNull(ambitoProfessioneDitta) ? ambitoProfessioneDitta : + // ambitoProfessioneAltro; + // long intPraticaIdRimozione = ParamUtil.getLong(actionRequest, + // "intPraticaIdRimozione"); + // long dettPraticaIdRimozione = ParamUtil.getLong(actionRequest, + // "dettPraticaIdRimozione"); + // // Date dtDataRimozione = + // // ParamUtil.getDate(actionRequest, "dtDataRimozione", + // // DateFormatFactoryUtil.getDate(actionRequest.getLocale()); + // + // ServiceContext serviceContext = + // ServiceContextFactory.getInstance(Soggetto.class.getName(), + // actionRequest); + // + // long userId = PortalUtil.getUserId(actionRequest); + // + // try { + // + // actionResponse.setRenderParameter("mvcPath", + // "html/soggettipratica/edit_soggetto.jsp"); + // if (soggettoId == 0) { + // if (isSigned) { + // SoggettoLocalServiceUtil.addSoggettoValidatedByFile(userId, + // dettPraticaId, intPraticaId, nome, + // cognome, + // codiceFiscale, codiceFiscaleDelegato, dataNascita, comuneNascita, + // comuneDomicilio, + // provinciaDomicilio, + // viaDomicilio, numeroCivicoDomicilio, capDomicilio, domicilioExtra, + // comune, provincia, via, + // numeroCivico, + // cap, denominazione, sedeLegale, legaleRap, dataNascitaRap, + // comuneNascitaRap, viaRap, + // numeroCivicoRap, + // capRap, provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, + // numIscrAlbo, telefono, fax, + // email, + // tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, + // ambitoProfessione, + // intPraticaIdRimozione, + // dettPraticaIdRimozione, null, 0L, content, sourceFileName, jsonFirmatari, + // serviceContext); + // } else { + // SoggettoLocalServiceUtil.addSoggetto(userId, dettPraticaId, intPraticaId, + // nome, cognome, + // codiceFiscale, + // codiceFiscaleDelegato, dataNascita, comuneNascita, comuneDomicilio, + // provinciaDomicilio, + // viaDomicilio, + // numeroCivicoDomicilio, capDomicilio, domicilioExtra, comune, provincia, + // via, numeroCivico, cap, + // denominazione, sedeLegale, legaleRap, dataNascitaRap, comuneNascitaRap, + // viaRap, + // numeroCivicoRap, capRap, + // provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, numIscrAlbo, + // telefono, fax, email, + // tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, + // ambitoProfessione, + // intPraticaIdRimozione, + // dettPraticaIdRimozione, null, 0L, serviceContext); + // } + // } else { + // if (isSigned) { + // SoggettoLocalServiceUtil.updateSoggettoValidatedByFile(userId, + // soggettoId, dettPraticaId, + // intPraticaId, nome, + // cognome, codiceFiscale, codiceFiscaleDelegato, dataNascita, + // comuneNascita, comuneDomicilio, + // provinciaDomicilio, viaDomicilio, numeroCivicoDomicilio, capDomicilio, + // domicilioExtra, comune, + // provincia, + // via, numeroCivico, cap, denominazione, sedeLegale, legaleRap, + // dataNascitaRap, comuneNascitaRap, + // viaRap, + // numeroCivicoRap, capRap, provinciaRap, comuneRap, albo, regAlbo, + // provinciaAlbo, numIscrAlbo, + // telefono, + // fax, email, tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, + // ambitoProfessione, + // intPraticaIdRimozione, dettPraticaIdRimozione, null, 0L, content, + // sourceFileName, + // jsonFirmatari, + // serviceContext); + // } else { + // SoggettoLocalServiceUtil.updateSoggetto(userId, soggettoId, + // dettPraticaId, intPraticaId, nome, + // cognome, + // codiceFiscale, codiceFiscaleDelegato, dataNascita, comuneNascita, + // comuneDomicilio, + // provinciaDomicilio, + // viaDomicilio, numeroCivicoDomicilio, capDomicilio, domicilioExtra, + // comune, provincia, via, + // numeroCivico, + // cap, denominazione, sedeLegale, legaleRap, dataNascitaRap, + // comuneNascitaRap, viaRap, + // numeroCivicoRap, + // capRap, provinciaRap, comuneRap, albo, regAlbo, provinciaAlbo, + // numIscrAlbo, telefono, fax, + // email, + // tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, + // ambitoProfessione, + // intPraticaIdRimozione, + // dettPraticaIdRimozione, null, 0L, serviceContext); + // } + // } + // PortalUtil.copyRequestParameters(actionRequest, actionResponse); + // } catch (PortalException e) { + // _log.error(e, e); + // + // throw e; + // } + // } + + public void updateSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + + boolean requiredDoc = ParamUtil.getBoolean(actionRequest, "requiredDoc"); + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + + long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + String tipologiaSoggetto = ParamUtil.getString(actionRequest, "tipologiaSoggetto"); + String nome = ParamUtil.getString(actionRequest, "nome"); + String cognome = ParamUtil.getString(actionRequest, "cognome"); + String codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscale"); + if (Validator.isNotNull(ParamUtil.getString(actionRequest, "codiceFiscaleDitta"))) { + codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscaleDitta"); + } else { + codiceFiscale = ParamUtil.getString(actionRequest, "codiceFiscalePersone"); + } + + String codiceFiscaleDelegato = ParamUtil.getString(actionRequest, "codiceFiscaleDelegato"); + Date dataNascita = ParamUtil.getDate(actionRequest, "dataNascita", + DateFormatFactoryUtil.getDate(actionRequest.getLocale())); + String provinciaNascita = ParamUtil.getString(actionRequest, "provinciaNascita"); + String comuneNascita = ParamUtil.getString(actionRequest, "comuneNascita"); + String comuneDomicilio = ParamUtil.getString(actionRequest, "comuneDomicilio"); + String comuneDomicilioEstero = ParamUtil.getString(actionRequest, "comuneDomicilioEstero"); + String provinciaDomicilio = ParamUtil.getString(actionRequest, "provinciaDomicilio"); + String viaDomicilio = ParamUtil.getString(actionRequest, "viaDomicilio"); + String numeroCivicoDomicilio = ParamUtil.getString(actionRequest, "numeroCivicoDomicilio"); + String capDomicilio = ParamUtil.getString(actionRequest, "capDomicilio"); + String domicilioExtra = ParamUtil.getString(actionRequest, "domicilioExtra"); + String comune = ParamUtil.getString(actionRequest, "comune"); + String comuneEstero = ParamUtil.getString(actionRequest, "comuneEstero"); + String provincia = ParamUtil.getString(actionRequest, "provincia"); + String via = ParamUtil.getString(actionRequest, "via"); + String numeroCivico = ParamUtil.getString(actionRequest, "numeroCivico"); + String cap = ParamUtil.getString(actionRequest, "cap"); + String denominazione = ParamUtil.getString(actionRequest, "denominazione"); + String sedeLegale = ParamUtil.getString(actionRequest, "sedeLegale"); + String legaleRap = ParamUtil.getString(actionRequest, "legaleRap"); + Date dataNascitaRap = ParamUtil.getDate(actionRequest, "dataNascitaRap", + DateFormatFactoryUtil.getDate(actionRequest.getLocale())); + String provinciaNascitaRap = ParamUtil.getString(actionRequest, "provinciaNascitaRap"); + String comuneNascitaRap = ParamUtil.getString(actionRequest, "comuneNascitaRap"); + String viaRap = ParamUtil.getString(actionRequest, "viaRap"); + String numeroCivicoRap = ParamUtil.getString(actionRequest, "numeroCivicoRap"); + String capRap = ParamUtil.getString(actionRequest, "capRap"); + String provinciaRap = ParamUtil.getString(actionRequest, "provinciaRap"); + String comuneRap = ParamUtil.getString(actionRequest, "comuneRap"); + String comuneRapEstero = ParamUtil.getString(actionRequest, "comuneRapEstero"); + String albo = ParamUtil.getString(actionRequest, "albo"); + String alboDescr = ParamUtil.getString(actionRequest, "alboDescr"); + String regAlbo = ParamUtil.getString(actionRequest, "regAlbo"); + String provinciaAlbo = ParamUtil.getString(actionRequest, "provinciaAlbo"); + String numIscrAlbo = ParamUtil.getString(actionRequest, "numIscrAlbo"); + String fax = ParamUtil.getString(actionRequest, "fax"); + + String telefonoResidenza = ParamUtil.getString(actionRequest, "telefonoResidenza"); + String telefono = Validator.isNotNull(telefonoResidenza) ? telefonoResidenza : ParamUtil.getString( + actionRequest, "telefonoGiuridico"); + + String emailResidenza = ParamUtil.getString(actionRequest, "emailResidenza"); + String email = Validator.isNotNull(emailResidenza) ? emailResidenza : ParamUtil.getString( + actionRequest, "emailGiuridica"); + + boolean aggiuntivo = ParamUtil.getBoolean(actionRequest, "aggiuntivo"); + boolean rimosso = ParamUtil.getBoolean(actionRequest, "rimosso"); + String ambitoAttivita = ParamUtil.getString(actionRequest, "ambitoAttivita"); + String ambitoProfessioneDitta = ParamUtil.getString(actionRequest, "ambitoProfessioneDitta"); + String ambitoProfessioneAltro = ParamUtil.getString(actionRequest, "ambitoProfessioneAltro"); + String ambitoProfessione = Validator.isNotNull(ambitoProfessioneDitta) ? ambitoProfessioneDitta + : ambitoProfessioneAltro; + long intPraticaIdRimozione = ParamUtil.getLong(actionRequest, "intPraticaIdRimozione"); + long dettPraticaIdRimozione = ParamUtil.getLong(actionRequest, "dettPraticaIdRimozione"); + // Date dtDataRimozione = + // ParamUtil.getDate(actionRequest, "dtDataRimozione", + // DateFormatFactoryUtil.getDate(actionRequest.getLocale()); + long soggettoSostituitoId = ParamUtil.getLong(actionRequest, "soggettoSostituitoId"); + + ServiceContext serviceContext = ServiceContextFactory.getInstance(Soggetto.class.getName(), + actionRequest); + + long userId = PortalUtil.getUserId(actionRequest); + + try { + actionResponse.setRenderParameter("mvcPath", "html/soggettipratica/edit_soggetto.jsp"); + + boolean tmp = false; + if (requiredDoc) { + tmp = true; + } + Soggetto soggetto = null; + if (soggettoId == 0) { + soggetto = SoggettoServiceUtil.addSoggetto(userId, dettPraticaId, intPraticaId, nome, + cognome, codiceFiscale, codiceFiscaleDelegato, dataNascita, provinciaNascita, + comuneNascita, comuneDomicilio, comuneDomicilioEstero, provinciaDomicilio, + viaDomicilio, numeroCivicoDomicilio, capDomicilio, domicilioExtra, comune, + comuneEstero, provincia, via, numeroCivico, cap, denominazione, sedeLegale, + legaleRap, dataNascitaRap, provinciaNascitaRap, comuneNascitaRap, viaRap, + numeroCivicoRap, capRap, provinciaRap, comuneRap, comuneEstero, albo, alboDescr, + regAlbo, provinciaAlbo, numIscrAlbo, telefono, fax, email, tipologiaSoggetto, + aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, intPraticaIdRimozione, + dettPraticaIdRimozione, null, soggettoSostituitoId, 0L, tmp, serviceContext); + } else { + soggetto = SoggettoServiceUtil.updateSoggetto(userId, soggettoId, dettPraticaId, + intPraticaId, nome, cognome, codiceFiscale, codiceFiscaleDelegato, dataNascita, + provinciaNascita, comuneNascita, comuneDomicilio, comuneDomicilioEstero, + provinciaDomicilio, viaDomicilio, numeroCivicoDomicilio, capDomicilio, + domicilioExtra, comune, comuneEstero, provincia, via, numeroCivico, cap, + denominazione, sedeLegale, legaleRap, dataNascitaRap, provinciaNascitaRap, + comuneNascitaRap, viaRap, numeroCivicoRap, capRap, provinciaRap, comuneRap, + comuneEstero, albo, alboDescr, regAlbo, provinciaAlbo, numIscrAlbo, telefono, fax, + email, tipologiaSoggetto, aggiuntivo, rimosso, ambitoAttivita, ambitoProfessione, + intPraticaIdRimozione, dettPraticaIdRimozione, null, soggettoSostituitoId, 0L, tmp, + serviceContext); + } + PortalUtil.copyRequestParameters(actionRequest, actionResponse); + actionResponse.setRenderParameter("soggettoId", String.valueOf(soggetto.getSoggettoId())); + actionResponse.setRenderParameter("closePopup", String.valueOf(true)); + } catch (PortalException e) { + _log.error(e, e); + + throw e; + } + } + + public void updateAllegatoSoggetto(ActionRequest actionRequest, ActionResponse actionResponse) + throws Exception { + + long soggettoId = ParamUtil.getLong(actionRequest, "soggettoId"); + Soggetto soggetto = SoggettoLocalServiceUtil.getSoggetto(soggettoId); + + long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); + long intPraticaId = dettPratica.getIntPraticaId(); + ServiceContext serviceContext = ServiceContextFactory.getInstance(Soggetto.class.getName(), + actionRequest); + + String sourceFileName = StringPool.BLANK; + byte[] content = null; + String jsonFirmatari = ""; + boolean isSigned = false; + + boolean applicaFirma = ParamUtil.getBoolean(actionRequest, "applicaFirma"); + try { + FirmeBean firmeBean = new FirmeBean(); + + if (Validator.isNotNull(soggetto.getFileVariazioneId())) { + DocPratica fileAllegato = DocPraticaLocalServiceUtil.getDocPratica(soggetto + .getFileVariazioneId()); + sourceFileName = fileAllegato.getFileName(); + FileEntry attachment = DocPraticaLocalServiceUtil.getAttachment(soggetto + .getFileVariazioneId()); + // content = IOUtils.toByteArray(attachment.getContentStream()); + content = FileUtil.getBytes(attachment.getContentStream()); + + firmeBean = FirmeUtil.deserialize(fileAllegato.getJsonFirmatari()); + } + + UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); + sourceFileName = uploadRequest.getFileName("docFile"); + File file = uploadRequest.getFile("docFile"); + + User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); + if (applicaFirma && !firmeBean.allSignatures().contains(user.getScreenName())) { + jsonFirmatari = FirmeUtil.addFirma(firmeBean, user.getScreenName()); + } else { + jsonFirmatari = FirmeUtil.serialize(firmeBean); + } + + if (file.exists()) { + + if (Validator.isNotNull(sourceFileName) && file != null) { + // validazione: solo alcune estensioni + String ext = FileUtil.getExtension(sourceFileName); + if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { + SessionErrors.add(actionRequest, + "error.geniocivilefe.variazione-soggetto.allegato.ext.valid"); + } + // lunghezza fissata a 200 + if (sourceFileName.length() > 200) { + SessionErrors.add(actionRequest, + "error.geniocivilefe.variazione-soggetto.allegato.length.valid"); + } + } else if (!TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto())) { + SessionErrors.add(actionRequest, + "error.geniocivilefe.variazione-soggetto.allegato.is.request"); + } + + if (!SessionErrors.isEmpty(actionRequest)) { + throw new SystemException("error.geniocivilefe.variazione-soggetto.allegato"); + } else if (file != null) { + content = FileUtil.getBytes(file); + } + + } + + // Per poter completare l'aggiunta di un soggetto è necessario + // allegare file firmato dal + // nuovo soggetto e almeno uno dei soggetti già inseriti nella + // pratica. + // SOLO nel caso in cui il soggetto che viene inserito è di tipo + // COMMITTENTE, la sua firma + // sul file allegato NON è OBBLIGATORIA; inoltre la firma + // OBBLIGATORIA che deve essere + // presente sul file allegato è SOLO quella del TITOLARE DIGITALE + // DELLA PRATICA. + if (TipoSoggettoUtil.COMMITTENTE.equals(soggetto.getTipologiaSoggetto())) { + String[] titolare = new String[] { dettPratica.getCodiceFiscaleDelegatoCommittente() }; + isSigned = ValidazionePraticaUtil.isAllegatoSignedBySubjects(sourceFileName, content, + serviceContext.getCompanyId(), Arrays.asList(titolare), jsonFirmatari); + } else { + List soggettiValidi = SoggettoServiceUtil.getValidTmpByIntPratica(intPraticaId); + List codiciFiscaliValidi = new ArrayList(); + for (Soggetto valido : soggettiValidi) { + if (!codiciFiscaliValidi.contains(valido.getCodiceFiscale()) + && !valido.getCodiceFiscale().equalsIgnoreCase(soggetto.getCodiceFiscale())) { + codiciFiscaliValidi.add(valido.getCodiceFiscale()); + } + } + isSigned = ValidazionePraticaUtil.isAllegatoSignedBySubjectsAndPerson(sourceFileName, + content, serviceContext.getCompanyId(), codiciFiscaliValidi, + soggetto.getCodiceFiscale(), jsonFirmatari); + } + + if (!isSigned) { + if (TipoSoggettoUtil.COMMITTENTE.equals(soggetto.getTipologiaSoggetto())) { + SessionErrors.add(actionRequest, + "error.geniocivilefe.variazione-soggetto.add.file.non.firmato.committente"); + throw new SystemException( + "error.geniocivilefe.variazione-soggetto.add.file.non.firmato.committente"); + } else { + SessionErrors.add(actionRequest, + "error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); + throw new SystemException("error.geniocivilefe.variazione-soggetto.add.file.non.firmato"); + } + } + + } catch (Exception e) { + SessionErrors.add(actionRequest, "error.geniocivilefe.variazione-soggetto"); + String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); + actionResponse.sendRedirect(redirectURL); + return; + } + + long userId = PortalUtil.getUserId(actionRequest); + + try { + SoggettoServiceUtil.allegaFileModifica(soggettoId, userId, intPraticaId, content, sourceFileName, + jsonFirmatari, serviceContext); + + String successUrl = ParamUtil.getString(actionRequest, "successUrl"); + successUrl = HttpUtil.addParameter(successUrl, actionResponse.getNamespace() + "closePopup", + String.valueOf(applicaFirma)); + + actionResponse.sendRedirect(successUrl); + + } catch (PortalException e) { + _log.error(e, e); + throw e; + } + } + + @Override + public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) + throws IOException, PortletException { + + String id = resourceRequest.getResourceID(); + try { + ServiceContext serviceContext = ServiceContextFactory.getInstance(resourceRequest); + if ("compilaSoggetti".equals(id)) { + long userId = ParamUtil.getLong(resourceRequest, "userId", 0l); + String codiceFiscale = ParamUtil.getString(resourceRequest, "codiceFiscale"); + String tipologiaSoggetto = ParamUtil.getString(resourceRequest, "tipologiaSoggetto"); + JSONArray jsonSoggetti = JSONFactoryUtil.createJSONArray(); + if (Validator.isNotNull(userId) && Validator.isNotNull(codiceFiscale) + && Validator.isNotNull(tipologiaSoggetto)) { + OrderByComparator orderByComparator = OrderByComparatorFactoryUtil.create( + "portos_bo_soggetto", "createDate", false); + List soggetti = SoggettoLocalServiceUtil + .findByUserId_CodiceFiscale_TipologiaSoggetto(userId, codiceFiscale, + tipologiaSoggetto, QueryUtil.ALL_POS, QueryUtil.ALL_POS, + orderByComparator); + if (soggetti.isEmpty()) { + soggetti = SoggettoLocalServiceUtil.findByUserId_CodiceFiscale(userId, codiceFiscale, + QueryUtil.ALL_POS, QueryUtil.ALL_POS, orderByComparator); + } + for (Soggetto soggetto : soggetti) { + JSONSerializer jsonSerializer = JSONFactoryUtil.createJSONSerializer(); + jsonSerializer.exclude("class"); + String serialized = jsonSerializer.serialize(SoggettoSoap.toSoapModel(soggetto)); + jsonSoggetti.put(serialized); + } + } + writeJSON(resourceRequest, resourceResponse, jsonSoggetti); + + } else if ("province".equals(id)) { + + JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); + List province = ProvinciaLocalServiceUtil.findAll(QueryUtil.ALL_POS, + QueryUtil.ALL_POS, + OrderByComparatorFactoryUtil.create("portos_bo_Provincia", "provincia", true)); + for (Provincia provincia : province) { + JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); + jsonObject.put("provinciaId", provincia.getCodiceProvincia()); + jsonObject.put("descLong", provincia.getSigla() + "- " + provincia.getProvincia()); + + jsonArray.put(jsonObject); + } + writeJSON(resourceRequest, resourceResponse, jsonArray); + + } else if ("comuni".equals(id)) { + String codiceProvincia = ParamUtil.getString(resourceRequest, "provinciaId"); + JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); + if (Validator.isNotNull(codiceProvincia) && Validator.isNotNull(codiceProvincia)) { + List comuni = ComuneLocalServiceUtil.findByCompanyIdCodiceProvincia( + serviceContext.getCompanyId(), codiceProvincia, QueryUtil.ALL_POS, + QueryUtil.ALL_POS, + OrderByComparatorFactoryUtil.create("portos_bo_Comune", "denominazione", true)); + for (Comune comune : comuni) { + JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); + + jsonObject.put("comuneId", comune.getComuneId()); + jsonObject.put("descLong", comune.getDenominazione()); + + jsonArray.put(jsonObject); + } + } + writeJSON(resourceRequest, resourceResponse, jsonArray); + } else { + super.serveResource(resourceRequest, resourceResponse); + } + } catch (Exception e) { + _log.error(e, e); + throw new IOException(e); + } + } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view.jsp index 59730773..aae56d2e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view.jsp @@ -262,11 +262,11 @@ cssIcon = "fa-check"; cssColor= "txt-green"; testoFirme=""; - } else if(docPratica.getStatus() == 1){ + } else if(docPratica.getStatus() == WorkflowConstants.STATUS_PENDING) { cssIcon= "fa-cog fa-spin"; cssColor= "txt-orange"; - testoFirme="Estrazione firme in corso"; - }else if(docPratica.getStatus() == 4){ + testoFirme="Estrazione firme in corso"; + }else if(docPratica.getStatus() == WorkflowConstants.STATUS_DENIED) { cssIcon= "fa-alert"; cssColor= "txt-red"; testoFirme="Errore nell'estrazione delle firme"; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp index 7adfef56..32ff3c08 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp @@ -344,16 +344,16 @@
- -
- - +
diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp index f0d782df..552d5973 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp @@ -236,6 +236,9 @@ + @@ -279,6 +282,12 @@ value="<%=TipoSoggettoUtil.COLLAUDATORE%>" selected="<%=soggetto!=null && soggetto.getTipologiaSoggetto().equals(TipoSoggettoUtil.COLLAUDATORE)%>"> + + + @@ -1555,12 +1564,13 @@ 'aggiornaForm', function() { var vuoto = "00" - var committente = "02"; - var progettista = "06"; - var direttore = "03"; - var ditta = "04"; - var geologo = "05"; - var collaudatore = "01"; + var committente = "<%= TipoSoggettoUtil.COMMITTENTE %>"; + var progettista = "<%= TipoSoggettoUtil.PROGETTISTA %>"; + var direttore = "<%= TipoSoggettoUtil.DIRETTORE_LAVORI %>"; + var ditta = "<%= TipoSoggettoUtil.DITTA %>"; + var geologo = "<%= TipoSoggettoUtil.GEOLOGO %>"; + var collaudatore = "<%= TipoSoggettoUtil.COLLAUDATORE %>"; + var archeologo = "<%= TipoSoggettoUtil.ARCHEOLOGO %>"; var value = $('#tipologiaSoggetto') .val(); @@ -1588,7 +1598,7 @@ if (value == committente || value == progettista || value == direttore || value == geologo - || value == collaudatore) { + || value == collaudatore || value == archeologo) { $('.button_container').show(); $('.tabella_soggetti_fisici').show(); enableInput('.tabella_soggetti_fisici'); @@ -1656,7 +1666,7 @@ $('.colonna_ditta_committente').hide(); } - if (value == committente) { + if (value == committente || value == archeologo) { $('.tabella_albo').hide(); disableInput('.tabella_albo'); @@ -1676,7 +1686,7 @@ ); Liferay.provide(window, 'activeDisableCommittente', function() { - var committente = "02"; + var committente = "<%= TipoSoggettoUtil.COMMITTENTE %>"; var value = $('#tipologiaSoggetto').val(); if (value == committente && ! diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp index 3a4323f5..abe2c36b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp @@ -140,8 +140,6 @@ } else { if( !isSoggettoPrincipale && Validator.isNull(soggetto.getDettPraticaIdRimozione()) && !soggetto.getTmp() ){ clickFunction = "makeSoggettoPrincipale(\""+soggetto.getSoggettoId()+"\")"; - } else if(isSoggettoPrincipale){ - clickFunction = "unmakeSoggettoPrincipale(\""+soggetto.getSoggettoId()+"\")"; } else { clickFunction = "javascript:void(0)"; unclickableClass = "unclickable"; @@ -748,32 +746,4 @@ ); } ); - Liferay.provide( - window, - 'unmakeSoggettoPrincipale', - function(soggettoId) { - Loading.start(); - A.io.request( - '<%= removePrincipaleURL %>', - { - data:{ - soggettoId: soggettoId, - }, - dataType: 'json', - on: { - failure: function() { - alert('Impossibile rendere il soggetto principale!'); - }, - success: function(event, id, obj) { - window.parent.Liferay.fire('soggetti-open'); - Liferay.Portlet.refresh("#p_p_id"); - }, - complete: function(){ - Loading.end(); - } - } - } - ); - } - ); \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportMessageListener.java b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportMessageListener.java index 3d821bbe..c696576d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportMessageListener.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportMessageListener.java @@ -29,131 +29,136 @@ import java.util.Collections; import java.util.Map; public class ReportMessageListener extends BaseMessageListener { + private final static Log _log = LogFactoryUtil.getLog(ReportTaskMessageListener.class); - private Log _log = LogFactoryUtil.getLog(ReportMessageListener.class); + @SuppressWarnings("unchecked") + @Override + protected void doReceive(Message message) throws Exception { + try { - @SuppressWarnings("unchecked") - @Override - protected void doReceive(Message message) throws Exception { + long companyId = message.getLong(ReportConstants.COMPANY_ID); + long userId = message.getLong(ReportConstants.USER_ID); - try { + Object dataSouce = message.get(ReportConstants.REPORT_DATASOURCE); + Map taskContextMap = (Map) message + .get(ReportConstants.PARAMATERS); - long companyId = message.getLong(ReportConstants.COMPANY_ID); - long userId = message.getLong(ReportConstants.USER_ID); + if (taskContextMap == null) { + taskContextMap = Collections. emptyMap(); + } - Object dataSouce = message.get(ReportConstants.REPORT_DATASOURCE); - Map taskContextMap = (Map) message.get(ReportConstants.PARAMATERS); + validate(companyId, userId, taskContextMap); - if (taskContextMap == null) { - taskContextMap = Collections.emptyMap(); - } + ReportProcessMode reportProcessMode = ReportProcessMode.valueOf(MapUtil.getString(taskContextMap, + ReportConstants.PARAM_PROCESS_MODE)); - validate(companyId, userId, taskContextMap); + if (reportProcessMode.equals(ReportProcessMode.ASYNC)) { - ReportProcessMode reportProcessMode = - ReportProcessMode.valueOf(MapUtil.getString(taskContextMap, ReportConstants.PARAM_PROCESS_MODE)); + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setCompanyId(companyId); + serviceContext.setUserId(userId); - if (reportProcessMode.equals(ReportProcessMode.ASYNC)) { + ReportTask reportTask = ReportTaskLocalServiceUtil.addReportTask(taskContextMap, + serviceContext); - ServiceContext serviceContext = new ServiceContext(); - serviceContext.setCompanyId(companyId); - serviceContext.setUserId(userId); + ReportResultDto dto = new ReportResultDto(reportTask.getReportTaskId(), null, + ReportResult.SUCCESSFUL.toString(), null); - ReportTask reportTask = ReportTaskLocalServiceUtil.addReportTask(taskContextMap, serviceContext); + Message responseMessage = MessageBusUtil.createResponseMessage(message); + responseMessage.setPayload(JSONFactoryUtil.looseSerializeDeep(dto)); - ReportResultDto dto = - new ReportResultDto(reportTask.getReportTaskId(), null, ReportResult.SUCCESSFUL.toString(), null); + MessageBusUtil.sendMessage(responseMessage.getDestinationName(), responseMessage); + } else { - Message responseMessage = MessageBusUtil.createResponseMessage(message); - responseMessage.setPayload(JSONFactoryUtil.looseSerializeDeep(dto)); + long[] fileEntryIds = ReportTaskManagerServiceUtil.doReport(companyId, userId, + taskContextMap, dataSouce); - MessageBusUtil.sendMessage(responseMessage.getDestinationName(), responseMessage); - } else { + ReportResultDto dto = new ReportResultDto(0L, fileEntryIds, + ReportResult.SUCCESSFUL.toString(), null); - long[] fileEntryIds = ReportTaskManagerServiceUtil.doReport(companyId, userId, taskContextMap, dataSouce); + Message responseMessage = MessageBusUtil.createResponseMessage(message); + responseMessage.setPayload(JSONFactoryUtil.looseSerializeDeep(dto)); - ReportResultDto dto = new ReportResultDto(0L, fileEntryIds, ReportResult.SUCCESSFUL.toString(), null); + MessageBusUtil.sendMessage(responseMessage.getDestinationName(), responseMessage); + } + } catch (Exception e) { + _log.error(e, e); + ReportResultDto dto = new ReportResultDto(0L, null, ReportResult.FAILED.toString(), + e.getMessage()); - Message responseMessage = MessageBusUtil.createResponseMessage(message); - responseMessage.setPayload(JSONFactoryUtil.looseSerializeDeep(dto)); + Message responseMessage = MessageBusUtil.createResponseMessage(message); + responseMessage.setPayload(JSONFactoryUtil.looseSerializeDeep(dto)); - MessageBusUtil.sendMessage(responseMessage.getDestinationName(), responseMessage); - } - } catch (Exception e) { - _log.error(e, e); - ReportResultDto dto = new ReportResultDto(0L, null, ReportResult.FAILED.toString(), e.getMessage()); + MessageBusUtil.sendMessage(responseMessage.getDestinationName(), responseMessage); + } + } - Message responseMessage = MessageBusUtil.createResponseMessage(message); - responseMessage.setPayload(JSONFactoryUtil.looseSerializeDeep(dto)); + private void validate(long companyId, long userId, Map taskContextMap) + throws PortalException { - MessageBusUtil.sendMessage(responseMessage.getDestinationName(), responseMessage); - } - } + if (Validator.isNull(companyId)) { + throw new PortalException("company id is required"); + } - private void validate(long companyId, long userId, Map taskContextMap) throws PortalException { + if (Validator.isNull(userId)) { + throw new PortalException("user id is required"); + } - if (Validator.isNull(companyId)) { - throw new PortalException("company id is required"); - } + String processMode = MapUtil.getString(taskContextMap, ReportConstants.PARAM_PROCESS_MODE); - if (Validator.isNull(userId)) { - throw new PortalException("user id is required"); - } + if (Validator.isNull(processMode)) { + throw new PortalException("process mode is required"); + } else { + try { - String processMode = MapUtil.getString(taskContextMap, ReportConstants.PARAM_PROCESS_MODE); + ReportProcessMode reportProcessMode = ReportProcessMode.valueOf(processMode); - if (Validator.isNull(processMode)) { - throw new PortalException("process mode is required"); - } else { - try { + if (reportProcessMode.equals(ReportProcessMode.ASYNC)) { - ReportProcessMode reportProcessMode = ReportProcessMode.valueOf(processMode); + String destinationName = MapUtil.getString(taskContextMap, + ReportConstants.PARAM_RESPONSE_DESTINATION_NAME); - if (reportProcessMode.equals(ReportProcessMode.ASYNC)) { + if (Validator.isNull(destinationName)) { + throw new PortalException("destination name is required"); + } + } + } catch (IllegalArgumentException e) { + throw new PortalException("report process is not valid"); + } + } - String destinationName = MapUtil.getString(taskContextMap, ReportConstants.PARAM_RESPONSE_DESTINATION_NAME); + JSONArray jsonArray = JSONFactoryUtil.createJSONArray(MapUtil.getString(taskContextMap, + ReportConstants.PARAM_REPORTS)); - if (Validator.isNull(destinationName)) { - throw new PortalException("destination name is required"); - } - } - } catch (IllegalArgumentException e) { - throw new PortalException("report process is not valid"); - } - } + for (int i = 0; i < jsonArray.length(); i++) { - JSONArray jsonArray = - JSONFactoryUtil.createJSONArray(MapUtil.getString(taskContextMap, ReportConstants.PARAM_REPORTS)); + JSONObject jsonObject = jsonArray.getJSONObject(i); - for (int i = 0; i < jsonArray.length(); i++) { + ReportDto reportDto = JSONFactoryUtil.looseDeserialize(jsonObject.toString(), ReportDto.class); - JSONObject jsonObject = jsonArray.getJSONObject(i); + long[] fileEntryTemplateIds = reportDto.getFileEntryIds(); - ReportDto reportDto = JSONFactoryUtil.looseDeserialize(jsonObject.toString(), ReportDto.class); + if (ArrayUtil.isEmpty(fileEntryTemplateIds)) { + throw new PortalException("file entry template ids are required"); + } - long[] fileEntryTemplateIds = reportDto.getFileEntryIds(); + long folderId = reportDto.getFolderId(); - if (ArrayUtil.isEmpty(fileEntryTemplateIds)) { - throw new PortalException("file entry template ids are required"); - } + if (Validator.isNull(folderId)) { + throw new PortalException("folder id is required"); + } - long folderId = reportDto.getFolderId(); + String reportName = reportDto.getFileName(); - if (Validator.isNull(folderId)) { - throw new PortalException("folder id is required"); - } + if (Validator.isNull(reportName)) { + throw new PortalException("report name is required"); + } - String reportName = reportDto.getFileName(); + ReportType reportType = reportDto.getReportType(); - if (Validator.isNull(reportName)) { - throw new PortalException("report name is required"); - } - - ReportType reportType = reportDto.getReportType(); - - if (Validator.isNull(reportType)) { - throw new PortalException("report type is required"); - } - } - } + if (Validator.isNull(reportType)) { + throw new PortalException("report type is required"); + } + } + } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportTaskMessageListener.java b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportTaskMessageListener.java index 1b8d175c..c990f92b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportTaskMessageListener.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/report/messaging/ReportTaskMessageListener.java @@ -7,6 +7,8 @@ import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.json.JSONFactoryUtil; +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.messaging.BaseMessageListener; import com.liferay.portal.kernel.messaging.Message; import com.liferay.portal.kernel.messaging.MessageBusUtil; @@ -30,110 +32,110 @@ import java.util.Map; public class ReportTaskMessageListener extends BaseMessageListener { - private static final String _LOCK_CLASS_NAME = ReportTaskMessageListener.class.getName(); + private static final String _LOCK_CLASS_NAME = ReportTaskMessageListener.class.getName(); - @Override - protected void doReceive(Message message) throws Exception { + @Override + protected void doReceive(Message message) throws Exception { - ActionableDynamicQuery actionableDynamicQuery = new ReportTaskActionableDynamicQuery() { + ActionableDynamicQuery actionableDynamicQuery = new ReportTaskActionableDynamicQuery() { - @Override - protected void addCriteria(DynamicQuery dynamicQuery) { + @Override + protected void addCriteria(DynamicQuery dynamicQuery) { - dynamicQuery.add(PropertyFactoryUtil.forName("completed").eq(false)); - } + dynamicQuery.add(PropertyFactoryUtil.forName("completed").eq(false)); + } - @Override - protected void performAction(Object obj) throws PortalException, SystemException { + @Override + protected void performAction(Object obj) throws PortalException, SystemException { - ReportTask reportTask = (ReportTask) obj; + ReportTask reportTask = (ReportTask) obj; - Map taskContextMap = reportTask.getTaskContextMap(); + Map taskContextMap = reportTask.getTaskContextMap(); - String responseDestinationName = - MapUtil.getString(taskContextMap, ReportConstants.PARAM_RESPONSE_DESTINATION_NAME); + String responseDestinationName = MapUtil.getString(taskContextMap, + ReportConstants.PARAM_RESPONSE_DESTINATION_NAME); - try { + try { - long[] fileEntryIds = - ReportTaskManagerServiceUtil.doReport(reportTask.getCompanyId(), reportTask.getUserId(), taskContextMap, - null); + long[] fileEntryIds = ReportTaskManagerServiceUtil.doReport(reportTask.getCompanyId(), + reportTask.getUserId(), taskContextMap, null); - sendMessage(responseDestinationName, reportTask.getReportTaskId(), fileEntryIds, - ReportResult.SUCCESSFUL.toString(), null); - } catch (Exception e) { - sendMessage(responseDestinationName, reportTask.getReportTaskId(), null, ReportResult.FAILED.toString(), - e.getMessage()); + sendMessage(responseDestinationName, reportTask.getReportTaskId(), fileEntryIds, + ReportResult.SUCCESSFUL.toString(), null); + } catch (Exception e) { + sendMessage(responseDestinationName, reportTask.getReportTaskId(), null, + ReportResult.FAILED.toString(), e.getMessage()); - } finally { - ReportTaskLocalServiceUtil.markAsCompleted(reportTask.getReportTaskId(), new Date()); - } + } finally { + ReportTaskLocalServiceUtil.markAsCompleted(reportTask.getReportTaskId(), new Date()); + } - } - }; + } + }; - long count = actionableDynamicQuery.performCount(); + long count = actionableDynamicQuery.performCount(); - if (count > 0) { + if (count > 0) { - String owner = PortalUUIDUtil.generate(); + String owner = PortalUUIDUtil.generate(); - if (tryLock(owner)) { + if (tryLock(owner)) { - try { - actionableDynamicQuery.performActions(); - } finally { - unlock(owner); - } - } - } - } + try { + actionableDynamicQuery.performActions(); + } finally { + unlock(owner); + } + } + } + } - private boolean tryLock(String owner) { + private boolean tryLock(String owner) { - try { + try { - Lock lock = null; + Lock lock = null; - while (true) { - try { - lock = LockLocalServiceUtil.lock(_LOCK_CLASS_NAME, _LOCK_CLASS_NAME, owner); + while (true) { + try { + lock = LockLocalServiceUtil.lock(_LOCK_CLASS_NAME, _LOCK_CLASS_NAME, owner); - break; - } catch (SystemException se) { + break; + } catch (SystemException se) { - try { - Thread.sleep(50); - } catch (InterruptedException ie) { - } - } - } + try { + Thread.sleep(50); + } catch (InterruptedException ie) { + } + } + } - if (!lock.isNew()) { - throw new DuplicateLockException(lock); - } + if (!lock.isNew()) { + throw new DuplicateLockException(lock); + } - } catch (DuplicateLockException e) { - return false; - } + } catch (DuplicateLockException e) { + return false; + } - return true; - } + return true; + } - private void unlock(String owner) throws SystemException { + private void unlock(String owner) throws SystemException { - LockLocalServiceUtil.unlock(_LOCK_CLASS_NAME, _LOCK_CLASS_NAME, owner); - } + LockLocalServiceUtil.unlock(_LOCK_CLASS_NAME, _LOCK_CLASS_NAME, owner); + } - private void sendMessage(String responseDestinationName, long reportTaskId, long[] fileEntryIds, String result, - String resultMessage) { + private void sendMessage(String responseDestinationName, long reportTaskId, long[] fileEntryIds, + String result, String resultMessage) { - if (Validator.isNotNull(responseDestinationName) && MessageBusUtil.hasMessageListener(responseDestinationName)) { + if (Validator.isNotNull(responseDestinationName) + && MessageBusUtil.hasMessageListener(responseDestinationName)) { - ReportResultDto dto = new ReportResultDto(reportTaskId, fileEntryIds, result, resultMessage); + ReportResultDto dto = new ReportResultDto(reportTaskId, fileEntryIds, result, resultMessage); - MessageBusUtil.sendMessage(responseDestinationName, JSONFactoryUtil.looseSerializeDeep(dto)); - } - } + MessageBusUtil.sendMessage(responseDestinationName, JSONFactoryUtil.looseSerializeDeep(dto)); + } + } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties index 35195345..da06f8c1 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties +++ b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties @@ -13,8 +13,8 @@ ## build.namespace=portos_rep - build.number=18 - build.date=1577444175789 + build.number=19 + build.date=1599641167274 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/Constants.java b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/Constants.java index 12f8be8b..8e7fe62b 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/Constants.java +++ b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/Constants.java @@ -13,11 +13,6 @@ public class Constants implements com.liferay.portal.kernel.util.Constants { public static final String FASCIA_B = "B"; public static final String FASCIA_C = "C"; - public static final String PROCEDURA_A = "A"; - public static final String PROCEDURA_B = "B"; - public static final String PROCEDURA_B1 = "B1"; - public static final String PROCEDURA_C = "C"; - public static final String PROCEDURA_P0 = "P0"; public static final String PROCEDURA_P1 = "P1"; public static final String PROCEDURA_P2 = "P2"; @@ -39,10 +34,6 @@ public class Constants implements com.liferay.portal.kernel.util.Constants { public static final HashMap PRATICA_ZONE = new HashMap() { { - put(PROCEDURA_A, TIPO_PRATICA_AUTORIZZAZIONE); - put(PROCEDURA_B, TIPO_PRATICA_DEPOSITO); - put(PROCEDURA_B1, TIPO_PRATICA_DEPOSITO); - put(PROCEDURA_C, TIPO_PRATICA_DEPOSITO); put(ZONA_3, TIPO_PRATICA_DEPOSITO); put(ZONA_4, TIPO_PRATICA_DEPOSITO); put(ZONA_2, TIPO_PRATICA_AUTORIZZAZIONE); diff --git a/liferay-plugins-sdk-6.2/shared/portos-report-shared/src/it/tref/liferay/portos/report/shared/util/ReportUtil.java b/liferay-plugins-sdk-6.2/shared/portos-report-shared/src/it/tref/liferay/portos/report/shared/util/ReportUtil.java index c0b4ad32..a477c781 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-report-shared/src/it/tref/liferay/portos/report/shared/util/ReportUtil.java +++ b/liferay-plugins-sdk-6.2/shared/portos-report-shared/src/it/tref/liferay/portos/report/shared/util/ReportUtil.java @@ -52,7 +52,6 @@ public class ReportUtil { String json = (String) MessageBusUtil.sendSynchronousMessage(ReportDestinationNames.SYNC, message, 1); - return JSONFactoryUtil.looseDeserialize(json, ReportResultDto.class); } catch (Exception e) { _log.error(e); @@ -150,7 +149,7 @@ public class ReportUtil { String json = JSONFactoryUtil.looseSerializeDeep(reportDto); JSONObject jsonObject = JSONFactoryUtil.createJSONObject(json); - + reportJsonArray.put(jsonObject); }