From 96b2b3a10d3ec16a240e57d01e7bd67cf810a4b0 Mon Sep 17 00:00:00 2001 From: Salvatore La Manna Date: Wed, 28 Jul 2021 16:56:11 +0200 Subject: [PATCH] add_person --- .../it/mwg/sismica/bo/util/MappeUtil.java | 58 ++- .../bo/service/SoggettoLocalService.java | 6 + .../bo/service/SoggettoLocalServiceClp.java | 58 +++ .../bo/service/SoggettoLocalServiceUtil.java | 8 + .../service/SoggettoLocalServiceWrapper.java | 10 + .../bo/util/ValidazionePraticaUtil.java | 10 +- .../docroot/WEB-INF/sql/indexes.properties | 1 + .../docroot/WEB-INF/sql/indexes.sql | 1 + .../src/it/mwg/sismica/bo/bean/MappeBean.java | 68 +++ .../bo/portlet/RicercaPosizionePortlet.java | 3 +- .../mwg/sismica/bo/servlet/MappeServlet.java | 133 +++++ .../PaesaggisticaAdministrationPortlet.java | 9 +- .../base/SoggettoLocalServiceClpInvoker.java | 22 + .../service/impl/ComuneLocalServiceImpl.java | 1 - .../impl/IntPraticaLocalServiceImpl.java | 3 + .../impl/SoggettoLocalServiceImpl.java | 53 ++ .../docroot/WEB-INF/src/service.properties | 4 +- .../portos-bo-portlet/docroot/WEB-INF/web.xml | 8 + .../html/fascicolo/navigator/header.jsp | 31 +- .../docroot/html/fascicolo/view_fascicolo.jsp | 5 +- .../paesaggistica_administration/view.jsp | 4 +- .../docroot/html/ricerca-posizione/view.jsp | 491 ++---------------- .../sismica/fe/servlet/SorgentiServlet.java | 2 +- .../portos-fe-portlet/docroot/WEB-INF/web.xml | 6 +- .../html/fascicolofe/edit_modal_soggetto.jsp | 1 - .../html/soggettipratica/edit_soggetto.jsp | 205 ++------ .../sicilia-sue-connector-portlet-service.jar | Bin 71829 -> 71917 bytes .../it/mwg/sicilia/sue/model/Sportello.java | 2 + .../mwg/sicilia/sue/model/SportelloClp.java | 16 + .../sicilia/sue/model/SportelloWrapper.java | 5 + .../it/mwg/sicilia/sue/api/v1/Parameters.java | 19 + .../sicilia/sue/api/v1/bean/Description.java | 14 - .../sicilia/sue/api/v1/command/Command.java | 7 +- .../sue/api/v1/command/CommandList.java | 8 +- .../sue/api/v1/command/impl/AddPerson.java | 333 ++++++++++++ .../api/v1/command/impl/GetApplications.java | 4 +- .../api/v1/command/impl/GetSourceCode.java | 12 + .../sue/api/v1/command/impl/ListFields.java | 8 +- .../sue/api/v1/command/impl/ListValues.java | 4 +- .../sue/api/v1/command/impl/Manual.java | 23 +- .../sue/api/v1/command/impl/SetFields.java | 6 +- .../sue/api/v1/command/impl/SetPassword.java | 113 ++++ .../api/v1/command/impl/UploadAttachment.java | 4 +- .../v1/command/impl/ValidateApplication.java | 28 +- .../sue/api/v1/parameter/Parameter.java | 2 +- .../mwg/sicilia/sue/api/v1/util/ApiUtil.java | 13 +- ...DettPraticaUtil.java => PortosBoUtil.java} | 51 +- .../sicilia/sue/model/impl/SportelloImpl.java | 13 + .../docroot/WEB-INF/src/service.properties | 4 +- .../shared/util/ConfigurazioneConstants.java | 1 + 50 files changed, 1188 insertions(+), 703 deletions(-) create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/bean/MappeBean.java create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/servlet/MappeServlet.java delete mode 100644 liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/bean/Description.java create mode 100644 liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/AddPerson.java create mode 100644 liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetPassword.java rename liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/{DettPraticaUtil.java => PortosBoUtil.java} (82%) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/mwg/sismica/bo/util/MappeUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/mwg/sismica/bo/util/MappeUtil.java index 5514aa02..d21cb199 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/mwg/sismica/bo/util/MappeUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/mwg/sismica/bo/util/MappeUtil.java @@ -3,8 +3,11 @@ package it.mwg.sismica.bo.util; import it.tref.liferay.portos.bo.model.Comune; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.IntPratica; +import it.tref.liferay.portos.bo.model.Provincia; +import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; import it.tref.liferay.portos.bo.shared.util.ConfigurazioneConstants; import java.io.UnsupportedEncodingException; @@ -20,6 +23,7 @@ import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; +import com.liferay.portal.kernel.util.Http; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.util.WebKeys; @@ -48,14 +52,50 @@ public class MappeUtil { return getUrlComune(request, baseUrl, dettPratica, comune, readOnly); } + public static String getUrlRicerca(HttpServletRequest request, String codiceProvincia, long comuneId) + throws SystemException, PortalException { + + String url = StringPool.BLANK; + if (Validator.isNotNull(codiceProvincia)) { + String siglaProvincia = StringPool.BLANK; + String codiceBelfiore = StringPool.BLANK; + ThemeDisplay td = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); + long companyId = td.getCompanyId(); + if (0 == comuneId) { + Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(companyId, codiceProvincia); + siglaProvincia = provincia.getSigla(); + } else { + Comune comune = ComuneLocalServiceUtil.getComune(comuneId); + codiceBelfiore = comune.getCodiceBelfiore(); + } + StringBuilder cb = new StringBuilder(); + cb.append(request.isSecure() ? Http.HTTPS_WITH_SLASH : Http.HTTP_WITH_SLASH) + .append(request.getServerName()); + if ((request.isSecure() && (request.getServerPort() != Http.HTTPS_PORT)) + || (!request.isSecure() && (request.getServerPort() != Http.HTTP_PORT))) { + cb.append(StringPool.COLON).append(request.getServerPort()); + } + cb.append(request.getContextPath()).append(request.getServletPath()).append("/mappe/list?"); + if (0 == comuneId) { + cb.append("p=").append(codiceProvincia); + } else { + cb.append("c=").append(comuneId); + } + _log.info("cb = " + cb); + url = ConfigurazioneLocalServiceUtil + .findByC_ChiaveString(companyId, ConfigurazioneConstants.MAPPE_URL_IFRAME_RICERCA) + .replace("{{PROVINCIA}}", siglaProvincia).replace("{{COD_BELFIORE}}", codiceBelfiore) + .replace("{{URL}}", urlEncode(cb.toString())) + + StringPool.AMPERSAND + getAuth(companyId, request.getServerName()); + } + return url; + } + private static String getUrlComune(HttpServletRequest request, String baseUrl, DettPratica dettPratica, Comune comune, boolean readOnly) throws UnsupportedEncodingException, PortalException, SystemException { - long date = new Date().getTime() / 1000; ThemeDisplay td = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); long companyId = td.getCompanyId(); - String sharedSecret = ConfigurazioneLocalServiceUtil.findByC_ChiaveString(companyId, - ConfigurazioneConstants.MAPPE_SHARED_SECRET); String intPraticaId = StringPool.BLANK; String estremiCatastali = StringPool.BLANK; String lat = StringPool.BLANK; @@ -75,7 +115,6 @@ public class MappeUtil { IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); numeroProgetto = intPratica.getNumeroProgetto(); } - String auth = DigestUtils.sha256Hex(date + sharedSecret + request.getServerName()); String url = baseUrl; url = url .replace("{{COD_BELFIORE}}", @@ -91,12 +130,21 @@ public class MappeUtil { if (!query.equals(StringPool.BLANK)) { query += StringPool.AMPERSAND; } - query += "date=" + date + "&auth=" + auth; + query += getAuth(companyId, request.getServerName()); url = parti[0] + StringPool.QUESTION + query; _log.info(url); return url; } + private static String getAuth(long companyId, String serverName) throws SystemException { + + long date = new Date().getTime() / 1000; + String sharedSecret = ConfigurazioneLocalServiceUtil.findByC_ChiaveString(companyId, + ConfigurazioneConstants.MAPPE_SHARED_SECRET); + String auth = DigestUtils.sha256Hex(date + sharedSecret + serverName); + return "date=" + date + "&auth=" + auth; + } + private static String urlEncode(String str) { String encoded; try { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalService.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalService.java index ac3d4583..9bb23d5f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalService.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalService.java @@ -802,4 +802,10 @@ public interface SoggettoLocalService extends BaseLocalService, public java.util.List getSoggettiByIntPraticaId_DtRimozioneNull( long intPraticaId) throws com.liferay.portal.kernel.exception.SystemException; + + @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) + public java.util.Map getTipologieSoggetti(); + + @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) + public java.util.Map getAmbitiProfessionali(); } \ 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/SoggettoLocalServiceClp.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceClp.java index a84cae28..fffc2a81 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceClp.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceClp.java @@ -577,6 +577,14 @@ public class SoggettoLocalServiceClp implements SoggettoLocalService { _methodName98 = "getSoggettiByIntPraticaId_DtRimozioneNull"; _methodParameterTypes98 = new String[] { "long" }; + + _methodName99 = "getTipologieSoggetti"; + + _methodParameterTypes99 = new String[] { }; + + _methodName100 = "getAmbitiProfessionali"; + + _methodParameterTypes100 = new String[] { }; } @Override @@ -4540,6 +4548,52 @@ public class SoggettoLocalServiceClp implements SoggettoLocalService { return (java.util.List)ClpSerializer.translateOutput(returnObj); } + @Override + public java.util.Map getTipologieSoggetti() { + Object returnObj = null; + + try { + returnObj = _invokableLocalService.invokeMethod(_methodName99, + _methodParameterTypes99, new Object[] { }); + } + 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.Map)ClpSerializer.translateOutput(returnObj); + } + + @Override + public java.util.Map getAmbitiProfessionali() { + Object returnObj = null; + + try { + returnObj = _invokableLocalService.invokeMethod(_methodName100, + _methodParameterTypes100, new Object[] { }); + } + 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.Map)ClpSerializer.translateOutput(returnObj); + } + private InvokableLocalService _invokableLocalService; private String _methodName0; private String[] _methodParameterTypes0; @@ -4737,4 +4791,8 @@ public class SoggettoLocalServiceClp implements SoggettoLocalService { private String[] _methodParameterTypes97; private String _methodName98; private String[] _methodParameterTypes98; + private String _methodName99; + private String[] _methodParameterTypes99; + private String _methodName100; + private String[] _methodParameterTypes100; } \ 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/SoggettoLocalServiceUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceUtil.java index b20df9d4..5c2d86fa 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceUtil.java @@ -1103,6 +1103,14 @@ public class SoggettoLocalServiceUtil { .getSoggettiByIntPraticaId_DtRimozioneNull(intPraticaId); } + public static java.util.Map getTipologieSoggetti() { + return getService().getTipologieSoggetti(); + } + + public static java.util.Map getAmbitiProfessionali() { + return getService().getAmbitiProfessionali(); + } + public static void clearService() { _service = null; } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceWrapper.java index da02946b..13952136 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/SoggettoLocalServiceWrapper.java @@ -1153,6 +1153,16 @@ public class SoggettoLocalServiceWrapper implements SoggettoLocalService, return _soggettoLocalService.getSoggettiByIntPraticaId_DtRimozioneNull(intPraticaId); } + @Override + public java.util.Map getTipologieSoggetti() { + return _soggettoLocalService.getTipologieSoggetti(); + } + + @Override + public java.util.Map getAmbitiProfessionali() { + return _soggettoLocalService.getAmbitiProfessionali(); + } + /** * @deprecated As of 6.1.0, replaced by {@link #getWrappedService} */ 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 bce79574..af3e3efe 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 @@ -452,13 +452,9 @@ public class ValidazionePraticaUtil { } if (!intPratica.getTipoProcedura().equals(Constants.PROCEDURA_P1) && !intPratica.getTipoProcedura().equals(Constants.PROCEDURA_Q1)) { - /*if (Validator.isNull(dettPratica.getDcFoglio())) - notCompleted.add("Foglio mancante");*/ - - if (Validator.isNull(dettPratica.getDcParticelle()) - || dettPratica.getLocalizzazioneGeografica().startsWith("||")) - notCompleted.add("Particelle mancanti"); - + if (Validator.isNull(dettPratica.getDcParticelle()) && Validator.isNull(dettPratica.getEstremiCatastali())) { + notCompleted.add("estremi-catastali"); + } } if (intPratica.getTipoProcedura().equals(Constants.PROCEDURA_P10) || intPratica.getTipoProcedura().equals(Constants.PROCEDURA_Q10)) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.properties b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.properties index c7d795a0..315c6657 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.properties +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.properties @@ -187,6 +187,7 @@ IX_24A66C6C=portos_bo_ParereGeo.Uuid IX_A5C9DC3C=portos_bo_ParereGeo.Uuid_C IX_360E605D=portos_bo_Provincia.C_C +IX_9F8E6530=portos_bo_Provincia.C_P IX_BDDB41C9=portos_bo_Provincia.C_S IX_A81834CD=portos_bo_Provincia.CompanyId diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.sql b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.sql index e608cba5..7c07f634 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.sql +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/indexes.sql @@ -183,6 +183,7 @@ create unique index IX_635441BE on portos_bo_ParereGeo (uuid_, groupId); create index IX_A81834CD on portos_bo_Provincia (companyId); create unique index IX_360E605D on portos_bo_Provincia (companyId, codiceProvincia); +create unique index IX_9F8E6530 on portos_bo_Provincia (companyId, provincia); create unique index IX_BDDB41C9 on portos_bo_Provincia (companyId, sigla); create index IX_2BCFDE38 on portos_bo_Soggetto (dettPraticaId); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/bean/MappeBean.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/bean/MappeBean.java new file mode 100644 index 00000000..c0bcbf81 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/bean/MappeBean.java @@ -0,0 +1,68 @@ +package it.mwg.sismica.bo.bean; + +public class MappeBean { + + private String comune; + private String numeroProgetto; + private String descrizione; + private String estremiCatastali; + private Double lat; + private Double lng; + private String url; + + public String getComune() { + return comune; + } + + public String getDescrizione() { + return descrizione; + } + + public String getEstremiCatastali() { + return estremiCatastali; + } + + public Double getLat() { + return lat; + } + + public Double getLng() { + return lng; + } + + public String getNumeroProgetto() { + return numeroProgetto; + } + + public String getUrl() { + return url; + } + + public void setComune(String comune) { + this.comune = comune; + } + + public void setDescrizione(String descrizione) { + this.descrizione = descrizione; + } + + public void setEstremiCatastali(String estremiCatastali) { + this.estremiCatastali = estremiCatastali; + } + + public void setLat(Double lat) { + this.lat = lat; + } + + public void setLng(Double lng) { + this.lng = lng; + } + + public void setNumeroProgetto(String numeroProgetto) { + this.numeroProgetto = numeroProgetto; + } + + public void setUrl(String url) { + this.url = url; + } +} diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/portlet/RicercaPosizionePortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/portlet/RicercaPosizionePortlet.java index 15f0c4a8..c99a5145 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/portlet/RicercaPosizionePortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/portlet/RicercaPosizionePortlet.java @@ -54,7 +54,7 @@ public class RicercaPosizionePortlet extends MVCPortlet { }; public void ricerca(ActionRequest actionRequest, ActionResponse actionResponse) { - // PortalUtil.copyRequestParameters(actionRequest, actionResponse); + for (String campo : campi) { String val = ParamUtil.getString(actionRequest, campo, StringPool.BLANK); actionResponse.setRenderParameter(campo, val); @@ -63,6 +63,7 @@ public class RicercaPosizionePortlet extends MVCPortlet { public void localizzaProgetto(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, SystemException { + String numeroProgetto = ParamUtil.getString(actionRequest, "numeroProgetto"); JSONObject object = JSONFactoryUtil.createJSONObject(); if (Validator.isNotNull(numeroProgetto)) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/servlet/MappeServlet.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/servlet/MappeServlet.java new file mode 100644 index 00000000..6ad9af66 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/servlet/MappeServlet.java @@ -0,0 +1,133 @@ +package it.mwg.sismica.bo.servlet; + +import it.mwg.sismica.bo.bean.MappeBean; +import it.tref.liferay.portos.bo.model.Comune; +import it.tref.liferay.portos.bo.model.DettPratica; +import it.tref.liferay.portos.bo.model.IntPratica; +import it.tref.liferay.portos.bo.model.Territorio; +import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; +import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; +import it.tref.liferay.portos.bo.shared.util.FascicoloURLUtil; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; + +import com.liferay.portal.kernel.dao.orm.DynamicQuery; +import com.liferay.portal.kernel.dao.orm.QueryUtil; +import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil; +import com.liferay.portal.kernel.exception.PortalException; +import com.liferay.portal.kernel.exception.SystemException; +import com.liferay.portal.kernel.json.JSONFactoryUtil; +import com.liferay.portal.kernel.json.JSONSerializer; +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; +import com.liferay.portal.kernel.servlet.HttpHeaders; +import com.liferay.portal.kernel.servlet.ServletResponseUtil; +import com.liferay.portal.kernel.util.ContentTypes; +import com.liferay.portal.kernel.util.ParamUtil; +import com.liferay.portal.kernel.util.StringPool; +import com.liferay.portal.kernel.util.Validator; +import com.liferay.portal.util.PortalUtil; + +@SuppressWarnings("serial") +public class MappeServlet extends HttpServlet { + + public static final String CODICE_PROVINCIA = "p"; + public static final String COMUNE_ID = "c"; + + private static final JSONSerializer serializer = JSONFactoryUtil.createJSONSerializer().exclude("*.class"); + private static final Log _log = LogFactoryUtil.getLog(MappeServlet.class); + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + switch (request.getPathInfo()) { + case "/list": + String codiceProvincia = ParamUtil.getString(request, CODICE_PROVINCIA); + long comuneId = ParamUtil.getLong(request, COMUNE_ID); + _log.info("p=" + codiceProvincia + "&c=" + comuneId); + if (Validator.isNull(codiceProvincia) && (0 == comuneId)) { + response.sendError(HttpServletResponse.SC_BAD_REQUEST, request.getRequestURI()); + } else { + long companyId = PortalUtil.getCompanyId(request); + response.setContentType(ContentTypes.APPLICATION_JSON); + response.setCharacterEncoding(StringPool.UTF8); + String filename = (0 == comuneId ? "P-" + codiceProvincia : "C-" + comuneId) + ".json"; + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + filename + StringPool.QUOTE); + ServletResponseUtil.write(response, + serializer.serializeDeep(getPratiche(companyId, codiceProvincia, comuneId))); + } + break; + default: + response.sendError(HttpServletResponse.SC_NOT_FOUND, request.getRequestURI()); + } + } + + private static List getPratiche(long companyId, String codiceProvincia, long comuneId) { + + List result = new ArrayList<>(); + try { + Set territori = new HashSet<>(); + List comuni = Collections. emptyList(); + if (0 == comuneId) { + comuni = ComuneLocalServiceUtil.findByC_CP(companyId, codiceProvincia); + } else { + try { + comuni = Arrays. asList(ComuneLocalServiceUtil.getComune(comuneId)); + } catch (PortalException e) { + } + } + for (Comune comune : comuni) { + for (Territorio territorio : TerritorioLocalServiceUtil.findByComuneId(comune.getComuneId(), + QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { + territori.add(territorio.getTerritorioId()); + } + } + DynamicQuery dq = IntPraticaLocalServiceUtil.dynamicQuery(); + dq.add(RestrictionsFactoryUtil.in("territorioId", territori)); + dq.add(RestrictionsFactoryUtil.ne("numeroProgetto", StringPool.BLANK)); + dq.add(RestrictionsFactoryUtil.isNotNull("numeroProgetto")); + @SuppressWarnings("unchecked") + List pratiche = IntPraticaLocalServiceUtil.dynamicQuery(dq); + for (IntPratica pratica : pratiche) { + DettPratica dett = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(pratica.getIntPraticaId()); + MappeBean bean = new MappeBean(); + try { + Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(pratica.getTerritorioId()); + Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); + bean.setComune(comune.getCodiceBelfiore()); + bean.setNumeroProgetto(pratica.getNumeroProgetto()); + bean.setDescrizione(dett.getDescLongIntervento()); + bean.setEstremiCatastali(dett.getEstremiCatastali()); + String[] coordinate = StringUtils.split(dett.getLocalizzazioneGeografica(), '|'); + if (coordinate.length > 1) { + bean.setLat(Double.valueOf(coordinate[0])); + bean.setLng(Double.valueOf(coordinate[1])); + } + if (Validator.isNotNull(bean.getEstremiCatastali()) || Validator.isNotNull(bean.getLng())) { + bean.setUrl(FascicoloURLUtil.getFascicoloBOViewURL(companyId, pratica.getIntPraticaId())); + result.add(bean); + } + } catch (PortalException e) { + } + } + } catch (SystemException e) { + e.printStackTrace(); + } + return result; + } +} diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/PaesaggisticaAdministrationPortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/PaesaggisticaAdministrationPortlet.java index 7861cf3f..81b55666 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/PaesaggisticaAdministrationPortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/portlet/PaesaggisticaAdministrationPortlet.java @@ -29,19 +29,22 @@ import com.liferay.util.bridges.mvc.MVCPortlet; public class PaesaggisticaAdministrationPortlet extends MVCPortlet { private final static Log _log = LogFactoryUtil.getLog(PaesaggisticaAdministrationPortlet.class); - public void impostazioniMappe(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void impostazioniMappe(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, + SystemException { String urlIframeFE = ParamUtil.getString(actionRequest, "urlIframeFE"); String urlIframeBO = ParamUtil.getString(actionRequest, "urlIframeBO"); + String urlIframeRicerca = ParamUtil.getString(actionRequest, "urlIframeRicerca"); String sharedSecret = ParamUtil.getString(actionRequest, "sharedSecret"); - ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); + // ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); // Company company = themeDisplay.getCompany(); ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); ConfigurazioneLocalServiceUtil.storeConfig(ConfigurazioneConstants.MAPPE_URL_IFRAME_FE, urlIframeFE, serviceContext); ConfigurazioneLocalServiceUtil.storeConfig(ConfigurazioneConstants.MAPPE_URL_IFRAME_BO, urlIframeBO, serviceContext); + ConfigurazioneLocalServiceUtil.storeConfig(ConfigurazioneConstants.MAPPE_URL_IFRAME_RICERCA, urlIframeRicerca, + serviceContext); ConfigurazioneLocalServiceUtil.storeConfig(ConfigurazioneConstants.MAPPE_SHARED_SECRET, sharedSecret, serviceContext); } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/SoggettoLocalServiceClpInvoker.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/SoggettoLocalServiceClpInvoker.java index fee30c73..bd40a452 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/SoggettoLocalServiceClpInvoker.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/SoggettoLocalServiceClpInvoker.java @@ -587,6 +587,14 @@ public class SoggettoLocalServiceClpInvoker { _methodName264 = "getSoggettiByIntPraticaId_DtRimozioneNull"; _methodParameterTypes264 = new String[] { "long" }; + + _methodName265 = "getTipologieSoggetti"; + + _methodParameterTypes265 = new String[] { }; + + _methodName266 = "getAmbitiProfessionali"; + + _methodParameterTypes266 = new String[] { }; } public Object invokeMethod(String name, String[] parameterTypes, @@ -1432,6 +1440,16 @@ public class SoggettoLocalServiceClpInvoker { return SoggettoLocalServiceUtil.getSoggettiByIntPraticaId_DtRimozioneNull(((Long)arguments[0]).longValue()); } + if (_methodName265.equals(name) && + Arrays.deepEquals(_methodParameterTypes265, parameterTypes)) { + return SoggettoLocalServiceUtil.getTipologieSoggetti(); + } + + if (_methodName266.equals(name) && + Arrays.deepEquals(_methodParameterTypes266, parameterTypes)) { + return SoggettoLocalServiceUtil.getAmbitiProfessionali(); + } + throw new UnsupportedOperationException(); } @@ -1635,4 +1653,8 @@ public class SoggettoLocalServiceClpInvoker { private String[] _methodParameterTypes263; private String _methodName264; private String[] _methodParameterTypes264; + private String _methodName265; + private String[] _methodParameterTypes265; + private String _methodName266; + private String[] _methodParameterTypes266; } \ 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/ComuneLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ComuneLocalServiceImpl.java index 493acbe8..0953f31b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ComuneLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ComuneLocalServiceImpl.java @@ -173,7 +173,6 @@ public class ComuneLocalServiceImpl extends ComuneLocalServiceBaseImpl { public List findByCompanyDenominazione(long companyId, String denominazione) throws SystemException { return comunePersistence.findByC_Denominazione(companyId, denominazione); - } @Override 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 764a3c98..af37e34f 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 @@ -379,15 +379,18 @@ public class IntPraticaLocalServiceImpl extends IntPraticaLocalServiceBaseImpl { return dynamicQuery; } + @Override public int countByPosizione(double lat, double lng, int raggio) throws SystemException { List lista = findByPosizione(lat, lng, raggio); return lista.size(); } + @Override public List findByPosizione(double lat, double lng, int raggio) throws SystemException { return findByPosizione(lat, lng, raggio, QueryUtil.ALL_POS, QueryUtil.ALL_POS); } + @Override public List findByPosizione(double lat, double lng, int raggio, int start, int end) throws SystemException { DynamicQuery query = queryPosizione(); 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 285fabc3..5c0ea06d 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,12 +17,16 @@ 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.TipoSoggettoUtil; import it.tref.liferay.portos.bo.util.DocumentiPraticaUtil; import it.tref.liferay.portos.bo.util.SoggettiUtil; import it.tref.liferay.portos.bo.util.WorkflowConstants; import java.util.Date; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; +import java.util.Map; import com.liferay.portal.NoSuchRepositoryEntryException; import com.liferay.portal.kernel.dao.orm.Disjunction; @@ -32,6 +36,7 @@ import com.liferay.portal.kernel.dao.orm.ProjectionFactoryUtil; import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; +import com.liferay.portal.kernel.language.LanguageUtil; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.OrderByComparator; @@ -1227,4 +1232,52 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { dynamicQuery.add(RestrictionsFactoryUtil.isNull("dtDataRimozione")); return dynamicQuery(dynamicQuery); } + + @SuppressWarnings("serial") + private static final Map TIPOLOGIE_SOGGETTI = new LinkedHashMap() { + { + put(TipoSoggettoUtil.COMMITTENTE, + LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.COMMITTENTE)); + put(TipoSoggettoUtil.PROGETTISTA, + LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.PROGETTISTA)); + put(TipoSoggettoUtil.DIRETTORE_LAVORI, + LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.DIRETTORE_LAVORI)); + put(TipoSoggettoUtil.DITTA, LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.DITTA)); + put(TipoSoggettoUtil.GEOLOGO, LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.GEOLOGO)); + put(TipoSoggettoUtil.COLLAUDATORE, + LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.COLLAUDATORE)); + put(TipoSoggettoUtil.ARCHEOLOGO, + LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.ARCHEOLOGO)); + put(TipoSoggettoUtil.ALTRO_SOGGETTO, + LanguageUtil.get(Locale.ITALIAN, "gc-soggetto-" + TipoSoggettoUtil.ALTRO_SOGGETTO)); + } + }; + + @Override + public Map getTipologieSoggetti() { + return TIPOLOGIE_SOGGETTI; + } + + @SuppressWarnings("serial") + private static final Map AMBITI_PROFESSIONALI = new LinkedHashMap() { + { + put("strutturale", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutturale")); + put("fondazioni", LanguageUtil.get(Locale.ITALIAN, "label-ambito-fondazioni")); + put("strutt-ele", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutt-ele")); + put("solai", LanguageUtil.get(Locale.ITALIAN, "label-ambito-solai")); + put("copertura", LanguageUtil.get(Locale.ITALIAN, "label-ambito-copertura")); + put("strutt-pref", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutt-pref")); + put("strutt-in-legno", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutt-in-legno")); + put("strutt-in-acciaio", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutt-in-acciaio")); + put("strutt-in-ca", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutt-in-ca")); + put("strutt-in-muratura", LanguageUtil.get(Locale.ITALIAN, "label-ambito-strutt-in-muratura")); + put("architettonico", LanguageUtil.get(Locale.ITALIAN, "label-ambito-architettonico")); + put("ambitoProf-altro", LanguageUtil.get(Locale.ITALIAN, "label-ambito-altro")); + } + }; + + @Override + public Map getAmbitiProfessionali() { + return AMBITI_PROFESSIONALI; + } } 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 f3a5da70..e2294cb9 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=3220 - build.date=1625646212446 + build.number=3230 + build.date=1627295280447 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/web.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/web.xml index 0cf6110a..3e33b7a8 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/web.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/web.xml @@ -1,3 +1,11 @@ + + MappeServlet + it.mwg.sismica.bo.servlet.MappeServlet + + + MappeServlet + /mappe/* + \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/header.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/header.jsp index 8769c6d5..aab5a68e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/header.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/navigator/header.jsp @@ -10,17 +10,13 @@ <% - String backURL = ParamUtil.getString(request, "backURL"); - DettPratica dettPratica = (DettPratica) request.getAttribute("bean.dettPratica.lastData"); - IntPratica intPratica = (IntPratica) request.getAttribute("bean.intPratica"); - - //bug id=3 - long groupId = GroupLocalServiceUtil.getGroup(intPratica.getCompanyId(), "Portos").getGroupId(); - long plidNew = PortalUtil.getPlidFromPortletId(groupId, true, PortletKeys.FASCICOLOFE); +String backURL = ParamUtil.getString(request, "backURL"); +DettPratica dettPratica = (DettPratica) request.getAttribute("bean.dettPratica.lastData"); +IntPratica intPratica = (IntPratica) request.getAttribute("bean.intPratica"); +long groupId = GroupLocalServiceUtil.getGroup(intPratica.getCompanyId(), "Portos").getGroupId(); +long plidNew = PortalUtil.getPlidFromPortletId(groupId, true, PortletKeys.FASCICOLOFE); %> - - +
@@ -82,26 +78,23 @@ PraticaUtil.getStatoPraticaLabel(intPratica.getStatoPratica(), intPratica.getTipoProcedura()))%>
-
- - \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/view_fascicolo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/view_fascicolo.jsp index 837ba538..1209af74 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/view_fascicolo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/fascicolo/view_fascicolo.jsp @@ -34,5 +34,6 @@ request.setAttribute("bean.dettPratica.lastData", dettPraticaLastData); <%@ include file="/html/fascicolo/html_top.jspf" %> - \ No newline at end of file + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/paesaggistica_administration/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/paesaggistica_administration/view.jsp index 9ae8cd3b..93ae16f9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/paesaggistica_administration/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/paesaggistica_administration/view.jsp @@ -10,6 +10,7 @@ SimpleDateFormat simpleDateTimeFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:s long companyId = company.getCompanyId(); String urlIframeFE = ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, ConfigurazioneConstants.MAPPE_URL_IFRAME_FE); String urlIframeBO = ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, ConfigurazioneConstants.MAPPE_URL_IFRAME_BO); +String urlIframeRicerca = ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, ConfigurazioneConstants.MAPPE_URL_IFRAME_RICERCA); String sharedSecret = ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, ConfigurazioneConstants.MAPPE_SHARED_SECRET); %>
@@ -26,7 +27,8 @@ String sharedSecret = ConfigurazioneServiceUtil.findByC_ChiaveString(companyId, - + + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/ricerca-posizione/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/ricerca-posizione/view.jsp index 4a06365a..7ab9a202 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/ricerca-posizione/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/html/ricerca-posizione/view.jsp @@ -11,464 +11,46 @@ <%@page import="java.util.Locale"%> <%@page import="javax.portlet.PortletURL"%> <%@page import="it.mwg.sismica.bo.util.MappeUtil"%> - <% - -String numeroProgetto = ParamUtil.getString(request, "numeroProgetto", StringPool.BLANK); String codiceProvincia = ParamUtil.getString(request, "provincia", StringPool.BLANK); -String idComune = ParamUtil.getString(request, "comune", StringPool.BLANK); -String via = ParamUtil.getString(request, "via", StringPool.BLANK); -String lat = ParamUtil.getString(request, "lat", StringPool.BLANK); -String lng = ParamUtil.getString(request, "long", StringPool.BLANK); -String raggio = ParamUtil.getString(request, "raggio", StringPool.BLANK); - -boolean targetBlank = ParamUtil.getBoolean(request, "blank", true); -String target = (targetBlank ? "_blank" : StringPool.BLANK); - -PortletURL iteratorURL = liferayPortletResponse.createRenderURL(); -if (Validator.isNotNull(numeroProgetto)) { - iteratorURL.setParameter("numeroProgetto", numeroProgetto); -} -if (Validator.isNotNull(codiceProvincia)) { - iteratorURL.setParameter("provincia", codiceProvincia); -} -if (Validator.isNotNull(idComune)) { - iteratorURL.setParameter("comune", idComune); -} -if (Validator.isNotNull(via)) { - iteratorURL.setParameter("via", via); -} -if (Validator.isNotNull(lat)) { - iteratorURL.setParameter("lat", lat); -} -if (Validator.isNotNull(lng)) { - iteratorURL.setParameter("long", lng); -} -if (Validator.isNotNull(raggio)) { - iteratorURL.setParameter("raggio", raggio); -} -iteratorURL.setParameter("blank", String.valueOf(targetBlank)); - -DecimalFormat fmt = (DecimalFormat) NumberFormat.getInstance(Locale.ITALY); -boolean showNotes = false; -int[] raggi = { 500, 1000, 2000, 3000, 5000, 10000 }; - -String urlIframeMappe = MappeUtil.getUrlBo(request, null, null, false); - +long idComune = ParamUtil.getLong(request, "comune", 0); +String urlIframeMappe = MappeUtil.getUrlRicerca(request, codiceProvincia, idComune); %> -
-
- - - -
-
-
- - -
-
- - -
-
-
-
- -
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -
-
-
-
-
-
- -
-
- -
-
-
-
- - <% for (int i = 0; i < raggi.length; i++) { %> - <%= fmt.format(raggi[i] / 1000.0) %> Km - <% } %> - -
-
+ +
+ +
+
+ +
+
- -
-
- - - -
- -
-
-
-
- -
- -
-
-
-
-
- - - - - - - - - -
- - +
+
+
+
+
+ +
+ +
-
- - <% - int indice = searchContainer.getStart(); - double dlat = 0; - double dlng = 0; - List pratiche; - try { - dlat = Double.valueOf(lat); - dlng = Double.valueOf(lng); - int iraggio = Integer.valueOf(raggio); - pratiche = IntPraticaLocalServiceUtil.findByPosizione(dlat, dlng, iraggio, indice, - searchContainer.getEnd()); - searchContainer.setTotal(IntPraticaLocalServiceUtil.countByPosizione(dlat, dlng, iraggio)); - showNotes = pratiche.size() > 0; - } catch (Exception e) { - pratiche = new ArrayList(); - searchContainer.setTotal(0); - } - %> - - - <% - long intPraticaId = pratica.getIntPraticaId(); - DettPratica dettaglio = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica( - intPraticaId); - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(pratica.getTerritorioId()); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(themeDisplay.getCompanyId(), - comune.getCodiceProvincia()); - - Soggetto titolare = null; - String committenti = StringPool.BLANK; - String esito = StringPool.BLANK; - - if (Validator.isNotNull(dettaglio)) { - List titolari = SoggettoLocalServiceUtil.getValidByIntPratica_CodiceFiscale( - intPraticaId, dettaglio.getCodiceFiscaleDelegatoCommittente()); - if (!titolari.isEmpty()) { - titolare = titolari.get(0); - } - StringBuilder builder = new StringBuilder(); - List soggetti = SoggettoLocalServiceUtil - .findByIntPratica_TipologiaSoggetto(intPraticaId, TipoSoggettoUtil.COMMITTENTE); - for (Soggetto soggetto : soggetti) { - if (builder.length() > 0) { - builder.append("
"); - } - builder.append(soggetto.getTitle()) - .append("
") - .append(soggetto.getCodiceFiscale()); - } - committenti = builder.toString(); - esito = LanguageUtil.get(pageContext, PraticaUtil.getStatoPraticaLabel( - pratica.getStatoPratica(), intPraticaId)); - } - List avvisi = AvvisoLocalServiceUtil.findByIntPratica(intPraticaId, - QueryUtil.ALL_POS, - QueryUtil.ALL_POS, - OrderByComparatorFactoryUtil.create("portos_bo_Avviso", "createDate", false)); - int variantiCount = DettPraticaLocalServiceUtil.countCompletedByIntPraticaAndTipoPratica( - intPraticaId, Arrays.asList(TipoIntegrazioneUtil.VARIANTE)); - int integrazioniCount = DettPraticaLocalServiceUtil.countCompletedByIntPraticaAndTipoPratica( - intPraticaId, Arrays.asList(TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE)); - %> - - - - - - - - - <%= ++indice %> - - - - <%= numeroProgetto.equals(pratica.getNumeroProgetto()) ? "Riferimento
ricerca" : fmt.format(pratica.getDistanzaOrtodromica()) %> -
- - - <%= pratica.getTitle(locale, true) %> - - - - - <%= titolare.getTitle() %>
<%= titolare.getCodiceFiscale() %> -
-
- - - <%= committenti %> - - - - <%= LanguageUtil.get(pageContext, PraticaUtil.getStatoPraticaLabel(pratica.getStatoPratica(), intPraticaId)) %> - - <% - if (!avvisi.isEmpty()) { - StringBuilder sb = new StringBuilder(); - sb.append("
    "); - for (Avviso avviso : avvisi) { - sb.append("
  • "); - sb.append(LanguageUtil.get(pageContext, avviso.translateTipoDocumento())); - sb.append("
  • "); - } - sb.append("
"); - %> - - - - - " target="<%= target %>"> - - <%= avvisi.size() %> - - - <% - } - %> - - - - V - <%= variantiCount %> - - - - - - - I - <%= integrazioniCount %> - - - - - - - - P - - - - - - - T - - - - - - - - - P - - - - - - - T - - - - -
-
- - - Territorio: <%= comune.getDenominazione() %> - <%= (dettaglio == null || dettaglio.getLocalita().isEmpty()) ? - "" : - "(Loc. " + dettaglio.getLocalita() + ")" - %> - <%= provincia.getProvincia() %>
- Localizzazione: <%= dettaglio == null ? "" : dettaglio.getVia() %>
- <%= LanguageUtil.get(pageContext, "tipo_procedura_" + pratica.getTipoProcedura()) %>

- <%= dettaglio == null ? "" : dettaglio.getDescLongIntervento() %> -
-
- -
- -
-
- - Note:
- <%= LanguageUtil.get(pageContext, "distanza-tooltip") %> -
-
-
-
diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/mwg/sismica/fe/servlet/SorgentiServlet.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/mwg/sismica/fe/servlet/SorgentiServlet.java index 32b1cffa..3c6b170d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/mwg/sismica/fe/servlet/SorgentiServlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/mwg/sismica/fe/servlet/SorgentiServlet.java @@ -57,8 +57,8 @@ public class SorgentiServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String pathInfo = request.getPathInfo(); + String pathInfo = request.getPathInfo(); if (Validator.isNull(pathInfo) || pathInfo.equals(StringPool.FORWARD_SLASH)) { request.getRequestDispatcher("/html/sorgenti/form.jsp").forward(request, response); } else { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/web.xml b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/web.xml index d6eb336f..4c63ef09 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/web.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/web.xml @@ -1,14 +1,12 @@ - SorgentiServlet it.mwg.sismica.fe.servlet.SorgentiServlet - SorgentiServlet - /sorgenti-sismica/* + /sorgenti-paesaggistica/* \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_modal_soggetto.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_modal_soggetto.jsp index 475d3585..c6e1ad8b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_modal_soggetto.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_modal_soggetto.jsp @@ -2,7 +2,6 @@ <%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> <%@ include file="/html/fascicolofe/init.jsp" %> - <% String formName = ParamUtil.getString(request, "formName","fm"); long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp index 33d5871a..139f36b7 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/edit_soggetto.jsp @@ -1,3 +1,5 @@ +<%@page import="it.tref.liferay.portos.bo.util.SoggettiUtil"%> +<%@page import="java.util.Map.Entry"%> <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.liferay.portal.kernel.workflow.WorkflowConstants"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> @@ -34,6 +36,7 @@ if (soggetto == null) { } } DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); +long intPraticaId = dettPratica.getIntPraticaId(); request.setAttribute("bean.soggetto", soggetto); boolean requiredDoc = TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO.equals(dettPratica.getTipoIntegrazione()); boolean disabledInput = !ParamUtil.getBoolean(request, "isEditable"); @@ -48,12 +51,12 @@ boolean inBO = ParamUtil.getBoolean(request, "inBO"); - + - + @@ -204,38 +207,15 @@ boolean inBO = ParamUtil.getBoolean(request, "inBO"); Tipologia - - - - - - - - + <% + for (String tipo : SoggettoLocalServiceUtil.getTipologieSoggetti().keySet()) { + %> + + <% + } + %> @@ -246,62 +226,17 @@ boolean inBO = ParamUtil.getBoolean(request, "inBO"); Tipologia - - - - - - - - - - - - - - - - - - - - - - - - + <% + for (String tipo : SoggettoLocalServiceUtil.getTipologieSoggetti().keySet()) { + %> + + + + <% + } + %>
@@ -347,42 +282,16 @@ boolean inBO = ParamUtil.getBoolean(request, "inBO");
- - - - - - - - - - - - + <% + for (Entry ambito : SoggettoLocalServiceUtil + .getAmbitiProfessionali().entrySet()) { + %> + + <% + } + %>
@@ -390,42 +299,16 @@ boolean inBO = ParamUtil.getBoolean(request, "inBO");
- - ambito : SoggettoLocalServiceUtil + .getAmbitiProfessionali().entrySet()) { + %> + - - - - - - - - - - + .equalsIgnoreCase(ambito.getKey()) %>' /> + <% + } + %>
diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/lib/sicilia-sue-connector-portlet-service.jar b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/lib/sicilia-sue-connector-portlet-service.jar index 61dd47b58501e1c9c493c06e8bffeaa9695b4c0f..695a1fc2bfb3f8a813e2137bdc8cfbd98c978be5 100644 GIT binary patch delta 14764 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 O9uOUt5bmWKfd2!GzJ9L& delta 14528 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 implements Sportello } } + @Override + public void setEncryptedPassword(java.lang.String password) { + try { + String methodName = "setEncryptedPassword"; + + Class[] parameterTypes = new Class[] { java.lang.String.class }; + + Object[] parameterValues = new Object[] { password }; + + invokeOnRemoteModel(methodName, parameterTypes, parameterValues); + } + catch (Exception e) { + throw new UnsupportedOperationException(e); + } + } + @Override public java.lang.String encryptPassword(java.lang.String password) { try { diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/service/it/mwg/sicilia/sue/model/SportelloWrapper.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/service/it/mwg/sicilia/sue/model/SportelloWrapper.java index 12def0da..a0ef147e 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/service/it/mwg/sicilia/sue/model/SportelloWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/service/it/mwg/sicilia/sue/model/SportelloWrapper.java @@ -729,6 +729,11 @@ public class SportelloWrapper implements Sportello, ModelWrapper { return _sportello.checkPassword(password); } + @Override + public void setEncryptedPassword(java.lang.String password) { + _sportello.setEncryptedPassword(password); + } + @Override public void setEncryptedPassword(java.lang.String password, com.liferay.portal.model.User user) { diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/Parameters.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/Parameters.java index a3d9960e..9f170214 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/Parameters.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/Parameters.java @@ -8,24 +8,43 @@ public class Parameters { public static final String APPLICATIONS = "applications"; public static final String ATTACHMENTS = "attachments"; public static final String ATTACHMENT_ID = "attachmentId"; + public static final String CITY_OF_BIRTH = "cityOfBirth"; + public static final String CITY_OF_RESIDENCE = "cityOfResidence"; public static final String CODE = "code"; public static final String CONTENT_BASE64 = "contentBase64"; + public static final String DATE_OF_BIRTH = "dateOfBirth"; public static final String DESCRIPTION = "description"; public static final String DESCRIPTIONS = "descriptions"; + public static final String EMAIL = "email"; + public static final String FAX_NUMBER = "faxNumber"; public static final String FIELDS = "fields"; public static final String FIRST_NAME = "firstName"; + public static final String IS_BUSINESS = "isBusiness"; public static final String LAST_NAME = "lastName"; public static final String NAME = "name"; public static final String NULLABLE = "nullable"; public static final String PASSWORD = "password"; + public static final String PERSON_ID = "personId"; + public static final String POSTCODE = "postcode"; + public static final String PROVINCE_OF_BIRTH = "provinceOfBirth"; + public static final String PROVINCE_OF_RESIDENCE = "provinceOfResidence"; + public static final String REGISTERED_OFFICE_CITY = "registeredOfficeCity"; + public static final String SCOPE = "scope"; + public static final String SCOPE_DESCRIPTION = "scopeDescription"; public static final String SHA256 = "sha256"; + public static final String STATE_OF_RESIDENCE = "stateOfResidence"; public static final String STATUS_CODE = "statusCode"; public static final String STATUS_MESSAGE = "statusMessage"; + public static final String STREET_ADDRESS_OF_RESIDENCE = "streetAddressOfResidence"; + public static final String STREET_NUMBER_OF_RESIDENCE = "streetNumberOfResidence"; public static final String SUE_ID = "sueId"; + public static final String TELEPHONE_NUMBER = "telephoneNumber"; public static final String TOKEN = "token"; public static final String TYPE = "type"; + public static final String TYPE_DESCRIPTION = "typeDescription"; public static final String USERNAME = "username"; public static final String USES = "uses"; + public static final String VALID = "valid"; public static final String VALUES = "values"; public static final String VALUE = "value"; public static final String VATIN = "vatin"; diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/bean/Description.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/bean/Description.java deleted file mode 100644 index 7f140181..00000000 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/bean/Description.java +++ /dev/null @@ -1,14 +0,0 @@ -package it.mwg.sicilia.sue.api.v1.bean; - -public class Description { - - private final String description; - - public Description(String description) { - this.description = description; - } - - public String getDescription() { - return description; - } -} diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/Command.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/Command.java index 953d4fd5..9db703b3 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/Command.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/Command.java @@ -122,10 +122,8 @@ public abstract class Command { } if (request.getMethod().equals(HttpMethods.POST) && !input.isEmpty()) { try { - _log.info("Input = [" + input + "]"); parameters.putAll(deserializer.deserialize(input)); } catch (Exception e) { - e.printStackTrace(); } } String token = request.getHeader(Parameters.X_AUTH_TOKEN); @@ -184,10 +182,13 @@ public abstract class Command { } catch (PortalException | SystemException e) { Response.write(response, Status.INACTIVE_USER); } catch (Exception e) { - Response.write(response, Status.SERVER_ERROR); + List additionalInfo = new ArrayList<>(); + additionalInfo.add(e.getMessage()); + Response.write(response, Status.SERVER_ERROR, additionalInfo); } return true; } catch (IOException e) { + // Response.write ha fallito } } return false; diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/CommandList.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/CommandList.java index 98e57ab5..40232a2b 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/CommandList.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/CommandList.java @@ -1,6 +1,7 @@ package it.mwg.sicilia.sue.api.v1.command; import it.mwg.sicilia.sue.api.v1.command.impl.AddApplication; +import it.mwg.sicilia.sue.api.v1.command.impl.AddPerson; import it.mwg.sicilia.sue.api.v1.command.impl.DeleteApplication; import it.mwg.sicilia.sue.api.v1.command.impl.DeleteAttachment; import it.mwg.sicilia.sue.api.v1.command.impl.GetApplications; @@ -14,6 +15,7 @@ import it.mwg.sicilia.sue.api.v1.command.impl.Login; import it.mwg.sicilia.sue.api.v1.command.impl.Manual; import it.mwg.sicilia.sue.api.v1.command.impl.Nop; import it.mwg.sicilia.sue.api.v1.command.impl.SetFields; +import it.mwg.sicilia.sue.api.v1.command.impl.SetPassword; import it.mwg.sicilia.sue.api.v1.command.impl.UploadAttachment; import it.mwg.sicilia.sue.api.v1.command.impl.ValidateApplication; @@ -32,11 +34,12 @@ public class CommandList { private static final Map commands = new LinkedHashMap<>(); private static final Set verbs = new TreeSet<>(); static { - // Manuali + // Manuale addCommand(new Manual("Restituisce la documentazione dell'API generata automaticamente in versione HTML")); // Login addCommand(new Login("Esegue l'accesso con nome email e password e restituisce un token di accesso", HttpMethods.POST)); + addCommand(new SetPassword("Imposta una nuova password di accesso", HttpMethods.POST)); // Elenchi addCommand(new ListApplications("Elenco delle istanze presentabili sul portale")); addCommand(new ListAttachments("Elenco dei documenti riconosciuti dal portale")); @@ -51,6 +54,9 @@ public class CommandList { addCommand(new SetFields( "Imposta i valori dei dati dell'istanza, l'elenco dei campi valorizzabili è fornito dal comando " + Command.getCommandVerb(ListFields.class))); + // Soggetti + addCommand(new AddPerson( + "Censisce un soggetto collegato alla pratica. Se la stessa persona ricopre più ruoli è necessario censirla più volte")); // Allegati addCommand(new UploadAttachment("Allega un documento all'istanza", HttpMethods.POST)); addCommand(new GetAttachments("Elenca gli allegati dell'istanza")); diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/AddPerson.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/AddPerson.java new file mode 100644 index 00000000..32110679 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/AddPerson.java @@ -0,0 +1,333 @@ +package it.mwg.sicilia.sue.api.v1.command.impl; + +import it.mwg.sicilia.sue.api.v1.Parameters; +import it.mwg.sicilia.sue.api.v1.Response; +import it.mwg.sicilia.sue.api.v1.Status; +import it.mwg.sicilia.sue.api.v1.command.Command; +import it.mwg.sicilia.sue.api.v1.parameter.Parameter; +import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; +import it.mwg.sicilia.sue.api.v1.util.PortosBoUtil; +import it.tref.liferay.portos.bo.model.Comune; +import it.tref.liferay.portos.bo.model.DettPratica; +import it.tref.liferay.portos.bo.model.IntPratica; +import it.tref.liferay.portos.bo.model.Provincia; +import it.tref.liferay.portos.bo.model.Soggetto; +import it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil; +import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; +import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.liferay.counter.service.CounterLocalServiceUtil; +import com.liferay.portal.kernel.util.MapUtil; +import com.liferay.portal.kernel.util.StringPool; +import com.liferay.portal.kernel.util.Validator; +import com.liferay.portal.model.Group; +import com.liferay.portal.model.Organization; +import com.liferay.portal.service.GroupLocalServiceUtil; +import com.liferay.portal.service.OrganizationLocalServiceUtil; + +public class AddPerson extends Command { + + @SuppressWarnings("serial") + private static final List INPUT_PARAMETERS = new ArrayList() { + { + Map tipologie = new TreeMap<>(); + tipologie.putAll(SoggettoLocalServiceUtil.getTipologieSoggetti()); + Map ambiti = SoggettoLocalServiceUtil.getAmbitiProfessionali(); + + add(new Parameter(Parameters.APPLICATION_ID, TYPES.INT, "Id dell'istanza")); + StringBuilder sb = new StringBuilder(); + sb.append("Ruolo ricoperto dal soggetto (1..").append(tipologie.size()) + .append(StringPool.CLOSE_PARENTHESIS); + for (Entry tipo : tipologie.entrySet()) { + sb.append("
").append(Long.valueOf(tipo.getKey())).append(" - ") + .append(tipo.getValue()).append(""); + } + add(new Parameter(Parameters.TYPE, TYPES.INT, sb.toString())); + add(new Parameter(Parameters.TYPE_DESCRIPTION, TYPES.STRING, + "Descrizione del ruolo ricoperto, obbligatoria se " + Parameters.TYPE + " = " + + Long.valueOf(TipoSoggettoUtil.ALTRO_SOGGETTO), false)); + sb.setLength(0); + sb.append("Ambito professionale (<NULL>,1..").append(ambiti.size()) + .append(StringPool.CLOSE_PARENTHESIS); + int n = 0; + for (String ambito : ambiti.values()) { + sb.append("
").append(++n).append(" - ").append(ambito) + .append(""); + } + add(new Parameter(Parameters.SCOPE, TYPES.INT, sb.toString(), false)); + add(new Parameter(Parameters.SCOPE_DESCRIPTION, TYPES.STRING, + "Descrizione dell'ambito professionale, obbligatoria se " + Parameters.SCOPE + " = " + n, false)); + add(new Parameter(Parameters.IS_BUSINESS, TYPES.BOOL, + "Se true il soggetto censito è un'azienda
deve essere true se " + Parameters.TYPE + " = " + + Long.valueOf(TipoSoggettoUtil.DITTA) + " (" + tipologie.get(TipoSoggettoUtil.DITTA) + + ")
può essere true se " + Parameters.TYPE + " = " + + Long.valueOf(TipoSoggettoUtil.COMMITTENTE) + " (" + + tipologie.get(TipoSoggettoUtil.COMMITTENTE) + + ")
deve essere false o non presente in tutti gli altri casi", false)); + add(new Parameter(Parameters.VATIN, TYPES.STRING, + "Codice fiscale del soggetto o del legale rappresentante se ditta")); + add(new Parameter(Parameters.FIRST_NAME, TYPES.STRING, + "Nome del soggetto o del legale rappresentante se ditta")); + add(new Parameter(Parameters.LAST_NAME, TYPES.STRING, + "Cognome del soggetto o del legale rappresentante se ditta")); + add(new Parameter(Parameters.PROVINCE_OF_BIRTH, TYPES.STRING, + "Nome della provincia o stato estero di nascita del soggetto o del legale rappresentante se ditta")); + add(new Parameter(Parameters.CITY_OF_BIRTH, TYPES.STRING, + "Nome del comune di nascita del soggetto o del legale rappresentante se ditta")); + add(new Parameter(Parameters.DATE_OF_BIRTH, TYPES.STRING, + "Data di nascita (AAAA-MM-GG) del soggetto o del legale rappresentante se ditta")); + add(new Parameter( + Parameters.PROVINCE_OF_RESIDENCE, + TYPES.STRING, + "Codice ISTAT, sigla o nome della provincia di nascita del soggetto o della sede legale se ditta. Può essere omesso se viene fornito il codice ISTAT o Belfiore per " + + Parameters.CITY_OF_RESIDENCE + + ", ignorato se viene valorizzato " + + Parameters.STATE_OF_RESIDENCE, false)); + add(new Parameter( + Parameters.CITY_OF_RESIDENCE, + TYPES.STRING, + "Codice ISTAT, codice Belfiore o nome del comune di residenza del soggetto o della sede legale se ditta, ignorato se viene valorizzato " + + Parameters.STATE_OF_RESIDENCE, false)); + add(new Parameter(Parameters.STATE_OF_RESIDENCE, TYPES.STRING, + "Stato estero di residenza del soggetto o della sede legale se ditta, in alternativa a " + + Parameters.PROVINCE_OF_RESIDENCE + " e " + Parameters.CITY_OF_RESIDENCE + + ". Se valorizzato i campi " + Parameters.PROVINCE_OF_RESIDENCE + " e " + + Parameters.CITY_OF_RESIDENCE + " saranno ignorati", false)); + add(new Parameter(Parameters.STREET_ADDRESS_OF_RESIDENCE, TYPES.STRING, + "Indirizzo di residenza del soggetto o della sede legale se ditta")); + add(new Parameter(Parameters.STREET_NUMBER_OF_RESIDENCE, TYPES.STRING, + "Numero civico di residenza del soggetto o della sede legale se ditta")); + add(new Parameter(Parameters.POSTCODE, TYPES.STRING, + "Codice di avviamento postale di residenza del soggetto o della sede legale se ditta")); + add(new Parameter(Parameters.EMAIL, TYPES.STRING, + "Email per ricevimento comunicazioni/notifiche (non inserire PEC)")); + add(new Parameter(Parameters.TELEPHONE_NUMBER, TYPES.STRING, "Numero di telefono")); + add(new Parameter(Parameters.FAX_NUMBER, TYPES.STRING, "Numero di fax", false)); + } + }; + + @SuppressWarnings("serial") + private static final List OUTPUT_PARAMETERS = new ArrayList() { + { + addAll(BASE_OUTPUT_PARAMETERS); + add(new Parameter(Parameters.PERSON_ID, TYPES.INT, "Identificatore del soggetto censito")); + add(new Parameter(Parameters.ADDITIONAL_INFO, TYPES.STRING, + "Eventuali informazioni aggiuntive sull'operazione o sugli errori incontrati", false)); + } + }; + + private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + public AddPerson(String description, String... methods) { + super(description, methods); + } + + @Override + public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { + + if (verifyAccessToken(request, response)) { + IntPratica intPratica = getSecureIntPratica(response); + if (Validator.isNotNull(intPratica)) { + List additionalInfo = new ArrayList<>(); + long companyId = intPratica.getCompanyId(); + List tipologie = new ArrayList(new TreeMap( + SoggettoLocalServiceUtil.getTipologieSoggetti()).keySet()); + List ambiti = new ArrayList<>(SoggettoLocalServiceUtil.getAmbitiProfessionali().keySet()); + String tipologia = null; + String tipologiaAltro = null; + int type = MapUtil.getInteger(parameters, Parameters.TYPE); + if ((type > 0) && (type <= tipologie.size())) { + tipologia = tipologie.get(type - 1); + if (tipologia.equals(TipoSoggettoUtil.ALTRO_SOGGETTO)) { + tipologiaAltro = MapUtil.getString(parameters, Parameters.TYPE_DESCRIPTION); + if (Validator.isNull(tipologiaAltro)) { + additionalInfo.add("Il campo " + Parameters.TYPE_DESCRIPTION + " è obbligatorio quando " + + Parameters.TYPE + " = " + type); + } + } + } else { + additionalInfo.add("Valore non valido " + Parameters.TYPE + " = " + type); + } + String ambito = null; + String ambitoAltro = null; + int scope = MapUtil.getInteger(parameters, Parameters.SCOPE); + if ((scope > 0) && (scope <= ambiti.size())) { + ambito = ambiti.get(scope - 1); + if (ambito.equals("ambitoProf-altro")) { + ambitoAltro = MapUtil.getString(parameters, Parameters.SCOPE_DESCRIPTION); + if (Validator.isNull(ambitoAltro)) { + additionalInfo.add("Il campo " + Parameters.SCOPE_DESCRIPTION + " è obbligatorio quando " + + Parameters.SCOPE + " = " + scope); + } + } + } + boolean isBusiness = MapUtil.getBoolean(parameters, Parameters.IS_BUSINESS, false); + String codiceFiscale = getRequiredString(Parameters.VATIN, additionalInfo); + String nome = getRequiredString(Parameters.FIRST_NAME, additionalInfo); + String cognome = getRequiredString(Parameters.LAST_NAME, additionalInfo); + Date dataNascita = null; + try { + dataNascita = sdf.parse(MapUtil.getString(parameters, Parameters.DATE_OF_BIRTH)); + } catch (Exception e) { + additionalInfo.add("Il campo " + Parameters.DATE_OF_BIRTH + " manca o non è valido, " + + Parameters.DATE_OF_BIRTH + " = " + + MapUtil.getString(parameters, Parameters.DATE_OF_BIRTH)); + } + String provinciaNascita = getRequiredString(Parameters.PROVINCE_OF_BIRTH, additionalInfo); + String comuneNascita = getRequiredString(Parameters.CITY_OF_BIRTH, additionalInfo); + String comuneEstero = MapUtil.getString(parameters, Parameters.STATE_OF_RESIDENCE); + Comune comune = null; + if (Validator.isNull(comuneEstero)) { + String provinceOfResidence = MapUtil.getString(parameters, Parameters.PROVINCE_OF_RESIDENCE); + String cityOfResidence = MapUtil.getString(parameters, Parameters.CITY_OF_RESIDENCE); + comune = getComune(companyId, provinceOfResidence, cityOfResidence); + if (Validator.isNull(comune)) { + additionalInfo.add("Nessun comune trovato per " + Parameters.PROVINCE_OF_RESIDENCE + " = " + + provinceOfResidence + ", " + Parameters.CITY_OF_RESIDENCE + " = " + cityOfResidence); + } + } + String via = getRequiredString(Parameters.STREET_ADDRESS_OF_RESIDENCE, additionalInfo); + String numeroCivico = getRequiredString(Parameters.STREET_NUMBER_OF_RESIDENCE, additionalInfo); + if (additionalInfo.isEmpty()) { + try { + Group group = GroupLocalServiceUtil.getGroup(sportello.getGroupId()); + Organization organization = OrganizationLocalServiceUtil.getOrganization(group + .getOrganizationId()); + if (0 != organization.getParentOrganizationId()) { + organization = OrganizationLocalServiceUtil.getOrganization(organization + .getParentOrganizationId()); + group = organization.getGroup(); + } + + DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPratica + .getIntPraticaId()); + Date date = new Date(); + Soggetto soggetto = SoggettoLocalServiceUtil.createSoggetto(CounterLocalServiceUtil + .increment(Soggetto.class.getName())); + soggetto.setCompanyId(companyId); + soggetto.setUserId(intPratica.getUserId()); + soggetto.setUserName(intPratica.getUserName()); + soggetto.setCreateDate(date); + soggetto.setModifiedDate(date); + soggetto.setGroupId(group.getGroupId()); + soggetto.setDettPraticaId(dettPratica.getDettPraticaId()); + soggetto.setIntPraticaId(intPratica.getIntPraticaId()); + soggetto.setTipologiaSoggetto(tipologia); + soggetto.setTipoAltroSoggetto(tipologiaAltro); + soggetto.setAmbitoAttivita(ambito); + soggetto.setAmbitoProfessione(ambitoAltro); + if (isBusiness) { + soggetto.setLegaleRap(nome + StringPool.SPACE + cognome); + } else { + soggetto.setNome(nome); + soggetto.setCognome(cognome); + soggetto.setCodiceFiscale(codiceFiscale.toLowerCase()); + soggetto.setDataNascita(dataNascita); + soggetto.setProvinciaNascita(provinciaNascita); + soggetto.setComuneNascita(comuneNascita); + if (Validator.isNotNull(comune)) { + soggetto.setComune(String.valueOf(comune.getComuneId())); + soggetto.setProvincia(comune.getCodiceProvincia()); + } + if (Validator.isNotNull(comuneEstero)) { + soggetto.setComuneEstero(comuneEstero); + } + soggetto.setVia(via); + soggetto.setNumeroCivico(numeroCivico); + } + SoggettoLocalServiceUtil.updateSoggetto(soggetto); + Map result = new HashMap<>(); + result.put(Parameters.PERSON_ID, soggetto.getSoggettoId()); + Response.write(response, Status.OK, result, additionalInfo); + } catch (Exception e) { + additionalInfo.add("Errore durante la creazione del soggetto"); + Response.write(response, Status.SERVER_ERROR, additionalInfo); + } + } else { + Response.write(response, Status.INVALID_INPUT, additionalInfo); + } + } + } + } + + private String getRequiredString(String parameter, List additionalInfo) { + + String result = MapUtil.getString(parameters, parameter); + if (Validator.isNull(result)) { + additionalInfo.add("Il campo " + parameter + " è obbligatorio"); + } + return result; + } + + private static Comune getComune(long companyId, String nomeProvincia, String nomeComune) { + + Provincia provincia = null; + Comune comune = null; + if (Validator.isNotNull(nomeProvincia)) { + try { + switch (nomeProvincia.length()) { + case 2: + provincia = ProvinciaLocalServiceUtil.fetchByC_S(companyId, nomeProvincia.toUpperCase()); + break; + case 3: + provincia = ProvinciaLocalServiceUtil.fetchByC_C(companyId, nomeProvincia); + break; + } + if (Validator.isNull(provincia)) { + provincia = PortosBoUtil.findProvinciaByCompanyIdDenominazione(companyId, nomeProvincia); + } + switch (nomeComune.length()) { + case 4: + comune = ComuneLocalServiceUtil.fetchByC_CB(companyId, nomeComune.toUpperCase()); + break; + case 6: + comune = ComuneLocalServiceUtil.fetchByC_CI(companyId, nomeComune); + break; + } + if (Validator.isNull(comune)) { + List comuni = ComuneLocalServiceUtil.findByCompanyDenominazione(companyId, nomeComune); + if (comuni.size() == 1) { + comune = comuni.get(0); + } else { + if (Validator.isNotNull(provincia)) { + for (Comune c : comuni) { + if (c.getCodiceProvincia().equalsIgnoreCase(provincia.getCodiceProvincia())) { + comune = c; + break; + } + } + } + } + } + } catch (Exception e) { + } + } + return comune; + } + + @Override + public List getInputParameters() { + return INPUT_PARAMETERS; + } + + @Override + public List getOutputParameters() { + return OUTPUT_PARAMETERS; + } + +} diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetApplications.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetApplications.java index 441ca3c2..6243d67b 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetApplications.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetApplications.java @@ -52,12 +52,14 @@ public class GetApplications extends Command { public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { if (verifyAccessToken(request, response)) { + String code = parameters.containsKey(Parameters.CODE) ? String.valueOf(Parameters.CODE) : null; List applications = new ArrayList<>(); for (Territorio territorio : TerritorioLocalServiceUtil.findByComuneId(sportello.getComuneId(), QueryUtil.ALL_POS, QueryUtil.ALL_POS)) { for (IntPratica intPratica : IntPraticaLocalServiceUtil .findByTerritorioId(territorio.getTerritorioId())) { - if (intPratica.getInLavorazioneSue()) { + if (intPratica.getInLavorazioneSue() + && ((null == code) || intPratica.getTipoProcedura().equals(code))) { applications.add(new Application(intPratica.getIntPraticaId(), intPratica.getTipoProcedura(), intPratica.getUserName())); } diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetSourceCode.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetSourceCode.java index a62ffe3d..7d5f70b6 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetSourceCode.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/GetSourceCode.java @@ -128,10 +128,16 @@ public class GetSourceCode extends Command { sb.append(prefix).append("case '").append(verb).append("':\n"); List parameters = command.getInputParameters(); int nRequired = 0; + int nPar = 0; + List arrays = new ArrayList<>(); for (Parameter parameter : parameters) { if (parameter.isRequired()) { nRequired++; } + if (parameter.getType().equals(TYPES.ARRAY)) { + arrays.add(nPar); + } + nPar++; } if (nRequired > 0) { sb.append(prefix).append(INDENT).append("if (\\$argc < ").append(nRequired + 2).append(") {\n"); @@ -148,7 +154,13 @@ public class GetSourceCode extends Command { .append(ApiUtil.underscoreToCamelCase(verb)).append(StringPool.OPEN_PARENTHESIS); if (parameters.size() > 0) { for (int i = 0; i < nRequired; i++) { + if (arrays.contains(i)) { + sb.append("json_decode("); + } sb.append("\\$argv[").append(i + 2).append("], "); + if (arrays.contains(i)) { + sb.append("true), "); + } } for (int i = nRequired; i < parameters.size(); i++) { sb.append("\\$argv[").append(i + 2).append("] ?? null, "); diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListFields.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListFields.java index b9ca7b91..8d0e7bd0 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListFields.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListFields.java @@ -7,7 +7,7 @@ import it.mwg.sicilia.sue.api.v1.bean.Field; import it.mwg.sicilia.sue.api.v1.command.Command; import it.mwg.sicilia.sue.api.v1.parameter.Parameter; import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; -import it.mwg.sicilia.sue.api.v1.util.DettPraticaUtil; +import it.mwg.sicilia.sue.api.v1.util.PortosBoUtil; import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; import java.io.Serializable; @@ -37,7 +37,7 @@ public class ListFields extends Command { p.addSubParameter(new Parameter(Parameters.DESCRIPTION, TYPES.STRING, "Descrizione del parametro")); p.addSubParameter(new Parameter(Parameters.TYPE, TYPES.STRING, "Tipo del parametro (" + TYPES.STRING + ", " + TYPES.INT + ", ecc.)")); - p.addSubParameter(new Parameter(Parameters.NULLABLE, TYPES.BOOLEAN, + p.addSubParameter(new Parameter(Parameters.NULLABLE, TYPES.BOOL, "Se true il campo può essere impostato al valore NULL")); add(p); } @@ -92,7 +92,7 @@ public class ListFields extends Command { description += " diventa obbligatorio quando deInfAltro = true"; break; } - String values = DettPraticaUtil.getFieldValues(field); + String values = PortosBoUtil.getFieldValues(field); if (null != values) { description += ". Unici valori ammessi: " + values + StringPool.PERIOD; } @@ -105,7 +105,7 @@ public class ListFields extends Command { type = TYPES.INT; break; case Types.BOOLEAN: - type = TYPES.BOOLEAN; + type = TYPES.BOOL; break; case Types.DOUBLE: type = TYPES.FLOAT; diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListValues.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListValues.java index 2b662106..b78c9304 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListValues.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ListValues.java @@ -7,7 +7,7 @@ import it.mwg.sicilia.sue.api.v1.bean.Value; import it.mwg.sicilia.sue.api.v1.command.Command; import it.mwg.sicilia.sue.api.v1.parameter.Parameter; import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; -import it.mwg.sicilia.sue.api.v1.util.DettPraticaUtil; +import it.mwg.sicilia.sue.api.v1.util.PortosBoUtil; import java.io.Serializable; import java.util.ArrayList; @@ -50,7 +50,7 @@ public class ListValues extends Command { readParameters(request); String fieldName = MapUtil.getString(parameters, Parameters.NAME); - List values = DettPraticaUtil.getFieldList(fieldName); + List values = PortosBoUtil.getFieldList(fieldName); if (null == values) { Response.write(response, Status.INVALID_INPUT); } else { diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/Manual.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/Manual.java index b3289c64..7c51cc78 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/Manual.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/Manual.java @@ -51,8 +51,8 @@ public class Manual extends Command { StringBuilder result = new StringBuilder(); result.append("") .append("") - .append("ManualManuale Sicilia SUE API v1") .append(""); @@ -122,10 +122,12 @@ public class Manual extends Command { for (int i = 0; i < level; i++) { result.append(">"); } - result.append(StringPool.SPACE).append(parameter.getName()).append("") - .append(parameter.isRequired() ? "No" : "Sì").append("") - .append(parameter.getType().toString()).append("").append(parameter.getDescription()) - .append(""); + result.append(StringPool.SPACE).append(parameter.getName()).append(""); + if (!parameter.isRequired()) { + result.append("✔"); + } + result.append("").append(parameter.getType().toString()).append("") + .append(parameter.getDescription()).append(""); if (parameter.getType().equals(TYPES.ARRAY)) { result.append(printTableParameters(parameter.getSubParameters(), level + 1)); } @@ -133,7 +135,7 @@ public class Manual extends Command { return result.toString(); } - protected String getCurlExample(Command command, String method, String baseUrl) { + private String getCurlExample(Command command, String method, String baseUrl) { return getCurlExample(command, method, baseUrl, StringPool.BLANK); } @@ -211,12 +213,17 @@ public class Manual extends Command { ret = value; } else if (parameter.getType().equals(TYPES.INT) || parameter.getType().equals(TYPES.VARYING)) { ret = (null == i ? 1 : i + 1) * 123; - } else if (parameter.getType().equals(TYPES.BOOLEAN)) { + } else if (parameter.getType().equals(TYPES.BOOL)) { ret = (null == i ? 1 : i) % 2 == 1; } return ret; } + @Override + public boolean isSecure() { + return false; + }; + @Override public List getInputParameters() { return EMPTY_PARAMETERS; diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetFields.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetFields.java index 7de5e866..06f470b8 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetFields.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetFields.java @@ -7,7 +7,7 @@ import it.mwg.sicilia.sue.api.v1.command.Command; import it.mwg.sicilia.sue.api.v1.parameter.Parameter; import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; import it.mwg.sicilia.sue.api.v1.util.ApiUtil; -import it.mwg.sicilia.sue.api.v1.util.DettPraticaUtil; +import it.mwg.sicilia.sue.api.v1.util.PortosBoUtil; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.IntPratica; import it.tref.liferay.portos.bo.model.Territorio; @@ -98,13 +98,13 @@ public class SetFields extends Command { Response.write(response, Status.SERVER_ERROR, additionalInfo); return; } - List errors = DettPraticaUtil.checkValues(fields); + List errors = PortosBoUtil.checkValues(fields); if (!errors.isEmpty()) { additionalInfo.addAll(errors); Response.write(response, Status.INVALID_INPUT, additionalInfo); return; } - String field = DettPraticaUtil.setFields(dettPratica, fields); + String field = PortosBoUtil.setFields(dettPratica, fields); if (null != field) { additionalInfo.add("Il campo " + field + " non esiste o non è modificabile"); Response.write(response, Status.INVALID_INPUT, additionalInfo); diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetPassword.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetPassword.java new file mode 100644 index 00000000..65fcaa79 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/SetPassword.java @@ -0,0 +1,113 @@ +package it.mwg.sicilia.sue.api.v1.command.impl; + +import it.mwg.sicilia.sue.api.v1.Parameters; +import it.mwg.sicilia.sue.api.v1.Response; +import it.mwg.sicilia.sue.api.v1.Status; +import it.mwg.sicilia.sue.api.v1.command.Command; +import it.mwg.sicilia.sue.api.v1.parameter.Parameter; +import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; +import it.mwg.sicilia.sue.api.v1.util.ApiUtil; +import it.mwg.sicilia.sue.service.SportelloLocalServiceUtil; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class SetPassword extends Command { + + @SuppressWarnings("serial") + private static final List INPUT_PARAMETERS = new ArrayList() { + { + add(new Parameter(Parameters.PASSWORD, TYPES.STRING, "La nuova password")); + } + }; + + public SetPassword(String description, String... methods) { + super(description, methods); + } + + @Override + public void run(HttpServletRequest request, HttpServletResponse response) throws Exception { + + if (verifyAccessToken(request, response)) { + List additionalInfo = new ArrayList<>(); + if (!parameters.containsKey(Parameters.PASSWORD)) { + additionalInfo.add("Parametro " + Parameters.PASSWORD + " mancante"); + Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); + return; + } + String password = (String) parameters.get(Parameters.PASSWORD); + if (checkPassword(response, password)) { + sportello.setEncryptedPassword(password); + SportelloLocalServiceUtil.updateSportello(sportello); + Response.write(response, Status.OK); + } + } + } + + private boolean checkPassword(HttpServletResponse response, String password) throws IOException { + + final int MIN_LENGTH = ApiUtil.isDebug() ? 1 : 8; + final boolean SPECIAL = !ApiUtil.isDebug(); + final boolean DIGIT = !ApiUtil.isDebug(); + final boolean UPPERCASE = !ApiUtil.isDebug(); + final boolean LOWERCASE = !ApiUtil.isDebug(); + if ((null != password) && (password.length() >= MIN_LENGTH)) { + boolean special = SPECIAL; + boolean digit = DIGIT; + boolean uppercase = UPPERCASE; + boolean lowercase = LOWERCASE; + for (int i = 0; i < password.length(); i++) { + char c = password.charAt(i); + if (Character.isDigit(c)) { + digit = false; + } else if (Character.isUpperCase(c)) { + uppercase = false; + } else if (Character.isLowerCase(c)) { + lowercase = false; + } else { + special = false; + } + } + if (!(special || digit || uppercase || lowercase)) { + return true; + } + } + StringBuilder sb = new StringBuilder(); + sb.append("La password deve avere una lunghezza minima di ").append(MIN_LENGTH).append(" caratteri"); + if (SPECIAL || DIGIT || UPPERCASE || LOWERCASE) { + sb.append(" e deve contenere almeno "); + if (UPPERCASE) { + sb.append("una lettera maiuscola, "); + } + if (LOWERCASE) { + sb.append("una lettera minuscola, "); + } + if (DIGIT) { + sb.append("un numero, "); + } + if (SPECIAL) { + sb.append("un carattere speciale, "); + } + sb.setLength(sb.length() - 2); + } + List additionalInfo = new ArrayList<>(); + additionalInfo.add(sb.toString()); + Response.write(response, Status.INVALID_INPUT, additionalInfo); + return false; + } + + @Override + public List getInputParameters() { + return INPUT_PARAMETERS; + } + + @Override + public List getOutputParameters() { + return BASE_OUTPUT_PARAMETERS; + } + +} diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/UploadAttachment.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/UploadAttachment.java index 9c9a4de1..a0471ed8 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/UploadAttachment.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/UploadAttachment.java @@ -73,7 +73,7 @@ public class UploadAttachment extends Command { } String tipologia = MapUtil.getString(parameters, Parameters.CODE); if (!DocumentiPraticaUtil.getTipiDocDomanda().containsKey(tipologia)) { - additionalInfo.add("Valore non valido destinazione = \"" + tipologia + StringPool.QUOTE); + additionalInfo.add("Valore non valido " + Parameters.CODE + " = \"" + tipologia + StringPool.QUOTE); Response.write(response, Status.MALFORMED_REQUEST, additionalInfo); return; } @@ -125,7 +125,7 @@ public class UploadAttachment extends Command { intPraticaId, dlFileEntry, fileName, version, praticaValidata, descLong, tipologia, sha256, aggiornato, jsonFirmatari, dettPraticaIdRimozione, dtDataRimozione, serviceContext); Map result = new HashMap<>(); - result.put(Parameters.APPLICATION_ID, docPratica.getDocPraticaId()); + result.put(Parameters.ATTACHMENT_ID, docPratica.getDocPraticaId()); Response.write(response, Status.OK, result, additionalInfo); } catch (Exception e) { additionalInfo.add("Errore durante l'esecuzione: " + e.getMessage()); diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ValidateApplication.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ValidateApplication.java index 36b1a4bd..f1fba0d8 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ValidateApplication.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/command/impl/ValidateApplication.java @@ -3,10 +3,10 @@ package it.mwg.sicilia.sue.api.v1.command.impl; import it.mwg.sicilia.sue.api.v1.Parameters; import it.mwg.sicilia.sue.api.v1.Response; import it.mwg.sicilia.sue.api.v1.Status; -import it.mwg.sicilia.sue.api.v1.bean.Description; import it.mwg.sicilia.sue.api.v1.command.Command; import it.mwg.sicilia.sue.api.v1.parameter.Parameter; import it.mwg.sicilia.sue.api.v1.parameter.Parameter.TYPES; +import it.mwg.sicilia.sue.api.v1.util.PortosBoUtil; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.IntPratica; import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; @@ -17,13 +17,11 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.liferay.portal.kernel.language.LanguageUtil; import com.liferay.portal.kernel.util.Validator; public class ValidateApplication extends Command { @@ -39,10 +37,9 @@ public class ValidateApplication extends Command { private static final List OUTPUT_PARAMETERS = new ArrayList() { { addAll(BASE_OUTPUT_PARAMETERS); - Parameter p = new Parameter(Parameters.DESCRIPTIONS, TYPES.ARRAY, "Elenco di informazioni mancanti"); - p.addSubParameter(new Parameter(Parameters.DESCRIPTION, TYPES.STRING, - "Descrizione dell'informazione mancante")); - add(p); + add(new Parameter(Parameters.VALID, TYPES.BOOL, "Esito della verifica")); + add(new Parameter(Parameters.DESCRIPTIONS, TYPES.STRING_ARRAY, + "Elenco di nomi di campi obbligatori non ancora valorizzati", false)); add(new Parameter(Parameters.ADDITIONAL_INFO, TYPES.STRING, "Eventuali informazioni aggiuntive sull'operazione o sugli errori incontrati", false)); } @@ -59,22 +56,27 @@ public class ValidateApplication extends Command { IntPratica intPratica = getSecureIntPratica(response); if (Validator.isNotNull(intPratica)) { List additionalInfo = new ArrayList<>(); + boolean valid = true; try { DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPratica .getIntPraticaId()); - List notCompleted = new ArrayList<>(); + List fields = new ArrayList<>(); setAdministratorPermissions(); for (String section : new String[] { SezioniUtil.SEZIONE_DETTAGLI_PRINCIPALI, - SezioniUtil.SEZIONE_ANAGRAFE_SOGGETTI, SezioniUtil.SEZIONE_DESCRIZIONE_EDIFICIO, - SezioniUtil.SEZIONE_GEOLOGICA, SezioniUtil.SEZIONE_ALLEGATI }) { + SezioniUtil.SEZIONE_DESCRIZIONE_EDIFICIO }) { for (String nc : ValidazionePraticaUtil.notCompletedSection(section, dettPratica.getDettPraticaId())) { - nc = LanguageUtil.get(Locale.ITALIAN, nc); - notCompleted.add(new Description(nc)); + String field = PortosBoUtil.getFieldFromError(nc); + if (null != field) { + fields.add(PortosBoUtil.getFieldFromError(nc)); + } else { + fields.add("*** " + nc); + } } } Map result = new HashMap<>(); - result.put(Parameters.DESCRIPTIONS, (Serializable) notCompleted); + result.put(Parameters.VALID, valid); + result.put(Parameters.FIELDS, (Serializable) fields); Response.write(response, Status.OK, result, additionalInfo); } catch (Exception e) { additionalInfo.add("Errore durante l'esecuzione: " + e.getMessage()); diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/parameter/Parameter.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/parameter/Parameter.java index c60eb3f9..dd76fb8e 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/parameter/Parameter.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/parameter/Parameter.java @@ -56,6 +56,6 @@ public class Parameter { } public static enum TYPES { - APPLICATION_ZIP, ARRAY, BOOLEAN, FLOAT, INT, STRING, TIMESTAMP, TEXT_HTML, TEXT_PLAIN, UNKNOWN, VARYING + APPLICATION_ZIP, ARRAY, BOOL, FLOAT, INT, STRING, STRING_ARRAY, TIMESTAMP, TEXT_HTML, TEXT_PLAIN, UNKNOWN, VARYING } } diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/ApiUtil.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/ApiUtil.java index af06e52a..604fb19f 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/ApiUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/ApiUtil.java @@ -1,7 +1,6 @@ package it.mwg.sicilia.sue.api.v1.util; import java.io.Serializable; -import java.util.Arrays; import java.util.Map; import java.util.Map.Entry; @@ -51,10 +50,20 @@ public class ApiUtil { return sb.toString(); } + public static String hyphenToCamelCase(String hyphen) { + + return toCamelCase(hyphen, '-'); + } + public static String underscoreToCamelCase(String underscore) { + return toCamelCase(underscore, '_'); + } + + private static String toCamelCase(String input, char separator) { + StringBuilder sb = new StringBuilder(); - for (String part : Arrays.asList(StringUtils.split(underscore, '_'))) { + for (String part : StringUtils.split(input, separator)) { if (!part.isEmpty()) { if (sb.length() > 0) { sb.append(part.substring(0, 1).toUpperCase()).append(part.substring(1).toLowerCase()); diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/DettPraticaUtil.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/PortosBoUtil.java similarity index 82% rename from liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/DettPraticaUtil.java rename to liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/PortosBoUtil.java index 485923b2..49fbd8aa 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/DettPraticaUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/api/v1/util/PortosBoUtil.java @@ -2,7 +2,9 @@ package it.mwg.sicilia.sue.api.v1.util; import it.mwg.sicilia.sue.api.v1.bean.Value; import it.tref.liferay.portos.bo.model.DettPratica; +import it.tref.liferay.portos.bo.model.Provincia; import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; import java.io.Serializable; import java.lang.reflect.Method; @@ -15,9 +17,11 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.liferay.portal.kernel.dao.orm.QueryUtil; +import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.util.StringPool; -public class DettPraticaUtil { +public class PortosBoUtil { private static final String NA_STRING = "NA"; private static final long NA_LONG = -1L; @@ -149,6 +153,19 @@ public class DettPraticaUtil { return FIELD_VALUES.get(fieldName); } + public static String getFieldFromError(String error) { + + if (ERROR_TO_FIELD.containsKey(error)) { + return ERROR_TO_FIELD.get(error); + } else { + String field = ApiUtil.hyphenToCamelCase(error); + if (FIELDS.contains(field)) { + return field; + } + } + return null; + } + private static void listOfPairs(String field, Serializable... values) { List list = new ArrayList<>(); @@ -205,6 +222,7 @@ public class DettPraticaUtil { "geoEvidenzeGeomorfiche", "geoOperaRilevante", "geoOpereDiSostegno", "geoPresenzaPrescrizioni"); private static final List TO_DOUBLE = Arrays.asList("ag", "dePrivata", "dePubblica"); private static final List TO_LONG_LIST = new ArrayList<>(); + private static final Map ERROR_TO_FIELD = new HashMap<>(); static { FIELD_TYPES = DettPraticaLocalServiceUtil.getDettPraticaFieldsTypes(); @@ -247,5 +265,36 @@ public class DettPraticaUtil { "Turist.-ricett."); toLongList("deUtilizzazione", false, ">65%", "30÷65%", "<30%"); toLongList("dePosizioneEdificio", false, "Isolato", "Interno", "D'estremità", "D'angolo"); + ERROR_TO_FIELD.put("Localizzazione geografica mancante", "(latitudine&longitudine)"); + ERROR_TO_FIELD + .put("Tipologia Costruttiva Mancante", + "(NuovaCostruzione|tcNuovaCostruzionePertinenza|tcCostruzioniEsistenti|tcManutOrdStraord|tcAltriInterventi)"); + } + + /* + * L'entità provincia di portos_bo_portlet ha un campo che si chiama provincia e ne rappresenta la denominazione. + * Quanto segue è un workaround al fatto che service builder non riesce a generare un finder che ritorna una entità + * Provincia prendendo come input una String provincia. + * + * public Provincia findByC_P(long companyId, String provincia) throws NoSuchProvinciaException, SystemException { + * Provincia provincia = fetchByC_P(companyId, provincia); ^^^^^^^^^ Duplicate local variable provincia + */ + private static final Map> province = new HashMap<>(); + + public static Provincia findProvinciaByCompanyIdDenominazione(long companyId, String denominazione) { + + if (!province.containsKey(companyId)) { + Map map = new HashMap<>(); + try { + for (Provincia provincia : ProvinciaLocalServiceUtil.findByCompanyId(companyId, QueryUtil.ALL_POS, + QueryUtil.ALL_POS)) { + map.put(provincia.getProvincia().toUpperCase(), provincia); + } + } catch (SystemException e) { + e.printStackTrace(); + } + province.put(companyId, map); + } + return province.get(companyId).get(denominazione.toUpperCase()); } } diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/model/impl/SportelloImpl.java b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/model/impl/SportelloImpl.java index c29ccb3e..869360be 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/model/impl/SportelloImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/it/mwg/sicilia/sue/model/impl/SportelloImpl.java @@ -76,6 +76,18 @@ public class SportelloImpl extends SportelloBaseImpl { return encryptPassword(password).equals(getPassword()); } + @Override + public void setEncryptedPassword(String password) { + + String encrypted = encryptPassword(password); + if (!encrypted.equals(getPassword())) { + setPassword(encrypted); + setPasswordModifiedDate(new Date()); + setPasswordModifiedUserId(0); + setPasswordModifiedUserName("API User: " + getUserName()); + } + } + @Override public void setEncryptedPassword(String password, User user) { @@ -106,6 +118,7 @@ public class SportelloImpl extends SportelloBaseImpl { return getProvincia().getProvincia(); } + @Override public synchronized Comune getComune() throws PortalException, SystemException { if (Validator.isNull(comune)) { diff --git a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/service.properties b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/service.properties index 8bd746a5..7c6adf2f 100644 --- a/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/service.properties +++ b/liferay-plugins-sdk-6.2/portlets/sicilia-sue-connector-portlet/docroot/WEB-INF/src/service.properties @@ -13,8 +13,8 @@ ## build.namespace=sicilia_sue - build.number=63 - build.date=1624450843603 + build.number=64 + build.date=1625842467767 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/ConfigurazioneConstants.java b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/ConfigurazioneConstants.java index 58553aed..4b180260 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/ConfigurazioneConstants.java +++ b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/ConfigurazioneConstants.java @@ -28,6 +28,7 @@ public class ConfigurazioneConstants { public static final String MAPPE_URL_IFRAME_FE = "conf.sismica.mappe.iframe.url.fe"; public static final String MAPPE_URL_IFRAME_BO = "conf.sismica.mappe.iframe.url.bo"; + public static final String MAPPE_URL_IFRAME_RICERCA = "conf.sismica.mappe.iframe.url.ricerca"; public static final String MAPPE_SHARED_SECRET = "conf.sismica.mappe.secret"; }