From 9322322760cb6b663e70e5a9f8aa0b8a4c7453b5 Mon Sep 17 00:00:00 2001 From: Salvatore La Manna Date: Thu, 3 Sep 2020 18:40:00 +0200 Subject: [PATCH] Nuova gestione documenti e firme obbligatori --- .../docroot/WEB-INF/lib/util-java.jar | Bin 213058 -> 0 bytes .../bo/service/IntPraticaLocalService.java | 3 + .../bo/service/IntPraticaLocalServiceClp.java | 519 +++---- .../service/IntPraticaLocalServiceUtil.java | 5 + .../IntPraticaLocalServiceWrapper.java | 6 + .../portos/bo/util/AsseverazioniUtil.java | 67 +- .../liferay/portos/bo/util/DelegheUtil.java | 1 - .../portos/bo}/util/DocumentiPraticaUtil.java | 54 +- .../bo/util/ValidazionePraticaUtil.java | 1219 +++-------------- .../WEB-INF/src/content/Portal.properties | 4 + .../portos/bo/portlet/FascicoloPortlet.java | 2 +- .../ReportAvvisoAllegatoBeanBuilder.java | 2 +- .../builder/ReportAvvisoBeanBuilder.java | 3 +- .../IntPraticaLocalServiceClpInvoker.java | 551 ++++---- .../impl/AsseverazioneLocalServiceImpl.java | 16 +- .../impl/IntPraticaLocalServiceImpl.java | 128 +- .../impl/SoggettoLocalServiceImpl.java | 2 +- .../AllegatoManualePersistenceImpl.java | 1 + .../AsseverazionePersistenceImpl.java | 1 + .../persistence/AvvisoPersistenceImpl.java | 1 + .../persistence/CollaudoPersistenceImpl.java | 1 + .../persistence/ComunePersistenceImpl.java | 1 + .../ComunicazionePersistenceImpl.java | 1 + .../ConfigurazionePersistenceImpl.java | 1 + .../ControlloPraticaPersistenceImpl.java | 1 + .../persistence/DelegaPersistenceImpl.java | 1 + .../DettPraticaPersistenceImpl.java | 1 + .../DocAggiuntivaPersistenceImpl.java | 1 + .../DocPraticaPersistenceImpl.java | 1 + .../FineLavoriPersistenceImpl.java | 1 + .../HistoryWorkflowActionPersistenceImpl.java | 1 + .../persistence/IUVPersistenceImpl.java | 1 + .../InfoFascicoloPersistenceImpl.java | 1 + .../IntPraticaPersistenceImpl.java | 1 + .../persistence/PagamentoPersistenceImpl.java | 1 + .../ParereGeologoPersistenceImpl.java | 1 + .../persistence/ProvinciaPersistenceImpl.java | 1 + .../persistence/SoggettoPersistenceImpl.java | 1 + .../persistence/SorteggioPersistenceImpl.java | 1 + ...StoricoSoggettoPraticaPersistenceImpl.java | 1 + .../TempisticaPersistenceImpl.java | 1 + .../TerritorioPersistenceImpl.java | 1 + .../UtentePortosPersistenceImpl.java | 1 + .../docroot/WEB-INF/src/service.properties | 4 +- .../docroot/html/cronologia/view.jsp | 2 +- .../fascicolo/navigator/page_allegati.jsp | 2 +- .../navigator/page_allegati_annullamento.jsp | 2 +- .../fascicolo/navigator/page_co_allegati.jsp | 2 +- .../fascicolo/navigator/page_fl_allegati.jsp | 2 +- .../fascicolo/navigator/page_in_allegati.jsp | 2 +- .../fascicolo/navigator/page_va_allegati.jsp | 2 +- .../fe/portlet/AllegatiPraticaPortlet.java | 2 +- .../portos/fe/portlet/FascicoloFePortlet.java | 71 +- .../portos/fe/util/ReportFascicoloUtil.java | 2 +- .../html/allegatipratica/edit_allegato.jsp | 2 +- .../docroot/html/allegatipratica/view.jsp | 2 +- .../html/allegatipratica/view_accordion.jsp | 2 +- .../html/fascicolofe/abort_fascicolo.jsp | 2 +- .../fascicolofe/add_file_asseverazione.jsp | 2 +- .../html/fascicolofe/completed_fascicolo.jsp | 2 +- .../fascicolofe/verify_cambio_soggetti.jsp | 2 +- .../html/fascicolofe/verify_collaudo.jsp | 2 +- .../html/fascicolofe/verify_fascicolo.jsp | 80 +- .../html/fascicolofe/verify_fine-lavori.jsp | 2 +- .../bo/shared/util/TipoSoggettoUtil.java | 213 +-- 65 files changed, 1149 insertions(+), 1863 deletions(-) delete mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/util-java.jar rename liferay-plugins-sdk-6.2/{shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared => portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo}/util/DocumentiPraticaUtil.java (92%) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/util-java.jar b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/lib/util-java.jar deleted file mode 100644 index 6b5d95f809264fc39b70a46646976290b3a243f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213058 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

k8iVsVRER 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 Zd svuotaDatabase( com.liferay.portal.service.ServiceContext serviceContext); + public java.util.List svuotaDatabase2( + com.liferay.portal.service.ServiceContext serviceContext); + public void clearDb() throws java.lang.Exception; public it.tref.liferay.portos.bo.model.IntPratica deleteIntPratica( 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 b1a50f05..42c4fec8 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 @@ -161,309 +161,315 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { "com.liferay.portal.service.ServiceContext" }; - _methodName28 = "clearDb"; + _methodName28 = "svuotaDatabase2"; - _methodParameterTypes28 = new String[] { }; + _methodParameterTypes28 = new String[] { + "com.liferay.portal.service.ServiceContext" + }; + + _methodName29 = "clearDb"; - _methodName29 = "deleteIntPratica"; + _methodParameterTypes29 = new String[] { }; - _methodParameterTypes29 = new String[] { + _methodName30 = "deleteIntPratica"; + + _methodParameterTypes30 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "boolean" }; - _methodName30 = "cloneIntPratica"; + _methodName31 = "cloneIntPratica"; - _methodParameterTypes30 = new String[] { + _methodParameterTypes31 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName31 = "updateDelegati"; + _methodName32 = "updateDelegati"; - _methodParameterTypes31 = new String[] { + _methodParameterTypes32 = new String[] { "long", "java.lang.String", "java.lang.String", "boolean" }; - _methodName32 = "findFascicoliNotProgetto"; + _methodName33 = "findFascicoliNotProgetto"; - _methodParameterTypes32 = new String[] { "int", "int" }; + _methodParameterTypes33 = new String[] { "int", "int" }; - _methodName33 = "countFascicoliNotProgetto"; + _methodName34 = "countFascicoliNotProgetto"; - _methodParameterTypes33 = new String[] { }; + _methodParameterTypes34 = new String[] { }; - _methodName34 = "addNumeroProgetto"; + _methodName35 = "addNumeroProgetto"; - _methodParameterTypes34 = new String[] { "long" }; + _methodParameterTypes35 = new String[] { "long" }; - _methodName35 = "sospendiPratica"; + _methodName36 = "sospendiPratica"; - _methodParameterTypes35 = new String[] { "long", "boolean" }; + _methodParameterTypes36 = new String[] { "long", "boolean" }; - _methodName36 = "cambiaTitolare"; + _methodName37 = "cambiaTitolare"; - _methodParameterTypes36 = new String[] { + _methodParameterTypes37 = new String[] { "long", "long", "com.liferay.portal.service.ServiceContext" }; - _methodName37 = "updateStatoPratica"; + _methodName38 = "updateStatoPratica"; - _methodParameterTypes37 = new String[] { + _methodParameterTypes38 = new String[] { "long", "long", "java.lang.String" }; - _methodName38 = "updateIntPraticaSorteggio"; + _methodName39 = "updateIntPraticaSorteggio"; - _methodParameterTypes38 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes39 = new String[] { "long", "java.util.Date" }; - _methodName39 = "updateIntPraticaSorteggio"; + _methodName40 = "updateIntPraticaSorteggio"; - _methodParameterTypes39 = new String[] { + _methodParameterTypes40 = new String[] { "long", "java.util.Date", "java.lang.String" }; - _methodName40 = "findByC_UserId"; - - _methodParameterTypes40 = new String[] { "long", "long", "int", "int" }; + _methodName41 = "findByC_UserId"; - _methodName41 = "countByC_UserId"; + _methodParameterTypes41 = new String[] { "long", "long", "int", "int" }; - _methodParameterTypes41 = new String[] { "long", "long" }; + _methodName42 = "countByC_UserId"; - _methodName42 = "fetchByOldIntPraticaId"; + _methodParameterTypes42 = new String[] { "long", "long" }; - _methodParameterTypes42 = new String[] { "long" }; + _methodName43 = "fetchByOldIntPraticaId"; - _methodName43 = "updateStatus"; + _methodParameterTypes43 = new String[] { "long" }; - _methodParameterTypes43 = new String[] { "long", "int" }; + _methodName44 = "updateStatus"; - _methodName44 = "findByCompanyIdSoggettoProgetti"; + _methodParameterTypes44 = new String[] { "long", "int" }; - _methodParameterTypes44 = new String[] { "long", "long" }; - - _methodName45 = "countByCompanyIdSoggettoProgetti"; + _methodName45 = "findByCompanyIdSoggettoProgetti"; _methodParameterTypes45 = new String[] { "long", "long" }; - _methodName46 = "findByCompanyIdSoggettoArchivio"; + _methodName46 = "countByCompanyIdSoggettoProgetti"; _methodParameterTypes46 = new String[] { "long", "long" }; - _methodName47 = "countByCompanyIdSoggettoArchivio"; + _methodName47 = "findByCompanyIdSoggettoArchivio"; _methodParameterTypes47 = new String[] { "long", "long" }; - _methodName48 = "findByCompanyIdSoggettoAltriProgetti"; + _methodName48 = "countByCompanyIdSoggettoArchivio"; + + _methodParameterTypes48 = new String[] { "long", "long" }; - _methodParameterTypes48 = new String[] { "long", "long", "int", "int" }; + _methodName49 = "findByCompanyIdSoggettoAltriProgetti"; - _methodName49 = "countByCompanyIdSoggettoAltriProgetti"; + _methodParameterTypes49 = new String[] { "long", "long", "int", "int" }; - _methodParameterTypes49 = new String[] { "long", "long" }; + _methodName50 = "countByCompanyIdSoggettoAltriProgetti"; - _methodName50 = "findByCanAddFineLavori"; + _methodParameterTypes50 = new String[] { "long", "long" }; - _methodParameterTypes50 = new String[] { + _methodName51 = "findByCanAddFineLavori"; + + _methodParameterTypes51 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName51 = "countByCanAddFineLavori"; + _methodName52 = "countByCanAddFineLavori"; - _methodParameterTypes51 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes52 = new String[] { "long", "java.lang.String" }; - _methodName52 = "findByCanAddCollaudo"; + _methodName53 = "findByCanAddCollaudo"; - _methodParameterTypes52 = new String[] { + _methodParameterTypes53 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName53 = "countByCanAddCollaudo"; + _methodName54 = "countByCanAddCollaudo"; - _methodParameterTypes53 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes54 = new String[] { "long", "java.lang.String" }; - _methodName54 = "search"; + _methodName55 = "search"; - _methodParameterTypes54 = new String[] { "java.util.List", "int", "int" }; + _methodParameterTypes55 = new String[] { "java.util.List", "int", "int" }; - _methodName55 = "countSearch"; + _methodName56 = "countSearch"; - _methodParameterTypes55 = new String[] { "java.util.List" }; + _methodParameterTypes56 = new String[] { "java.util.List" }; - _methodName56 = "searchWithIntPraticaId"; + _methodName57 = "searchWithIntPraticaId"; - _methodParameterTypes56 = new String[] { + _methodParameterTypes57 = new String[] { "java.util.List", "long", "int", "int" }; - _methodName57 = "countSearchWithIntPraticaId"; + _methodName58 = "countSearchWithIntPraticaId"; - _methodParameterTypes57 = new String[] { "java.util.List", "long" }; + _methodParameterTypes58 = new String[] { "java.util.List", "long" }; - _methodName58 = "allegaFileAnnullamento"; + _methodName59 = "allegaFileAnnullamento"; - _methodParameterTypes58 = new String[] { + _methodParameterTypes59 = new String[] { "long", "byte[][]", "java.lang.String", "java.lang.String", "com.liferay.portal.service.ServiceContext" }; - _methodName59 = "generateFileAnnullamento"; + _methodName60 = "generateFileAnnullamento"; - _methodParameterTypes59 = new String[] { + _methodParameterTypes60 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName60 = "deleteFileAnnullamento"; + _methodName61 = "deleteFileAnnullamento"; - _methodParameterTypes60 = new String[] { "long" }; + _methodParameterTypes61 = new String[] { "long" }; - _methodName61 = "completeAnnullamento"; + _methodName62 = "completeAnnullamento"; - _methodParameterTypes61 = new String[] { "long" }; + _methodParameterTypes62 = new String[] { "long" }; - _methodName62 = "cambiaIstruttore"; + _methodName63 = "cambiaIstruttore"; - _methodParameterTypes62 = new String[] { "long", "long", "long" }; + _methodParameterTypes63 = new String[] { "long", "long", "long" }; - _methodName63 = "countCaricoLavoroCF"; + _methodName64 = "countCaricoLavoroCF"; - _methodParameterTypes63 = new String[] { + _methodParameterTypes64 = new String[] { "long", "java.lang.String", "java.lang.Boolean", "java.lang.Long[][]" }; - _methodName64 = "countCaricoLavoroIstruttore"; + _methodName65 = "countCaricoLavoroIstruttore"; - _methodParameterTypes64 = new String[] { + _methodParameterTypes65 = new String[] { "long", "java.lang.String", "java.lang.Boolean" }; - _methodName65 = "generateReportPratica"; + _methodName66 = "generateReportPratica"; - _methodParameterTypes65 = new String[] { + _methodParameterTypes66 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName66 = "updateModifiedDate"; + _methodName67 = "updateModifiedDate"; - _methodParameterTypes66 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes67 = new String[] { "long", "java.util.Date" }; - _methodName67 = "countAutorizzazione"; + _methodName68 = "countAutorizzazione"; - _methodParameterTypes67 = new String[] { + _methodParameterTypes68 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName68 = "countSanatorie"; + _methodName69 = "countSanatorie"; - _methodParameterTypes68 = new String[] { + _methodParameterTypes69 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName69 = "countOpereMinoreImportanza"; + _methodName70 = "countOpereMinoreImportanza"; - _methodParameterTypes69 = new String[] { + _methodParameterTypes70 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName70 = "countDeposito"; + _methodName71 = "countDeposito"; - _methodParameterTypes70 = new String[] { + _methodParameterTypes71 = new String[] { "java.util.Date", "java.util.Date", "long", "boolean" }; - _methodName71 = "countVidimate"; + _methodName72 = "countVidimate"; - _methodParameterTypes71 = new String[] { + _methodParameterTypes72 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName72 = "countControllo"; + _methodName73 = "countControllo"; - _methodParameterTypes72 = new String[] { + _methodParameterTypes73 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName73 = "importaVecchiFilesFascicolo"; + _methodName74 = "importaVecchiFilesFascicolo"; - _methodParameterTypes73 = new String[] { "long", "int", "int" }; + _methodParameterTypes74 = new String[] { "long", "int", "int" }; - _methodName74 = "findIntPraticaNotExist"; + _methodName75 = "findIntPraticaNotExist"; - _methodParameterTypes74 = new String[] { }; + _methodParameterTypes75 = new String[] { }; - _methodName75 = "riparaWorkflow"; + _methodName76 = "riparaWorkflow"; - _methodParameterTypes75 = new String[] { }; + _methodParameterTypes76 = new String[] { }; - _methodName76 = "reIndexFascicolo"; + _methodName77 = "reIndexFascicolo"; - _methodParameterTypes76 = new String[] { + _methodParameterTypes77 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName77 = "reIndexFasciolo"; - - _methodParameterTypes77 = new String[] { "java.lang.String", "long" }; - _methodName78 = "reIndexFasciolo"; - _methodParameterTypes78 = new String[] { "long", "long" }; + _methodParameterTypes78 = new String[] { "java.lang.String", "long" }; - _methodName79 = "trovaDoppioni"; + _methodName79 = "reIndexFasciolo"; - _methodParameterTypes79 = new String[] { }; + _methodParameterTypes79 = new String[] { "long", "long" }; - _methodName80 = "findByNumeroProgetto"; + _methodName80 = "trovaDoppioni"; - _methodParameterTypes80 = new String[] { "java.lang.String" }; + _methodParameterTypes80 = new String[] { }; - _methodName81 = "findByTerritorioId"; + _methodName81 = "findByNumeroProgetto"; - _methodParameterTypes81 = new String[] { "long" }; + _methodParameterTypes81 = new String[] { "java.lang.String" }; - _methodName82 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; + _methodName82 = "findByTerritorioId"; - _methodParameterTypes82 = new String[] { - "java.util.Date", "java.util.Date", "long", "java.lang.String" - }; + _methodParameterTypes82 = new String[] { "long" }; - _methodName83 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; + _methodName83 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; _methodParameterTypes83 = new String[] { - "java.util.Date", "java.util.Date", "long" + "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName84 = "reportPraticheVidimate"; + _methodName84 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; _methodParameterTypes84 = new String[] { - "java.util.Date", "java.util.Date", "long", "java.lang.String" + "java.util.Date", "java.util.Date", "long" }; - _methodName85 = "reportPraticheVidimateCalcolaDataSorteggio"; + _methodName85 = "reportPraticheVidimate"; _methodParameterTypes85 = new String[] { - "java.util.Date", "java.util.Date", "long" + "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName86 = "countIngressiAutorizzazioni"; + _methodName86 = "reportPraticheVidimateCalcolaDataSorteggio"; _methodParameterTypes86 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName87 = "countIngressiDepositi"; + _methodName87 = "countIngressiAutorizzazioni"; _methodParameterTypes87 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName88 = "countIngressiCO"; + _methodName88 = "countIngressiDepositi"; _methodParameterTypes88 = new String[] { "java.util.Date", "java.util.Date", "long" }; + + _methodName89 = "countIngressiCO"; + + _methodParameterTypes89 = new String[] { + "java.util.Date", "java.util.Date", "long" + }; } @Override @@ -1377,11 +1383,36 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { return (java.util.List)ClpSerializer.translateOutput(returnObj); } + @Override + public java.util.List svuotaDatabase2( + com.liferay.portal.service.ServiceContext serviceContext) { + Object returnObj = null; + + try { + returnObj = _invokableLocalService.invokeMethod(_methodName28, + _methodParameterTypes28, + new Object[] { ClpSerializer.translateInput(serviceContext) }); + } + catch (Throwable t) { + t = ClpSerializer.translateThrowable(t); + + if (t instanceof RuntimeException) { + throw (RuntimeException)t; + } + else { + throw new RuntimeException(t.getClass().getName() + + " is not a valid exception"); + } + } + + return (java.util.List)ClpSerializer.translateOutput(returnObj); + } + @Override public void clearDb() throws java.lang.Exception { try { - _invokableLocalService.invokeMethod(_methodName28, - _methodParameterTypes28, new Object[] { }); + _invokableLocalService.invokeMethod(_methodName29, + _methodParameterTypes29, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1408,8 +1439,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName29, - _methodParameterTypes29, + returnObj = _invokableLocalService.invokeMethod(_methodName30, + _methodParameterTypes30, new Object[] { ClpSerializer.translateInput(intPratica), @@ -1448,8 +1479,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName30, - _methodParameterTypes30, + returnObj = _invokableLocalService.invokeMethod(_methodName31, + _methodParameterTypes31, new Object[] { intPraticaId, @@ -1489,8 +1520,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName31, - _methodParameterTypes31, + returnObj = _invokableLocalService.invokeMethod(_methodName32, + _methodParameterTypes32, new Object[] { intPraticaId, @@ -1532,8 +1563,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName32, - _methodParameterTypes32, new Object[] { start, end }); + returnObj = _invokableLocalService.invokeMethod(_methodName33, + _methodParameterTypes33, new Object[] { start, end }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1560,8 +1591,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName33, - _methodParameterTypes33, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName34, + _methodParameterTypes34, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1590,8 +1621,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName34, - _methodParameterTypes34, new Object[] { intPraticaId }); + returnObj = _invokableLocalService.invokeMethod(_methodName35, + _methodParameterTypes35, new Object[] { intPraticaId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1624,8 +1655,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName35, - _methodParameterTypes35, + returnObj = _invokableLocalService.invokeMethod(_methodName36, + _methodParameterTypes36, new Object[] { intPraticaId, sospesa }); } catch (Throwable t) { @@ -1660,8 +1691,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName36, - _methodParameterTypes36, + returnObj = _invokableLocalService.invokeMethod(_methodName37, + _methodParameterTypes37, new Object[] { intPraticaId, @@ -1701,8 +1732,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName37, - _methodParameterTypes37, + returnObj = _invokableLocalService.invokeMethod(_methodName38, + _methodParameterTypes38, new Object[] { intPraticaId, @@ -1741,8 +1772,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName38, - _methodParameterTypes38, + returnObj = _invokableLocalService.invokeMethod(_methodName39, + _methodParameterTypes39, new Object[] { intPraticaId, @@ -1776,8 +1807,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName39, - _methodParameterTypes39, + returnObj = _invokableLocalService.invokeMethod(_methodName40, + _methodParameterTypes40, new Object[] { intPraticaId, @@ -1812,8 +1843,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName40, - _methodParameterTypes40, + returnObj = _invokableLocalService.invokeMethod(_methodName41, + _methodParameterTypes41, new Object[] { companyId, userId, start, end }); } catch (Throwable t) { @@ -1841,8 +1872,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName41, - _methodParameterTypes41, new Object[] { companyId, userId }); + returnObj = _invokableLocalService.invokeMethod(_methodName42, + _methodParameterTypes42, new Object[] { companyId, userId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1870,8 +1901,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName42, - _methodParameterTypes42, new Object[] { oldIntPraticaId }); + returnObj = _invokableLocalService.invokeMethod(_methodName43, + _methodParameterTypes43, new Object[] { oldIntPraticaId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1897,8 +1928,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(_methodName44, + _methodParameterTypes44, new Object[] { intPraticaId, status }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -1929,8 +1960,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName44, - _methodParameterTypes44, + returnObj = _invokableLocalService.invokeMethod(_methodName45, + _methodParameterTypes45, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -1963,8 +1994,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName45, - _methodParameterTypes45, + returnObj = _invokableLocalService.invokeMethod(_methodName46, + _methodParameterTypes46, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -1998,8 +2029,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName46, - _methodParameterTypes46, + returnObj = _invokableLocalService.invokeMethod(_methodName47, + _methodParameterTypes47, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -2032,8 +2063,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName47, - _methodParameterTypes47, + returnObj = _invokableLocalService.invokeMethod(_methodName48, + _methodParameterTypes48, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -2067,8 +2098,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName48, - _methodParameterTypes48, + returnObj = _invokableLocalService.invokeMethod(_methodName49, + _methodParameterTypes49, new Object[] { companyId, soggettoId, start, end }); } catch (Throwable t) { @@ -2102,8 +2133,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName49, - _methodParameterTypes49, + returnObj = _invokableLocalService.invokeMethod(_methodName50, + _methodParameterTypes50, new Object[] { companyId, soggettoId }); } catch (Throwable t) { @@ -2137,8 +2168,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName50, - _methodParameterTypes50, + returnObj = _invokableLocalService.invokeMethod(_methodName51, + _methodParameterTypes51, new Object[] { companyId, @@ -2180,8 +2211,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName51, - _methodParameterTypes51, + returnObj = _invokableLocalService.invokeMethod(_methodName52, + _methodParameterTypes52, new Object[] { companyId, @@ -2219,8 +2250,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName52, - _methodParameterTypes52, + returnObj = _invokableLocalService.invokeMethod(_methodName53, + _methodParameterTypes53, new Object[] { companyId, @@ -2262,8 +2293,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName53, - _methodParameterTypes53, + returnObj = _invokableLocalService.invokeMethod(_methodName54, + _methodParameterTypes54, new Object[] { companyId, @@ -2300,8 +2331,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName54, - _methodParameterTypes54, + returnObj = _invokableLocalService.invokeMethod(_methodName55, + _methodParameterTypes55, new Object[] { ClpSerializer.translateInput(groupIds), @@ -2335,8 +2366,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName55, - _methodParameterTypes55, + returnObj = _invokableLocalService.invokeMethod(_methodName56, + _methodParameterTypes56, new Object[] { ClpSerializer.translateInput(groupIds) }); } catch (Throwable t) { @@ -2365,8 +2396,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName56, - _methodParameterTypes56, + returnObj = _invokableLocalService.invokeMethod(_methodName57, + _methodParameterTypes57, new Object[] { ClpSerializer.translateInput(groupIds), @@ -2403,8 +2434,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName57, - _methodParameterTypes57, + returnObj = _invokableLocalService.invokeMethod(_methodName58, + _methodParameterTypes58, new Object[] { ClpSerializer.translateInput(groupIds), @@ -2441,8 +2472,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName58, - _methodParameterTypes58, + returnObj = _invokableLocalService.invokeMethod(_methodName59, + _methodParameterTypes59, new Object[] { intPraticaId, @@ -2492,8 +2523,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName59, - _methodParameterTypes59, + returnObj = _invokableLocalService.invokeMethod(_methodName60, + _methodParameterTypes60, new Object[] { intPraticaId, @@ -2532,8 +2563,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(_methodName61, + _methodParameterTypes61, new Object[] { docPraticaAnnullamentoId }); } catch (Throwable t) { @@ -2562,8 +2593,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(_methodName62, + _methodParameterTypes62, new Object[] { intPraticaId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -2592,8 +2623,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(_methodName63, + _methodParameterTypes63, new Object[] { intPraticaId, controlloPraticaId, istruttoreId }); } catch (Throwable t) { @@ -2626,8 +2657,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName63, - _methodParameterTypes63, + returnObj = _invokableLocalService.invokeMethod(_methodName64, + _methodParameterTypes64, new Object[] { ispettoreId, @@ -2668,8 +2699,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName64, - _methodParameterTypes64, + returnObj = _invokableLocalService.invokeMethod(_methodName65, + _methodParameterTypes65, new Object[] { ispettoreId, @@ -2705,8 +2736,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName65, - _methodParameterTypes65, + returnObj = _invokableLocalService.invokeMethod(_methodName66, + _methodParameterTypes66, new Object[] { ClpSerializer.translateInput(intPratica), @@ -2744,8 +2775,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName66, - _methodParameterTypes66, + returnObj = _invokableLocalService.invokeMethod(_methodName67, + _methodParameterTypes67, new Object[] { intPraticaId, @@ -2782,8 +2813,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName67, - _methodParameterTypes67, + returnObj = _invokableLocalService.invokeMethod(_methodName68, + _methodParameterTypes68, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2818,8 +2849,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName68, - _methodParameterTypes68, + returnObj = _invokableLocalService.invokeMethod(_methodName69, + _methodParameterTypes69, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2854,8 +2885,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName69, - _methodParameterTypes69, + returnObj = _invokableLocalService.invokeMethod(_methodName70, + _methodParameterTypes70, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2890,8 +2921,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName70, - _methodParameterTypes70, + returnObj = _invokableLocalService.invokeMethod(_methodName71, + _methodParameterTypes71, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2928,8 +2959,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName71, - _methodParameterTypes71, + returnObj = _invokableLocalService.invokeMethod(_methodName72, + _methodParameterTypes72, new Object[] { ClpSerializer.translateInput(dtMin), @@ -2969,8 +3000,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName72, - _methodParameterTypes72, + returnObj = _invokableLocalService.invokeMethod(_methodName73, + _methodParameterTypes73, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3009,8 +3040,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName73, - _methodParameterTypes73, + returnObj = _invokableLocalService.invokeMethod(_methodName74, + _methodParameterTypes74, new Object[] { companyId, start, end }); } catch (Throwable t) { @@ -3038,8 +3069,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName74, - _methodParameterTypes74, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName75, + _methodParameterTypes75, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3066,8 +3097,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName75, - _methodParameterTypes75, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName76, + _methodParameterTypes76, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3092,8 +3123,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(_methodName77, + _methodParameterTypes77, new Object[] { ClpSerializer.translateInput(intPratica), companyId }); } catch (Throwable t) { @@ -3113,8 +3144,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(_methodName78, + _methodParameterTypes78, new Object[] { ClpSerializer.translateInput(numeroProgetto), @@ -3143,8 +3174,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(_methodName79, + _methodParameterTypes79, new Object[] { intPraticaId, companyId }); } catch (Throwable t) { @@ -3174,8 +3205,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName79, - _methodParameterTypes79, new Object[] { }); + returnObj = _invokableLocalService.invokeMethod(_methodName80, + _methodParameterTypes80, new Object[] { }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3203,8 +3234,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName80, - _methodParameterTypes80, + returnObj = _invokableLocalService.invokeMethod(_methodName81, + _methodParameterTypes81, new Object[] { ClpSerializer.translateInput(numeroProgetto) }); } catch (Throwable t) { @@ -3233,8 +3264,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName81, - _methodParameterTypes81, new Object[] { territorioId }); + returnObj = _invokableLocalService.invokeMethod(_methodName82, + _methodParameterTypes82, new Object[] { territorioId }); } catch (Throwable t) { t = ClpSerializer.translateThrowable(t); @@ -3263,8 +3294,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName82, - _methodParameterTypes82, + returnObj = _invokableLocalService.invokeMethod(_methodName83, + _methodParameterTypes83, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3301,8 +3332,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName83, - _methodParameterTypes83, + returnObj = _invokableLocalService.invokeMethod(_methodName84, + _methodParameterTypes84, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3338,8 +3369,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName84, - _methodParameterTypes84, + returnObj = _invokableLocalService.invokeMethod(_methodName85, + _methodParameterTypes85, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3376,8 +3407,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName85, - _methodParameterTypes85, + returnObj = _invokableLocalService.invokeMethod(_methodName86, + _methodParameterTypes86, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3412,8 +3443,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName86, - _methodParameterTypes86, + returnObj = _invokableLocalService.invokeMethod(_methodName87, + _methodParameterTypes87, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3448,8 +3479,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName87, - _methodParameterTypes87, + returnObj = _invokableLocalService.invokeMethod(_methodName88, + _methodParameterTypes88, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3484,8 +3515,8 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { Object returnObj = null; try { - returnObj = _invokableLocalService.invokeMethod(_methodName88, - _methodParameterTypes88, + returnObj = _invokableLocalService.invokeMethod(_methodName89, + _methodParameterTypes89, new Object[] { ClpSerializer.translateInput(dtMin), @@ -3690,4 +3721,6 @@ public class IntPraticaLocalServiceClp implements IntPraticaLocalService { private String[] _methodParameterTypes87; private String _methodName88; private String[] _methodParameterTypes88; + private String _methodName89; + private String[] _methodParameterTypes89; } \ 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 3174e6f6..88fc18b8 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 @@ -397,6 +397,11 @@ public class IntPraticaLocalServiceUtil { return getService().svuotaDatabase(serviceContext); } + public static java.util.List svuotaDatabase2( + com.liferay.portal.service.ServiceContext serviceContext) { + return getService().svuotaDatabase2(serviceContext); + } + public static void clearDb() throws java.lang.Exception { getService().clearDb(); } 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 ee1f148d..106f2d1c 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 @@ -423,6 +423,12 @@ public class IntPraticaLocalServiceWrapper implements IntPraticaLocalService, return _intPraticaLocalService.svuotaDatabase(serviceContext); } + @Override + public java.util.List svuotaDatabase2( + com.liferay.portal.service.ServiceContext serviceContext) { + return _intPraticaLocalService.svuotaDatabase2(serviceContext); + } + @Override public void clearDb() throws java.lang.Exception { _intPraticaLocalService.clearDb(); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AsseverazioniUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AsseverazioniUtil.java index b5fb9016..fb4185ca 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AsseverazioniUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/AsseverazioniUtil.java @@ -12,7 +12,6 @@ import it.tref.liferay.portos.bo.service.DettPraticaServiceUtil; import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.GenericUtils; import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; @@ -25,8 +24,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import org.apache.commons.lang.ArrayUtils; - import com.liferay.portal.kernel.dao.orm.QueryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; @@ -114,23 +111,12 @@ public class AsseverazioniUtil { Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A04, Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); - // aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06, - // Arrays.asList(TipoSoggettoUtil.PROGETTISTA, - // TipoSoggettoUtil.DIRETTORE_LAVORI)); - aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A07, - Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A08, Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); - // aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A09, - // Arrays.asList(TipoSoggettoUtil.PROGETTISTA, - // TipoSoggettoUtil.DIRETTORE_LAVORI)); aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A10, Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A13, Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); - //aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A05, - // Arrays.asList(TipoSoggettoUtil.GEOLOGO, TipoSoggettoUtil.DIRETTORE_LAVORI)); - aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A14, Arrays.asList(TipoSoggettoUtil.GEOLOGO)); aMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15, Arrays.asList(TipoSoggettoUtil.GEOLOGO, TipoSoggettoUtil.DIRETTORE_LAVORI)); @@ -158,7 +144,8 @@ public class AsseverazioniUtil { Map> bMap = new HashMap>(); bMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A04, Arrays.asList(TipoSoggettoUtil.DITTA)); bMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A10, Arrays.asList(TipoSoggettoUtil.DITTA)); - //bMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A05, Arrays.asList(TipoSoggettoUtil.PROGETTISTA)); + // bMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A05, + // Arrays.asList(TipoSoggettoUtil.PROGETTISTA)); // bMap.put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A14, // Arrays.asList(TipoSoggettoUtil.PROGETTISTA)); recommended = Collections.unmodifiableMap(bMap); @@ -201,7 +188,7 @@ public class AsseverazioniUtil { if (TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE.equalsIgnoreCase(dettPratica .getTipoIntegrazione())) { if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto)) { - return !ValidazionePraticaUtil.isA98Required(dettPratica); + return true; } User titolaredigitaleUser = UserLocalServiceUtil.getUser(intPratica.getUserId()); Soggetto titolareDigitale = SoggettoLocalServiceUtil @@ -215,7 +202,7 @@ public class AsseverazioniUtil { } else if (TipoIntegrazioneUtil.VARIANTE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto)) { - return !ValidazionePraticaUtil.isA98Required(dettPratica); + return true; } else if (!TipoSoggettoUtil.GEOLOGO.equalsIgnoreCase(tipoSoggetto) && !TipoSoggettoUtil.COLLAUDATORE.equalsIgnoreCase(tipoSoggetto)) { List soggettiPrincipali = SoggettoLocalServiceUtil @@ -256,16 +243,7 @@ public class AsseverazioniUtil { return checkAsseverazioniRichiestaOriginaria(tipoSoggetto, dettPraticaId); return false; } else if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto)) { - return !ValidazionePraticaUtil.isA98Required(dettPratica); - // ADT: RIMOZIONE IF NON NECESSARI - /* - * } else if - * (TipoSoggettoUtil.COLLAUDATORE.equalsIgnoreCase(tipoSoggetto) - * && dettPratica.getCollaudoStatico()) { return false; } else - * if (TipoSoggettoUtil.DITTA.equalsIgnoreCase(tipoSoggetto) && - * (dettPratica.getNormLavoriInProprio() || - * dettPratica.getLavoriPubblici())) { return false; - */ + return true; } else if (required.containsKey(ASSEVERAZIONI_DOMANDA)) { return required.get(ASSEVERAZIONI_DOMANDA).contains(tipoSoggetto); } @@ -380,18 +358,6 @@ public class AsseverazioniUtil { } if (cfAsseverazioni.containsAll(nuoviSoggetti)) { soggetti = true; - } else { - if (ValidazionePraticaUtil.isA98Required(dettPratica)) { - List committentiToRemove = SoggettoLocalServiceUtil - .getCfValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, - TipoSoggettoUtil.COMMITTENTE); - - nuoviSoggetti.removeAll(committentiToRemove); - if (cfAsseverazioni.containsAll(nuoviSoggetti)) { - soggetti = true; - } - - } } nuoviDelegati.removeAll(nuoviSoggetti); @@ -414,14 +380,6 @@ public class AsseverazioniUtil { TipoSoggettoUtil.DIRETTORE_LAVORI, TipoSoggettoUtil.DITTA, TipoSoggettoUtil.PROGETTISTA }; - // if - // (SoggettiUtil.isTitolareInCommittenti(intPratica.getIntPraticaId())) - // { - if (ValidazionePraticaUtil.isA98Required(dettPratica)) { - tipoSoggetti = (String[]) ArrayUtils.removeElement(tipoSoggetti, - TipoSoggettoUtil.COMMITTENTE); - } - List cfSoggettiPrincipali = SoggettoLocalServiceUtil .getCfSoggettiPrincipaliValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, tipoSoggetti); @@ -433,18 +391,6 @@ public class AsseverazioniUtil { nuoviSoggetti.removeAll(cfSoggettiPrincipali); if (cfAsseverazioni.containsAll(nuoviSoggetti)) { soggetti = true; - } else { - if (ValidazionePraticaUtil.isA98Required(dettPratica)) { - List committentiToRemove = SoggettoLocalServiceUtil - .getCfValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, - TipoSoggettoUtil.COMMITTENTE); - - nuoviSoggetti.removeAll(committentiToRemove); - if (cfAsseverazioni.containsAll(nuoviSoggetti)) { - soggetti = true; - } - - } } nuoviDelegati.removeAll(cfSoggettiPrincipali); @@ -460,8 +406,7 @@ public class AsseverazioniUtil { for (String tipoSoggetto : required.get(ASSEVERAZIONI_DOMANDA)) { // Se committente e c'è delega => true - if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto) - && ValidazionePraticaUtil.isA98Required(dettPratica)) { + if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto)) { continue; } if (isAsseverazioneDomandaRequiredByTipoSoggetto(dettPraticaId, tipoSoggetto)) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DelegheUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DelegheUtil.java index 3b7c9d5f..d44b35b9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DelegheUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DelegheUtil.java @@ -15,7 +15,6 @@ import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.FineLavoriServiceUtil; import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; -import it.tref.liferay.portos.bo.service.persistence.SoggettoUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; import java.util.ArrayList; diff --git a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/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 similarity index 92% rename from liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/DocumentiPraticaUtil.java rename to liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/util/DocumentiPraticaUtil.java index 26a7dcbd..b4037ce3 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/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 @@ -1,4 +1,8 @@ -package it.tref.liferay.portos.bo.shared.util; +package it.tref.liferay.portos.bo.util; + +import it.tref.liferay.portos.bo.model.DettPratica; +import it.tref.liferay.portos.bo.model.IntPratica; +import it.tref.liferay.portos.bo.shared.util.Constants; import java.util.ArrayList; import java.util.List; @@ -82,7 +86,7 @@ public class DocumentiPraticaUtil { public static List getDocObbligatoriCheck() { List docObbligatoriCheck = new ArrayList(); - //docObbligatoriCheck.add(TIPOLOGIA_ALLEGATO_A05); + // docObbligatoriCheck.add(TIPOLOGIA_ALLEGATO_A05); docObbligatoriCheck.add(TIPOLOGIA_ALLEGATO_A09); return docObbligatoriCheck; @@ -122,29 +126,27 @@ public class DocumentiPraticaUtil { return doc; } - public static List getDocObbligatoriDomanda(String tipoProcedura) { + public static List getDocObbligatoriDomanda(IntPratica intPratica, DettPratica dettPratica) { List docObbligatori = new ArrayList(); - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P1)) { + switch (intPratica.getTipoProcedura()) { + case Constants.PROCEDURA_P1: docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - } - - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P2)) { + break; + case Constants.PROCEDURA_P2: docObbligatori.add(TIPOLOGIA_ALLEGATO_A01); docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); docObbligatori.add(TIPOLOGIA_ALLEGATO_A09); - } - - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P3)) { - } - - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P4) || - tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P5) || - tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P6) || - tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P7)) { + break; + case Constants.PROCEDURA_P3: + break; + case Constants.PROCEDURA_P4: + case Constants.PROCEDURA_P5: + case Constants.PROCEDURA_P6: + case Constants.PROCEDURA_P7: docObbligatori.add(TIPOLOGIA_ALLEGATO_A01); docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); @@ -152,18 +154,16 @@ public class DocumentiPraticaUtil { docObbligatori.add(TIPOLOGIA_ALLEGATO_A10); docObbligatori.add(TIPOLOGIA_ALLEGATO_A11); docObbligatori.add(TIPOLOGIA_ALLEGATO_A12); - } - - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P8)) { + 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); - } - - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P9)) { + break; + case Constants.PROCEDURA_P9: docObbligatori.add(TIPOLOGIA_ALLEGATO_A01); docObbligatori.add(TIPOLOGIA_ALLEGATO_A02); docObbligatori.add(TIPOLOGIA_ALLEGATO_A03); @@ -175,12 +175,12 @@ public class DocumentiPraticaUtil { docObbligatori.add(TIPOLOGIA_ALLEGATO_A19); docObbligatori.add(TIPOLOGIA_ALLEGATO_A20); docObbligatori.add(TIPOLOGIA_ALLEGATO_A21); - } - - if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_P10)) { + break; + case Constants.PROCEDURA_P10: docObbligatori.add(TIPOLOGIA_ALLEGATO_A12); + break; } - + return docObbligatori; } @@ -240,7 +240,7 @@ public class DocumentiPraticaUtil { // doc.add(TIPOLOGIA_ALLEGATO_A07); // doc.add(TIPOLOGIA_ALLEGATO_A14); - //doc.add(TIPOLOGIA_ALLEGATO_A00); + // doc.add(TIPOLOGIA_ALLEGATO_A00); doc.add(TIPOLOGIA_ALLEGATO_A01); doc.add(TIPOLOGIA_ALLEGATO_A11); doc.add(TIPOLOGIA_ALLEGATO_A12); 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 d249e14d..0eb749f6 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 @@ -1,7 +1,6 @@ package it.tref.liferay.portos.bo.util; import it.tref.liferay.portos.bo.model.Collaudo; -import it.tref.liferay.portos.bo.model.Delega; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.DocPratica; import it.tref.liferay.portos.bo.model.FineLavori; @@ -10,7 +9,6 @@ import it.tref.liferay.portos.bo.model.Soggetto; import it.tref.liferay.portos.bo.model.Territorio; import it.tref.liferay.portos.bo.service.CollaudoLocalServiceUtil; import it.tref.liferay.portos.bo.service.CollaudoServiceUtil; -import it.tref.liferay.portos.bo.service.DelegaLocalServiceUtil; import it.tref.liferay.portos.bo.service.DettPraticaServiceUtil; import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.FineLavoriLocalServiceUtil; @@ -19,23 +17,21 @@ import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.IntPraticaServiceUtil; import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; -import it.tref.liferay.portos.bo.service.persistence.AsseverazioneUtil; import it.tref.liferay.portos.bo.shared.bean.FirmeBean; import it.tref.liferay.portos.bo.shared.util.Constants; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.FirmeUtil; -import it.tref.liferay.portos.bo.shared.util.GenericUtils; import it.tref.liferay.portos.bo.shared.util.StatoPraticaConstants; import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; -import it.tref.liferay.portos.bo.shared.util.Constants; import it.tref.liferay.portos.bo.util.AsseverazioniUtil; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -59,7 +55,7 @@ import com.liferay.portal.service.CompanyLocalServiceUtil; public class ValidazionePraticaUtil { - private static Log _log = LogFactoryUtil.getLog(ValidazionePraticaUtil.class); + private static final Log _log = LogFactoryUtil.getLog(ValidazionePraticaUtil.class); public static boolean praticaIsEditable(long dettPraticaId) throws PortalException, SystemException { @@ -73,10 +69,11 @@ public class ValidazionePraticaUtil { } public static boolean praticaIsCompleta(long dettPraticaId) throws SystemException, PortalException { - - return isDettagliPrincipaliCompleta(dettPraticaId) && isAnagrafeSoggettiCompleta(dettPraticaId) - && isDescrizioneEdificioCompleta(dettPraticaId) && isSezioneGeologicaCompleta(dettPraticaId) - && isSezioneAllegatiCompleta(dettPraticaId); + return 0 == notCompletedDettagliPrincipali(dettPraticaId).size() + + notCompletedAnagrafeSoggetti(dettPraticaId).size() + + notCompletedDescrizioneEdificio(dettPraticaId).size() + + notCompletedSezioneGeologica(dettPraticaId).size() + + notCompletedSezioneAllegati(dettPraticaId).size(); } public static boolean canEditPratica(long intPraticaId) throws PortalException, SystemException { @@ -114,7 +111,7 @@ public class ValidazionePraticaUtil { DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); - return isAnagrafeSoggettiCompleta(dettPraticaId) + return notCompletedAnagrafeSoggetti(dettPraticaId).size() == 0 && intPratica.getStatus() != WorkflowConstants.STATUS_ANY && intPratica.getStatus() != WorkflowConstants.STATUS_INCOMPLETE && TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO.equals(dettPratica.getTipoIntegrazione()); @@ -433,41 +430,9 @@ public class ValidazionePraticaUtil { // && asseverazioniIsCompleted(dettPraticaId); } - public static boolean isSectionCompleted(String section, long dettPraticaId) throws PortalException, - SystemException { - - // DettPratica dettPratica = - // DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); - // if(dettPratica == null) - // return true; // Se non ce ne sono editabili vuole dire che è - // completa - - switch (section) { - case SezioniUtil.SEZIONE_DETTAGLI_PRINCIPALI: - return isDettagliPrincipaliCompleta(dettPraticaId); - case SezioniUtil.SEZIONE_ANAGRAFE_SOGGETTI: - return isAnagrafeSoggettiCompleta(dettPraticaId); - case SezioniUtil.SEZIONE_DESCRIZIONE_EDIFICIO: - return isDescrizioneEdificioCompleta(dettPraticaId); - case SezioniUtil.SEZIONE_GEOLOGICA: - return isSezioneGeologicaCompleta(dettPraticaId); - case SezioniUtil.SEZIONE_ALLEGATI: - return isSezioneAllegatiCompleta(dettPraticaId); - default: - return false; - } - - } - public static List notCompletedSection(String section, long dettPraticaId) throws PortalException, SystemException { - // DettPratica dettPratica = - // DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); - // if(dettPratica == null) - // return new ArrayList(); // Se non ce ne sono editabili vuole - // dire che è completa - switch (section) { case SezioniUtil.SEZIONE_DETTAGLI_PRINCIPALI: return notCompletedDettagliPrincipali(dettPraticaId); @@ -478,7 +443,7 @@ public class ValidazionePraticaUtil { case SezioniUtil.SEZIONE_GEOLOGICA: return notCompletedSezioneGeologica(dettPraticaId); case SezioniUtil.SEZIONE_ALLEGATI: - return notCompletedSezioniAllegati(dettPraticaId); + return notCompletedSezioneAllegati(dettPraticaId); default: return new ArrayList(); } @@ -500,74 +465,6 @@ public class ValidazionePraticaUtil { return notCompleted; } - private static boolean isDettagliPrincipaliCompleta(long dettPraticaId) throws PortalException, - SystemException { - - DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); - // boolean ag = true; - /* - * if (!territorio.getZona().equals("2") && - * !territorio.getZona().equals("4")) { ag = - * Validator.isNotNull(dettPratica.getAg()); } - */ - - /* - * boolean aiSensi = - * AzioniPraticheUtil.isDeposito(intPratica.getIntPraticaId()) ? - * (dettPratica .getNormDpr01Dep() || dettPratica.getNormDpr02Dep()) : - * (dettPratica.getNormDpr01Aut() || dettPratica.getNormDpr02Aut()); - * - * boolean nelRispetto = dettPratica.getNormDm01() || - * dettPratica.getNormDm02() || dettPratica.getNormDm2018(); - */ - - /* - * boolean sismaBonus = !dettPratica.getNormSismaBonus() || - * (Validator.isNotNull(dettPratica.getClRischioPreInt()) || - * Validator.isNotNull(dettPratica .getClRischioPostInt())); - */ - - // ADT BUG ID = 17 - boolean tipologiaCostruttiva = intPratica.getTipoProcedura().equalsIgnoreCase(Constants.PROCEDURA_C) - || dettPratica.getTcInCA() || dettPratica.getTcInAcciaio() || dettPratica.getTcInMuratura() - || dettPratica.getTcInLegno() || dettPratica.getTcAltro(); - boolean intervFinPub = !dettPratica.getIntervFinPub() - || Validator.isNotNull(dettPratica.getIntervFinPubDesc()); - boolean controllo = tipologiaCostruttiva && intervFinPub - && Validator.isNotNull(dettPratica.getDescLongIntervento()) - && Validator.isNotNull(dettPratica.getDestinazione()) - /* - * && (dettPratica.getTcNuovaCostruzione() || - * dettPratica.getTcMiglioramentoSismico() || - * dettPratica.getTcAdeguamentoSismico() || dettPratica - * .getTcRiparazioneInterventoLocale() - * - * ) - */ - // && Validator.isNotNull(dettPratica.getDestinazione()) - // && Validator.isNotNull(dettPratica.getLocalita()) - && Validator.isNotNull(dettPratica.getVia()) - // && ( - // - // Validator.isNotNull(dettPratica.getLocalizzazioneGeografica()) && - // !("|||".equalsIgnoreCase(dettPratica - // .getLocalizzazioneGeografica())) - // - // ) - // && Validator.isNotNull(dettPratica.getDcFoglio()) - // && Validator.isNotNull(dettPratica.getDcAllegato()) - // && (Validator.isNotNull(dettPratica.getDcParticelle()) && - // !"|||".equalsIgnoreCase(dettPratica.getDcParticelle())) - ; - - boolean coordinateGeografiche = Validator.isNotNull(dettPratica.getLocalizzazioneGeografica()) - && !("|||".equalsIgnoreCase(dettPratica.getLocalizzazioneGeografica())); - - return controllo && coordinateGeografiche; - } - private static List notCompletedDettagliPrincipali(long dettPraticaId) throws PortalException, SystemException { @@ -676,110 +573,6 @@ public class ValidazionePraticaUtil { && !isRiparazioneLocale(dettPratica); } - private static boolean isAnagrafeSoggettiCompleta(long dettPraticaId) throws PortalException, - SystemException { - - DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - long intPraticaId = dettPratica.getIntPraticaId(); - - boolean titolare = SoggettiUtil.isTitolareInSoggetti(intPraticaId); - // ADT BUG ID = 17 - - boolean collaudatoreNotRequired = !isCollaudatoreRequired(dettPratica); - boolean direttoreLavoriNotRequired = dettPratica.getLavoriPubblici(); - boolean dittaNotRequired = dettPratica.getNormLavoriInProprio() || dettPratica.getLavoriPubblici(); - - boolean collaudatore = true; - boolean ditta = dettPratica.getNormLavoriInProprio() || dettPratica.getLavoriPubblici(); - boolean committente = false; - boolean progettista = false; - boolean direttore = dettPratica.getLavoriPubblici(); - boolean geologo = false; - - List soggetti = SoggettoLocalServiceUtil.getValidTmpByIntPratica(intPraticaId); - for (Soggetto soggetto : soggetti) { - - if (!TipoSoggettoUtil.validaCodiceFiscale(soggetto.getCodiceFiscale(), true)) { - return false; - } - - switch (soggetto.getTipologiaSoggetto()) { - case TipoSoggettoUtil.COLLAUDATORE: - collaudatore = true; - break; - case TipoSoggettoUtil.COMMITTENTE: - committente = true; - break; - case TipoSoggettoUtil.DIRETTORE_LAVORI: - direttore = true; - break; - case TipoSoggettoUtil.DITTA: - ditta = true; - break; - case TipoSoggettoUtil.GEOLOGO: - geologo = true; - break; - case TipoSoggettoUtil.PROGETTISTA: - progettista = true; - break; - default: - break; - } - } - - boolean isDelegaCommittente = SoggettiUtil.isTitolareInCommittenti(intPraticaId) - || Validator.isNotNull(dettPratica.getCodiceFiscaleDelegatoCommittente()); - boolean isDelegaFineLavori = direttoreLavoriNotRequired - || Validator.isNotNull(dettPratica.getCodiceFiscaleDelegatoFineLavori()); - boolean isDelegaCollaudo = collaudatoreNotRequired - || Validator.isNotNull(dettPratica.getCodiceFiscaleDelegatoCollaudo()); - - boolean deleghe = isDelegaCommittente && isDelegaFineLavori && isDelegaCollaudo; - - boolean collaudatorePrincipale = true; - boolean committentePrincipale = true; - boolean direttorePrincipale = true; - boolean dittaPrincipale = true; - boolean geologoPrincipale = true; - boolean progettistaPrincipale = true; - - if (!collaudatoreNotRequired && collaudatore - && Validator.isNull(dettPratica.getCodiceFiscalePrincipaleCollaudatore())) { - collaudatorePrincipale = false; - } - if (committente && Validator.isNull(dettPratica.getCodiceFiscalePrincipaleCommittente())) { - committentePrincipale = false; - } - if (!direttoreLavoriNotRequired && direttore - && Validator.isNull(dettPratica.getCodiceFiscalePrincipaleDirettoreLavori())) { - direttorePrincipale = false; - } - if (!dittaNotRequired && ditta && Validator.isNull(dettPratica.getCodiceFiscalePrincipaleDitta())) { - dittaPrincipale = false; - } - if (geologo && Validator.isNull(dettPratica.getCodiceFiscalePrincipaleGeologo())) { - geologoPrincipale = false; - } - if (progettista && Validator.isNull(dettPratica.getCodiceFiscalePrincipaleProgettista())) { - progettistaPrincipale = false; - } - - boolean principali = collaudatorePrincipale & committentePrincipale & direttorePrincipale - & dittaPrincipale & geologoPrincipale & progettistaPrincipale; - - if (dettPratica.getNormArt3com3()) { - geologo = true; - } - - int soggettiIncompleti = SoggettoLocalServiceUtil.countTmpNotCompletedByDettPratica(dettPraticaId); - if (soggettiIncompleti > 0) { - return false; - } - - return titolare && collaudatore && ditta && committente && progettista && direttore && geologo - && deleghe && principali; - } - private static List notCompletedAnagrafeSoggetti(long dettPraticaId) throws PortalException, SystemException { @@ -909,110 +702,10 @@ public class ValidazionePraticaUtil { return notCompleted; } - private static boolean isDescrizioneEdificioCompleta(long dettPraticaId) throws PortalException, - SystemException { - - DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); - - if (intPratica.getTipoProcedura().equalsIgnoreCase(Constants.PROCEDURA_C)) { - return true; - } - - List infrastrutture = Arrays.asList("1A", "2A", "A4A", "A4B", "A4C", "A4D", "A4E", "A4F", - "A5A", "B4A", "B4B", "B4C", "B5A"); - // se infrastruttura controllo solo DATI INFRASTRUTTURA - boolean infrastruttura = infrastrutture.contains(dettPratica.getDestinazione()); - if (infrastruttura) { - return dettPratica.getDeInfStradaleStrada() || dettPratica.getDeInfStradalePonte() - || dettPratica.getDeInfStradaleAltro() || dettPratica.getDeInfIdraulicaLong() - || dettPratica.getDeInfIdraulicaTrasv() || dettPratica.getDeInfIdraulicaAltro() - || dettPratica.getDeInfOperaAccStradale() || dettPratica.getDeInfOperaAccIdraulica() - || dettPratica.getDeInfOperaAccAltro() || dettPratica.getDeInfAltraInfrastruttura() - || Validator.isNotNull(dettPratica.getDeInfAltroDesc()); - } - - // se non infrastruttura controllo il resto - boolean controllo = Validator.isNotNull(dettPratica.getDePiani()) - && Validator.isNotNull(dettPratica.getDeAltezza()) - && Validator.isNotNull(dettPratica.getDeInterrati()) - && Validator.isNotNull(dettPratica.getDeSuperficie()) - && Validator.isNotNull(dettPratica.getDeCostruzione()) - && Validator.isNotNull(dettPratica.getDeUso()) - && Validator.isNotNull(dettPratica.getDeUtilizzazione()) - && Validator.isNotNull(dettPratica.getDePrivata()) - && Validator.isNotNull(dettPratica.getDePubblica()); - - boolean isComponentiCostruttiveDisabled = !dettPratica.getTcNuovaCostruzione() - && dettPratica.getTcRiparazioneInterventoLocale(); - - if (isComponentiCostruttiveDisabled) { - return controllo; - } - - // boolean fondazioni = - // Validator.isNotNull(dettPratica.getDccFondazioni()); - boolean elevazioni = (Validator.isNotNull(dettPratica.getDccStruttureEleMuraturePietrame()) - || Validator.isNotNull(dettPratica.getDccStruttureEleMuratureLaterizio()) - || Validator.isNotNull(dettPratica.getDccStruttureEleMuratureMisto()) || Validator - .isNotNull(dettPratica.getDccStruttureEleMuratureStoriche())) - || Validator.isNotNull(dettPratica.getDccStruttureEleAcciaio()) - || Validator.isNotNull(dettPratica.getDccStruttureEleCA()) - || Validator.isNotNull(dettPratica.getDccStruttureEleLegno()) - || (Validator.isNotNull(dettPratica.getDccStruttureEleMistoCA()) - || Validator.isNotNull(dettPratica.getDccStruttureEleMistoAcciaio()) - || Validator.isNotNull(dettPratica.getDccStruttureEleMistoMuratura()) || Validator - .isNotNull(dettPratica.getDccStruttureEleMistoLegno())) - || Validator.isNotNull(dettPratica.getDccStruttureElePrefabbricato()) - || (Validator.isNotNull(dettPratica.getDccStruttureEleAltro()) && Validator - .isNotNull(dettPratica.getDccStruttureEleAltroDescrizione())); - - boolean orizzontamenti = Validator.isNotNull(dettPratica.getDccOrizzontamentiCAAcciaio()) - || Validator.isNotNull(dettPratica.getDccOrizzontamentiLamieraGrecata()) - || Validator.isNotNull(dettPratica.getDccOrizzontamentiLegno()) - || Validator.isNotNull(dettPratica.getDccOrizzontamentiLegnoCA()) - || Validator.isNotNull(dettPratica.getDccOrizzontamentiVolte()) - || (Validator.isNotNull(dettPratica.getDccOrizzontamentiAltro()) && Validator - .isNotNull(dettPratica.getDccOrizzontamentiAltroDescrizione())); - - boolean coperture = Validator.isNotNull(dettPratica.getDccCopertura()) - || Validator.isNotNull(dettPratica.getDccCoperturaCAAcciaio()) - || Validator.isNotNull(dettPratica.getDccCoperturaLamieraGrecata()) - || Validator.isNotNull(dettPratica.getDccCoperturaLeggere()) - || Validator.isNotNull(dettPratica.getDccCoperturaLegno()) - || Validator.isNotNull(dettPratica.getDccCoperturaLegnoCA()) - || Validator.isNotNull(dettPratica.getDccCoperturaPannelli()) - || Validator.isNotNull(dettPratica.getDccCoperturaPVCTelonati()) - || (Validator.isNotNull(dettPratica.getDccCoperturaAltro()) && Validator - .isNotNull(dettPratica.getDccCoperturaAltroDesrizione())); - - boolean non_strutturali = Validator.isNotNull(dettPratica.getDccElemNonStrutLaterizio()) - || Validator.isNotNull(dettPratica.getDccElemNonStrutCalcestruzzo()) - || Validator.isNotNull(dettPratica.getDccElemNonStrutCartongesso()) - || Validator.isNotNull(dettPratica.getDccElemNonStrutLegno()) - || (Validator.isNotNull(dettPratica.getDccElemNonStrutAltro()) && Validator - .isNotNull(dettPratica.getDccElemNonStrutAltroDescrizione())); - - boolean rinforzo = Validator.isNotNull(dettPratica.getDccOpereDiRinforzoInsCatene()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoInsCordoli()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoIniArmate()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoPlaccaggi()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoIrrSolai()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoRinforziFRP()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoTelaiECerchiature()) - || Validator.isNotNull(dettPratica.getDccOpereDiRinforzoInsRompitratta()) - || (Validator.isNotNull(dettPratica.getDccOpereDiRinforzoAltro()) && Validator - .isNotNull(dettPratica.getDccOpereDiRinforzoAltroDescrizione())); - - return controllo && elevazioni && orizzontamenti && coperture && non_strutturali && rinforzo; - } - private static List notCompletedDescrizioneEdificio(long dettPraticaId) throws PortalException, SystemException { DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); - List notCompleted = new ArrayList<>(); List infrastrutture = Arrays.asList("1A", "2A", "A4A", "A4B", "A4C", "A4D", "A4E", "A4F", @@ -1151,132 +844,10 @@ public class ValidazionePraticaUtil { return notCompleted; } - private static boolean isSezioneGeologicaCompleta(long dettPraticaId) throws PortalException, - SystemException { - - DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); - - // Se check NormArt3com3 sez. geologica non obbligatoria - if (dettPratica.getNormArt3com3()) { - return true; - } - - boolean formGeologo = Validator.isNotNull(dettPratica.getGeoDtRelazione()) - && Validator.isNotNull(dettPratica.getGeoClasseIndagine()) - && Validator.isNotNull(dettPratica.getGeoOperaRilevante()) - && Validator.isNotNull(dettPratica.getGeoCategoriaSottosuolo()) - && Validator.isNotNull(dettPratica.getGeoCategoriaTopografica()) - && Validator.isNotNull(dettPratica.getGeoOpereDiSostegno()) - && Validator.isNotNull(dettPratica.getGeoConsolidamento()) - && Validator.isNotNull(dettPratica.getGeoOpereInSotterranea()) - && Validator.isNotNull(dettPratica.getGeoPericolositaGeologica()) - && Validator.isNotNull(dettPratica.getGeoPericolositaGeomorfica()) - && Validator.isNotNull(dettPratica.getGeoRischioGeomorfologicoPai()) - && Validator.isNotNull(dettPratica.getGeoPericolositaIdraulicaPai()) - && Validator.isNotNull(dettPratica.getGeoRischioIdraulicoPai()) - && Validator.isNotNull(dettPratica.getGeoPericolositaSismica()) - && Validator.isNotNull(dettPratica.getGeoFattibilitaSismica()) - && Validator.isNotNull(dettPratica.getGeoPericolositaIdraulica()) - && Validator.isNotNull(dettPratica.getGeoFattibilitaIdraulica()) - && Validator.isNotNull(dettPratica.getGeoFattibilitaGeologica()) - && Validator.isNotNull(dettPratica.getGeoPresenzaPrescrizioni()) - && Validator.isNotNull(dettPratica.getGeoEvidenzeGeologiche()) - && Validator.isNotNull(dettPratica.getGeoEvidenzeGeomorfiche()); - - List delegheGeologo = DelegaLocalServiceUtil.findByDettPratica_Tipologia_InEsito( - dettPraticaId, DelegheUtil.TIPO_GEOLOGO, new String[] { DelegheUtil.STATO_ESEGUITA }, - QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); - - boolean allegatiGeologo = dettPratica.getNormArt3com3(); - if (!allegatiGeologo) { - long intPraticaId = dettPratica.getIntPraticaId(); - - List a14Docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A14, - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - boolean a14 = !a14Docs.isEmpty() || !delegheGeologo.isEmpty(); - if (!a14) { - for (DocPratica doc : a14Docs) { - - // Se da Portos 1 salto validazione - - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - - if (!isAllRequiredValid(doc.getTipologia(), dettPratica.getIntPraticaId(), signatures, - AsseverazioniUtil.getRequiredSubjectsByCodiceDoc(doc.getTipologia()), doc)) { - return false; - } - - } - } - - List a06Docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06, - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - boolean a06 = !a06Docs.isEmpty(); - if (!a06Docs.isEmpty()) { - for (DocPratica doc : a06Docs) { - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - if (!isA06Valid(dettPratica, dettPratica.getIntPraticaId(), signatures, doc)) { - // Return false if A06 doesn't contain (Progettista - // OR Geologo ) AND Direttore_Lavori - return false; - } - } - } - - List a15Docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15, - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - boolean a15 = true; - if (!a15Docs.isEmpty()) { - for (DocPratica doc : a15Docs) { - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - if (!isA07A15Valid(dettPratica, intPraticaId, signatures, doc)) { - return false; - } - } - } - - List tipologiaAllegati = DocumentiPraticaUtil.getIndaginiGeologiche(); - List a16Docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologie( - intPraticaId, tipologiaAllegati.toArray(new String[0]), QueryUtil.ALL_POS, - QueryUtil.ALL_POS); - boolean a16 = !a16Docs.isEmpty(); - if (!a16Docs.isEmpty()) { - for (DocPratica doc : a16Docs) { - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - - List signaturesPerSubject = getSignaturePerSubject(intPraticaId, signatures, - TipoSoggettoUtil.GEOLOGO, doc.getClassPk()); - if (signaturesPerSubject.isEmpty()) { - return false; - } - } - } - - allegatiGeologo = a14 && a06 && a15 && a16; - } - - // boolean allegatiGeologo = - // dettPratica.getNormArt3com3() - // || ((!a14Docs.isEmpty() || !delegheGeologo.isEmpty()) && - // !a05.isEmpty() && !a06.isEmpty()); - // && !a07.isEmpty()); - - return formGeologo && allegatiGeologo; - } - private static List notCompletedSezioneGeologica(long dettPraticaId) throws PortalException, SystemException { DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); List notCompleted = new ArrayList<>(); // Se check NormArt3com3 sez. geologica non obbligatoria @@ -1286,98 +857,6 @@ public class ValidazionePraticaUtil { notCompleted.addAll(notCompletedDatiSezionGeologica(dettPraticaId)); - if (!dettPratica.getNormArt3com3()) { - long intPraticaId = dettPratica.getIntPraticaId(); - List a14 = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A14, - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - /* - * List a05 = - * DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - * dettPratica.getIntPraticaId(), - * DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A05, QueryUtil.ALL_POS, - * QueryUtil.ALL_POS); - */ - List a06 = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06, - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - List a15 = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15, - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - List a16 = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologie(intPraticaId, - DocumentiPraticaUtil.getIndaginiGeologiche().toArray(new String[0]), QueryUtil.ALL_POS, - QueryUtil.ALL_POS); - - List delegheGeologo = DelegaLocalServiceUtil.findByDettPratica_Tipologia_InEsito( - dettPraticaId, DelegheUtil.TIPO_GEOLOGO, new String[] { DelegheUtil.STATO_ESEGUITA }, - QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); - - if (a14.isEmpty() && delegheGeologo.isEmpty()) { - notCompleted.add("A14 non presente"); - } else { - for (DocPratica doc : a14) { - - // Se da Portos 1 salto validazione - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - - if (!isAllRequiredValid(doc.getTipologia(), dettPratica.getIntPraticaId(), signatures, - AsseverazioniUtil.getRequiredSubjectsByCodiceDoc(doc.getTipologia()), doc)) { - GenericUtils.addIfnotExist(notCompleted, doc.getTipologia() - + " firme obbligatorie mancanti"); - } - } - } - - if (a06.isEmpty()) { - notCompleted.add("A06 non presente"); - } else { - for (DocPratica doc : a06) { - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - if (!isA06Valid(dettPratica, dettPratica.getIntPraticaId(), signatures, doc)) { - // ADT: bug id=22 - notCompleted.add("A06 firme obbligatorie mancanti "); - } - } - } - - if (a15.isEmpty()) { - // SECONDO EMAIL DELLA PASOTTI DEL 26 Maggio questo documento - // non è obbligatorio - // notCompleted.add("A15 non presente"); - } else { - for (DocPratica doc : a15) { - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - if (!isA07A15Valid(dettPratica, intPraticaId, signatures, doc)) { - // ADT: bug id=22 - notCompleted.add("A15 firme obbligatorie mancanti"); - } - } - } - - if (a16.isEmpty()) { - notCompleted.add("Indagini geologiche non presenti"); - } else { - - for (DocPratica doc : a16) { - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - - List signaturesPerSubject = getSignaturePerSubject(intPraticaId, signatures, - TipoSoggettoUtil.GEOLOGO, doc.getClassPk()); - if (signaturesPerSubject.isEmpty()) { - notCompleted.add(LanguageUtil.get(LocaleUtil.getDefault(), - "label-documenti-tipologia-" + doc.getTipologia()) - + " non firmato dal Geologo"); - } - - } - } - - } - return notCompleted; } @@ -1501,318 +980,37 @@ public class ValidazionePraticaUtil { notCompleted.add("Indagini Geologoche non presenti"); } - List allegatiGeologici = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologie( - dettPratica.getIntPraticaId(), DocumentiPraticaUtil.getDocGeologo().toArray(new String[0]), - QueryUtil.ALL_POS, QueryUtil.ALL_POS); - - long intPraticaId = dettPratica.getIntPraticaId(); - for (DocPratica doc : allegatiGeologici) { - // ADT : BUG FE ID=14 : CONTROLLO firma geologo A6 disabilitato - boolean checkA06 = doc.getTipologia().equalsIgnoreCase( - DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06); - - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - - List signaturesPerSubject = getSignaturePerSubject(intPraticaId, signatures, - TipoSoggettoUtil.GEOLOGO, doc.getClassPk()); - // ADT : BUG FE ID=14 : CONTROLLO firma geologo A6 disabilitato - if (signaturesPerSubject.isEmpty() && (!checkA06)) { - notCompleted.add(LanguageUtil.get(LocaleUtil.getDefault(), - "label-documenti-tipologia-" + doc.getTipologia()) - + " non firmato dal Geologo"); - } - } - return notCompleted; } - private static boolean isSezioneAllegatiCompleta(long dettPraticaId) throws PortalException, + private static List notCompletedSezioneAllegati(long dettPraticaId) throws PortalException, SystemException { - + List notCompleted = new ArrayList<>(); DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); long intPraticaId = dettPratica.getIntPraticaId(); - IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); - - List tipologiaAllegati = DocumentiPraticaUtil.getDocObbligatoriDomanda(intPratica - .getTipoProcedura()); - - // ASD - List appTipologiaSoggetti = TipoSoggettoUtil.getAllSubjects(); - List tipologiaSoggetti = new ArrayList(); - - boolean collaudatoreNotRequired = dettPratica.getCollaudoStatico() || dettPratica.getLavoriPubblici(); - boolean direttoreLavoriNotRequired = dettPratica.getLavoriPubblici(); - boolean dittaNotRequired = dettPratica.getNormLavoriInProprio() || dettPratica.getLavoriPubblici(); - - for (String tipSoggetto : appTipologiaSoggetti) { - if (tipSoggetto.equals(TipoSoggettoUtil.COLLAUDATORE) && collaudatoreNotRequired) { - continue; - } - - if (tipSoggetto.equals(TipoSoggettoUtil.DIRETTORE_LAVORI) && direttoreLavoriNotRequired) { - continue; - } - - if (tipSoggetto.equals(TipoSoggettoUtil.DITTA) && dittaNotRequired) { - continue; - } - - tipologiaSoggetti.add(tipSoggetto); - } - - List firmeTotali = new ArrayList<>(); - boolean contieneDocumenti = false; - - for (String codiceDoc : tipologiaAllegati) { + IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); - if (isDocPraticaRequired(dettPratica, codiceDoc)) { - List docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - intPraticaId, codiceDoc, QueryUtil.ALL_POS, QueryUtil.ALL_POS); - if (docs.isEmpty()) { - // Ci dev'essere almeno un allegato per ogni tipologia - // obbligatoria - return false; - } + List obbligatori = DocumentiPraticaUtil.getDocObbligatoriDomanda(intPratica, dettPratica); + for (String obbligatorio : obbligatori) { + List docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( + intPraticaId, obbligatorio, QueryUtil.ALL_POS, QueryUtil.ALL_POS); + if (docs.isEmpty()) { + notCompleted.add("Nessun Allegato per " + + LanguageUtil.get(LocaleUtil.getDefault(), "label-documenti-tipologia-" + + obbligatorio)); + } else { for (DocPratica doc : docs) { - - // Se il documento proviene da una dett precedente non viene - // controllato perche si presuppone che sia stata gia - // verificato - if (!doc.getClassName().equalsIgnoreCase(DettPratica.class.getName()) - || doc.getClassPk() != dettPraticaId) { - continue; - } - - contieneDocumenti = true; - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - GenericUtils.addAllIfnotExist(firmeTotali, signatures); - boolean isEnoughOne = AsseverazioniUtil.isEnoughOne(codiceDoc); - - /* - * if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil. - * TIPOLOGIA_ALLEGATO_A00)) { if (!isA00Valid(dettPratica, - * signatures)) { return false; } } else - */ - if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06)) { - if (!isA06Valid(dettPratica, intPraticaId, signatures, doc)) { - // Return false if A06 doesn't contain (Progettista - // OR Geologo ) AND Direttore_Lavori - return false; - } - } else if (DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A07.equals(codiceDoc)) { - if (!isA07A15Valid(dettPratica, intPraticaId, signatures, doc)) { - // Return false if A07 doesn't contain Progettista - // AND Direttore_Lavori - return false; - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A09)) { - if (!isA09Valid(dettPratica, intPraticaId, signatures, doc)) { - // Return false if A09 doesn't contain Progettista - // AND Direttore_Lavori - return false; - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15)) { - if (!isA07A15Valid(dettPratica, intPraticaId, signatures, doc)) { - return false; - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17)) { - if (!isA17Valid(dettPratica, signatures)) { - return false; - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_DELEGA)) { - if (!isA98Valid(dettPratica, intPraticaId, signatures)) { - return false; - } - } else if (isEnoughOne && signatures.isEmpty()) { - // Return false if one sign is enought but there are no - // signs for this subjectType - return false; - } else { - if (!isAllRequiredValid(codiceDoc, intPraticaId, signatures, tipologiaSoggetti, doc)) { - // Return false if is required per this subjectType - // but it is not present - return false; - } - } - } - } - - } - - // Ogni progettista e direttore dei lavori deve avere apposto almeno una - // firma sulla totalità degli allegati - if (contieneDocumenti) { - List progettisti = SoggettoLocalServiceUtil.getValidTmpByIntPratica_TipologiaSoggetto( - intPraticaId, TipoSoggettoUtil.PROGETTISTA); - for (Soggetto progettista : progettisti) { - if (progettista.getDettPraticaId() == dettPraticaId) { - if (!firmeTotali.contains(progettista.getCodiceFiscale().toLowerCase())) { - return false; - } - } - } - List direttoriLavori = SoggettoLocalServiceUtil - .getValidTmpByIntPratica_TipologiaSoggetto(intPraticaId, - TipoSoggettoUtil.DIRETTORE_LAVORI); - for (Soggetto direttore : direttoriLavori) { - if (direttore.getDettPraticaId() == dettPraticaId) { - if (!firmeTotali.contains(direttore.getCodiceFiscale().toLowerCase())) { - return false; - } - } - } - } - - return true; - } - - private static List notCompletedSezioniAllegati(long dettPraticaId) throws PortalException, - SystemException { - - DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - long intPraticaId = dettPratica.getIntPraticaId(); - IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); - String tipoProcedura = intPratica.getTipoProcedura(); - - List notCompleted = new ArrayList<>(); - - List tipologiaAllegati = DocumentiPraticaUtil.getDocObbligatoriDomanda(intPratica - .getTipoProcedura()); - - List tipologiaSoggettiApp = TipoSoggettoUtil.getAllSubjects(); - List tipologiaSoggetti = new ArrayList(); - // if(dettPratica.isLavoriPubblici()){ - // for(String tip : tipologiaSoggettiApp){ - // if(!tip.equalsIgnoreCase(TipoSoggettoUtil.DIRETTORE_LAVORI)){ - // tipologiaSoggetti.add(tip); - // } - // } - // } else { - tipologiaSoggetti = tipologiaSoggettiApp; - // } - - List firmeTotali = new ArrayList<>(); - - for (String codiceDoc : tipologiaAllegati) { - if (isDocPraticaRequired(dettPratica, codiceDoc)) { - List docs = DocPraticaLocalServiceUtil.getValidTmpByIntPratica_Tipologia( - intPraticaId, codiceDoc, QueryUtil.ALL_POS, QueryUtil.ALL_POS); - - if (docs.isEmpty()) { - // Ci dev'essere almeno un allegato per ogni tipologia - // obbligatoria - notCompleted.add("Nessun Allegato per " + FirmeBean firmeBean = FirmeUtil.deserialize(doc.getJsonFirmatari()); + List firme = firmeBean.allSignatures(); + _log.info("Per l'allegato " + LanguageUtil.get(LocaleUtil.getDefault(), "label-documenti-tipologia-" - + codiceDoc)); - } - for (DocPratica doc : docs) { - // Se il documento proviene da una dett precedente non viene - // controllato - // perche si presuppone che sia stata gia verificato - if (!doc.getClassName().equalsIgnoreCase(DettPratica.class.getName()) - || doc.getClassPk() != dettPraticaId) { - continue; + + obbligatorio) + " servono le firme di:"); + for (String firma : firme) { + _log.info(" " + LanguageUtil.get(LocaleUtil.getDefault(), "gc-soggetto-" + firma)); } - - FirmeBean firme = FirmeUtil.deserialize(doc.getJsonFirmatari()); - List signatures = firme.allSignatures(); - GenericUtils.addAllIfnotExist(firmeTotali, signatures); - boolean isEnoughOne = AsseverazioniUtil.isEnoughOne(codiceDoc); - - /* - * if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil. - * TIPOLOGIA_ALLEGATO_A00)) { if (!isA00Valid(dettPratica, - * signatures)) { // Return false if not esente spese + - * bolli // ADT: bug id=22 - * notCompleted.add("A00 firme obbligatorie mancanti"); } } - * else - */ - if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06)) { - if (!isA06Valid(dettPratica, intPraticaId, signatures, doc)) { - // Return false if A06 doesn't contain (Progettista - // OR Geologo ) AND Direttore_Lavori - // ADT: bug id=22 - notCompleted.add("A06 firme obbligatorie mancanti"); - } - // } else if - // (DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A07.equals(codiceDoc) - // // || - // DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15.equals(codiceDoc)) - // { - // if (!isA07A15A16Valid(dettPratica, signatures)) { - // notCompleted.add("A07 invalido"); - // } - } else if (DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A07.equals(codiceDoc)) { - if (!isA07A15Valid(dettPratica, intPraticaId, signatures, doc)) { - // Return false if A07 doesn't contain Progettista - // AND Direttore_Lavori - // ADT: bug id=22 - notCompleted.add("A07 firme obbligatorie mancanti"); - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A09)) { - if (!isA09Valid(dettPratica, intPraticaId, signatures, doc)) { - // Return false if A09 doesn't contain Progettista - // AND Direttore_Lavori - // ADT: bug id=22 - notCompleted.add("A09 firme obbligatorie mancanti"); - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15)) { - if (!isA07A15Valid(dettPratica, intPraticaId, signatures, doc)) { - // ADT: bug id=22 - notCompleted.add("A15 firme obbligatorie mancanti"); - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17)) { - if (!isA17Valid(dettPratica, signatures)) { - // ADT: bug id=22 - notCompleted.add("A17 firme obbligatorie mancanti"); - } - } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_DELEGA)) { - if (!isA98Valid(dettPratica, intPraticaId, signatures)) { - // ADT: bug id=22 - notCompleted.add("Allegato Delega firme obbligatorie mancanti"); - } - } else if (isEnoughOne && signatures.isEmpty()) { - // Return false if one sign is enought but there are no - // signs for this subjectType - notCompleted.add(codiceDoc + " non firmato"); - } else { - if (!isAllRequiredValid(codiceDoc, intPraticaId, signatures, tipologiaSoggetti, doc)) { - // Return false if is required per this subjectType - // but it is not present - GenericUtils.addIfnotExist(notCompleted, codiceDoc - + " firme obbligatorie mancanti"); - } - } - } - } - } - - // Ogni progettista e direttore dei lavori deve avere apposto almeno una - // firma sulla totalità - // degli allegati - List progettisti = SoggettoLocalServiceUtil.getValidTmpByIntPratica_TipologiaSoggetto( - intPraticaId, TipoSoggettoUtil.PROGETTISTA); - for (Soggetto progettista : progettisti) { - if (progettista.getDettPraticaId() == dettPraticaId) { - if (!firmeTotali.contains(progettista.getCodiceFiscale().toLowerCase())) { - notCompleted.add("Firma del progettista " + progettista.getDescrizioneCompleta() - + " richiesta"); - } - } - } - List direttoriLavori = SoggettoLocalServiceUtil.getValidTmpByIntPratica_TipologiaSoggetto( - intPraticaId, TipoSoggettoUtil.DIRETTORE_LAVORI); - for (Soggetto direttore : direttoriLavori) { - if (direttore.getDettPraticaId() == dettPraticaId) { - if (!firmeTotali.contains(direttore.getCodiceFiscale().toLowerCase())) { - notCompleted.add("Firma del direttore dei lavori " + direttore.getDescrizioneCompleta() - + " richiesta"); } } } - return notCompleted; } @@ -1833,192 +1031,6 @@ public class ValidazionePraticaUtil { return signaturesPerSubject; } - private static boolean isDocPraticaRequired(DettPratica dettPratica, String codiceDoc) - throws SystemException, PortalException { - - boolean required = true; - - // ADT BUG ID = 5 - - switch (codiceDoc) { - /* - * case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A00: IntPratica - * intPratica = - * IntPraticaLocalServiceUtil.getIntPratica(dettPratica.getIntPraticaId - * ()); // ADT BUG ID = 5 if (isRiparazioneLocale(dettPratica)) { return - * false; } return !dettPratica.getNormEsenteSpese(); - */ - // case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A05: - case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06: - case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A07: - // case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A14: - // case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15: - // case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A16: //non so che - // doc è - return !dettPratica.getNormArt3com3(); - case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15: - // nell'ultima version A15 non è più obbligtorio, ma se c'è deve - // essere firmato da GEOLOGO E - // DIRETTORE dei LAVORI - return false; - case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A09: - return !dettPratica.getNormArt3com4(); - case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17: - return isA17Required(dettPratica); - case DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_DELEGA: - return isA98Required(dettPratica); - default: - return required; - } - - } - - public static boolean isA06Valid(DettPratica dettPratica, long intPraticaId, List signatures, - DocPratica docPratica) throws SystemException { - - boolean isProgettista = false; - boolean isGeologo = false; - boolean isDirettoreLavori = false; - - // Se check NormArt3com3 A06 non obbligatorio - if (dettPratica.getNormArt3com3()) { - return true; - } - - for (String sign : signatures) { - // List soggetti = - // SoggettoLocalServiceUtil.findByIntPratica_CodiceFiscale(intPraticaId, - // sign); - List soggetti = SoggettoLocalServiceUtil.getValidTmpByIntPratica_CodiceFiscale( - intPraticaId, sign, docPratica.getClassPk()); - for (Soggetto soggetto : soggetti) { - if (TipoSoggettoUtil.PROGETTISTA.equals(soggetto.getTipologiaSoggetto())) { - isProgettista = true; - } else if (TipoSoggettoUtil.GEOLOGO.equals(soggetto.getTipologiaSoggetto())) { - isGeologo = true; - } else if (TipoSoggettoUtil.DIRETTORE_LAVORI.equals(soggetto.getTipologiaSoggetto())) { - isDirettoreLavori = true; - } - } - } - - if (!isDirettoreLavori && !dettPratica.isLavoriPubblici()) { - isDirettoreLavori = true; - } - - return isDirettoreLavori && (isProgettista || isGeologo); - } - - public static boolean isA00Valid(DettPratica dettPratica, List signatures) throws SystemException { - - // Se esente contributi A00 non obbligatorio - boolean isEsente = dettPratica.getNormEsenteBollo() && dettPratica.getNormEsenteSpese(); - boolean isRiparazioneLocale = dettPratica.getTcRiparazioneInterventoLocale() - && !dettPratica.getTcNuovaCostruzione(); - return isEsente || isRiparazioneLocale || !signatures.isEmpty(); - } - - // public static boolean isA07A15A16Valid(DettPratica dettPratica, - // List signatures) throws - // SystemException { - // // Se check NormArt3com3 A06/A15/A16 non obbligatorio - // return dettPratica.getNormArt3com3() || !signatures.isEmpty(); - // } - - public static boolean isA07A15Valid(DettPratica dettPratica, long intPraticaId, List signatures, - DocPratica doc) throws SystemException { - - List requiredSubjectsApp = AsseverazioniUtil.getRequiredSubjectsByCodiceDoc(doc - .getTipologia()); - List requiredSubjects = new ArrayList(); - - if (dettPratica.getLavoriPubblici()) { - for (String tip : requiredSubjectsApp) { - if (!tip.equals(TipoSoggettoUtil.DIRETTORE_LAVORI)) { - requiredSubjects.add(tip); - } - } - } else { - requiredSubjects = requiredSubjectsApp; - } - - return dettPratica.getNormArt3com3() - || isAllRequiredValid(doc.getTipologia(), intPraticaId, signatures, requiredSubjects, doc); - - } - - public static boolean isA09Valid(DettPratica dettPratica, long intPraticaId, List signatures, - DocPratica docPratica) throws SystemException { - - if (dettPratica.getNormArt3com4()) { - return true; - } - - List tipoSoggetti = new ArrayList(); - - if (dettPratica.getLavoriPubblici()) { - tipoSoggetti = Arrays.asList(TipoSoggettoUtil.PROGETTISTA); - } else { - tipoSoggetti = Arrays.asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI); - } - - for (String tipoSoggetto : tipoSoggetti) { - List signaturesPerSubject = getSignaturePerSubject(intPraticaId, signatures, - tipoSoggetto, docPratica.getClassPk()); - if (signaturesPerSubject.isEmpty()) { - return false; - } - } - return true; - - } - - // A17 richiesto se CF ditta = CF committente e in quel caso dev'essere - // firmato da almeno un soggetto - public static boolean isA17Valid(DettPratica dettPratica, List signatures) throws SystemException { - - boolean isRequired = isA17Required(dettPratica); - if (isRequired && signatures.isEmpty()) { - return false; - } - - return true; - } - - private static boolean isA17Required(DettPratica dettPratica) throws SystemException { - - long praticaId = dettPratica.getDettPraticaId(); - List ditte = SoggettoLocalServiceUtil.findByDettPratica_TipologiaSoggetto( - dettPratica.getDettPraticaId(), TipoSoggettoUtil.DITTA); - List committenti = SoggettoLocalServiceUtil.findByDettPratica_TipologiaSoggetto( - dettPratica.getDettPraticaId(), TipoSoggettoUtil.COMMITTENTE); - boolean isRequired = AsseverazioniUtil.isRequiredTerna(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17, - ditte, committenti, dettPratica); - - return isRequired; - } - - // Allegato Delega richiesto se il titolare Digitale pratica non è fra i - // committenti - public static boolean isA98Required(DettPratica dettPratica) throws SystemException, PortalException { - - return !SoggettiUtil.isTitolareInCommittenti(dettPratica.getIntPraticaId()); - } - - public static boolean isA98Valid(DettPratica dettPratica, long intPraticaId, List signatures) - throws SystemException, PortalException { - - if (SoggettiUtil.isTitolareInCommittenti(intPraticaId)) { - return true; - } else { - - boolean haveSignature = !signatures.isEmpty(); - - return haveSignature; - } - - } - public static boolean isAllRequiredValid(String codiceDoc, long intPraticaId, List signatures, List tipologiaSoggetti, DocPratica docPratica) throws SystemException { @@ -2303,4 +1315,179 @@ public class ValidazionePraticaUtil { return Collections.emptyList(); } + + private static List getFirmeObbligatorie(String tipologiaAllegato) { + return firmeObbligatorie.containsKey(tipologiaAllegato) ? firmeObbligatorie.get(tipologiaAllegato) + : vuota; + } + + private static final List vuota = new ArrayList<>(); + private static final Map> firmeObbligatorie = new HashMap>() { + private static final long serialVersionUID = 1L; + { + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A01, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A02, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A03, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A04, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A05, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + add(TipoSoggettoUtil.GEOLOGO); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A08, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A09, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + add(TipoSoggettoUtil.PROGETTISTA); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A10, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A11, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A12, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A13, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A16, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A18, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A19, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A20, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A21, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A22, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + add(TipoSoggettoUtil.GEOLOGO); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A23, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + add(TipoSoggettoUtil.GEOLOGO); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A24, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + add(TipoSoggettoUtil.ARCHEOLOGO); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A25, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A26, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.TITOLARE_DIGITALE); + } + }); + put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A27, new ArrayList() { + private static final long serialVersionUID = 1L; + { + add(TipoSoggettoUtil.PROGETTISTA); + add(TipoSoggettoUtil.DIRETTORE_LAVORI); + } + }); + } + }; } 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 cc06d627..600fec7e 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 @@ -86,6 +86,7 @@ gc-soggetto-03 = Direttore Lavori gc-soggetto-04 = Ditta Costruttrice gc-soggetto-05 = Geologo gc-soggetto-06 = Progettista +gc-soggetto-07 = Archeologo gc-soggetti-01 = Collaudatori gc-soggetti-02 = Committenti @@ -93,6 +94,7 @@ gc-soggetti-03 = Direttori Lavori gc-soggetti-04 = Ditte Costruttrici gc-soggetti-05 = Geologi gc-soggetti-06 = Progettisti +gc-soggetti-07 = Archeologi gc-soggetto-00-not-present = Titolare Digitale non presente tra i soggetti gc-soggetto-01-not-present = Collaudatore non presente tra i soggetti @@ -101,6 +103,7 @@ gc-soggetto-03-not-present = Direttore Lavori non presente tra i soggetti gc-soggetto-04-not-present = Ditta non presente tra i soggetti gc-soggetto-05-not-present = Geologo non presente tra i soggetti gc-soggetto-06-not-present = Progettista non presente tra i soggetti +gc-soggetto-07-not-present = Archeologo non presente tra i soggetti gc-soggetto-01-principale-not-present = Collaudatore principale non selezionato gc-soggetto-02-principale-not-present = Committente principale non selezionato @@ -108,6 +111,7 @@ gc-soggetto-03-principale-not-present = Direttore Lavori principale non selezion gc-soggetto-04-principale-not-present = Ditta principale non selezionato gc-soggetto-05-principale-not-present = Geologo principale non selezionato gc-soggetto-06-principale-not-present = Progettista principale non selezionato +gc-soggetto-07-principale-not-present = Archeologo principale non selezionato gc-soggetti-not-completed = Alcuni soggetti non validi diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/FascicoloPortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/FascicoloPortlet.java index 1b9a6464..3a42acee 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/FascicoloPortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/FascicoloPortlet.java @@ -27,10 +27,10 @@ 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.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.PortletKeys; 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.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.FilesImporter; import it.tref.liferay.portos.bo.util.PraticaUtil; import it.tref.liferay.portos.bo.util.ValidazionePraticaUtil; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoAllegatoBeanBuilder.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoAllegatoBeanBuilder.java index b114450d..f9adfac8 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoAllegatoBeanBuilder.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoAllegatoBeanBuilder.java @@ -5,7 +5,7 @@ import it.tref.liferay.portos.bo.model.DocPratica; import it.tref.liferay.portos.bo.report.builder.bean.ReportAvvisoAllegatoBean; import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.persistence.DocPraticaUtil; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; +import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.FilesImporter; import com.liferay.portal.kernel.exception.PortalException; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoBeanBuilder.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoBeanBuilder.java index 27ef0590..d585f06e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoBeanBuilder.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/report/builder/builder/ReportAvvisoBeanBuilder.java @@ -25,11 +25,11 @@ 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.Constants; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.StatoPraticaConstants; import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; import it.tref.liferay.portos.bo.util.AvvisoUtil; +import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.WorkflowConstants; import it.tref.liferay.portos.bo.util.WorkflowUtil; @@ -41,6 +41,7 @@ import java.util.Calendar; import java.util.List; import java.util.Locale; import java.util.Map; + import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.language.LanguageUtil; 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 78195cfd..08042ce5 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 @@ -160,319 +160,325 @@ public class IntPraticaLocalServiceClpInvoker { "com.liferay.portal.service.ServiceContext" }; - _methodName210 = "clearDb"; + _methodName209 = "svuotaDatabase2"; - _methodParameterTypes210 = new String[] { }; + _methodParameterTypes209 = new String[] { + "com.liferay.portal.service.ServiceContext" + }; - _methodName211 = "deleteIntPratica"; + _methodName211 = "clearDb"; - _methodParameterTypes211 = new String[] { - "it.tref.liferay.portos.bo.model.IntPratica", "boolean" - }; + _methodParameterTypes211 = new String[] { }; _methodName212 = "deleteIntPratica"; _methodParameterTypes212 = new String[] { - "it.tref.liferay.portos.bo.model.IntPratica" + "it.tref.liferay.portos.bo.model.IntPratica", "boolean" }; - _methodName213 = "cloneIntPratica"; + _methodName213 = "deleteIntPratica"; _methodParameterTypes213 = new String[] { + "it.tref.liferay.portos.bo.model.IntPratica" + }; + + _methodName214 = "cloneIntPratica"; + + _methodParameterTypes214 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName215 = "updateDelegati"; + _methodName216 = "updateDelegati"; - _methodParameterTypes215 = new String[] { + _methodParameterTypes216 = new String[] { "long", "java.lang.String", "java.lang.String", "boolean" }; - _methodName216 = "fetchIntPratica"; + _methodName217 = "fetchIntPratica"; - _methodParameterTypes216 = new String[] { "long" }; + _methodParameterTypes217 = new String[] { "long" }; - _methodName217 = "findFascicoliNotProgetto"; + _methodName218 = "findFascicoliNotProgetto"; - _methodParameterTypes217 = new String[] { "int", "int" }; + _methodParameterTypes218 = new String[] { "int", "int" }; - _methodName218 = "countFascicoliNotProgetto"; + _methodName219 = "countFascicoliNotProgetto"; - _methodParameterTypes218 = new String[] { }; + _methodParameterTypes219 = new String[] { }; - _methodName220 = "addNumeroProgetto"; + _methodName221 = "addNumeroProgetto"; - _methodParameterTypes220 = new String[] { "long" }; + _methodParameterTypes221 = new String[] { "long" }; - _methodName222 = "sospendiPratica"; + _methodName223 = "sospendiPratica"; - _methodParameterTypes222 = new String[] { "long", "boolean" }; + _methodParameterTypes223 = new String[] { "long", "boolean" }; - _methodName223 = "cambiaTitolare"; + _methodName224 = "cambiaTitolare"; - _methodParameterTypes223 = new String[] { + _methodParameterTypes224 = new String[] { "long", "long", "com.liferay.portal.service.ServiceContext" }; - _methodName224 = "updateStatoPratica"; + _methodName225 = "updateStatoPratica"; - _methodParameterTypes224 = new String[] { + _methodParameterTypes225 = new String[] { "long", "long", "java.lang.String" }; - _methodName226 = "updateIntPraticaSorteggio"; + _methodName227 = "updateIntPraticaSorteggio"; - _methodParameterTypes226 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes227 = new String[] { "long", "java.util.Date" }; - _methodName227 = "updateIntPraticaSorteggio"; + _methodName228 = "updateIntPraticaSorteggio"; - _methodParameterTypes227 = new String[] { + _methodParameterTypes228 = new String[] { "long", "java.util.Date", "java.lang.String" }; - _methodName228 = "findByC_UserId"; - - _methodParameterTypes228 = new String[] { "long", "long", "int", "int" }; + _methodName229 = "findByC_UserId"; - _methodName229 = "countByC_UserId"; + _methodParameterTypes229 = new String[] { "long", "long", "int", "int" }; - _methodParameterTypes229 = new String[] { "long", "long" }; + _methodName230 = "countByC_UserId"; - _methodName230 = "fetchByOldIntPraticaId"; + _methodParameterTypes230 = new String[] { "long", "long" }; - _methodParameterTypes230 = new String[] { "long" }; + _methodName231 = "fetchByOldIntPraticaId"; - _methodName231 = "updateStatus"; + _methodParameterTypes231 = new String[] { "long" }; - _methodParameterTypes231 = new String[] { "long", "int" }; + _methodName232 = "updateStatus"; - _methodName232 = "findByCompanyIdSoggettoProgetti"; + _methodParameterTypes232 = new String[] { "long", "int" }; - _methodParameterTypes232 = new String[] { "long", "long" }; - - _methodName233 = "countByCompanyIdSoggettoProgetti"; + _methodName233 = "findByCompanyIdSoggettoProgetti"; _methodParameterTypes233 = new String[] { "long", "long" }; - _methodName235 = "findByCompanyIdSoggettoArchivio"; + _methodName234 = "countByCompanyIdSoggettoProgetti"; - _methodParameterTypes235 = new String[] { "long", "long" }; + _methodParameterTypes234 = new String[] { "long", "long" }; - _methodName236 = "countByCompanyIdSoggettoArchivio"; + _methodName236 = "findByCompanyIdSoggettoArchivio"; _methodParameterTypes236 = new String[] { "long", "long" }; - _methodName238 = "findByCompanyIdSoggettoAltriProgetti"; + _methodName237 = "countByCompanyIdSoggettoArchivio"; + + _methodParameterTypes237 = new String[] { "long", "long" }; - _methodParameterTypes238 = new String[] { "long", "long", "int", "int" }; + _methodName239 = "findByCompanyIdSoggettoAltriProgetti"; - _methodName239 = "countByCompanyIdSoggettoAltriProgetti"; + _methodParameterTypes239 = new String[] { "long", "long", "int", "int" }; - _methodParameterTypes239 = new String[] { "long", "long" }; + _methodName240 = "countByCompanyIdSoggettoAltriProgetti"; - _methodName241 = "findByCanAddFineLavori"; + _methodParameterTypes240 = new String[] { "long", "long" }; - _methodParameterTypes241 = new String[] { + _methodName242 = "findByCanAddFineLavori"; + + _methodParameterTypes242 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName242 = "countByCanAddFineLavori"; + _methodName243 = "countByCanAddFineLavori"; - _methodParameterTypes242 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes243 = new String[] { "long", "java.lang.String" }; - _methodName244 = "findByCanAddCollaudo"; + _methodName245 = "findByCanAddCollaudo"; - _methodParameterTypes244 = new String[] { + _methodParameterTypes245 = new String[] { "long", "java.lang.String", "int", "int" }; - _methodName245 = "countByCanAddCollaudo"; + _methodName246 = "countByCanAddCollaudo"; - _methodParameterTypes245 = new String[] { "long", "java.lang.String" }; + _methodParameterTypes246 = new String[] { "long", "java.lang.String" }; - _methodName247 = "search"; + _methodName248 = "search"; - _methodParameterTypes247 = new String[] { "java.util.List", "int", "int" }; + _methodParameterTypes248 = new String[] { "java.util.List", "int", "int" }; - _methodName248 = "countSearch"; + _methodName249 = "countSearch"; - _methodParameterTypes248 = new String[] { "java.util.List" }; + _methodParameterTypes249 = new String[] { "java.util.List" }; - _methodName249 = "searchWithIntPraticaId"; + _methodName250 = "searchWithIntPraticaId"; - _methodParameterTypes249 = new String[] { + _methodParameterTypes250 = new String[] { "java.util.List", "long", "int", "int" }; - _methodName250 = "countSearchWithIntPraticaId"; + _methodName251 = "countSearchWithIntPraticaId"; - _methodParameterTypes250 = new String[] { "java.util.List", "long" }; + _methodParameterTypes251 = new String[] { "java.util.List", "long" }; - _methodName251 = "allegaFileAnnullamento"; + _methodName252 = "allegaFileAnnullamento"; - _methodParameterTypes251 = new String[] { + _methodParameterTypes252 = new String[] { "long", "byte[][]", "java.lang.String", "java.lang.String", "com.liferay.portal.service.ServiceContext" }; - _methodName252 = "generateFileAnnullamento"; + _methodName253 = "generateFileAnnullamento"; - _methodParameterTypes252 = new String[] { + _methodParameterTypes253 = new String[] { "long", "com.liferay.portal.service.ServiceContext" }; - _methodName253 = "deleteFileAnnullamento"; + _methodName254 = "deleteFileAnnullamento"; - _methodParameterTypes253 = new String[] { "long" }; + _methodParameterTypes254 = new String[] { "long" }; - _methodName254 = "completeAnnullamento"; + _methodName255 = "completeAnnullamento"; - _methodParameterTypes254 = new String[] { "long" }; + _methodParameterTypes255 = new String[] { "long" }; - _methodName255 = "cambiaIstruttore"; + _methodName256 = "cambiaIstruttore"; - _methodParameterTypes255 = new String[] { "long", "long", "long" }; + _methodParameterTypes256 = new String[] { "long", "long", "long" }; - _methodName256 = "countCaricoLavoroCF"; + _methodName257 = "countCaricoLavoroCF"; - _methodParameterTypes256 = new String[] { + _methodParameterTypes257 = new String[] { "long", "java.lang.String", "java.lang.Boolean", "java.lang.Long[][]" }; - _methodName257 = "countCaricoLavoroIstruttore"; + _methodName258 = "countCaricoLavoroIstruttore"; - _methodParameterTypes257 = new String[] { + _methodParameterTypes258 = new String[] { "long", "java.lang.String", "java.lang.Boolean" }; - _methodName258 = "generateReportPratica"; + _methodName259 = "generateReportPratica"; - _methodParameterTypes258 = new String[] { + _methodParameterTypes259 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName259 = "updateModifiedDate"; + _methodName260 = "updateModifiedDate"; - _methodParameterTypes259 = new String[] { "long", "java.util.Date" }; + _methodParameterTypes260 = new String[] { "long", "java.util.Date" }; - _methodName260 = "countAutorizzazione"; + _methodName261 = "countAutorizzazione"; - _methodParameterTypes260 = new String[] { + _methodParameterTypes261 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName261 = "countSanatorie"; + _methodName262 = "countSanatorie"; - _methodParameterTypes261 = new String[] { + _methodParameterTypes262 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName262 = "countOpereMinoreImportanza"; + _methodName263 = "countOpereMinoreImportanza"; - _methodParameterTypes262 = new String[] { + _methodParameterTypes263 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName263 = "countDeposito"; + _methodName264 = "countDeposito"; - _methodParameterTypes263 = new String[] { + _methodParameterTypes264 = new String[] { "java.util.Date", "java.util.Date", "long", "boolean" }; - _methodName264 = "countVidimate"; + _methodName265 = "countVidimate"; - _methodParameterTypes264 = new String[] { + _methodParameterTypes265 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName265 = "countControllo"; + _methodName266 = "countControllo"; - _methodParameterTypes265 = new String[] { + _methodParameterTypes266 = new String[] { "java.util.Date", "java.util.Date", "long", "java.lang.String", "boolean" }; - _methodName266 = "importaVecchiFilesFascicolo"; + _methodName267 = "importaVecchiFilesFascicolo"; - _methodParameterTypes266 = new String[] { "long", "int", "int" }; + _methodParameterTypes267 = new String[] { "long", "int", "int" }; - _methodName267 = "findIntPraticaNotExist"; + _methodName268 = "findIntPraticaNotExist"; - _methodParameterTypes267 = new String[] { }; + _methodParameterTypes268 = new String[] { }; - _methodName268 = "riparaWorkflow"; + _methodName269 = "riparaWorkflow"; - _methodParameterTypes268 = new String[] { }; + _methodParameterTypes269 = new String[] { }; - _methodName269 = "reIndexFascicolo"; + _methodName270 = "reIndexFascicolo"; - _methodParameterTypes269 = new String[] { + _methodParameterTypes270 = new String[] { "it.tref.liferay.portos.bo.model.IntPratica", "long" }; - _methodName270 = "reIndexFasciolo"; - - _methodParameterTypes270 = new String[] { "java.lang.String", "long" }; - _methodName271 = "reIndexFasciolo"; - _methodParameterTypes271 = new String[] { "long", "long" }; + _methodParameterTypes271 = new String[] { "java.lang.String", "long" }; - _methodName272 = "trovaDoppioni"; + _methodName272 = "reIndexFasciolo"; - _methodParameterTypes272 = new String[] { }; + _methodParameterTypes272 = new String[] { "long", "long" }; - _methodName273 = "findByNumeroProgetto"; + _methodName273 = "trovaDoppioni"; - _methodParameterTypes273 = new String[] { "java.lang.String" }; + _methodParameterTypes273 = new String[] { }; - _methodName274 = "findByTerritorioId"; + _methodName274 = "findByNumeroProgetto"; - _methodParameterTypes274 = new String[] { "long" }; + _methodParameterTypes274 = new String[] { "java.lang.String" }; - _methodName275 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; + _methodName275 = "findByTerritorioId"; - _methodParameterTypes275 = new String[] { - "java.util.Date", "java.util.Date", "long", "java.lang.String" - }; + _methodParameterTypes275 = new String[] { "long" }; - _methodName276 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; + _methodName276 = "reportTempisticheIstruttorieAvvisiAutorizzazioni"; _methodParameterTypes276 = new String[] { - "java.util.Date", "java.util.Date", "long" + "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName277 = "reportPraticheVidimate"; + _methodName277 = "reportTempisticheIstruttorieCalcolaDataSorteggio"; _methodParameterTypes277 = new String[] { - "java.util.Date", "java.util.Date", "long", "java.lang.String" + "java.util.Date", "java.util.Date", "long" }; - _methodName278 = "reportPraticheVidimateCalcolaDataSorteggio"; + _methodName278 = "reportPraticheVidimate"; _methodParameterTypes278 = new String[] { - "java.util.Date", "java.util.Date", "long" + "java.util.Date", "java.util.Date", "long", "java.lang.String" }; - _methodName279 = "countIngressiAutorizzazioni"; + _methodName279 = "reportPraticheVidimateCalcolaDataSorteggio"; _methodParameterTypes279 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName280 = "countIngressiDepositi"; + _methodName280 = "countIngressiAutorizzazioni"; _methodParameterTypes280 = new String[] { "java.util.Date", "java.util.Date", "long" }; - _methodName281 = "countIngressiCO"; + _methodName281 = "countIngressiDepositi"; _methodParameterTypes281 = new String[] { "java.util.Date", "java.util.Date", "long" }; + + _methodName282 = "countIngressiCO"; + + _methodParameterTypes282 = new String[] { + "java.util.Date", "java.util.Date", "long" + }; } public Object invokeMethod(String name, String[] parameterTypes, @@ -638,238 +644,243 @@ public class IntPraticaLocalServiceClpInvoker { return IntPraticaLocalServiceUtil.svuotaDatabase((com.liferay.portal.service.ServiceContext)arguments[0]); } - if (_methodName210.equals(name) && - Arrays.deepEquals(_methodParameterTypes210, parameterTypes)) { - IntPraticaLocalServiceUtil.clearDb(); - - return null; + if (_methodName209.equals(name) && + Arrays.deepEquals(_methodParameterTypes209, parameterTypes)) { + return IntPraticaLocalServiceUtil.svuotaDatabase2((com.liferay.portal.service.ServiceContext)arguments[0]); } if (_methodName211.equals(name) && Arrays.deepEquals(_methodParameterTypes211, parameterTypes)) { - return IntPraticaLocalServiceUtil.deleteIntPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], - ((Boolean)arguments[1]).booleanValue()); + IntPraticaLocalServiceUtil.clearDb(); + + return null; } if (_methodName212.equals(name) && Arrays.deepEquals(_methodParameterTypes212, parameterTypes)) { - return IntPraticaLocalServiceUtil.deleteIntPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0]); + return IntPraticaLocalServiceUtil.deleteIntPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], + ((Boolean)arguments[1]).booleanValue()); } if (_methodName213.equals(name) && Arrays.deepEquals(_methodParameterTypes213, parameterTypes)) { + return IntPraticaLocalServiceUtil.deleteIntPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0]); + } + + if (_methodName214.equals(name) && + Arrays.deepEquals(_methodParameterTypes214, parameterTypes)) { return IntPraticaLocalServiceUtil.cloneIntPratica(((Long)arguments[0]).longValue(), (com.liferay.portal.service.ServiceContext)arguments[1]); } - if (_methodName215.equals(name) && - Arrays.deepEquals(_methodParameterTypes215, parameterTypes)) { + if (_methodName216.equals(name) && + Arrays.deepEquals(_methodParameterTypes216, 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 (_methodName217.equals(name) && + Arrays.deepEquals(_methodParameterTypes217, parameterTypes)) { return IntPraticaLocalServiceUtil.fetchIntPratica(((Long)arguments[0]).longValue()); } - if (_methodName217.equals(name) && - Arrays.deepEquals(_methodParameterTypes217, parameterTypes)) { + if (_methodName218.equals(name) && + Arrays.deepEquals(_methodParameterTypes218, parameterTypes)) { return IntPraticaLocalServiceUtil.findFascicoliNotProgetto(((Integer)arguments[0]).intValue(), ((Integer)arguments[1]).intValue()); } - if (_methodName218.equals(name) && - Arrays.deepEquals(_methodParameterTypes218, parameterTypes)) { + if (_methodName219.equals(name) && + Arrays.deepEquals(_methodParameterTypes219, parameterTypes)) { return IntPraticaLocalServiceUtil.countFascicoliNotProgetto(); } - if (_methodName220.equals(name) && - Arrays.deepEquals(_methodParameterTypes220, parameterTypes)) { + if (_methodName221.equals(name) && + Arrays.deepEquals(_methodParameterTypes221, parameterTypes)) { return IntPraticaLocalServiceUtil.addNumeroProgetto(((Long)arguments[0]).longValue()); } - if (_methodName222.equals(name) && - Arrays.deepEquals(_methodParameterTypes222, parameterTypes)) { + if (_methodName223.equals(name) && + Arrays.deepEquals(_methodParameterTypes223, parameterTypes)) { return IntPraticaLocalServiceUtil.sospendiPratica(((Long)arguments[0]).longValue(), ((Boolean)arguments[1]).booleanValue()); } - if (_methodName223.equals(name) && - Arrays.deepEquals(_methodParameterTypes223, parameterTypes)) { + if (_methodName224.equals(name) && + Arrays.deepEquals(_methodParameterTypes224, 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 (_methodName225.equals(name) && + Arrays.deepEquals(_methodParameterTypes225, 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 (_methodName227.equals(name) && + Arrays.deepEquals(_methodParameterTypes227, parameterTypes)) { return IntPraticaLocalServiceUtil.updateIntPraticaSorteggio(((Long)arguments[0]).longValue(), (java.util.Date)arguments[1]); } - if (_methodName227.equals(name) && - Arrays.deepEquals(_methodParameterTypes227, parameterTypes)) { + if (_methodName228.equals(name) && + Arrays.deepEquals(_methodParameterTypes228, 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 (_methodName229.equals(name) && + Arrays.deepEquals(_methodParameterTypes229, 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 (_methodName230.equals(name) && + Arrays.deepEquals(_methodParameterTypes230, parameterTypes)) { return IntPraticaLocalServiceUtil.countByC_UserId(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName230.equals(name) && - Arrays.deepEquals(_methodParameterTypes230, parameterTypes)) { + if (_methodName231.equals(name) && + Arrays.deepEquals(_methodParameterTypes231, parameterTypes)) { return IntPraticaLocalServiceUtil.fetchByOldIntPraticaId(((Long)arguments[0]).longValue()); } - if (_methodName231.equals(name) && - Arrays.deepEquals(_methodParameterTypes231, parameterTypes)) { + if (_methodName232.equals(name) && + Arrays.deepEquals(_methodParameterTypes232, parameterTypes)) { IntPraticaLocalServiceUtil.updateStatus(((Long)arguments[0]).longValue(), ((Integer)arguments[1]).intValue()); return null; } - if (_methodName232.equals(name) && - Arrays.deepEquals(_methodParameterTypes232, parameterTypes)) { + if (_methodName233.equals(name) && + Arrays.deepEquals(_methodParameterTypes233, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCompanyIdSoggettoProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName233.equals(name) && - Arrays.deepEquals(_methodParameterTypes233, parameterTypes)) { + if (_methodName234.equals(name) && + Arrays.deepEquals(_methodParameterTypes234, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCompanyIdSoggettoProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName235.equals(name) && - Arrays.deepEquals(_methodParameterTypes235, parameterTypes)) { + if (_methodName236.equals(name) && + Arrays.deepEquals(_methodParameterTypes236, parameterTypes)) { return IntPraticaLocalServiceUtil.findByCompanyIdSoggettoArchivio(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName236.equals(name) && - Arrays.deepEquals(_methodParameterTypes236, parameterTypes)) { + if (_methodName237.equals(name) && + Arrays.deepEquals(_methodParameterTypes237, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCompanyIdSoggettoArchivio(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName238.equals(name) && - Arrays.deepEquals(_methodParameterTypes238, parameterTypes)) { + if (_methodName239.equals(name) && + Arrays.deepEquals(_methodParameterTypes239, 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 (_methodName240.equals(name) && + Arrays.deepEquals(_methodParameterTypes240, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCompanyIdSoggettoAltriProgetti(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue()); } - if (_methodName241.equals(name) && - Arrays.deepEquals(_methodParameterTypes241, parameterTypes)) { + if (_methodName242.equals(name) && + Arrays.deepEquals(_methodParameterTypes242, 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 (_methodName243.equals(name) && + Arrays.deepEquals(_methodParameterTypes243, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCanAddFineLavori(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1]); } - if (_methodName244.equals(name) && - Arrays.deepEquals(_methodParameterTypes244, parameterTypes)) { + if (_methodName245.equals(name) && + Arrays.deepEquals(_methodParameterTypes245, 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 (_methodName246.equals(name) && + Arrays.deepEquals(_methodParameterTypes246, parameterTypes)) { return IntPraticaLocalServiceUtil.countByCanAddCollaudo(((Long)arguments[0]).longValue(), (java.lang.String)arguments[1]); } - if (_methodName247.equals(name) && - Arrays.deepEquals(_methodParameterTypes247, parameterTypes)) { + if (_methodName248.equals(name) && + Arrays.deepEquals(_methodParameterTypes248, 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 (_methodName249.equals(name) && + Arrays.deepEquals(_methodParameterTypes249, parameterTypes)) { return IntPraticaLocalServiceUtil.countSearch((java.util.List)arguments[0]); } - if (_methodName249.equals(name) && - Arrays.deepEquals(_methodParameterTypes249, parameterTypes)) { + if (_methodName250.equals(name) && + Arrays.deepEquals(_methodParameterTypes250, 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 (_methodName251.equals(name) && + Arrays.deepEquals(_methodParameterTypes251, parameterTypes)) { return IntPraticaLocalServiceUtil.countSearchWithIntPraticaId((java.util.List)arguments[0], ((Long)arguments[1]).longValue()); } - if (_methodName251.equals(name) && - Arrays.deepEquals(_methodParameterTypes251, parameterTypes)) { + if (_methodName252.equals(name) && + Arrays.deepEquals(_methodParameterTypes252, 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 (_methodName253.equals(name) && + Arrays.deepEquals(_methodParameterTypes253, parameterTypes)) { return IntPraticaLocalServiceUtil.generateFileAnnullamento(((Long)arguments[0]).longValue(), (com.liferay.portal.service.ServiceContext)arguments[1]); } - if (_methodName253.equals(name) && - Arrays.deepEquals(_methodParameterTypes253, parameterTypes)) { + if (_methodName254.equals(name) && + Arrays.deepEquals(_methodParameterTypes254, parameterTypes)) { IntPraticaLocalServiceUtil.deleteFileAnnullamento(((Long)arguments[0]).longValue()); return null; } - if (_methodName254.equals(name) && - Arrays.deepEquals(_methodParameterTypes254, parameterTypes)) { + if (_methodName255.equals(name) && + Arrays.deepEquals(_methodParameterTypes255, parameterTypes)) { IntPraticaLocalServiceUtil.completeAnnullamento(((Long)arguments[0]).longValue()); return null; } - if (_methodName255.equals(name) && - Arrays.deepEquals(_methodParameterTypes255, parameterTypes)) { + if (_methodName256.equals(name) && + Arrays.deepEquals(_methodParameterTypes256, parameterTypes)) { IntPraticaLocalServiceUtil.cambiaIstruttore(((Long)arguments[0]).longValue(), ((Long)arguments[1]).longValue(), ((Long)arguments[2]).longValue()); @@ -877,67 +888,59 @@ public class IntPraticaLocalServiceClpInvoker { return null; } - if (_methodName256.equals(name) && - Arrays.deepEquals(_methodParameterTypes256, parameterTypes)) { + if (_methodName257.equals(name) && + Arrays.deepEquals(_methodParameterTypes257, 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)) { - 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)) { - return IntPraticaLocalServiceUtil.generateReportPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], - ((Long)arguments[1]).longValue()); + return IntPraticaLocalServiceUtil.countCaricoLavoroIstruttore(((Long)arguments[0]).longValue(), + (java.lang.String)arguments[1], (java.lang.Boolean)arguments[2]); } if (_methodName259.equals(name) && Arrays.deepEquals(_methodParameterTypes259, parameterTypes)) { - return IntPraticaLocalServiceUtil.updateModifiedDate(((Long)arguments[0]).longValue(), - (java.util.Date)arguments[1]); + return IntPraticaLocalServiceUtil.generateReportPratica((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], + ((Long)arguments[1]).longValue()); } if (_methodName260.equals(name) && Arrays.deepEquals(_methodParameterTypes260, parameterTypes)) { - return IntPraticaLocalServiceUtil.countAutorizzazione((java.util.Date)arguments[0], - (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); + return IntPraticaLocalServiceUtil.updateModifiedDate(((Long)arguments[0]).longValue(), + (java.util.Date)arguments[1]); } if (_methodName261.equals(name) && Arrays.deepEquals(_methodParameterTypes261, parameterTypes)) { - return IntPraticaLocalServiceUtil.countSanatorie((java.util.Date)arguments[0], + return IntPraticaLocalServiceUtil.countAutorizzazione((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } if (_methodName262.equals(name) && Arrays.deepEquals(_methodParameterTypes262, parameterTypes)) { - return IntPraticaLocalServiceUtil.countOpereMinoreImportanza((java.util.Date)arguments[0], + return IntPraticaLocalServiceUtil.countSanatorie((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } if (_methodName263.equals(name) && Arrays.deepEquals(_methodParameterTypes263, parameterTypes)) { - return IntPraticaLocalServiceUtil.countDeposito((java.util.Date)arguments[0], - (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), - ((Boolean)arguments[3]).booleanValue()); + return IntPraticaLocalServiceUtil.countOpereMinoreImportanza((java.util.Date)arguments[0], + (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } if (_methodName264.equals(name) && Arrays.deepEquals(_methodParameterTypes264, parameterTypes)) { - return IntPraticaLocalServiceUtil.countVidimate((java.util.Date)arguments[0], + return IntPraticaLocalServiceUtil.countDeposito((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), - (java.lang.String)arguments[3], - ((Boolean)arguments[4]).booleanValue()); + ((Boolean)arguments[3]).booleanValue()); } if (_methodName265.equals(name) && Arrays.deepEquals(_methodParameterTypes265, parameterTypes)) { - return IntPraticaLocalServiceUtil.countControllo((java.util.Date)arguments[0], + 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()); @@ -945,32 +948,32 @@ public class IntPraticaLocalServiceClpInvoker { if (_methodName266.equals(name) && Arrays.deepEquals(_methodParameterTypes266, parameterTypes)) { - return IntPraticaLocalServiceUtil.importaVecchiFilesFascicolo(((Long)arguments[0]).longValue(), - ((Integer)arguments[1]).intValue(), - ((Integer)arguments[2]).intValue()); + 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 (_methodName267.equals(name) && Arrays.deepEquals(_methodParameterTypes267, parameterTypes)) { - return IntPraticaLocalServiceUtil.findIntPraticaNotExist(); + return IntPraticaLocalServiceUtil.importaVecchiFilesFascicolo(((Long)arguments[0]).longValue(), + ((Integer)arguments[1]).intValue(), + ((Integer)arguments[2]).intValue()); } if (_methodName268.equals(name) && Arrays.deepEquals(_methodParameterTypes268, parameterTypes)) { - return IntPraticaLocalServiceUtil.riparaWorkflow(); + return IntPraticaLocalServiceUtil.findIntPraticaNotExist(); } if (_methodName269.equals(name) && Arrays.deepEquals(_methodParameterTypes269, parameterTypes)) { - IntPraticaLocalServiceUtil.reIndexFascicolo((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], - ((Long)arguments[1]).longValue()); - - return null; + return IntPraticaLocalServiceUtil.riparaWorkflow(); } if (_methodName270.equals(name) && Arrays.deepEquals(_methodParameterTypes270, parameterTypes)) { - IntPraticaLocalServiceUtil.reIndexFasciolo((java.lang.String)arguments[0], + IntPraticaLocalServiceUtil.reIndexFascicolo((it.tref.liferay.portos.bo.model.IntPratica)arguments[0], ((Long)arguments[1]).longValue()); return null; @@ -978,7 +981,7 @@ public class IntPraticaLocalServiceClpInvoker { if (_methodName271.equals(name) && Arrays.deepEquals(_methodParameterTypes271, parameterTypes)) { - IntPraticaLocalServiceUtil.reIndexFasciolo(((Long)arguments[0]).longValue(), + IntPraticaLocalServiceUtil.reIndexFasciolo((java.lang.String)arguments[0], ((Long)arguments[1]).longValue()); return null; @@ -986,59 +989,67 @@ public class IntPraticaLocalServiceClpInvoker { if (_methodName272.equals(name) && Arrays.deepEquals(_methodParameterTypes272, parameterTypes)) { - return IntPraticaLocalServiceUtil.trovaDoppioni(); + IntPraticaLocalServiceUtil.reIndexFasciolo(((Long)arguments[0]).longValue(), + ((Long)arguments[1]).longValue()); + + return null; } if (_methodName273.equals(name) && Arrays.deepEquals(_methodParameterTypes273, parameterTypes)) { - return IntPraticaLocalServiceUtil.findByNumeroProgetto((java.lang.String)arguments[0]); + return IntPraticaLocalServiceUtil.trovaDoppioni(); } if (_methodName274.equals(name) && Arrays.deepEquals(_methodParameterTypes274, parameterTypes)) { - return IntPraticaLocalServiceUtil.findByTerritorioId(((Long)arguments[0]).longValue()); + return IntPraticaLocalServiceUtil.findByNumeroProgetto((java.lang.String)arguments[0]); } if (_methodName275.equals(name) && Arrays.deepEquals(_methodParameterTypes275, parameterTypes)) { - return IntPraticaLocalServiceUtil.reportTempisticheIstruttorieAvvisiAutorizzazioni((java.util.Date)arguments[0], - (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), - (java.lang.String)arguments[3]); + return IntPraticaLocalServiceUtil.findByTerritorioId(((Long)arguments[0]).longValue()); } if (_methodName276.equals(name) && Arrays.deepEquals(_methodParameterTypes276, parameterTypes)) { - return IntPraticaLocalServiceUtil.reportTempisticheIstruttorieCalcolaDataSorteggio((java.util.Date)arguments[0], - (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); + return IntPraticaLocalServiceUtil.reportTempisticheIstruttorieAvvisiAutorizzazioni((java.util.Date)arguments[0], + (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), + (java.lang.String)arguments[3]); } if (_methodName277.equals(name) && Arrays.deepEquals(_methodParameterTypes277, parameterTypes)) { - return IntPraticaLocalServiceUtil.reportPraticheVidimate((java.util.Date)arguments[0], - (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), - (java.lang.String)arguments[3]); + return IntPraticaLocalServiceUtil.reportTempisticheIstruttorieCalcolaDataSorteggio((java.util.Date)arguments[0], + (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } if (_methodName278.equals(name) && Arrays.deepEquals(_methodParameterTypes278, parameterTypes)) { - return IntPraticaLocalServiceUtil.reportPraticheVidimateCalcolaDataSorteggio((java.util.Date)arguments[0], - (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); + return IntPraticaLocalServiceUtil.reportPraticheVidimate((java.util.Date)arguments[0], + (java.util.Date)arguments[1], ((Long)arguments[2]).longValue(), + (java.lang.String)arguments[3]); } if (_methodName279.equals(name) && Arrays.deepEquals(_methodParameterTypes279, parameterTypes)) { - return IntPraticaLocalServiceUtil.countIngressiAutorizzazioni((java.util.Date)arguments[0], + return IntPraticaLocalServiceUtil.reportPraticheVidimateCalcolaDataSorteggio((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } if (_methodName280.equals(name) && Arrays.deepEquals(_methodParameterTypes280, parameterTypes)) { - return IntPraticaLocalServiceUtil.countIngressiDepositi((java.util.Date)arguments[0], + return IntPraticaLocalServiceUtil.countIngressiAutorizzazioni((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } if (_methodName281.equals(name) && Arrays.deepEquals(_methodParameterTypes281, parameterTypes)) { + return IntPraticaLocalServiceUtil.countIngressiDepositi((java.util.Date)arguments[0], + (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); + } + + if (_methodName282.equals(name) && + Arrays.deepEquals(_methodParameterTypes282, parameterTypes)) { return IntPraticaLocalServiceUtil.countIngressiCO((java.util.Date)arguments[0], (java.util.Date)arguments[1], ((Long)arguments[2]).longValue()); } @@ -1100,32 +1111,32 @@ public class IntPraticaLocalServiceClpInvoker { private String[] _methodParameterTypes207; private String _methodName208; private String[] _methodParameterTypes208; - private String _methodName210; - private String[] _methodParameterTypes210; + private String _methodName209; + private String[] _methodParameterTypes209; private String _methodName211; private String[] _methodParameterTypes211; private String _methodName212; private String[] _methodParameterTypes212; private String _methodName213; private String[] _methodParameterTypes213; - private String _methodName215; - private String[] _methodParameterTypes215; + private String _methodName214; + private String[] _methodParameterTypes214; 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 _methodName222; - private String[] _methodParameterTypes222; + private String _methodName219; + private String[] _methodParameterTypes219; + private String _methodName221; + private String[] _methodParameterTypes221; private String _methodName223; private String[] _methodParameterTypes223; private String _methodName224; private String[] _methodParameterTypes224; - private String _methodName226; - private String[] _methodParameterTypes226; + private String _methodName225; + private String[] _methodParameterTypes225; private String _methodName227; private String[] _methodParameterTypes227; private String _methodName228; @@ -1140,24 +1151,24 @@ public class IntPraticaLocalServiceClpInvoker { 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 _methodName247; - private String[] _methodParameterTypes247; + private String _methodName246; + private String[] _methodParameterTypes246; private String _methodName248; private String[] _methodParameterTypes248; private String _methodName249; @@ -1226,4 +1237,6 @@ public class IntPraticaLocalServiceClpInvoker { private String[] _methodParameterTypes280; private String _methodName281; private String[] _methodParameterTypes281; + private String _methodName282; + private String[] _methodParameterTypes282; } \ 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 7203a4f6..4fb6e8c5 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 @@ -344,11 +344,6 @@ public class AsseverazioneLocalServiceImpl extends AsseverazioneLocalServiceBase TipoSoggettoUtil.DIRETTORE_LAVORI, TipoSoggettoUtil.DITTA, TipoSoggettoUtil.PROGETTISTA }; - // if (SoggettiUtil.isTitolareInCommittenti(intPraticaId)) { - if (ValidazionePraticaUtil.isA98Required(dettPratica)) { - tipoSoggetti = (String[]) ArrayUtils.removeElement(tipoSoggetti, - TipoSoggettoUtil.COMMITTENTE); - } List soggettiPrincipali = soggettoLocalService .getSoggettiPrincipaliValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, tipoSoggetti); @@ -356,13 +351,7 @@ public class AsseverazioneLocalServiceImpl extends AsseverazioneLocalServiceBase } for (Soggetto soggetto : nuoviSoggetti) { - if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto())) { - if (!ValidazionePraticaUtil.isA98Required(dettPratica)) { - addAsseverazione(serviceContext.getUserId(), dettPratica.getIntPraticaId(), - dettPraticaId, soggetto.getTipologiaSoggetto(), soggetto.getCodiceFiscale(), - serviceContext); - } - } else { + if (!TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto())) { addAsseverazione(serviceContext.getUserId(), dettPratica.getIntPraticaId(), dettPraticaId, soggetto.getTipologiaSoggetto(), soggetto.getCodiceFiscale(), serviceContext); @@ -375,8 +364,7 @@ public class AsseverazioneLocalServiceImpl extends AsseverazioneLocalServiceBase List soggetti = soggettoLocalService.getValidTmpByIntPratica(dettPratica .getIntPraticaId()); for (Soggetto soggetto : soggetti) { - if ((TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto()) && !ValidazionePraticaUtil - .isA98Required(dettPratica)) + if ((TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto())) || TipoSoggettoUtil.DITTA.equalsIgnoreCase(soggetto.getTipologiaSoggetto()) || TipoSoggettoUtil.DIRETTORE_LAVORI .equalsIgnoreCase(soggetto.getTipologiaSoggetto()) 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 04c7f37a..bf9de53f 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 @@ -48,13 +48,13 @@ import it.tref.liferay.portos.bo.service.persistence.IntPraticaActionableDynamic import it.tref.liferay.portos.bo.service.persistence.IntPraticaFinderUtil; import it.tref.liferay.portos.bo.shared.bean.FirmeBean; import it.tref.liferay.portos.bo.shared.util.ConfigurazioneConstants; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.FascicoloURLUtil; import it.tref.liferay.portos.bo.shared.util.FirmeUtil; import it.tref.liferay.portos.bo.shared.util.StatoPraticaConstants; import it.tref.liferay.portos.bo.util.AvvisoUtil; import it.tref.liferay.portos.bo.util.AzioniPraticheUtil; import it.tref.liferay.portos.bo.util.Constants; +import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.MailUtil; import it.tref.liferay.portos.bo.util.PraticaUtil; import it.tref.liferay.portos.bo.util.WorkflowConstants; @@ -120,6 +120,8 @@ import com.liferay.portal.kernel.workflow.WorkflowHandlerRegistryUtil; import com.liferay.portal.kernel.workflow.WorkflowInstance; import com.liferay.portal.kernel.workflow.WorkflowTask; import com.liferay.portal.model.Company; +import com.liferay.portal.model.Group; +import com.liferay.portal.model.Organization; import com.liferay.portal.model.Role; import com.liferay.portal.model.User; import com.liferay.portal.model.WorkflowInstanceLink; @@ -144,6 +146,8 @@ import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil; import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil; import com.liferay.portlet.dynamicdatamapping.model.DDMContent; import com.liferay.portlet.dynamicdatamapping.model.DDMStorageLink; +import com.liferay.portlet.journal.model.JournalArticle; +import com.liferay.portlet.journal.model.JournalFolder; import com.liferay.portlet.messageboards.model.MBDiscussion; import com.liferay.portlet.social.model.SocialActivity; @@ -357,21 +361,44 @@ public class IntPraticaLocalServiceImpl extends IntPraticaLocalServiceBaseImpl { Connection connection = DataAccess.getUpgradeOptimizedConnection(); Statement s = connection.createStatement(); + long controlloPraticaClassNameId = ClassNameLocalServiceUtil.getClassName( + ControlloPratica.class.getName()).getClassNameId(); + long dettPraticaClassNameId = ClassNameLocalServiceUtil.getClassName(DettPratica.class.getName()) + .getClassNameId(); + long dlFileEntryClassNameId = ClassNameLocalServiceUtil.getClassName(DLFileEntry.class.getName()) + .getClassNameId(); + long dlFolderClassNameId = ClassNameLocalServiceUtil.getClassName(DLFolder.class.getName()) + .getClassNameId(); + long groupClassNameId = ClassNameLocalServiceUtil.getClassName(Group.class.getName()) + .getClassNameId(); + long mbDiscussionClassNameId = ClassNameLocalServiceUtil.getClassName( + MBDiscussion.class.getName()).getClassNameId(); + long organizationClassNameId = ClassNameLocalServiceUtil.getClassName( + Organization.class.getName()).getClassNameId(); long userClassNameId = ClassNameLocalServiceUtil.getClassName(User.class.getName()) .getClassNameId(); - esito.add("User: " + userClassNameId); + + rows = s.executeUpdate("DELETE FROM portos_bo_avviso WHERE avvisoid IN (" + + "SELECT avvisoid FROM portos_bo_avviso a LEFT JOIN portos_bo_dettpratica d " + + "ON a.classpk=d.dettpraticaid WHERE classname='" + DettPratica.class.getName() + + "' AND d.dettpraticaid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da portos_bo_avviso"); + rows = s.executeUpdate("DELETE FROM group_ WHERE groupid IN (SELECT groupid FROM group_ " + "LEFT JOIN user_ ON group_.classpk=user_.userid WHERE classnameid=" + userClassNameId + " AND user_.userid IS NULL)"); esitoLog(esito, "Cancellate " + rows + " righe da group_"); + rows = s.executeUpdate("DELETE FROM contact_ WHERE contactid IN (" + "SELECT c.contactid FROM contact_ c LEFT JOIN user_ u " + "ON c.contactid=u.contactid WHERE u.userid IS NULL)"); esitoLog(esito, "Cancellate " + rows + " righe da contact_"); + rows = s.executeUpdate("DELETE FROM usergroup WHERE usergroupid IN (" + "SELECT usergroupid FROM usergroup g LEFT JOIN user_ u ON g.userid=u.userid " + "WHERE u.userid IS NULL)"); esitoLog(esito, "Cancellate " + rows + " righe da usergroup"); + rows = s.executeUpdate("DELETE FROM usergrouprole WHERE userid IN (" + "SELECT DISTINCT x.userid FROM usergrouprole x " + "LEFT JOIN user_ u ON x.userid=u.userid " + "WHERE u.userid IS NULL) OR groupid IN (" @@ -382,6 +409,103 @@ public class IntPraticaLocalServiceImpl extends IntPraticaLocalServiceBaseImpl { + "LEFT JOIN role_ r ON x.roleid=r.roleid " + "WHERE r.roleid IS NULL)"); esitoLog(esito, "Cancellate " + rows + " righe da usergrouprole"); + rows = s.executeUpdate("DELETE FROM ddmcontent WHERE contentid IN (" + + "SELECT contentid FROM ddmcontent LEFT JOIN dlfileentrymetadata " + + "ON ddmcontent.contentid=dlfileentrymetadata.ddmstorageid WHERE name='" + + DDMStorageLink.class.getName() + + "' AND dlfileentrymetadata.fileentrymetadataid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da ddmcontent"); + + rows = s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN dlfileentry b " + + "ON a.classpk=b.fileentryid WHERE a.classnameid=" + dlFileEntryClassNameId + + " AND b.fileentryid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN dlfolder b ON a.classpk=b.folderid " + + "WHERE a.classnameid=" + dlFolderClassNameId + " AND b.folderid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN group_ b ON a.classpk=b.groupid " + + "WHERE a.classnameid=" + groupClassNameId + " AND b.groupid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN mbdiscussion b " + + "ON a.classpk=b.discussionid WHERE a.classnameid=" + mbDiscussionClassNameId + + " AND b.discussionid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN organization_ b " + + "ON a.classpk=b.organizationid WHERE a.classnameid=" + organizationClassNameId + + " AND b.organizationid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN portos_bo_controllopratica b " + + "ON a.classpk=b.controllopraticaid WHERE a.classnameid=" + controlloPraticaClassNameId + + " AND b.controllopraticaid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN portos_bo_dettpratica b " + + "ON a.classpk=b.dettpraticaid WHERE a.classnameid=" + dettPraticaClassNameId + + " AND b.dettpraticaid IS NULL)"); + rows += s.executeUpdate("DELETE FROM assetentry WHERE entryid IN (" + + "SELECT entryid FROM assetentry a LEFT JOIN user_ b ON a.classpk=b.userid " + + "WHERE a.classnameid=" + userClassNameId + " AND b.userid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da assetentry"); + + rows = s.executeUpdate("DELETE FROM resourcepermission WHERE resourcepermissionid IN (" + + "SELECT resourcepermissionid FROM resourcepermission a LEFT JOIN dlfileentry b " + + "ON a.primkey=b.fileentryid::TEXT WHERE a.name='" + DLFileEntry.class.getName() + + "' AND b.fileentryid IS NULL)"); + rows += s.executeUpdate("DELETE FROM resourcepermission WHERE resourcepermissionid IN (" + + "SELECT resourcepermissionid FROM resourcepermission a LEFT JOIN dlfolder b " + + "ON a.primkey=b.folderid::TEXT WHERE a.name='" + DLFolder.class.getName() + + "' AND b.folderid IS NULL)"); + rows += s + .executeUpdate("DELETE FROM resourcepermission WHERE resourcepermissionid IN (" + + "SELECT resourcepermissionid FROM resourcepermission a LEFT JOIN portos_bo_controllopratica b " + + "ON a.primkey=b.controllopraticaid::TEXT WHERE a.name='" + + ControlloPratica.class.getName() + "' AND b.controllopraticaid IS NULL)"); + rows += s.executeUpdate("DELETE FROM resourcepermission WHERE resourcepermissionid IN (" + + "SELECT resourcepermissionid FROM resourcepermission a LEFT JOIN user_ b " + + "ON a.primkey=b.userid::TEXT WHERE a.name='" + User.class.getName() + + "' AND b.userid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da resourcepermission"); + + rows = s.executeUpdate("DELETE FROM syncdlobject WHERE syncdlobjectid IN (" + + "SELECT syncdlobjectid FROM syncdlobject LEFT JOIN dlfileentry " + + "ON syncdlobject.typepk=dlfileentry.fileentryid WHERE type_='" + + DLSyncConstants.TYPE_FILE + "' AND dlfileentry.fileentryid IS NULL)"); + rows += s.executeUpdate("DELETE FROM syncdlobject WHERE syncdlobjectid IN (" + + "SELECT syncdlobjectid FROM syncdlobject LEFT JOIN dlfolder " + + "ON syncdlobject.typepk=dlfolder.folderid WHERE type_='" + DLSyncConstants.TYPE_FOLDER + + "' AND dlfolder.folderid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da syncdlobject"); + + rows = s.executeUpdate("DELETE FROM ratingsstats WHERE statsid IN (" + + "SELECT statsid FROM ratingsstats a LEFT JOIN dlfileentry b " + + "ON a.classpk=b.fileentryid WHERE a.classnameid=" + dlFileEntryClassNameId + + " AND b.fileentryid IS NULL)"); + rows += s.executeUpdate("DELETE FROM ratingsstats WHERE statsid IN (" + + "SELECT statsid FROM ratingsstats a LEFT JOIN dlfolder b " + + "ON a.classpk=b.folderid WHERE a.classnameid=" + dlFolderClassNameId + + " AND b.folderid IS NULL)"); + rows += s.executeUpdate("DELETE FROM ratingsstats WHERE statsid IN (" + + "SELECT statsid FROM ratingsstats a LEFT JOIN portos_bo_controllopratica b " + + "ON a.classpk=b.controllopraticaid WHERE a.classnameid=" + controlloPraticaClassNameId + + " AND b.controllopraticaid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da ratingsstats"); + + rows = s.executeUpdate("DELETE FROM mbmessage WHERE messageid IN (" + + "SELECT messageid FROM mbmessage a LEFT JOIN dlfileentry b " + + "ON a.classpk=b.fileentryid WHERE a.classnameid=" + + dlFileEntryClassNameId + " AND b.fileentryid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da mbmessage"); + + rows = s.executeUpdate("DELETE FROM mbdiscussion WHERE discussionid IN (" + + "SELECT discussionid FROM mbdiscussion a LEFT JOIN dlfileentry b " + + "ON a.classpk=b.fileentryid WHERE a.classnameid=" + + dlFileEntryClassNameId + " AND b.fileentryid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da mbdiscussion"); + + rows = s.executeUpdate("DELETE FROM mbthread WHERE threadid IN (" + + "SELECT DISTINCT mbthread.threadid FROM mbthread LEFT JOIN mbmessage " + + "ON mbthread.threadid=mbmessage.threadid WHERE mbmessage.messageid IS NULL)"); + esitoLog(esito, "Cancellate " + rows + " righe da mbthread"); } catch (SQLException | SystemException e) { esitoLog(esito, "Interrotto per errore: " + e.getMessage()); } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/SoggettoLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/SoggettoLocalServiceImpl.java index b0d64d8e..2dd77197 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/SoggettoLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/SoggettoLocalServiceImpl.java @@ -17,7 +17,7 @@ import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.DocPratica; import it.tref.liferay.portos.bo.model.Soggetto; import it.tref.liferay.portos.bo.service.base.SoggettoLocalServiceBaseImpl; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; +import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.SoggettiUtil; import it.tref.liferay.portos.bo.util.WorkflowConstants; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AllegatoManualePersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AllegatoManualePersistenceImpl.java index b040f227..5c96356f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AllegatoManualePersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AllegatoManualePersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchAllegatoManualeException; import it.tref.liferay.portos.bo.model.AllegatoManuale; import it.tref.liferay.portos.bo.model.impl.AllegatoManualeImpl; import it.tref.liferay.portos.bo.model.impl.AllegatoManualeModelImpl; +import it.tref.liferay.portos.bo.service.persistence.AllegatoManualePersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AsseverazionePersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AsseverazionePersistenceImpl.java index 63caa01d..15633d6f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AsseverazionePersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AsseverazionePersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchAsseverazioneException; import it.tref.liferay.portos.bo.model.Asseverazione; import it.tref.liferay.portos.bo.model.impl.AsseverazioneImpl; import it.tref.liferay.portos.bo.model.impl.AsseverazioneModelImpl; +import it.tref.liferay.portos.bo.service.persistence.AsseverazionePersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AvvisoPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AvvisoPersistenceImpl.java index b95c271d..38e33edc 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AvvisoPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/AvvisoPersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchAvvisoException; import it.tref.liferay.portos.bo.model.Avviso; import it.tref.liferay.portos.bo.model.impl.AvvisoImpl; import it.tref.liferay.portos.bo.model.impl.AvvisoModelImpl; +import it.tref.liferay.portos.bo.service.persistence.AvvisoPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/CollaudoPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/CollaudoPersistenceImpl.java index a0e6a43b..4ce032ca 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/CollaudoPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/CollaudoPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchCollaudoException; import it.tref.liferay.portos.bo.model.Collaudo; import it.tref.liferay.portos.bo.model.impl.CollaudoImpl; import it.tref.liferay.portos.bo.model.impl.CollaudoModelImpl; +import it.tref.liferay.portos.bo.service.persistence.CollaudoPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunePersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunePersistenceImpl.java index b0b64b21..4a23bffd 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunePersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunePersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchComuneException; import it.tref.liferay.portos.bo.model.Comune; import it.tref.liferay.portos.bo.model.impl.ComuneImpl; import it.tref.liferay.portos.bo.model.impl.ComuneModelImpl; +import it.tref.liferay.portos.bo.service.persistence.ComunePersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunicazionePersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunicazionePersistenceImpl.java index 0b7f9ee2..f5b8166f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunicazionePersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ComunicazionePersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchComunicazioneException; import it.tref.liferay.portos.bo.model.Comunicazione; import it.tref.liferay.portos.bo.model.impl.ComunicazioneImpl; import it.tref.liferay.portos.bo.model.impl.ComunicazioneModelImpl; +import it.tref.liferay.portos.bo.service.persistence.ComunicazionePersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ConfigurazionePersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ConfigurazionePersistenceImpl.java index 66507dd0..32809343 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ConfigurazionePersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ConfigurazionePersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchConfigurazioneException; import it.tref.liferay.portos.bo.model.Configurazione; import it.tref.liferay.portos.bo.model.impl.ConfigurazioneImpl; import it.tref.liferay.portos.bo.model.impl.ConfigurazioneModelImpl; +import it.tref.liferay.portos.bo.service.persistence.ConfigurazionePersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ControlloPraticaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ControlloPraticaPersistenceImpl.java index 48cf51eb..a4fa6f91 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ControlloPraticaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ControlloPraticaPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchControlloPraticaException; import it.tref.liferay.portos.bo.model.ControlloPratica; import it.tref.liferay.portos.bo.model.impl.ControlloPraticaImpl; import it.tref.liferay.portos.bo.model.impl.ControlloPraticaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.ControlloPraticaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DelegaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DelegaPersistenceImpl.java index 402cecd0..8c56fb32 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DelegaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DelegaPersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchDelegaException; import it.tref.liferay.portos.bo.model.Delega; import it.tref.liferay.portos.bo.model.impl.DelegaImpl; import it.tref.liferay.portos.bo.model.impl.DelegaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.DelegaPersistence; import java.io.Serializable; 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 c7e5131d..f2c2fdfd 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 @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchDettPraticaException; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.impl.DettPraticaImpl; import it.tref.liferay.portos.bo.model.impl.DettPraticaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.DettPraticaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocAggiuntivaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocAggiuntivaPersistenceImpl.java index 649a5476..c25ae1dc 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocAggiuntivaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocAggiuntivaPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchDocAggiuntivaException; import it.tref.liferay.portos.bo.model.DocAggiuntiva; import it.tref.liferay.portos.bo.model.impl.DocAggiuntivaImpl; import it.tref.liferay.portos.bo.model.impl.DocAggiuntivaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.DocAggiuntivaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocPraticaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocPraticaPersistenceImpl.java index 42630357..255330f7 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocPraticaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/DocPraticaPersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchDocPraticaException; import it.tref.liferay.portos.bo.model.DocPratica; import it.tref.liferay.portos.bo.model.impl.DocPraticaImpl; import it.tref.liferay.portos.bo.model.impl.DocPraticaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.DocPraticaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java index a5f79405..7ba24480 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchFineLavoriException; import it.tref.liferay.portos.bo.model.FineLavori; import it.tref.liferay.portos.bo.model.impl.FineLavoriImpl; import it.tref.liferay.portos.bo.model.impl.FineLavoriModelImpl; +import it.tref.liferay.portos.bo.service.persistence.FineLavoriPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/HistoryWorkflowActionPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/HistoryWorkflowActionPersistenceImpl.java index ad50d7ea..f80406ab 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/HistoryWorkflowActionPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/HistoryWorkflowActionPersistenceImpl.java @@ -42,6 +42,7 @@ import it.tref.liferay.portos.bo.NoSuchHistoryWorkflowActionException; import it.tref.liferay.portos.bo.model.HistoryWorkflowAction; import it.tref.liferay.portos.bo.model.impl.HistoryWorkflowActionImpl; import it.tref.liferay.portos.bo.model.impl.HistoryWorkflowActionModelImpl; +import it.tref.liferay.portos.bo.service.persistence.HistoryWorkflowActionPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IUVPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IUVPersistenceImpl.java index a6ba54ac..6f469f0e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IUVPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IUVPersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchIUVException; import it.tref.liferay.portos.bo.model.IUV; import it.tref.liferay.portos.bo.model.impl.IUVImpl; import it.tref.liferay.portos.bo.model.impl.IUVModelImpl; +import it.tref.liferay.portos.bo.service.persistence.IUVPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/InfoFascicoloPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/InfoFascicoloPersistenceImpl.java index 12f22a0a..b85535de 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/InfoFascicoloPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/InfoFascicoloPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchInfoFascicoloException; import it.tref.liferay.portos.bo.model.InfoFascicolo; import it.tref.liferay.portos.bo.model.impl.InfoFascicoloImpl; import it.tref.liferay.portos.bo.model.impl.InfoFascicoloModelImpl; +import it.tref.liferay.portos.bo.service.persistence.InfoFascicoloPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IntPraticaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IntPraticaPersistenceImpl.java index 307036e1..ee52c9b7 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IntPraticaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/IntPraticaPersistenceImpl.java @@ -48,6 +48,7 @@ import it.tref.liferay.portos.bo.NoSuchIntPraticaException; import it.tref.liferay.portos.bo.model.IntPratica; import it.tref.liferay.portos.bo.model.impl.IntPraticaImpl; import it.tref.liferay.portos.bo.model.impl.IntPraticaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.IntPraticaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/PagamentoPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/PagamentoPersistenceImpl.java index 8dbf29df..ee3b3b9b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/PagamentoPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/PagamentoPersistenceImpl.java @@ -46,6 +46,7 @@ import it.tref.liferay.portos.bo.NoSuchPagamentoException; import it.tref.liferay.portos.bo.model.Pagamento; import it.tref.liferay.portos.bo.model.impl.PagamentoImpl; import it.tref.liferay.portos.bo.model.impl.PagamentoModelImpl; +import it.tref.liferay.portos.bo.service.persistence.PagamentoPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ParereGeologoPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ParereGeologoPersistenceImpl.java index c6ce3907..e4133c60 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ParereGeologoPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ParereGeologoPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchParereGeologoException; import it.tref.liferay.portos.bo.model.ParereGeologo; import it.tref.liferay.portos.bo.model.impl.ParereGeologoImpl; import it.tref.liferay.portos.bo.model.impl.ParereGeologoModelImpl; +import it.tref.liferay.portos.bo.service.persistence.ParereGeologoPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ProvinciaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ProvinciaPersistenceImpl.java index daa33e1b..2c7a846f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ProvinciaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/ProvinciaPersistenceImpl.java @@ -43,6 +43,7 @@ import it.tref.liferay.portos.bo.NoSuchProvinciaException; import it.tref.liferay.portos.bo.model.Provincia; import it.tref.liferay.portos.bo.model.impl.ProvinciaImpl; import it.tref.liferay.portos.bo.model.impl.ProvinciaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.ProvinciaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SoggettoPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SoggettoPersistenceImpl.java index 29c4a390..ef2db5f2 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SoggettoPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SoggettoPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchSoggettoException; import it.tref.liferay.portos.bo.model.Soggetto; import it.tref.liferay.portos.bo.model.impl.SoggettoImpl; import it.tref.liferay.portos.bo.model.impl.SoggettoModelImpl; +import it.tref.liferay.portos.bo.service.persistence.SoggettoPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SorteggioPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SorteggioPersistenceImpl.java index ec8a983f..fc566b28 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SorteggioPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/SorteggioPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchSorteggioException; import it.tref.liferay.portos.bo.model.Sorteggio; import it.tref.liferay.portos.bo.model.impl.SorteggioImpl; import it.tref.liferay.portos.bo.model.impl.SorteggioModelImpl; +import it.tref.liferay.portos.bo.service.persistence.SorteggioPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/StoricoSoggettoPraticaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/StoricoSoggettoPraticaPersistenceImpl.java index 78333501..0c095d3d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/StoricoSoggettoPraticaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/StoricoSoggettoPraticaPersistenceImpl.java @@ -42,6 +42,7 @@ import it.tref.liferay.portos.bo.NoSuchStoricoSoggettoPraticaException; import it.tref.liferay.portos.bo.model.StoricoSoggettoPratica; import it.tref.liferay.portos.bo.model.impl.StoricoSoggettoPraticaImpl; import it.tref.liferay.portos.bo.model.impl.StoricoSoggettoPraticaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.StoricoSoggettoPraticaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TempisticaPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TempisticaPersistenceImpl.java index 720078c4..252fc452 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TempisticaPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TempisticaPersistenceImpl.java @@ -45,6 +45,7 @@ import it.tref.liferay.portos.bo.NoSuchTempisticaException; import it.tref.liferay.portos.bo.model.Tempistica; import it.tref.liferay.portos.bo.model.impl.TempisticaImpl; import it.tref.liferay.portos.bo.model.impl.TempisticaModelImpl; +import it.tref.liferay.portos.bo.service.persistence.TempisticaPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TerritorioPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TerritorioPersistenceImpl.java index a9c7f7d5..c8e0dee9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TerritorioPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/TerritorioPersistenceImpl.java @@ -44,6 +44,7 @@ import it.tref.liferay.portos.bo.NoSuchTerritorioException; import it.tref.liferay.portos.bo.model.Territorio; import it.tref.liferay.portos.bo.model.impl.TerritorioImpl; import it.tref.liferay.portos.bo.model.impl.TerritorioModelImpl; +import it.tref.liferay.portos.bo.service.persistence.TerritorioPersistence; import java.io.Serializable; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/UtentePortosPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/UtentePortosPersistenceImpl.java index 89f06b61..83b7ed61 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/UtentePortosPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/UtentePortosPersistenceImpl.java @@ -43,6 +43,7 @@ import it.tref.liferay.portos.bo.NoSuchUtentePortosException; import it.tref.liferay.portos.bo.model.UtentePortos; import it.tref.liferay.portos.bo.model.impl.UtentePortosImpl; import it.tref.liferay.portos.bo.model.impl.UtentePortosModelImpl; +import it.tref.liferay.portos.bo.service.persistence.UtentePortosPersistence; import java.io.Serializable; 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 426c2d9d..f3a9f0ee 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=2521 - build.date=1599034143404 + build.number=2536 + build.date=1599139129864 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/cronologia/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/cronologia/view.jsp index c064d7bd..2a9a3003 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/cronologia/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/cronologia/view.jsp @@ -1,5 +1,5 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="com.liferay.portal.service.GroupLocalServiceUtil"%> <%@page import="com.liferay.portal.model.User"%> <%@page import="com.liferay.portal.service.UserLocalServiceUtil"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati.jsp index 65b249fb..90dada08 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati.jsp @@ -7,7 +7,7 @@ <%@page import="com.liferay.portlet.documentlibrary.service.DLFileEntryServiceUtil"%> <%@page import="java.text.DateFormat"%> <%@page import="javax.swing.text.html.parser.DocumentParser"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.util.MockAllegato"%> <%@page import="java.util.List"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati_annullamento.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati_annullamento.jsp index d23ac1a6..b14832d0 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati_annullamento.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_allegati_annullamento.jsp @@ -7,7 +7,7 @@ <%@page import="com.liferay.portlet.documentlibrary.service.DLFileEntryServiceUtil"%> <%@page import="java.text.DateFormat"%> <%@page import="javax.swing.text.html.parser.DocumentParser"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.util.MockAllegato"%> <%@page import="java.util.List"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_co_allegati.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_co_allegati.jsp index 482574ef..ad906f19 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_co_allegati.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_co_allegati.jsp @@ -3,7 +3,7 @@ <%@page import="com.liferay.portal.kernel.servlet.ServletContextPool"%> <%@page import="java.util.ArrayList"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> <%@ include file="/html/fascicolo/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_fl_allegati.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_fl_allegati.jsp index 557c387d..600c35bf 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_fl_allegati.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_fl_allegati.jsp @@ -3,7 +3,7 @@ <%@page import="com.liferay.portal.kernel.servlet.ServletContextPool"%> <%@page import="java.util.ArrayList"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> <%@ include file="/html/fascicolo/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_in_allegati.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_in_allegati.jsp index d81645c8..268623ef 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_in_allegati.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_in_allegati.jsp @@ -4,7 +4,7 @@ <%@page import="com.liferay.portal.kernel.servlet.ServletContextPool"%> <%@page import="java.util.ArrayList"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> <%@ include file="/html/fascicolo/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_va_allegati.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_va_allegati.jsp index dca53deb..6a6a1f10 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_va_allegati.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/page_va_allegati.jsp @@ -4,7 +4,7 @@ <%@page import="com.liferay.portal.kernel.servlet.ServletContextPool"%> <%@page import="java.util.ArrayList"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> <%@ include file="/html/fascicolo/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/AllegatiPraticaPortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/AllegatiPraticaPortlet.java index 89650312..3d9fb963 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/AllegatiPraticaPortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/AllegatiPraticaPortlet.java @@ -34,10 +34,10 @@ import it.tref.liferay.portos.bo.service.DocPraticaServiceUtil; import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.shared.bean.FirmeBean; import it.tref.liferay.portos.bo.shared.util.Constants; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.FirmeUtil; import it.tref.liferay.portos.bo.shared.util.PortletKeys; import it.tref.liferay.portos.bo.util.DelegheUtil; +import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.FilesImporter; import java.io.File; 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 39dc04d7..9d008dc3 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 @@ -568,25 +568,23 @@ public class FascicoloFePortlet extends MVCPortlet { } - public void addFascicolo(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addFascicolo(ActionRequest actionRequest, ActionResponse actionResponse) + throws PortalException, SystemException, IOException { - try { - long territorioId = ParamUtil.getLong(actionRequest, "territorioId"); - String tipoProcedura = ParamUtil.getString(actionRequest, "tipoProcedura"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - DettPratica dettPratica = DettPraticaServiceUtil.addDettPratica(territorioId, tipoProcedura, - serviceContext); + long comuneId = ParamUtil.getLong(actionRequest, "comune"); + Territorio territorio = TerritorioLocalServiceUtil.findByComuneId(comuneId, 0, 1).get(0); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "mvcPath", - "/html/fascicolofe/edit_fascicolo.jsp"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "dettPraticaId", - String.valueOf(dettPratica.getDettPraticaId())); - actionResponse.sendRedirect(successURL); - } catch (PortalException | SystemException e) { - _log.error(e, e); - throw e; - } + String tipoProcedura = ParamUtil.getString(actionRequest, "tipoProcedura"); + String successURL = ParamUtil.getString(actionRequest, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); + DettPratica dettPratica = DettPraticaServiceUtil.addDettPratica(territorio.getTerritorioId(), + tipoProcedura, serviceContext); + + successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "mvcPath", + "/html/fascicolofe/edit_fascicolo.jsp"); + successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "dettPraticaId", + String.valueOf(dettPratica.getDettPraticaId())); + actionResponse.sendRedirect(successURL); } public void addDelega(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { @@ -1296,12 +1294,13 @@ public class FascicoloFePortlet extends MVCPortlet { String livelloDiTutela = ParamUtil.getString(actionRequest, "livelloDiTutela"); String paesaggioLocale = ParamUtil.getString(actionRequest, "paesaggioLocale"); String vincoli = ParamUtil.getString(actionRequest, "vincoli"); - String destinazioneAltroIntervento = ParamUtil.getString(actionRequest, "destinazioneAltroIntervento"); + String destinazioneAltroIntervento = ParamUtil + .getString(actionRequest, "destinazioneAltroIntervento"); Boolean tcCostruzioniEsistenti = ParamUtil.getBoolean(actionRequest, "tcCostruzioniEsistenti"); Boolean tcManutOrdStraord = ParamUtil.getBoolean(actionRequest, "tcManutOrdStraord"); Boolean tcAltriInterventi = ParamUtil.getBoolean(actionRequest, "tcAltriInterventi"); String tcAltriInterventiDesc = ParamUtil.getString(actionRequest, "tcAltriInterventiDesc"); - + boolean collaudoStatico = ParamUtil.getBoolean(actionRequest, "collaudoStatico"); boolean noCollaudo = ParamUtil.getBoolean(actionRequest, "noCollaudo"); boolean lavoriInEconomiaCommittente = ParamUtil.getBoolean(actionRequest, @@ -1358,11 +1357,13 @@ public class FascicoloFePortlet extends MVCPortlet { boolean tcAltro = ParamUtil.getBoolean(actionRequest, "tcAltro"); String tcAltroDescrizione = ParamUtil.getString(actionRequest, "tcAltroDescrizione"); boolean tcConDispositivi = ParamUtil.getBoolean(actionRequest, "tcConDispositivi"); - boolean tcNuovaCostruzionePertinenza = ParamUtil.getBoolean(actionRequest, "tcNuovaCostruzionePertinenza"); - boolean tcInterventoOpereEscavazione = ParamUtil.getBoolean(actionRequest, "tcInterventoOpereEscavazione"); + boolean tcNuovaCostruzionePertinenza = ParamUtil.getBoolean(actionRequest, + "tcNuovaCostruzionePertinenza"); + boolean tcInterventoOpereEscavazione = ParamUtil.getBoolean(actionRequest, + "tcInterventoOpereEscavazione"); boolean tcViarch = ParamUtil.getBoolean(actionRequest, "tcViarch"); boolean tcOperaA25 = ParamUtil.getBoolean(actionRequest, "tcOperaA25"); - + // Descrizione edificio String dePiani = ParamUtil.getString(actionRequest, "dePiani"); String deAltezza = ParamUtil.getString(actionRequest, "deAltezza"); @@ -1597,9 +1598,10 @@ public class FascicoloFePortlet extends MVCPortlet { normDprg01, normDprg02, normAnr, normArt3com3, normArt3com4, normOrd01, normDm04, normDm05, normCI01, normLTC01, suap, normSismaBonus, clRischioPreInt, clRischioPostInt, intervFinPub, intervFinPubDesc, serviceContext, bozza, disabledSubmit, geoDisabledSubmit, - paesaggioLocale, livelloDiTutela, vincoli, destinazioneAltroIntervento, tcCostruzioniEsistenti, tcManutOrdStraord, - tcAltriInterventi, tcAltriInterventiDesc, noCollaudo, tcNuovaCostruzionePertinenza, tcInterventoOpereEscavazione, - tcViarch, tcOperaA25); + paesaggioLocale, livelloDiTutela, vincoli, destinazioneAltroIntervento, + tcCostruzioniEsistenti, tcManutOrdStraord, tcAltriInterventi, tcAltriInterventiDesc, + noCollaudo, tcNuovaCostruzionePertinenza, tcInterventoOpereEscavazione, tcViarch, + tcOperaA25); String redirect = ParamUtil.getString(actionRequest, "redirect"); if (Validator.isNull(redirect)) { @@ -1775,7 +1777,7 @@ public class FascicoloFePortlet extends MVCPortlet { if (disabledCollaudoStatico) { collaudoStatico = dettCheck.getCollaudoStatico(); } - + boolean noCollaudo = ParamUtil.getBoolean(actionRequest, "noCollaudo"); boolean lavoriInEconomiaCommittente = ParamUtil.getBoolean(actionRequest, @@ -2008,17 +2010,19 @@ public class FascicoloFePortlet extends MVCPortlet { String livelloDiTutela = ParamUtil.getString(actionRequest, "livelloDiTutela"); String paesaggioLocale = ParamUtil.getString(actionRequest, "paesaggioLocale"); String vincoli = ParamUtil.getString(actionRequest, "vincoli"); - String destinazioneAltroIntervento = ParamUtil.getString(actionRequest, "destinazioneAltroIntervento"); + String destinazioneAltroIntervento = ParamUtil + .getString(actionRequest, "destinazioneAltroIntervento"); Boolean tcCostruzioniEsistenti = ParamUtil.getBoolean(actionRequest, "tcCostruzioniEsistenti"); Boolean tcManutOrdStraord = ParamUtil.getBoolean(actionRequest, "tcManutOrdStraord"); Boolean tcAltriInterventi = ParamUtil.getBoolean(actionRequest, "tcAltriInterventi"); String tcAltriInterventiDesc = ParamUtil.getString(actionRequest, "tcAltriInterventiDesc"); - Boolean tcNuovaCostruzionePertinenza = ParamUtil.getBoolean(actionRequest, "tcNuovaCostruzionePertinenza"); - Boolean tcInterventoOpereEscavazione = ParamUtil.getBoolean(actionRequest, "tcInterventoOpereEscavazione"); + Boolean tcNuovaCostruzionePertinenza = ParamUtil.getBoolean(actionRequest, + "tcNuovaCostruzionePertinenza"); + Boolean tcInterventoOpereEscavazione = ParamUtil.getBoolean(actionRequest, + "tcInterventoOpereEscavazione"); Boolean tcViarch = ParamUtil.getBoolean(actionRequest, "tcViarch"); Boolean tcOperaA25 = ParamUtil.getBoolean(actionRequest, "tcOperaA25"); - try { DettPraticaServiceUtil.updateDettPratica(userId, dettPratica.getDettPraticaId(), dettPratica.getIntPraticaId(), dettPratica.getIntegrazione(), protocollo, @@ -2078,9 +2082,10 @@ public class FascicoloFePortlet extends MVCPortlet { normDprg01, normDprg02, normAnr, normArt3com3, normArt3com4, normOrd01, normDm04, normDm05, normCI01, normLTC01, suap, normSismaBonus, clRischioPreInt, clRischioPostInt, intervFinPub, intervFinPubDesc, serviceContext, bozza, disabledSubmit, geoDisabledSubmit, - paesaggioLocale, livelloDiTutela, vincoli, destinazioneAltroIntervento, tcCostruzioniEsistenti, tcManutOrdStraord, - tcAltriInterventi, tcAltriInterventiDesc, noCollaudo, tcNuovaCostruzionePertinenza, - tcInterventoOpereEscavazione, tcViarch, tcOperaA25); + paesaggioLocale, livelloDiTutela, vincoli, destinazioneAltroIntervento, + tcCostruzioniEsistenti, tcManutOrdStraord, tcAltriInterventi, tcAltriInterventiDesc, + noCollaudo, tcNuovaCostruzionePertinenza, tcInterventoOpereEscavazione, tcViarch, + tcOperaA25); String redirect = ParamUtil.getString(actionRequest, "redirect"); if (Validator.isNull(redirect)) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/util/ReportFascicoloUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/util/ReportFascicoloUtil.java index 688da1e5..5e6d8624 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/util/ReportFascicoloUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/util/ReportFascicoloUtil.java @@ -27,12 +27,12 @@ import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; import it.tref.liferay.portos.bo.shared.bean.FirmeBean; import it.tref.liferay.portos.bo.shared.bean.FirmeDetail; import it.tref.liferay.portos.bo.shared.util.Constants; -import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.shared.util.FirmeUtil; import it.tref.liferay.portos.bo.shared.util.PagamentoConstants; import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; import it.tref.liferay.portos.bo.util.AzioniPraticheUtil; +import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import java.text.MessageFormat; import java.text.SimpleDateFormat; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/edit_allegato.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/edit_allegato.jsp index 3fb288b3..b9a07a0d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/edit_allegato.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/edit_allegato.jsp @@ -6,7 +6,7 @@ <%@page import="it.tref.liferay.portos.bo.model.FineLavori"%> <%@page import="java.util.ArrayList"%> <%@page import="it.tref.liferay.portos.bo.service.DocPraticaServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="java.util.Calendar"%> 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 32167b08..59730773 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 @@ -15,7 +15,7 @@ <%@page import="it.tref.liferay.portos.bo.service.IntPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> <%@page import="it.tref.liferay.portos.bo.util.DelegheUtil"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.FirmeUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.bean.FirmeBean"%> <%@page import="it.tref.liferay.portos.bo.model.DocPratica"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view_accordion.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view_accordion.jsp index 378dc1a5..810798c9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view_accordion.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/allegatipratica/view_accordion.jsp @@ -23,7 +23,7 @@ <%@page import="com.liferay.portlet.documentlibrary.service.DLFileEntryServiceUtil"%> <%@page import="java.text.DateFormat"%> <%@page import="javax.swing.text.html.parser.DocumentParser"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="java.util.List"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.Comparator"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/abort_fascicolo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/abort_fascicolo.jsp index 0d919ebf..0001b1ca 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/abort_fascicolo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/abort_fascicolo.jsp @@ -8,7 +8,7 @@ <%@page import="com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.AsseverazioneLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Asseverazione"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="java.util.Calendar"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/add_file_asseverazione.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/add_file_asseverazione.jsp index 3b9f36ec..844da382 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/add_file_asseverazione.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/add_file_asseverazione.jsp @@ -2,7 +2,7 @@ <%@page import="it.tref.liferay.portos.bo.shared.util.PortletKeys"%> <%@page import="it.tref.liferay.portos.bo.service.AsseverazioneLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Asseverazione"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="java.util.Calendar"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/completed_fascicolo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/completed_fascicolo.jsp index 9556d4c8..0eba8766 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/completed_fascicolo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/completed_fascicolo.jsp @@ -11,7 +11,7 @@ <%@page import="com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.AsseverazioneLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Asseverazione"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="java.util.Calendar"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_cambio_soggetti.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_cambio_soggetti.jsp index 3255541a..0af17797 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_cambio_soggetti.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_cambio_soggetti.jsp @@ -18,7 +18,7 @@ <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DocPratica"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> <%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_collaudo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_collaudo.jsp index 1c94c414..a22e3351 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_collaudo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_collaudo.jsp @@ -11,7 +11,7 @@ <%@page import="it.tref.liferay.portos.bo.util.ValidazionePraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DocPratica"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@ include file="/html/fascicolofe/init.jsp" %> <% diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fascicolo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fascicolo.jsp index 3b3a5ae8..62bce510 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fascicolo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fascicolo.jsp @@ -20,7 +20,7 @@ <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DocPratica"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> <%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> @@ -203,20 +203,19 @@

<% - boolean isSectionCompleted = ValidazionePraticaUtil.isSectionCompleted(section,dettPraticaId); StringBuilder tooltipSection = new StringBuilder(); - if(!isSectionCompleted){ - List notCompleted = ValidazionePraticaUtil.notCompletedSection(section, dettPraticaId); - if(!notCompleted.isEmpty()){ - tooltipSection.append("
    "); - for(String incomplete : notCompleted){ - tooltipSection.append("
  • "+LanguageUtil.get(pageContext, incomplete)+"
  • "); - } - tooltipSection.append("
"); - } - } + List notCompleted = ValidazionePraticaUtil.notCompletedSection(section, dettPraticaId); + if (notCompleted.size() > 0 ) { + if(!notCompleted.isEmpty()){ + tooltipSection.append("
    "); + for(String incomplete : notCompleted){ + tooltipSection.append("
  • "+LanguageUtil.get(pageContext, incomplete)+"
  • "); + } + tooltipSection.append("
"); + } + } %> - +
@@ -432,61 +431,6 @@ clazz +="fa-close txt-red"; } } - } else if( DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A06.equals(codiceDoc) ){ - if(TipoSoggettoUtil.PROGETTISTA.equals(tipoSoggetto) || (TipoSoggettoUtil.DIRETTORE_LAVORI.equals(tipoSoggetto) && dettPratica.isLavoriPubblici()) || TipoSoggettoUtil.GEOLOGO.equals(tipoSoggetto)){ - boolean isValid = false; - if(dettPratica.getNormArt3com3()){ - isValid = true; - } else if(tipoSoggetto.equals(TipoSoggettoUtil.DIRETTORE_LAVORI) && signaturesPerSubject.isEmpty()){ - isValid = false; - } else if(tipoSoggetto.equals(TipoSoggettoUtil.GEOLOGO)){ - boolean progettista = AsseverazioniUtil.signaturesContains(intPraticaId, TipoSoggettoUtil.PROGETTISTA, signatures); - if(progettista || !signaturesPerSubject.isEmpty() ){ - isValid = true; - } - } else if(tipoSoggetto.equals(TipoSoggettoUtil.PROGETTISTA)){ - boolean geologo = AsseverazioniUtil.signaturesContains(intPraticaId, TipoSoggettoUtil.GEOLOGO, signatures); - if(geologo || !signaturesPerSubject.isEmpty() ){ - isValid = true; - } - } else { - isValid = true; - } - -// if(!isValid && dettPratica.isLavoriPubblici() && TipoSoggettoUtil.DIRETTORE_LAVORI.equals(tipoSoggetto)){ -// isValid = true; -// } - - clazz+= " icon-asseverazioni fa "; - if(isValid){ - clazz +="fa-check txt-green"; - } else { - clazz +="fa-close txt-red"; - } - } - } else if( DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A07.equals(codiceDoc) ){ - if(TipoSoggettoUtil.PROGETTISTA.equals(tipoSoggetto) || TipoSoggettoUtil.DIRETTORE_LAVORI.equals(tipoSoggetto) ){ - boolean isValid = false; - if(dettPratica.getNormArt3com3()){ - isValid = true; - } else if(signaturesPerSubject.isEmpty()){ - isValid = false; - } else { - isValid = true; - } - - if(!isValid && dettPratica.isLavoriPubblici() && TipoSoggettoUtil.DIRETTORE_LAVORI.equals(tipoSoggetto)){ - isValid = true; - } - - clazz+= " icon-asseverazioni fa "; - if(isValid){ - clazz +="fa-check txt-green"; - } else { - clazz +="fa-close txt-red"; - } - } - } else if( codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A09) ){ boolean isValid = false; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori.jsp index 5f4255a1..4c8435b9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori.jsp @@ -11,7 +11,7 @@ <%@page import="it.tref.liferay.portos.bo.util.ValidazionePraticaUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DocPratica"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.DocumentiPraticaUtil"%> <%@ include file="/html/fascicolofe/init.jsp" %> <% diff --git a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/TipoSoggettoUtil.java b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/TipoSoggettoUtil.java index 102f3e6f..1f788b1b 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/TipoSoggettoUtil.java +++ b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/TipoSoggettoUtil.java @@ -1,119 +1,122 @@ package it.tref.liferay.portos.bo.shared.util; - import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; public class TipoSoggettoUtil { - public static final String COLLAUDATORE = "01"; - public static final String COMMITTENTE = "02"; - public static final String DIRETTORE_LAVORI = "03"; - public static final String DITTA = "04"; - public static final String GEOLOGO = "05"; - public static final String PROGETTISTA = "06"; + public static final String TITOLARE_DIGITALE = "00"; + public static final String COLLAUDATORE = "01"; + public static final String COMMITTENTE = "02"; + public static final String DIRETTORE_LAVORI = "03"; + public static final String DITTA = "04"; + public static final String GEOLOGO = "05"; + public static final String PROGETTISTA = "06"; + public static final String ARCHEOLOGO = "07"; - public static final String JSON_CODICE_FISCALE = "codiceFiscale"; - public static final String JSON_CODICE_RUOLO = "codiceRuolo"; + public static final String JSON_CODICE_FISCALE = "codiceFiscale"; + public static final String JSON_CODICE_RUOLO = "codiceRuolo"; - public static List getAllSubjects() { - return Arrays.asList(TipoSoggettoUtil.COMMITTENTE, TipoSoggettoUtil.DITTA, TipoSoggettoUtil.PROGETTISTA, - TipoSoggettoUtil.DIRETTORE_LAVORI, TipoSoggettoUtil.GEOLOGO, TipoSoggettoUtil.COLLAUDATORE); - } + public static List getAllSubjects() { + return Arrays.asList(TipoSoggettoUtil.COMMITTENTE, TipoSoggettoUtil.DITTA, + TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI, TipoSoggettoUtil.GEOLOGO, + TipoSoggettoUtil.COLLAUDATORE); + } - public static boolean validaCodiceFiscale(String codiceFiscale, boolean ultimoCarattere) { - // conversione della stringa in caratteri maiuscoli - try { - String cf = codiceFiscale.toUpperCase().replaceAll(" ", ""); - /* - * verifica della lunghezza del codice fiscale - */ - if (cf.length() == 16) { + public static boolean validaCodiceFiscale(String codiceFiscale, boolean ultimoCarattere) { + // conversione della stringa in caratteri maiuscoli + try { + String cf = codiceFiscale.toUpperCase().replaceAll(" ", ""); + /* + * verifica della lunghezza del codice fiscale + */ + if (cf.length() == 16) { - String cfMask = - "^[a-zA-Z]{6}[0-9lmnpqrstuvLMNPQRSTUV]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9lmnpqrstuvLMNPQRSTUV]{2}([a-zA-Z]{1}[0-9lmnpqrstuvLMNPQRSTUV]{3})[a-zA-Z]{1}$"; - if (!Pattern.matches(cfMask, codiceFiscale)) - return false; - /* - * creazione della matrice con i caratteri dell'alfabeto - */ - char[] Carattere = - {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', - 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; - /* - * creazione della matrice con i valori attribuiti ai caratteri dispari, corrispondenti alla - * matrice di caratteri - */ - int[] ValoriDispari = - {1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23, 1, 0, 5, 7, - 9, 13, 15, 17, 19, 21}; - /* - * creazione della matrice con i valori attribuiti ai caratteri pari, corrispondenti alla - * matrice di caratteri - */ - int[] ValoriPari = new int[36]; - for (int i = 0; i < 26; i++) { - ValoriPari[i] = i; - } - for (int i = 26; i < 36; i++) { - ValoriPari[i] = i - 26; - } - // conversione della stringa da esaminare ad una matrice di caratteri - char[] caratteriCF = cf.toCharArray(); - int valore = 0; - for (int i = 0; i < caratteriCF.length - 1; i++) { - /* - * somma delle posizioni pari in base ai valori corrispondenti contenuti nell'array - * ValoriPari (tranne l'ultimo carattere che è quello di controllo) - */ - if ((i + 1) % 2 == 0) { - for (int j = 0; j < Carattere.length; j++) { + String cfMask = "^[a-zA-Z]{6}[0-9lmnpqrstuvLMNPQRSTUV]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9lmnpqrstuvLMNPQRSTUV]{2}([a-zA-Z]{1}[0-9lmnpqrstuvLMNPQRSTUV]{3})[a-zA-Z]{1}$"; + if (!Pattern.matches(cfMask, codiceFiscale)) + return false; + /* + * creazione della matrice con i caratteri dell'alfabeto + */ + char[] Carattere = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', + 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', + '5', '6', '7', '8', '9' }; + /* + * creazione della matrice con i valori attribuiti ai caratteri + * dispari, corrispondenti alla matrice di caratteri + */ + int[] ValoriDispari = { 1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, + 16, 10, 22, 25, 24, 23, 1, 0, 5, 7, 9, 13, 15, 17, 19, 21 }; + /* + * creazione della matrice con i valori attribuiti ai caratteri + * pari, corrispondenti alla matrice di caratteri + */ + int[] ValoriPari = new int[36]; + for (int i = 0; i < 26; i++) { + ValoriPari[i] = i; + } + for (int i = 26; i < 36; i++) { + ValoriPari[i] = i - 26; + } + // conversione della stringa da esaminare ad una matrice di + // caratteri + char[] caratteriCF = cf.toCharArray(); + int valore = 0; + for (int i = 0; i < caratteriCF.length - 1; i++) { + /* + * somma delle posizioni pari in base ai valori + * corrispondenti contenuti nell'array ValoriPari (tranne + * l'ultimo carattere che è quello di controllo) + */ + if ((i + 1) % 2 == 0) { + for (int j = 0; j < Carattere.length; j++) { - if (caratteriCF[i] == Carattere[j]) { - valore += ValoriPari[j]; - } - } - /* - * somma delle posizioni dispari in base ai valori corrispondenti contenuti nell'array - * ValoriDispari - */ - } else { - for (int j = 0; j < Carattere.length; j++) { - if (caratteriCF[i] == Carattere[j]) { - valore += ValoriDispari[j]; - } - } - } - } - /* - * ottenimento del resto della divisione per 26 e valutazione del carattere di controllo - * (ultimo carattere) - */ - valore %= 26; - for (int i = 0; i < 26; i++) { - /* - * verifica che il valore dell'ultimo carattere corrisponda al valore ottenuto attraverso - * l'algoritmo di somma precedente - */ - if (ultimoCarattere) { - if (caratteriCF[caratteriCF.length - 1] == Carattere[i]) { - if (valore == i) { - return true; - } else { - return false; - } - } - } else { - return true; - } - } - return false; - } else { - return false; - } - } catch (Exception e) { - return false; - } - } + if (caratteriCF[i] == Carattere[j]) { + valore += ValoriPari[j]; + } + } + /* + * somma delle posizioni dispari in base ai valori + * corrispondenti contenuti nell'array ValoriDispari + */ + } else { + for (int j = 0; j < Carattere.length; j++) { + if (caratteriCF[i] == Carattere[j]) { + valore += ValoriDispari[j]; + } + } + } + } + /* + * ottenimento del resto della divisione per 26 e valutazione + * del carattere di controllo (ultimo carattere) + */ + valore %= 26; + for (int i = 0; i < 26; i++) { + /* + * verifica che il valore dell'ultimo carattere corrisponda + * al valore ottenuto attraverso l'algoritmo di somma + * precedente + */ + if (ultimoCarattere) { + if (caratteriCF[caratteriCF.length - 1] == Carattere[i]) { + if (valore == i) { + return true; + } else { + return false; + } + } + } else { + return true; + } + } + return false; + } else { + return false; + } + } catch (Exception e) { + return false; + } + } }