From 99abb87f7cd7a06e4a765de943f6aab6c6fac9ef Mon Sep 17 00:00:00 2001 From: Salvatore La Manna Date: Tue, 19 Jul 2022 14:08:12 +0200 Subject: [PATCH] Delega committente --- jasper/vidimazione_fl.jrxml | 855 +++++----- liferay-plugins-sdk-6.2/build.ture.properties | 10 +- .../build.ture.properties.save | 10 +- .../docroot/WEB-INF/service.xml | 2 + .../portos/bo/model/FineLavoriClp.java | 49 +- .../portos/bo/model/FineLavoriModel.java | 21 + .../portos/bo/model/FineLavoriSoap.java | 14 + .../portos/bo/model/FineLavoriWrapper.java | 38 + .../bo/service/FineLavoriLocalService.java | 3 +- .../bo/service/FineLavoriLocalServiceClp.java | 10 +- .../service/FineLavoriLocalServiceUtil.java | 6 +- .../FineLavoriLocalServiceWrapper.java | 5 +- .../portos/bo/service/FineLavoriService.java | 3 +- .../bo/service/FineLavoriServiceClp.java | 10 +- .../bo/service/FineLavoriServiceUtil.java | 6 +- .../bo/service/FineLavoriServiceWrapper.java | 5 +- .../bo/service/SoggettoLocalService.java | 21 + .../bo/service/SoggettoLocalServiceClp.java | 165 ++ .../bo/service/SoggettoLocalServiceUtil.java | 26 + .../service/SoggettoLocalServiceWrapper.java | 30 + .../bo/util/ValidazionePraticaUtil.java | 13 +- .../docroot/WEB-INF/sql/indexes.properties | 4 + .../docroot/WEB-INF/sql/indexes.sql | 4 + .../docroot/WEB-INF/sql/tables.sql | 15 +- .../WEB-INF/src/META-INF/portlet-hbm.xml | 1 + .../src/META-INF/portlet-model-hints.xml | 1 + .../WEB-INF/src/META-INF/portlet-orm.xml | 1 + .../WEB-INF/src/content/Portal.properties | 39 +- .../bo/startup/DatabaseUpdateAction.java | 25 +- .../bo/model/impl/FineLavoriCacheModel.java | 10 +- .../bo/model/impl/FineLavoriModelImpl.java | 44 +- .../bo/scheduler/SchedulerPratiche.java | 8 +- .../FineLavoriLocalServiceClpInvoker.java | 6 +- .../base/FineLavoriServiceClpInvoker.java | 6 +- .../base/SoggettoLocalServiceClpInvoker.java | 44 + .../service/http/FineLavoriServiceSoap.java | 7 +- .../ControlloPraticaLocalServiceImpl.java | 5 +- .../impl/FineLavoriLocalServiceImpl.java | 5 +- .../service/impl/FineLavoriServiceImpl.java | 5 +- .../impl/IntPraticaLocalServiceImpl.java | 2 +- .../impl/SoggettoLocalServiceImpl.java | 257 ++- .../FineLavoriPersistenceImpl.java | 1 + .../src/resource/asseverazioni/delega.html | 83 + .../resource/asseverazioni/delegawrapper.html | 29 + .../docroot/WEB-INF/src/service.properties | 4 +- .../portos/fe/portlet/FascicoloFePortlet.java | 1371 +++++++++-------- .../fe/portlet/SoggettiPraticaPortlet.java | 103 +- .../fascicolofe/asseverazione_actions.jsp | 3 +- .../html/fascicolofe/edit_collaudo.jsp | 746 +++++---- .../html/fascicolofe/edit_fine-lavori.jsp | 892 +++++------ .../html/fascicolofe/edit_inizio_lavori.jsp | 44 + .../html/fascicolofe/fascicolo_action.jsp | 131 +- .../navigator/common/save_actions.jspf | 1 - .../domanda/page_dettagli_principali.jsp | 3 + .../verify_fine-lavori_calcolo.jsp | 425 +++-- .../verify_fine-lavori_calcolo_old.jsp | 312 ++++ .../html/soggettipratica/edit_soggetto.jsp | 2 +- .../html/soggettipratica/genera_delega.jsp | 137 ++ .../docroot/html/soggettipratica/view.jsp | 32 +- .../docroot/html/init.jsp | 34 +- .../docroot/html/mail_manager/edit.jsp | 93 +- .../html/mail_manager/email_action.jsp | 30 +- .../email_history_popup_button.jsp | 44 +- .../docroot/html/mail_manager/init.jsp | 5 +- .../docroot/html/mail_manager/view.jsp | 264 ++-- .../docroot/WEB-INF/lib/velocity.jar | Bin 0 -> 421339 bytes .../docroot/WEB-INF/src/service.properties | 4 +- .../shared/portos-audit-shared/.classpath | 2 +- .../shared/portos-bo-shared/.classpath | 8 +- .../bo/shared/util/PagamentoConstants.java | 2 - .../shared/portos-firma-shared/.classpath | 2 +- .../shared/portos-kaleo-shared/.classpath | 2 +- .../portos-mail-manager-shared/.classpath | 4 +- .../shared/portos-report-shared/.classpath | 2 +- .../webs/portos-kaleo-web/.classpath | 2 +- 75 files changed, 3879 insertions(+), 2729 deletions(-) create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delega.html create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delegawrapper.html create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_inizio_lavori.jsp create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo_old.jsp create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/genera_delega.jsp create mode 100644 liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/lib/velocity.jar diff --git a/jasper/vidimazione_fl.jrxml b/jasper/vidimazione_fl.jrxml index 823732e6..b516f10a 100644 --- a/jasper/vidimazione_fl.jrxml +++ b/jasper/vidimazione_fl.jrxml @@ -1,397 +1,458 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/liferay-plugins-sdk-6.2/build.ture.properties b/liferay-plugins-sdk-6.2/build.ture.properties index 62bbad6c..e3b7ca4b 100644 --- a/liferay-plugins-sdk-6.2/build.ture.properties +++ b/liferay-plugins-sdk-6.2/build.ture.properties @@ -1,11 +1,11 @@ # Managed by Liferay IDE (remove this comment to prevent future updates) -app.server.tomcat.lib.global.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62/lib/ext -app.server.tomcat.deploy.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62/webapps -app.server.parent.dir = /media/esterno/lavoro/liferay/portali/sismica -app.server.tomcat.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62 +app.server.tomcat.lib.global.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62/lib/ext +app.server.tomcat.deploy.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62/webapps +app.server.parent.dir = /home/ture/liferay/portali/sismica +app.server.tomcat.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62 app.server.type = tomcat -app.server.tomcat.portal.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62/webapps/ROOT +app.server.tomcat.portal.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62/webapps/ROOT javac.encoding = UTF-8 ext.work.dir = /home/ture/liferay/src/work app.server.dir = /home/ture/liferay/src/work/liferay-portal-6.2-ce-ga6/tomcat-7.0.62 diff --git a/liferay-plugins-sdk-6.2/build.ture.properties.save b/liferay-plugins-sdk-6.2/build.ture.properties.save index 84bad1cb..dc422914 100644 --- a/liferay-plugins-sdk-6.2/build.ture.properties.save +++ b/liferay-plugins-sdk-6.2/build.ture.properties.save @@ -1,9 +1,9 @@ -app.server.tomcat.lib.global.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62/lib/ext -app.server.tomcat.deploy.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62/webapps -app.server.parent.dir = /media/esterno/lavoro/liferay/portali/sismica -app.server.tomcat.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62 +app.server.tomcat.lib.global.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62/lib/ext +app.server.tomcat.deploy.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62/webapps +app.server.parent.dir = /home/ture/liferay/portali/sismica +app.server.tomcat.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62 app.server.type = tomcat -app.server.tomcat.portal.dir = /media/esterno/lavoro/liferay/portali/sismica/tomcat-7.0.62/webapps/ROOT +app.server.tomcat.portal.dir = /home/ture/liferay/portali/sismica/tomcat-7.0.62/webapps/ROOT javac.encoding = UTF-8 ext.work.dir=/home/ture/liferay/src/work app.server.dir=/home/ture/liferay/src/work/liferay-portal-6.2-ce-ga6/tomcat-7.0.62 diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml index 12c55c42..9ab719df 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml @@ -704,6 +704,7 @@ + @@ -711,6 +712,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriClp.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriClp.java index a7da3f5f..10dc9df1 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriClp.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriClp.java @@ -103,6 +103,7 @@ public class FineLavoriClp extends BaseModelImpl attributes.put("causalePagamento", getCausalePagamento()); attributes.put("mezzoPagamento", getMezzoPagamento()); attributes.put("importoBolli", getImportoBolli()); + attributes.put("richiestaAttestazione", getRichiestaAttestazione()); return attributes; } @@ -267,6 +268,13 @@ public class FineLavoriClp extends BaseModelImpl if (importoBolli != null) { setImportoBolli(importoBolli); } + + Boolean richiestaAttestazione = (Boolean)attributes.get( + "richiestaAttestazione"); + + if (richiestaAttestazione != null) { + setRichiestaAttestazione(richiestaAttestazione); + } } @Override @@ -912,6 +920,35 @@ public class FineLavoriClp extends BaseModelImpl } } + @Override + public boolean getRichiestaAttestazione() { + return _richiestaAttestazione; + } + + @Override + public boolean isRichiestaAttestazione() { + return _richiestaAttestazione; + } + + @Override + public void setRichiestaAttestazione(boolean richiestaAttestazione) { + _richiestaAttestazione = richiestaAttestazione; + + if (_fineLavoriRemoteModel != null) { + try { + Class clazz = _fineLavoriRemoteModel.getClass(); + + Method method = clazz.getMethod("setRichiestaAttestazione", + boolean.class); + + method.invoke(_fineLavoriRemoteModel, richiestaAttestazione); + } + catch (Exception e) { + throw new UnsupportedOperationException(e); + } + } + } + @Override public java.lang.String getTitle(java.util.Locale locale) { try { @@ -1070,6 +1107,7 @@ public class FineLavoriClp extends BaseModelImpl clone.setCausalePagamento(getCausalePagamento()); clone.setMezzoPagamento(getMezzoPagamento()); clone.setImportoBolli(getImportoBolli()); + clone.setRichiestaAttestazione(getRichiestaAttestazione()); return clone; } @@ -1122,7 +1160,7 @@ public class FineLavoriClp extends BaseModelImpl @Override public String toString() { - StringBundler sb = new StringBundler(53); + StringBundler sb = new StringBundler(55); sb.append("{uuid="); sb.append(getUuid()); @@ -1176,6 +1214,8 @@ public class FineLavoriClp extends BaseModelImpl sb.append(getMezzoPagamento()); sb.append(", importoBolli="); sb.append(getImportoBolli()); + sb.append(", richiestaAttestazione="); + sb.append(getRichiestaAttestazione()); sb.append("}"); return sb.toString(); @@ -1183,7 +1223,7 @@ public class FineLavoriClp extends BaseModelImpl @Override public String toXmlString() { - StringBundler sb = new StringBundler(82); + StringBundler sb = new StringBundler(85); sb.append(""); sb.append("it.tref.liferay.portos.bo.model.FineLavori"); @@ -1293,6 +1333,10 @@ public class FineLavoriClp extends BaseModelImpl "importoBolli"); + sb.append( + "richiestaAttestazione"); sb.append(""); @@ -1326,6 +1370,7 @@ public class FineLavoriClp extends BaseModelImpl private String _causalePagamento; private String _mezzoPagamento; private String _importoBolli; + private boolean _richiestaAttestazione; private BaseModel _fineLavoriRemoteModel; private Class _clpSerializerClass = it.tref.liferay.portos.bo.service.ClpSerializer.class; } \ 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/model/FineLavoriModel.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriModel.java index 3dafabc1..37b70bd9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriModel.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriModel.java @@ -502,6 +502,27 @@ public interface FineLavoriModel extends BaseModel, */ public void setImportoBolli(String importoBolli); + /** + * Returns the richiesta attestazione of this fine lavori. + * + * @return the richiesta attestazione of this fine lavori + */ + public boolean getRichiestaAttestazione(); + + /** + * Returns true if this fine lavori is richiesta attestazione. + * + * @return true if this fine lavori is richiesta attestazione; false otherwise + */ + public boolean isRichiestaAttestazione(); + + /** + * Sets whether this fine lavori is richiesta attestazione. + * + * @param richiestaAttestazione the richiesta attestazione of this fine lavori + */ + public void setRichiestaAttestazione(boolean richiestaAttestazione); + @Override public boolean isNew(); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriSoap.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriSoap.java index 7ec8c4cf..cba7c5fa 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriSoap.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriSoap.java @@ -57,6 +57,7 @@ public class FineLavoriSoap implements Serializable { soapModel.setCausalePagamento(model.getCausalePagamento()); soapModel.setMezzoPagamento(model.getMezzoPagamento()); soapModel.setImportoBolli(model.getImportoBolli()); + soapModel.setRichiestaAttestazione(model.getRichiestaAttestazione()); return soapModel; } @@ -338,6 +339,18 @@ public class FineLavoriSoap implements Serializable { _importoBolli = importoBolli; } + public boolean getRichiestaAttestazione() { + return _richiestaAttestazione; + } + + public boolean isRichiestaAttestazione() { + return _richiestaAttestazione; + } + + public void setRichiestaAttestazione(boolean richiestaAttestazione) { + _richiestaAttestazione = richiestaAttestazione; + } + private String _uuid; private long _fineLavoriId; private long _companyId; @@ -364,4 +377,5 @@ public class FineLavoriSoap implements Serializable { private String _causalePagamento; private String _mezzoPagamento; private String _importoBolli; + private boolean _richiestaAttestazione; } \ 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/model/FineLavoriWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriWrapper.java index 497afb7a..046e40d0 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/model/FineLavoriWrapper.java @@ -77,6 +77,7 @@ public class FineLavoriWrapper implements FineLavori, ModelWrapper { attributes.put("causalePagamento", getCausalePagamento()); attributes.put("mezzoPagamento", getMezzoPagamento()); attributes.put("importoBolli", getImportoBolli()); + attributes.put("richiestaAttestazione", getRichiestaAttestazione()); return attributes; } @@ -241,6 +242,13 @@ public class FineLavoriWrapper implements FineLavori, ModelWrapper { if (importoBolli != null) { setImportoBolli(importoBolli); } + + Boolean richiestaAttestazione = (Boolean)attributes.get( + "richiestaAttestazione"); + + if (richiestaAttestazione != null) { + setRichiestaAttestazione(richiestaAttestazione); + } } /** @@ -856,6 +864,36 @@ public class FineLavoriWrapper implements FineLavori, ModelWrapper { _fineLavori.setImportoBolli(importoBolli); } + /** + * Returns the richiesta attestazione of this fine lavori. + * + * @return the richiesta attestazione of this fine lavori + */ + @Override + public boolean getRichiestaAttestazione() { + return _fineLavori.getRichiestaAttestazione(); + } + + /** + * Returns true if this fine lavori is richiesta attestazione. + * + * @return true if this fine lavori is richiesta attestazione; false otherwise + */ + @Override + public boolean isRichiestaAttestazione() { + return _fineLavori.isRichiestaAttestazione(); + } + + /** + * Sets whether this fine lavori is richiesta attestazione. + * + * @param richiestaAttestazione the richiesta attestazione of this fine lavori + */ + @Override + public void setRichiestaAttestazione(boolean richiestaAttestazione) { + _fineLavori.setRichiestaAttestazione(richiestaAttestazione); + } + @Override public boolean isNew() { return _fineLavori.isNew(); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalService.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalService.java index 0f9d95e7..41659356 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalService.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalService.java @@ -325,7 +325,8 @@ public interface FineLavoriLocalService extends BaseLocalService, boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.SystemException, it.tref.liferay.portos.bo.NoSuchFineLavoriException; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceClp.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceClp.java index e43bcf80..131b68f6 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceClp.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceClp.java @@ -141,7 +141,8 @@ public class FineLavoriLocalServiceClp implements FineLavoriLocalService { _methodParameterTypes24 = new String[] { "long", "long", "long", "boolean", "boolean", "java.util.Date", - "java.lang.String", "boolean", "boolean", "java.lang.String" + "java.lang.String", "boolean", "boolean", "java.lang.String", + "boolean" }; _methodName25 = "getLastEditable"; @@ -1028,7 +1029,8 @@ public class FineLavoriLocalServiceClp implements FineLavoriLocalService { boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.SystemException, it.tref.liferay.portos.bo.NoSuchFineLavoriException { Object returnObj = null; @@ -1055,7 +1057,9 @@ public class FineLavoriLocalServiceClp implements FineLavoriLocalService { normEsenteCollaudo, - ClpSerializer.translateInput(comunicazioneDirettoreLavori) + ClpSerializer.translateInput(comunicazioneDirettoreLavori), + + richiestaAttestazione }); } catch (Throwable t) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceUtil.java index 86a5b26d..d429d694 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceUtil.java @@ -350,13 +350,15 @@ public class FineLavoriLocalServiceUtil { boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.SystemException, it.tref.liferay.portos.bo.NoSuchFineLavoriException { return getService() .updateFineLavori(userId, fineLavoriId, intPraticaId, parziale, completata, dataFineLavori, codiceFiscaleDelegato, - normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori); + normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori, + richiestaAttestazione); } public static it.tref.liferay.portos.bo.model.FineLavori getLastEditable( diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceWrapper.java index 78d23d4d..d35d2e96 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriLocalServiceWrapper.java @@ -373,13 +373,14 @@ public class FineLavoriLocalServiceWrapper implements FineLavoriLocalService, boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.SystemException, it.tref.liferay.portos.bo.NoSuchFineLavoriException { return _fineLavoriLocalService.updateFineLavori(userId, fineLavoriId, intPraticaId, parziale, completata, dataFineLavori, codiceFiscaleDelegato, normEsenteBollo, normEsenteCollaudo, - comunicazioneDirettoreLavori); + comunicazioneDirettoreLavori, richiestaAttestazione); } @Override diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriService.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriService.java index ecdf69ea..d6cac0cf 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriService.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriService.java @@ -96,7 +96,8 @@ public interface FineLavoriService extends BaseService, InvokableService { boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException; diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceClp.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceClp.java index 5b05b33f..dc0238c3 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceClp.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceClp.java @@ -62,7 +62,8 @@ public class FineLavoriServiceClp implements FineLavoriService { _methodParameterTypes8 = new String[] { "long", "long", "long", "boolean", "boolean", "java.util.Date", - "java.lang.String", "boolean", "boolean", "java.lang.String" + "java.lang.String", "boolean", "boolean", "java.lang.String", + "boolean" }; _methodName9 = "getLastEditable"; @@ -347,7 +348,8 @@ public class FineLavoriServiceClp implements FineLavoriService { boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { Object returnObj = null; @@ -374,7 +376,9 @@ public class FineLavoriServiceClp implements FineLavoriService { normEsenteCollaudo, - ClpSerializer.translateInput(comunicazioneDirettoreLavori) + ClpSerializer.translateInput(comunicazioneDirettoreLavori), + + richiestaAttestazione }); } catch (Throwable t) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceUtil.java index 49dee193..391857b5 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceUtil.java @@ -103,13 +103,15 @@ public class FineLavoriServiceUtil { boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { return getService() .updateFineLavori(userId, fineLavoriId, intPraticaId, parziale, completata, dataFineLavori, codiceFiscaleDelegato, - normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori); + normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori, + richiestaAttestazione); } public static it.tref.liferay.portos.bo.model.FineLavori getLastEditable( diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceWrapper.java index f5e6c830..c9389dc5 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/bo/service/FineLavoriServiceWrapper.java @@ -102,13 +102,14 @@ public class FineLavoriServiceWrapper implements FineLavoriService, boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws com.liferay.portal.kernel.exception.PortalException, com.liferay.portal.kernel.exception.SystemException { return _fineLavoriService.updateFineLavori(userId, fineLavoriId, intPraticaId, parziale, completata, dataFineLavori, codiceFiscaleDelegato, normEsenteBollo, normEsenteCollaudo, - comunicazioneDirettoreLavori); + comunicazioneDirettoreLavori, richiestaAttestazione); } @Override 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 1a2904ac..bf233d47 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 @@ -804,4 +804,25 @@ 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.lang.String getDelegaPlaceholder(); + + public long savePdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.PortalException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException; + + @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) + public byte[] getPdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException; + + @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) + public java.lang.String getAnteprimaDelega( + javax.portlet.PortletRequest request) + throws com.liferay.portal.kernel.exception.SystemException, + java.io.IOException; } \ 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 6a0dfed4..bf976d81 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 @@ -580,6 +580,22 @@ public class SoggettoLocalServiceClp implements SoggettoLocalService { _methodName99 = "getSoggettiByIntPraticaId_DtRimozioneNull"; _methodParameterTypes99 = new String[] { "long" }; + + _methodName100 = "getDelegaPlaceholder"; + + _methodParameterTypes100 = new String[] { }; + + _methodName101 = "savePdfDelega"; + + _methodParameterTypes101 = new String[] { "javax.portlet.PortletRequest" }; + + _methodName102 = "getPdfDelega"; + + _methodParameterTypes102 = new String[] { "javax.portlet.PortletRequest" }; + + _methodName103 = "getAnteprimaDelega"; + + _methodParameterTypes103 = new String[] { "javax.portlet.PortletRequest" }; } @Override @@ -4569,6 +4585,147 @@ public class SoggettoLocalServiceClp implements SoggettoLocalService { return (java.util.List)ClpSerializer.translateOutput(returnObj); } + @Override + public java.lang.String getDelegaPlaceholder() { + 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.lang.String)ClpSerializer.translateOutput(returnObj); + } + + @Override + public long savePdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.PortalException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + Object returnObj = null; + + try { + returnObj = _invokableLocalService.invokeMethod(_methodName101, + _methodParameterTypes101, + new Object[] { ClpSerializer.translateInput(request) }); + } + catch (Throwable t) { + t = ClpSerializer.translateThrowable(t); + + if (t instanceof com.itextpdf.text.DocumentException) { + throw (com.itextpdf.text.DocumentException)t; + } + + if (t instanceof com.liferay.portal.kernel.exception.PortalException) { + throw (com.liferay.portal.kernel.exception.PortalException)t; + } + + if (t instanceof com.liferay.portal.kernel.exception.SystemException) { + throw (com.liferay.portal.kernel.exception.SystemException)t; + } + + if (t instanceof java.io.IOException) { + throw (java.io.IOException)t; + } + + if (t instanceof RuntimeException) { + throw (RuntimeException)t; + } + else { + throw new RuntimeException(t.getClass().getName() + + " is not a valid exception"); + } + } + + return ((Long)returnObj).longValue(); + } + + @Override + public byte[] getPdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + Object returnObj = null; + + try { + returnObj = _invokableLocalService.invokeMethod(_methodName102, + _methodParameterTypes102, + new Object[] { ClpSerializer.translateInput(request) }); + } + catch (Throwable t) { + t = ClpSerializer.translateThrowable(t); + + if (t instanceof com.itextpdf.text.DocumentException) { + throw (com.itextpdf.text.DocumentException)t; + } + + if (t instanceof com.liferay.portal.kernel.exception.SystemException) { + throw (com.liferay.portal.kernel.exception.SystemException)t; + } + + if (t instanceof java.io.IOException) { + throw (java.io.IOException)t; + } + + if (t instanceof RuntimeException) { + throw (RuntimeException)t; + } + else { + throw new RuntimeException(t.getClass().getName() + + " is not a valid exception"); + } + } + + return (byte[])ClpSerializer.translateOutput(returnObj); + } + + @Override + public java.lang.String getAnteprimaDelega( + javax.portlet.PortletRequest request) + throws com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + Object returnObj = null; + + try { + returnObj = _invokableLocalService.invokeMethod(_methodName103, + _methodParameterTypes103, + new Object[] { ClpSerializer.translateInput(request) }); + } + catch (Throwable t) { + t = ClpSerializer.translateThrowable(t); + + if (t instanceof com.liferay.portal.kernel.exception.SystemException) { + throw (com.liferay.portal.kernel.exception.SystemException)t; + } + + if (t instanceof java.io.IOException) { + throw (java.io.IOException)t; + } + + if (t instanceof RuntimeException) { + throw (RuntimeException)t; + } + else { + throw new RuntimeException(t.getClass().getName() + + " is not a valid exception"); + } + } + + return (java.lang.String)ClpSerializer.translateOutput(returnObj); + } + private InvokableLocalService _invokableLocalService; private String _methodName0; private String[] _methodParameterTypes0; @@ -4768,4 +4925,12 @@ public class SoggettoLocalServiceClp implements SoggettoLocalService { private String[] _methodParameterTypes98; private String _methodName99; private String[] _methodParameterTypes99; + private String _methodName100; + private String[] _methodParameterTypes100; + private String _methodName101; + private String[] _methodParameterTypes101; + private String _methodName102; + private String[] _methodParameterTypes102; + private String _methodName103; + private String[] _methodParameterTypes103; } \ 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 d718e39b..9581627b 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 @@ -1106,6 +1106,32 @@ public class SoggettoLocalServiceUtil { .getSoggettiByIntPraticaId_DtRimozioneNull(intPraticaId); } + public static java.lang.String getDelegaPlaceholder() { + return getService().getDelegaPlaceholder(); + } + + public static long savePdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.PortalException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + return getService().savePdfDelega(request); + } + + public static byte[] getPdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + return getService().getPdfDelega(request); + } + + public static java.lang.String getAnteprimaDelega( + javax.portlet.PortletRequest request) + throws com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + return getService().getAnteprimaDelega(request); + } + 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 dd842e1e..f9a9227b 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 @@ -1157,6 +1157,36 @@ public class SoggettoLocalServiceWrapper implements SoggettoLocalService, return _soggettoLocalService.getSoggettiByIntPraticaId_DtRimozioneNull(intPraticaId); } + @Override + public java.lang.String getDelegaPlaceholder() { + return _soggettoLocalService.getDelegaPlaceholder(); + } + + @Override + public long savePdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.PortalException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + return _soggettoLocalService.savePdfDelega(request); + } + + @Override + public byte[] getPdfDelega(javax.portlet.PortletRequest request) + throws com.itextpdf.text.DocumentException, + com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + return _soggettoLocalService.getPdfDelega(request); + } + + @Override + public java.lang.String getAnteprimaDelega( + javax.portlet.PortletRequest request) + throws com.liferay.portal.kernel.exception.SystemException, + java.io.IOException { + return _soggettoLocalService.getAnteprimaDelega(request); + } + /** * @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 2faf3861..133dc485 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 @@ -495,6 +495,7 @@ public class ValidazionePraticaUtil { DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); long intPraticaId = dettPratica.getIntPraticaId(); + IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); List notCompleted = new ArrayList<>(); boolean titolare = SoggettiUtil.isTitolareInSoggetti(intPraticaId); if (!titolare) { @@ -584,7 +585,7 @@ public class ValidazionePraticaUtil { if (!collaudatoreNotRequired && !collaudatore) { notCompleted.add("gc-soggetto-" + TipoSoggettoUtil.COLLAUDATORE + "-not-present"); } else if (dettPratica.getNormLavoriInProprio() && (dettPratica.getTcInCA() || dettPratica.getTcInAcciaio()) - && (numeroCollaudatori < 3)) { + && (numeroCollaudatori < 3) && !Constants.PROCEDURA_C.equalsIgnoreCase(intPratica.getTipoProcedura())) { notCompleted.add("gc-terna-collaudatori-not-present"); } if (!committente) { @@ -970,11 +971,11 @@ public class ValidazionePraticaUtil { } } else if (codiceDoc.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A29)) { if (!signatures.contains(dettPratica.getUserName().toLowerCase())) { - notCompleted.add("A29 firma del titolare digitale richiesta"); - } - if (!isAllRequiredValid(codiceDoc, intPraticaId, signatures, TipoSoggettoUtil.getAllSubjects(), - doc)) { - notCompleted.add(codiceDoc + " firme obbligatorie mancanti"); + List firmeCommittenti = getSignaturePerSubject(intPraticaId, signatures, + TipoSoggettoUtil.COMMITTENTE, doc.getClassPk()); + if (firmeCommittenti.isEmpty()) { + notCompleted.add("A29 firma del titolare digitale o del committente richiesta"); + } } } else if (isEnoughOne && signatures.isEmpty()) { // Return false if one sign is enought but there are no signs for this subjectType 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 bcb7d0c8..78da40f8 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 @@ -153,6 +153,10 @@ IX_3F61CC23=portos_bo_InfoFascicolo.UUID_G IX_3FD1AC67=portos_bo_InfoFascicolo.Uuid IX_B49E6161=portos_bo_InfoFascicolo.Uuid_C +IX_91DD4F35=portos_bo_InizioLavori.UUID_G +IX_140D0D15=portos_bo_InizioLavori.Uuid +IX_564567F3=portos_bo_InizioLavori.Uuid_C + IX_9929E083=portos_bo_IntPratica.C_Group IX_E75F8D41=portos_bo_IntPratica.C_UserId IX_779B836B=portos_bo_IntPratica.P 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 dfd764a8..e130c47a 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 @@ -149,6 +149,10 @@ create index IX_3FD1AC67 on portos_bo_InfoFascicolo (uuid_); create index IX_B49E6161 on portos_bo_InfoFascicolo (uuid_, companyId); create unique index IX_3F61CC23 on portos_bo_InfoFascicolo (uuid_, groupId); +create index IX_140D0D15 on portos_bo_InizioLavori (uuid_); +create index IX_564567F3 on portos_bo_InizioLavori (uuid_, companyId); +create unique index IX_91DD4F35 on portos_bo_InizioLavori (uuid_, groupId); + create index IX_9929E083 on portos_bo_IntPratica (companyId, groupId); create index IX_E75F8D41 on portos_bo_IntPratica (companyId, userId); create index IX_779B836B on portos_bo_IntPratica (status, dtPratica); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql index 1d3a818a..62533e29 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/sql/tables.sql @@ -508,7 +508,8 @@ create table portos_bo_FineLavori ( codicePagamento VARCHAR(75) null, causalePagamento VARCHAR(75) null, mezzoPagamento VARCHAR(75) null, - importoBolli VARCHAR(75) null + importoBolli VARCHAR(75) null, + richiestaAttestazione BOOLEAN ); create table portos_bo_HistoryWorkflowAction ( @@ -553,6 +554,18 @@ create table portos_bo_InfoFascicolo ( alreadyImported BOOLEAN ); +create table portos_bo_InizioLavori ( + inizioLavoriId LONG not null primary key, + companyId LONG, + userId LONG, + userName VARCHAR(75) null, + createDate DATE null, + modifiedDate DATE null, + groupId LONG, + intPraticaId LONG, + dataInizioLavori DATE null +); + create table portos_bo_IntPratica ( uuid_ VARCHAR(75) null, intPraticaId LONG not null primary key, diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml index cb90faf6..df55a38e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-hbm.xml @@ -562,6 +562,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml index 6ce58332..75a838b6 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-model-hints.xml @@ -616,6 +616,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml index ba3d9b6d..0fed6264 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/META-INF/portlet-orm.xml @@ -711,6 +711,7 @@ + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties index dc00e3de..7dad840a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/content/Portal.properties @@ -70,7 +70,7 @@ label-asseverazione-tipologia-02 = Committente label-asseverazione-tipologia-03 = Direttore Lavori label-asseverazione-tipologia-04 = Ditta label-asseverazione-tipologia-05 = Geologo -label-asseverazione-tipologia-06 = Progettista +label-asseverazione-tipologia-06 = Progettista / Tecnico Verificatore label-asseverazione-status-AS = Assegnata label-asseverazione-status-ES = Eseguita @@ -85,14 +85,19 @@ gc-soggetto-02 = Committente gc-soggetto-03 = Direttore Lavori gc-soggetto-04 = Ditta Costruttrice gc-soggetto-05 = Geologo -gc-soggetto-06 = Progettista +gc-soggetto-06 = Progettista / Tecnico Verificatore + +delega-soggetto-01 = Collaudatore +delega-soggetto-03 = Direttore Lavori +delega-soggetto-05 = Geologo +delega-soggetto-06 = Progettista gc-soggetti-01 = Collaudatori gc-soggetti-02 = Committenti gc-soggetti-03 = Direttori Lavori gc-soggetti-04 = Ditte Costruttrici gc-soggetti-05 = Geologi -gc-soggetti-06 = Progettisti +gc-soggetti-06 = Progettisti / Tecnici Verificatori gc-soggetto-00-not-present = Titolare Digitale non presente tra i soggetti gc-soggetto-01-not-present = Collaudatore non presente tra i soggetti @@ -100,7 +105,7 @@ gc-soggetto-02-not-present = Committente non presente tra i soggetti gc-soggetto-03-not-present = Direttore Lavori non presente tra i soggetti gc-soggetto-04-not-present = Ditta non presente tra i soggetti gc-soggetto-05-not-present = Geologo non presente tra i soggetti -gc-soggetto-06-not-present = Progettista non presente tra i soggetti +gc-soggetto-06-not-present = Progettista / Tecnico Verificatore non presente tra i soggetti gc-terna-collaudatori-not-present = È necessario censire i tre collaudatori della terna gc-soggetto-01-principale-not-present = Collaudatore principale non selezionato @@ -108,7 +113,7 @@ gc-soggetto-02-principale-not-present = Committente principale non selezionato gc-soggetto-03-principale-not-present = Direttore Lavori principale non selezionato gc-soggetto-04-principale-not-present = Ditta principale non selezionato gc-soggetto-05-principale-not-present = Geologo principale non selezionato -gc-soggetto-06-principale-not-present = Progettista principale non selezionato +gc-soggetto-06-principale-not-present = Progettista / Tecnico Verificatore principale non selezionato gc-soggetti-not-completed = Alcuni soggetti non validi @@ -832,7 +837,7 @@ label-documenti-tipologia-A15 = Relazione Modellazione Sismica label-documenti-tipologia-A15-old = Certificazione del rispetto delle norme tecniche (in bollo) redatta dal tecnico rilevatore (solo per opere conformi) label-documenti-tipologia-A16-old = Certificato di collaudo statico in bollo (se dovuto) label-documenti-tipologia-A17 = Terna Collaudatori -label-documenti-tipologia-A29 = Dichiarazione impresa +label-documenti-tipologia-A29 = Dichiarazioni del committente e/o del titolare digitale su lavori in economia label-documenti-tipologia-A98 = Delega al titolare digitale e lettere di incarico ai professionisti label-documenti-tipologia-A99 = Altri label-documenti-tipologia-dnf = Pratica non firmata @@ -850,7 +855,7 @@ label-documenti-tipologia-Afl = Altri label-documenti-tipologia-111VS = Documento Variazione Soggetto - Portos 1 label-documenti-tipologia-APM = Ricevuta Pagamento Manuale -label-documenti-tipologia-AGL = Giornale dei Lavori / Relazione a strutture ultimate - Fine Lavori +label-documenti-tipologia-AGL = Certificato di regolare esecuzione / Relazione a strutture ultimate label-documenti-tipologia-ACC = Certificato Calcestruzzo label-documenti-tipologia-ACA = Certificato Acciaio label-documenti-tipologia-ACL = Certificato Legno @@ -937,14 +942,22 @@ text-pagamento-manuale-oneri = text-pagamento-manuale-iris text-pagamento-manuale-bolli = text-pagamento-manuale-bolli sostituisci-pagamento-oneri = Cambia modalità pagamento Spese Istruttoria sostituisci-pagamento-bolli = Cambia modalità pagamento Bolli + text-pagamento-completato-spese = Pagamento Spese Istruttoria completato text-pagamento-nonpagabile-spese = Pagamento Spese Istruttoria non pagabile text-pagamento-rifiutato-spese = Pagamento Spese Istruttoria rifiutato -text-pagamento-annullato-spese = Pagamento Spese Istruttoria annullato. Contattare il supporto.. +text-pagamento-annullato-spese = Pagamento Spese Istruttoria annullato. Contattare il supporto. + text-pagamento-completato-bolli = Pagamento Bolli completato text-pagamento-nonpagabile-bolli = Pagamento Bolli non pagabile text-pagamento-rifiutato-bolli = Pagamento Bolli rifiutato -text-pagamento-annullato-bolli = Pagamento Bolli annullato. Contattare il supporto.. +text-pagamento-annullato-bolli = Pagamento Bolli annullato. Contattare il supporto. + +text-pagamento-completato-diritti-fissi = Pagamento Diritti Fissi completato +text-pagamento-nonpagabile-diritti-fissi = Pagamento Diritti Fissi non pagabile +text-pagamento-rifiutato-diritti-fissi = Pagamento Diritti Fissi rifiutato +text-pagamento-annullato-diritti-fissi = Pagamento Diritti Fissi annullato. Contattare il supporto. + text-rigenera-pagamento = Rigenera text-rigenera-pagamento-admin = Rigenera text-annulla-pagamento-admin = Annulla @@ -973,21 +986,21 @@ fl-data-fine = Data effettuazione fine lavori fl-data-fine-early = Data effettuazione fine lavori non può essere antecedente la data di inizio lavori fl-esente-bollo = esente da bollo ai sensi di D.P.R. 26/10/1972 n. 642 e s.m.i. fl-dichiaraz-direttore = Il sottoscritto {0} {1}, in qualità di Direttore dei lavori principale dichiara che in data sopra indicata sono state ultimate le opere relative al progetto in oggetto.
Le opere sono state realizzate secondo il progetto autorizzato / depositato ed i materiali utilizzati sono conformi a quanto dichiarato
Con la presente si certifica altresì che le opere realizzate sono conformi alle prescrizioni antisismiche della vigente normativa nonchè, laddove previsto, alle prescrizioni relative alle opere di conglomerato cementizio armato, normale e precompresso, ed a struttura metallica di cui alla parte II, capo II, del D.P.R. 380/01. -fl-firma-direttore = Relazione di Fine Lavori e Certificato di Rispondenza, ai sensi dell'art. 93 del D.P.R. 380/2001 sottoscritti dal Direttore dei Lavori {0} {1} - {2} ai sensi del D.Lgs. 82/2005. +fl-firma-direttore = Relazione di Fine Lavori e Certificato di Rispondenza, ai sensi dell''art. 93 del D.P.R. 380/2001 sottoscritti dal Direttore dei Lavori {0} {1} - {2} ai sensi del D.Lgs. 82/2005. fl-varianti = Durante il corso dei lavori sono state presentate le seguenti varianti e/o integrazioni al progetto fl-table-variante = Variante fl-table-integrazione = Integrazioni fl-table-parziale = Fine lavori parziale fl-allegati = Allegati fl-altro = Il Direttore dei lavori comunica inoltre: -#fl-collaudo = Trattandosi di opere di riparazione/intervento locale eseguite ai sensi del punto 8.4.3 del D.M. 14.01.2008 il sottoscritto Direttore dei Lavori dichiara, sotto la sua responsabilità, che non si procederà ad effettuare il collaudo delle opere -#bug id #1 fl-collaudo = Trattandosi di opere di riparazione/intervento locale eseguite ai sensi del punto 8.4 del D.M. 17.01.2018 il sottoscritto Direttore dei Lavori dichiara, sotto la sua responsabilità, che non si procederà ad effettuare il collaudo delle opere fl-parziale-not-possibile = Fine Lavori Parziale non possibile no-varianti-integrazioni = Nessuna Variante o Integrazione presentata al momento no-fine-lavori-parziali = Nessuna Fine Lavori Parziale presentata al momento +fl-attestazione = Si chiede il rilascio dell’attestazione di deposito degli atti +fl-attestazione-note = Il rilascio dell’attestazione non deve essere richiesto per interventi e nuove costruzioni con struttura diversa da cemento armato e acciaio che richiedono il deposito del collaudo ## Collaudo ## col = Collaudo @@ -995,7 +1008,7 @@ col-tipo = Tipologia Collaudo col-prov = Provincia col-comune = Comune col-sismica = Zona sismica -col-pericolosita = Fascia paricolosità +col-pericolosita = Fascia pericolosità col-range = Range Ag col-desc-interv = Descrizione Intervento col-commit = Committente/i diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java index fa6ff620..0c82c520 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/startup/DatabaseUpdateAction.java @@ -50,11 +50,11 @@ public class DatabaseUpdateAction extends SimpleAction { "geoPericolositaIdraulica", "geoFattibilitaIdraulica", "geoFattibilitaGeologica" }; for (String column : columns) { - int righe = s.executeUpdate("UPDATE " + DettPraticaImpl.TABLE_NAME + " SET " + column - + "='NA' " + "WHERE " + column + "='0'"); + int righe = s.executeUpdate("UPDATE " + DettPraticaImpl.TABLE_NAME + " SET " + column + "='NA' " + + "WHERE " + column + "='0'"); if (righe > 0) { - _log.info("Aggiornate " + righe + " righe in " + DettPraticaImpl.TABLE_NAME - + ", colonna " + column); + _log.info("Aggiornate " + righe + " righe in " + DettPraticaImpl.TABLE_NAME + ", colonna " + + column); } } @@ -102,6 +102,11 @@ public class DatabaseUpdateAction extends SimpleAction { s.executeUpdate("ALTER TABLE " + FineLavoriImpl.TABLE_NAME + " DROP COLUMN oldDettPraticaId"); } + if (!hasColumn(FineLavoriImpl.TABLE_NAME, "richiestaAttestazione")) { + _log.info("Aggiornamento a v3 di " + FineLavoriImpl.TABLE_NAME); + s.executeUpdate("ALTER TABLE " + FineLavoriImpl.TABLE_NAME + " ADD COLUMN richiestaAttestazione BOOL"); + } + if (hasColumn(CollaudoImpl.TABLE_NAME, "oldDettPraticaId")) { _log.info("Aggiornamento a v2 di " + CollaudoImpl.TABLE_NAME); s.executeUpdate("ALTER TABLE " + CollaudoImpl.TABLE_NAME + " DROP COLUMN oldDettPraticaId"); @@ -119,14 +124,12 @@ public class DatabaseUpdateAction extends SimpleAction { if (!hasColumn(AsseverazioneImpl.TABLE_NAME, "dichiarazioni")) { _log.info("Aggiornamento a v2 di " + AsseverazioneImpl.TABLE_NAME); - s.executeUpdate("ALTER TABLE " + AsseverazioneImpl.TABLE_NAME - + " ADD COLUMN dichiarazioni TEXT NULL"); + s.executeUpdate("ALTER TABLE " + AsseverazioneImpl.TABLE_NAME + " ADD COLUMN dichiarazioni TEXT NULL"); } if (!hasColumn(DelegaImpl.TABLE_NAME, "dichiarazioni")) { _log.info("Aggiornamento a v2 di " + DelegaImpl.TABLE_NAME); - s.executeUpdate("ALTER TABLE " + DelegaImpl.TABLE_NAME - + " ADD COLUMN dichiarazioni TEXT NULL"); + s.executeUpdate("ALTER TABLE " + DelegaImpl.TABLE_NAME + " ADD COLUMN dichiarazioni TEXT NULL"); } if (!hasColumn(IntPraticaImpl.TABLE_NAME, "inLavorazioneSue")) { @@ -134,7 +137,6 @@ public class DatabaseUpdateAction extends SimpleAction { s.executeUpdate("ALTER TABLE " + IntPraticaImpl.TABLE_NAME + " ADD COLUMN inLavorazioneSue BOOL"); } - if (!hasColumn(DettPraticaImpl.TABLE_NAME, "contestoPaesaggistico")) { _log.info("Aggiornamento a v7 di " + IntPraticaImpl.TABLE_NAME); s.executeUpdate("ALTER TABLE " + DettPraticaImpl.TABLE_NAME + " ADD COLUMN contestoPaesaggistico TEXT"); @@ -149,7 +151,6 @@ public class DatabaseUpdateAction extends SimpleAction { _log.info("Aggiornamento a v7 di " + IntPraticaImpl.TABLE_NAME); s.executeUpdate("ALTER TABLE " + DettPraticaImpl.TABLE_NAME + " ADD COLUMN vincoli TEXT"); } - } catch (SQLException e) { _log.error("Errore di accesso al database: ", e); throw new ActionException(e); @@ -165,10 +166,10 @@ public class DatabaseUpdateAction extends SimpleAction { } private boolean hasColumn(String table, String column) { + boolean result = true; - ResultSet rs = null; try { - rs = s.executeQuery("SELECT " + column + " FROM " + table + " WHERE false"); + ResultSet rs = s.executeQuery("SELECT " + column + " FROM " + table + " WHERE false"); rs.getMetaData().getColumnName(1); DataAccess.cleanUp(rs); } catch (SQLException e) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriCacheModel.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriCacheModel.java index f18fc1a0..7fdc87d9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriCacheModel.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriCacheModel.java @@ -38,7 +38,7 @@ public class FineLavoriCacheModel implements CacheModel, Externalizable { @Override public String toString() { - StringBundler sb = new StringBundler(53); + StringBundler sb = new StringBundler(55); sb.append("{uuid="); sb.append(uuid); @@ -92,6 +92,8 @@ public class FineLavoriCacheModel implements CacheModel, sb.append(mezzoPagamento); sb.append(", importoBolli="); sb.append(importoBolli); + sb.append(", richiestaAttestazione="); + sb.append(richiestaAttestazione); sb.append("}"); return sb.toString(); @@ -216,6 +218,8 @@ public class FineLavoriCacheModel implements CacheModel, fineLavoriImpl.setImportoBolli(importoBolli); } + fineLavoriImpl.setRichiestaAttestazione(richiestaAttestazione); + fineLavoriImpl.resetOriginalValues(); return fineLavoriImpl; @@ -249,6 +253,7 @@ public class FineLavoriCacheModel implements CacheModel, causalePagamento = objectInput.readUTF(); mezzoPagamento = objectInput.readUTF(); importoBolli = objectInput.readUTF(); + richiestaAttestazione = objectInput.readBoolean(); } @Override @@ -338,6 +343,8 @@ public class FineLavoriCacheModel implements CacheModel, else { objectOutput.writeUTF(importoBolli); } + + objectOutput.writeBoolean(richiestaAttestazione); } public String uuid; @@ -366,4 +373,5 @@ public class FineLavoriCacheModel implements CacheModel, public String causalePagamento; public String mezzoPagamento; public String importoBolli; + public boolean richiestaAttestazione; } \ 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/model/impl/FineLavoriModelImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriModelImpl.java index 1ac3879e..6df9d218 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriModelImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/model/impl/FineLavoriModelImpl.java @@ -92,9 +92,10 @@ public class FineLavoriModelImpl extends BaseModelImpl { "codicePagamento", Types.VARCHAR }, { "causalePagamento", Types.VARCHAR }, { "mezzoPagamento", Types.VARCHAR }, - { "importoBolli", Types.VARCHAR } + { "importoBolli", Types.VARCHAR }, + { "richiestaAttestazione", Types.BOOLEAN } }; - public static final String TABLE_SQL_CREATE = "create table portos_bo_FineLavori (uuid_ VARCHAR(75) null,fineLavoriId LONG not null primary key,companyId LONG,userId LONG,userName VARCHAR(75) null,createDate DATE null,modifiedDate DATE null,groupId LONG,intPraticaId LONG,protocollo VARCHAR(75) null,dtProtocollo DATE null,parziale BOOLEAN,completata BOOLEAN,gestita BOOLEAN,numero LONG,codiceFiscaleDelegato VARCHAR(75) null,dataEffettuazione DATE null,dataFineLavori DATE null,normEsenteBollo BOOLEAN,normEsenteCollaudo BOOLEAN,comunicazioneDirettoreLavori STRING null,pagamentoId LONG,codicePagamento VARCHAR(75) null,causalePagamento VARCHAR(75) null,mezzoPagamento VARCHAR(75) null,importoBolli VARCHAR(75) null)"; + public static final String TABLE_SQL_CREATE = "create table portos_bo_FineLavori (uuid_ VARCHAR(75) null,fineLavoriId LONG not null primary key,companyId LONG,userId LONG,userName VARCHAR(75) null,createDate DATE null,modifiedDate DATE null,groupId LONG,intPraticaId LONG,protocollo VARCHAR(75) null,dtProtocollo DATE null,parziale BOOLEAN,completata BOOLEAN,gestita BOOLEAN,numero LONG,codiceFiscaleDelegato VARCHAR(75) null,dataEffettuazione DATE null,dataFineLavori DATE null,normEsenteBollo BOOLEAN,normEsenteCollaudo BOOLEAN,comunicazioneDirettoreLavori STRING null,pagamentoId LONG,codicePagamento VARCHAR(75) null,causalePagamento VARCHAR(75) null,mezzoPagamento VARCHAR(75) null,importoBolli VARCHAR(75) null,richiestaAttestazione BOOLEAN)"; public static final String TABLE_SQL_DROP = "drop table portos_bo_FineLavori"; public static final String ORDER_BY_JPQL = " ORDER BY fineLavori.fineLavoriId ASC"; public static final String ORDER_BY_SQL = " ORDER BY portos_bo_FineLavori.fineLavoriId ASC"; @@ -159,6 +160,7 @@ public class FineLavoriModelImpl extends BaseModelImpl model.setCausalePagamento(soapModel.getCausalePagamento()); model.setMezzoPagamento(soapModel.getMezzoPagamento()); model.setImportoBolli(soapModel.getImportoBolli()); + model.setRichiestaAttestazione(soapModel.getRichiestaAttestazione()); return model; } @@ -250,6 +252,7 @@ public class FineLavoriModelImpl extends BaseModelImpl attributes.put("causalePagamento", getCausalePagamento()); attributes.put("mezzoPagamento", getMezzoPagamento()); attributes.put("importoBolli", getImportoBolli()); + attributes.put("richiestaAttestazione", getRichiestaAttestazione()); return attributes; } @@ -414,6 +417,13 @@ public class FineLavoriModelImpl extends BaseModelImpl if (importoBolli != null) { setImportoBolli(importoBolli); } + + Boolean richiestaAttestazione = (Boolean)attributes.get( + "richiestaAttestazione"); + + if (richiestaAttestazione != null) { + setRichiestaAttestazione(richiestaAttestazione); + } } @JSON @@ -871,6 +881,22 @@ public class FineLavoriModelImpl extends BaseModelImpl _importoBolli = importoBolli; } + @JSON + @Override + public boolean getRichiestaAttestazione() { + return _richiestaAttestazione; + } + + @Override + public boolean isRichiestaAttestazione() { + return _richiestaAttestazione; + } + + @Override + public void setRichiestaAttestazione(boolean richiestaAttestazione) { + _richiestaAttestazione = richiestaAttestazione; + } + @Override public StagedModelType getStagedModelType() { return new StagedModelType(PortalUtil.getClassNameId( @@ -934,6 +960,7 @@ public class FineLavoriModelImpl extends BaseModelImpl fineLavoriImpl.setCausalePagamento(getCausalePagamento()); fineLavoriImpl.setMezzoPagamento(getMezzoPagamento()); fineLavoriImpl.setImportoBolli(getImportoBolli()); + fineLavoriImpl.setRichiestaAttestazione(getRichiestaAttestazione()); fineLavoriImpl.resetOriginalValues(); @@ -1162,12 +1189,14 @@ public class FineLavoriModelImpl extends BaseModelImpl fineLavoriCacheModel.importoBolli = null; } + fineLavoriCacheModel.richiestaAttestazione = getRichiestaAttestazione(); + return fineLavoriCacheModel; } @Override public String toString() { - StringBundler sb = new StringBundler(53); + StringBundler sb = new StringBundler(55); sb.append("{uuid="); sb.append(getUuid()); @@ -1221,6 +1250,8 @@ public class FineLavoriModelImpl extends BaseModelImpl sb.append(getMezzoPagamento()); sb.append(", importoBolli="); sb.append(getImportoBolli()); + sb.append(", richiestaAttestazione="); + sb.append(getRichiestaAttestazione()); sb.append("}"); return sb.toString(); @@ -1228,7 +1259,7 @@ public class FineLavoriModelImpl extends BaseModelImpl @Override public String toXmlString() { - StringBundler sb = new StringBundler(82); + StringBundler sb = new StringBundler(85); sb.append(""); sb.append("it.tref.liferay.portos.bo.model.FineLavori"); @@ -1338,6 +1369,10 @@ public class FineLavoriModelImpl extends BaseModelImpl "importoBolli"); + sb.append( + "richiestaAttestazione"); sb.append(""); @@ -1388,6 +1423,7 @@ public class FineLavoriModelImpl extends BaseModelImpl private String _causalePagamento; private String _mezzoPagamento; private String _importoBolli; + private boolean _richiestaAttestazione; private long _columnBitmask; private FineLavori _escapedModel; } \ 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/scheduler/SchedulerPratiche.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerPratiche.java index 95039ce8..caccb78f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerPratiche.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/scheduler/SchedulerPratiche.java @@ -133,9 +133,11 @@ public class SchedulerPratiche implements MessageListener { PrincipalThreadLocal.setName(user.getUserId()); PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user); PermissionThreadLocal.setPermissionChecker(permissionChecker); - creaAvvisoVidimazione(fineLavori.getCompanyId(), fineLavori.getGroupId(), - fineLavori.getUserId(), fineLavori.getIntPraticaId(), - fineLavori.getFineLavoriId(), FineLavori.class.getName()); + if (!fineLavori.isParziale() && fineLavori.isRichiestaAttestazione()) { + creaAvvisoVidimazione(fineLavori.getCompanyId(), fineLavori.getGroupId(), + fineLavori.getUserId(), fineLavori.getIntPraticaId(), + fineLavori.getFineLavoriId(), FineLavori.class.getName()); + } fineLavori.setGestita(true); FineLavoriLocalServiceUtil.updateFineLavori(fineLavori); } catch (Exception e) { diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriLocalServiceClpInvoker.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriLocalServiceClpInvoker.java index c686b091..73c502ef 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriLocalServiceClpInvoker.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriLocalServiceClpInvoker.java @@ -150,7 +150,8 @@ public class FineLavoriLocalServiceClpInvoker { _methodParameterTypes186 = new String[] { "long", "long", "long", "boolean", "boolean", "java.util.Date", - "java.lang.String", "boolean", "boolean", "java.lang.String" + "java.lang.String", "boolean", "boolean", "java.lang.String", + "boolean" }; _methodName187 = "getLastEditable"; @@ -457,7 +458,8 @@ public class FineLavoriLocalServiceClpInvoker { (java.util.Date)arguments[5], (java.lang.String)arguments[6], ((Boolean)arguments[7]).booleanValue(), ((Boolean)arguments[8]).booleanValue(), - (java.lang.String)arguments[9]); + (java.lang.String)arguments[9], + ((Boolean)arguments[10]).booleanValue()); } if (_methodName187.equals(name) && diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriServiceClpInvoker.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriServiceClpInvoker.java index 389f179f..f1c14363 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriServiceClpInvoker.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/base/FineLavoriServiceClpInvoker.java @@ -62,7 +62,8 @@ public class FineLavoriServiceClpInvoker { _methodParameterTypes167 = new String[] { "long", "long", "long", "boolean", "boolean", "java.util.Date", - "java.lang.String", "boolean", "boolean", "java.lang.String" + "java.lang.String", "boolean", "boolean", "java.lang.String", + "boolean" }; _methodName168 = "getLastEditable"; @@ -168,7 +169,8 @@ public class FineLavoriServiceClpInvoker { (java.util.Date)arguments[5], (java.lang.String)arguments[6], ((Boolean)arguments[7]).booleanValue(), ((Boolean)arguments[8]).booleanValue(), - (java.lang.String)arguments[9]); + (java.lang.String)arguments[9], + ((Boolean)arguments[10]).booleanValue()); } if (_methodName168.equals(name) && 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 6b336e67..225af9f0 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 @@ -590,6 +590,22 @@ public class SoggettoLocalServiceClpInvoker { _methodName273 = "getSoggettiByIntPraticaId_DtRimozioneNull"; _methodParameterTypes273 = new String[] { "long" }; + + _methodName274 = "getDelegaPlaceholder"; + + _methodParameterTypes274 = new String[] { }; + + _methodName275 = "savePdfDelega"; + + _methodParameterTypes275 = new String[] { "javax.portlet.PortletRequest" }; + + _methodName276 = "getPdfDelega"; + + _methodParameterTypes276 = new String[] { "javax.portlet.PortletRequest" }; + + _methodName277 = "getAnteprimaDelega"; + + _methodParameterTypes277 = new String[] { "javax.portlet.PortletRequest" }; } public Object invokeMethod(String name, String[] parameterTypes, @@ -1440,6 +1456,26 @@ public class SoggettoLocalServiceClpInvoker { return SoggettoLocalServiceUtil.getSoggettiByIntPraticaId_DtRimozioneNull(((Long)arguments[0]).longValue()); } + if (_methodName274.equals(name) && + Arrays.deepEquals(_methodParameterTypes274, parameterTypes)) { + return SoggettoLocalServiceUtil.getDelegaPlaceholder(); + } + + if (_methodName275.equals(name) && + Arrays.deepEquals(_methodParameterTypes275, parameterTypes)) { + return SoggettoLocalServiceUtil.savePdfDelega((javax.portlet.PortletRequest)arguments[0]); + } + + if (_methodName276.equals(name) && + Arrays.deepEquals(_methodParameterTypes276, parameterTypes)) { + return SoggettoLocalServiceUtil.getPdfDelega((javax.portlet.PortletRequest)arguments[0]); + } + + if (_methodName277.equals(name) && + Arrays.deepEquals(_methodParameterTypes277, parameterTypes)) { + return SoggettoLocalServiceUtil.getAnteprimaDelega((javax.portlet.PortletRequest)arguments[0]); + } + throw new UnsupportedOperationException(); } @@ -1645,4 +1681,12 @@ public class SoggettoLocalServiceClpInvoker { private String[] _methodParameterTypes272; private String _methodName273; private String[] _methodParameterTypes273; + private String _methodName274; + private String[] _methodParameterTypes274; + private String _methodName275; + private String[] _methodParameterTypes275; + private String _methodName276; + private String[] _methodParameterTypes276; + private String _methodName277; + private String[] _methodParameterTypes277; } \ 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/http/FineLavoriServiceSoap.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/http/FineLavoriServiceSoap.java index 1d3ae3ea..dc44ad17 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/http/FineLavoriServiceSoap.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/http/FineLavoriServiceSoap.java @@ -144,13 +144,14 @@ public class FineLavoriServiceSoap { boolean completata, java.util.Date dataFineLavori, java.lang.String codiceFiscaleDelegato, boolean normEsenteBollo, boolean normEsenteCollaudo, - java.lang.String comunicazioneDirettoreLavori) - throws RemoteException { + java.lang.String comunicazioneDirettoreLavori, + boolean richiestaAttestazione) throws RemoteException { try { it.tref.liferay.portos.bo.model.FineLavori returnValue = FineLavoriServiceUtil.updateFineLavori(userId, fineLavoriId, intPraticaId, parziale, completata, dataFineLavori, codiceFiscaleDelegato, normEsenteBollo, - normEsenteCollaudo, comunicazioneDirettoreLavori); + normEsenteCollaudo, comunicazioneDirettoreLavori, + richiestaAttestazione); return it.tref.liferay.portos.bo.model.FineLavoriSoap.toSoapModel(returnValue); } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ControlloPraticaLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ControlloPraticaLocalServiceImpl.java index 49be85df..ca4068ca 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ControlloPraticaLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/ControlloPraticaLocalServiceImpl.java @@ -399,8 +399,9 @@ public class ControlloPraticaLocalServiceImpl extends ControlloPraticaLocalServi } @Override - public void aggiornaStatoPerRichiestaIntegrazione(long controlloPraticaId, Map workflowContext) - throws PortalException, SystemException { + public void + aggiornaStatoPerRichiestaIntegrazione(long controlloPraticaId, Map workflowContext) + throws PortalException, SystemException { ControlloPratica controlloPratica = getControlloPratica(controlloPraticaId); IntPratica intPratica = intPraticaLocalService.getIntPratica(controlloPratica.getIntPraticaId()); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriLocalServiceImpl.java index 20311c22..1cb9bef9 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriLocalServiceImpl.java @@ -132,8 +132,8 @@ public class FineLavoriLocalServiceImpl extends FineLavoriLocalServiceBaseImpl { @Indexable(type = IndexableType.REINDEX) public FineLavori updateFineLavori(long userId, long fineLavoriId, long intPraticaId, boolean parziale, boolean completata, Date dataFineLavori, String codiceFiscaleDelegato, boolean normEsenteBollo, - boolean normEsenteCollaudo, String comunicazioneDirettoreLavori) throws NoSuchFineLavoriException, - SystemException { + boolean normEsenteCollaudo, String comunicazioneDirettoreLavori, boolean richiestaAttestazione) + throws NoSuchFineLavoriException, SystemException { FineLavori fineLavori = fineLavoriPersistence.findByPrimaryKey(fineLavoriId); fineLavori.setParziale(parziale); @@ -143,6 +143,7 @@ public class FineLavoriLocalServiceImpl extends FineLavoriLocalServiceBaseImpl { fineLavori.setNormEsenteBollo(normEsenteBollo); fineLavori.setNormEsenteCollaudo(normEsenteCollaudo); fineLavori.setComunicazioneDirettoreLavori(comunicazioneDirettoreLavori); + fineLavori.setRichiestaAttestazione(richiestaAttestazione); fineLavori = fineLavoriPersistence.update(fineLavori); return fineLavori; } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriServiceImpl.java index effef6ae..7043b147 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/impl/FineLavoriServiceImpl.java @@ -73,13 +73,14 @@ public class FineLavoriServiceImpl extends FineLavoriServiceBaseImpl { @Override public FineLavori updateFineLavori(long userId, long fineLavoriId, long intPraticaId, boolean parziale, boolean completata, Date dataFineLavori, String codiceFiscaleDelegato, boolean normEsenteBollo, - boolean normEsenteCollaudo, String comunicazioneDirettoreLavori) throws PortalException, SystemException { + boolean normEsenteCollaudo, String comunicazioneDirettoreLavori, boolean richiestaAttestazione) + throws PortalException, SystemException { FineLavori fineLavori = getFineLavori(fineLavoriId); if (fineLavori.getUserId() == userId) { fineLavori = fineLavoriLocalService.updateFineLavori(userId, fineLavoriId, intPraticaId, parziale, completata, dataFineLavori, codiceFiscaleDelegato, normEsenteBollo, normEsenteCollaudo, - comunicazioneDirettoreLavori); + comunicazioneDirettoreLavori, richiestaAttestazione); } return fineLavori; } 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 df990ae0..e9cee58f 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 @@ -212,7 +212,7 @@ public class IntPraticaLocalServiceImpl extends IntPraticaLocalServiceBaseImpl { try { lista = intPraticaPersistence.findWithDynamicQuery(dq); } catch (SystemException e) { - _log.error("Errore durante la selezione di mappe sorteggiabili.", e); + _log.error("Errore durante la selezione di pratiche sorteggiabili.", e); } HashMap territoriProvince = new HashMap(); for (IntPratica pratica : lista) { 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 78ee1a4b..08d16a22 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 @@ -8,17 +8,45 @@ package it.tref.liferay.portos.bo.service.impl; +import it.tref.liferay.portos.bo.NoSuchProvinciaException; +import it.tref.liferay.portos.bo.model.Comune; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.DocPratica; +import it.tref.liferay.portos.bo.model.Provincia; import it.tref.liferay.portos.bo.model.Soggetto; import it.tref.liferay.portos.bo.service.base.SoggettoLocalServiceBaseImpl; import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; +import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; import it.tref.liferay.portos.bo.util.SoggettiUtil; import it.tref.liferay.portos.bo.util.WorkflowConstants; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; - +import java.util.Locale; +import java.util.Scanner; + +import javax.portlet.PortletRequest; + +import com.itextpdf.text.Document; +import com.itextpdf.text.DocumentException; +import com.itextpdf.text.PageSize; +import com.itextpdf.text.pdf.PdfWriter; +import com.itextpdf.tool.xml.Pipeline; +import com.itextpdf.tool.xml.XMLWorker; +import com.itextpdf.tool.xml.XMLWorkerHelper; +import com.itextpdf.tool.xml.html.TagProcessorFactory; +import com.itextpdf.tool.xml.html.Tags; +import com.itextpdf.tool.xml.parser.XMLParser; +import com.itextpdf.tool.xml.pipeline.css.CSSResolver; +import com.itextpdf.tool.xml.pipeline.css.CssResolverPipeline; +import com.itextpdf.tool.xml.pipeline.end.PdfWriterPipeline; +import com.itextpdf.tool.xml.pipeline.html.HtmlPipeline; +import com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext; import com.liferay.portal.kernel.dao.orm.Disjunction; import com.liferay.portal.kernel.dao.orm.DynamicQuery; import com.liferay.portal.kernel.dao.orm.OrderFactoryUtil; @@ -26,13 +54,22 @@ 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.repository.model.FileEntry; +import com.liferay.portal.kernel.util.ContentTypes; +import com.liferay.portal.kernel.util.HtmlUtil; import com.liferay.portal.kernel.util.OrderByComparator; +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.model.User; import com.liferay.portal.service.ServiceContext; +import com.liferay.portal.service.ServiceContextFactory; +import com.liferay.portlet.documentlibrary.model.DLFolder; +import com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil; +import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil; /** * The implementation of the soggetto local service. @@ -54,7 +91,8 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { * it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil} to access the soggetto local service. */ - public static final Log _log = LogFactoryUtil.getLog(SoggettoLocalServiceImpl.class); + private static final Log _log = LogFactoryUtil.getLog(SoggettoLocalServiceImpl.class); + private static final SimpleDateFormat SDF = new SimpleDateFormat("dd/MM/yyyy"); @Override public Soggetto addSoggetto(long userId, long dettPraticaId, long intPraticaId, String nome, String cognome, @@ -329,7 +367,7 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { Soggetto ret = super.deleteSoggetto(soggetto); long intPraticaId = soggetto.getIntPraticaId(); long idSoggetto = soggetto.getSoggettoId(); - List soggettiIntPratica = soggettoLocalService.findByIntPratica(intPraticaId); + List soggettiIntPratica = findByIntPratica(intPraticaId); for (Soggetto sgt : soggettiIntPratica) { long sostituitoDa = sgt.getSostituitoDa(); if (Validator.isNotNull(sostituitoDa) && sostituitoDa > 0 && idSoggetto == sostituitoDa) { @@ -1117,8 +1155,9 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { } @Override - public int countByUserId_CodiceFiscale_TipologiaSoggetto(long userId, String codiceFiscale, String tipologiaSoggetto) - throws SystemException { + public int + countByUserId_CodiceFiscale_TipologiaSoggetto(long userId, String codiceFiscale, String tipologiaSoggetto) + throws SystemException { return soggettoPersistence.countByUserId_CodiceFiscale_TipologiaSoggetto(userId, codiceFiscale, tipologiaSoggetto); @@ -1128,7 +1167,7 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { public List findIntPraticaBySoggettoId(long soggettoId) throws PortalException, SystemException { User user = userLocalService.getUser(soggettoId); - DynamicQuery dynamicQuerySoggetti = soggettoLocalService.dynamicQuery(); + DynamicQuery dynamicQuerySoggetti = dynamicQuery(); dynamicQuerySoggetti.add(RestrictionsFactoryUtil.ilike("codiceFiscale", user.getScreenName())); dynamicQuerySoggetti.setProjection(ProjectionFactoryUtil.distinct(ProjectionFactoryUtil .property("intPraticaId"))); @@ -1182,7 +1221,7 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { if (!SoggettiUtil.hasSoggettoPrincipale(dettPraticaId, soggetto.getTipologiaSoggetto())) { updatePrincipale(dettPraticaId, soggetto.getCodiceFiscale(), soggetto.getTipologiaSoggetto()); } - return soggettoLocalService.updateSoggetto(soggetto); + return updateSoggetto(soggetto); } @Override @@ -1195,7 +1234,7 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { if (SoggettiUtil.isSoggettoPrincipale(soggetto.getSoggettoId(), dettPraticaIdRimozione)) { updatePrincipale(dettPraticaIdRimozione, StringPool.BLANK, soggetto.getTipologiaSoggetto()); } - return soggettoLocalService.updateSoggetto(soggetto); + return updateSoggetto(soggetto); } @Override @@ -1204,7 +1243,7 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { Soggetto soggetto = invalidaSoggetto(soggettoId, dettPraticaIdRimozione); soggetto.setSostituitoDa(sostituitoDa); - return soggettoLocalService.updateSoggetto(soggetto); + return updateSoggetto(soggetto); } @Override @@ -1230,7 +1269,7 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { if (!SoggettiUtil.hasSoggettoPrincipale(soggetto.getDettPraticaId(), soggetto.getTipologiaSoggetto())) { updatePrincipale(soggetto.getDettPraticaId(), soggetto.getCodiceFiscale(), soggetto.getTipologiaSoggetto()); } - soggetto = soggettoLocalService.updateSoggetto(soggetto); + soggetto = updateSoggetto(soggetto); return soggetto; } @@ -1238,9 +1277,203 @@ public class SoggettoLocalServiceImpl extends SoggettoLocalServiceBaseImpl { @Override public List getSoggettiByIntPraticaId_DtRimozioneNull(long intPraticaId) throws SystemException { - DynamicQuery dynamicQuery = soggettoLocalService.dynamicQuery(); + DynamicQuery dynamicQuery = dynamicQuery(); dynamicQuery.add(RestrictionsFactoryUtil.eq("intPraticaId", intPraticaId)); dynamicQuery.add(RestrictionsFactoryUtil.isNull("dtDataRimozione")); - return soggettoLocalService.dynamicQuery(dynamicQuery); + return dynamicQuery(dynamicQuery); + } + + @Override + public String getDelegaPlaceholder() { + + return "__________________________________________________"; + } + + @Override + public long savePdfDelega(PortletRequest request) throws DocumentException, PortalException, SystemException, + IOException { + + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + byte[] pdf = getPdfDelega(request); + DLFolder folder = DLFolderLocalServiceUtil.getFolder(serviceContext.getThemeDisplay().getCompanyGroupId(), 0L, + "Allegati"); + Soggetto committente = fetchSoggetto(ParamUtil.getLong(request, "committenteId")); + String name = "Delega_" + committente.getDescrizioneCompleta().replace(' ', '_') + (new Date()).getTime() + + ".pdf"; + FileEntry entry = DLAppLocalServiceUtil.addFileEntry(serviceContext.getUserId(), folder.getRepositoryId(), + folder.getFolderId(), name, ContentTypes.APPLICATION_PDF, name, name, StringPool.BLANK, pdf, + serviceContext); + return entry.getFileEntryId(); + } + + @Override + public byte[] getPdfDelega(PortletRequest request) throws DocumentException, IOException, SystemException { + + InputStream is = getClass().getClassLoader().getResourceAsStream("/resource/asseverazioni/delegawrapper.html"); + Scanner scanner = new Scanner(is); + StringBuffer buffer = new StringBuffer(); + while (scanner.hasNext()) { + buffer.append(scanner.nextLine()); + } + scanner.close(); + is.close(); + String html = buffer.toString().replace("{{html}}", getAnteprimaDelega(request)); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + Document pdf = new Document(PageSize.A4); + PdfWriter writer = PdfWriter.getInstance(pdf, os); + writer.setPdfVersion(PdfWriter.VERSION_1_7); + pdf.open(); + TagProcessorFactory factory = Tags.getHtmlTagProcessorFactory(); + HtmlPipelineContext context = new HtmlPipelineContext(null); + context.setTagFactory(factory); + CSSResolver resolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(true); + Pipeline pipeline = new CssResolverPipeline(resolver, new HtmlPipeline(context, new PdfWriterPipeline(pdf, + writer))); + XMLWorker worker = new XMLWorker(pipeline, true); + XMLParser parser = new XMLParser(worker); + parser.parse(new StringReader(html)); + pdf.close(); + return os.toByteArray(); + } + + @Override + public String getAnteprimaDelega(PortletRequest request) throws IOException, SystemException { + + long committenteId = ParamUtil.getLong(request, "committenteId"); + Soggetto committente = fetchSoggetto(committenteId); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + DettPratica dettPratica = dettPraticaLocalService.fetchDettPratica(dettPraticaId); + Soggetto titolare = getValidByIntPratica_CodiceFiscale(dettPratica.getIntPraticaId(), + dettPratica.getCodiceFiscaleDelegatoCommittente()).get(0); + InputStream input = getClass().getClassLoader().getResourceAsStream("/resource/asseverazioni/delega.html"); + if (Validator.isNull(input)) { + return null; + } + Scanner scanner = new Scanner(input); + StringBuffer buffer = new StringBuffer(); + while (scanner.hasNext()) { + buffer.append(scanner.nextLine()); + } + scanner.close(); + input.close(); + String nome; + String comuneNascita; + String dataNascita; + Comune comune; + String residenzaCommittente; + String via; + String civico; + if (Validator.isNull(committente.getDenominazione())) { + nome = HtmlUtil.escape(committente.getNome() + ' ' + committente.getCognome()); + comuneNascita = HtmlUtil.escape(committente.getComuneNascita() + " (" + committente.getProvinciaNascita() + + ')'); + dataNascita = SDF.format(committente.getDataNascita()); + comune = comuneLocalService.fetchComune(Long.parseLong(committente.getComune())); + via = HtmlUtil.escape(committente.getVia()); + civico = HtmlUtil.escape(committente.getNumeroCivico()); + } else { + nome = HtmlUtil.escape(committente.getLegaleRap()); + comuneNascita = HtmlUtil.escape(committente.getComuneNascitaRap() + " (" + + committente.getProvinciaNascitaRap() + ')'); + dataNascita = SDF.format(committente.getDataNascitaRap()); + comune = comuneLocalService.fetchComune(Long.parseLong(committente.getComuneRap())); + via = HtmlUtil.escape(committente.getViaRap()); + civico = HtmlUtil.escape(committente.getNumeroCivicoRap()); + } + try { + Provincia provincia = provinciaLocalService.findByC_C(comune.getCompanyId(), comune.getCodiceProvincia()); + residenzaCommittente = comune.getDenominazione() + " (" + provincia.getSigla() + ')'; + } catch (NoSuchProvinciaException e) { + residenzaCommittente = comune.getDenominazione(); + } + comune = comuneLocalService.fetchComune(Long.parseLong(titolare.getComune())); + String residenzaTitolare; + try { + Provincia provincia = provinciaLocalService.findByC_C(comune.getCompanyId(), comune.getCodiceProvincia()); + residenzaTitolare = comune.getDenominazione() + " (" + provincia.getSigla() + ')'; + } catch (NoSuchProvinciaException e) { + residenzaTitolare = comune.getDenominazione(); + } + String diCommittente = Validator.isNull(ParamUtil.getString(request, "dicommittente")) ? getDelegaPlaceholder() + : HtmlUtil.escape(ParamUtil.getString(request, "dicommittente")); + String niCommittente = Validator.isNull(ParamUtil.getString(request, "nicommittente")) ? getDelegaPlaceholder() + : HtmlUtil.escape(ParamUtil.getString(request, "nicommittente")); + String riCommittente = Validator.isNull(ParamUtil.getString(request, "ricommittente")) ? getDelegaPlaceholder() + : HtmlUtil.escape(ParamUtil.getString(request, "ricommittente")); + String descrizioneLavori = Validator.isNull(dettPratica.getDescLongIntervento()) ? getDelegaPlaceholder() + : HtmlUtil.escape(dettPratica.getDescLongIntervento()); + String delega = buffer + .toString() + .replace("{{nomecommittente}}", nome) + .replace("{{cfcommittente}}", committente.getCodiceFiscale().toUpperCase()) + .replace("{{lncommittente}}", comuneNascita) + .replace("{{dncommittente}}", dataNascita) + .replace("{{lrcommittente}}", residenzaCommittente) + .replace("{{ircommittente}}", via) + .replace("{{nccommitttente}}", civico) + .replace("{{dicommittente}}", diCommittente) + .replace("{{nicommittente}}", niCommittente) + .replace("{{ricommittente}}", riCommittente) + .replace("{{nometitolare}}", HtmlUtil.escape(titolare.getNome() + ' ' + titolare.getCognome())) + .replace("{{cftitolare}}", titolare.getCodiceFiscale().toUpperCase()) + .replace("{{lntitolare}}", + HtmlUtil.escape(titolare.getComuneNascita() + " (" + titolare.getProvinciaNascita() + ')')) + .replace("{{dntitolare}}", SDF.format(titolare.getDataNascita())) + .replace("{{lrtitolare}}", residenzaTitolare) + .replace("{{irtitolare}}", HtmlUtil.escape(titolare.getVia())) + .replace("{{nctitolare}}", HtmlUtil.escape(titolare.getNumeroCivico())) + .replace("{{descrizione}}", descrizioneLavori); + if (request.getParameterMap().containsKey("coniugio")) { + delega = delega.replaceAll(".*", StringPool.BLANK).replaceAll( + "(.*)", "$1"); + boolean coniugio = ParamUtil.getBoolean(request, "coniugio"); + if (coniugio) { + delega = delega + .replaceAll(".*", StringPool.BLANK) + .replaceAll("(.*)", "$1") + .replace( + "{{coniugio}}", + HtmlUtil.escape(ParamUtil.getString(request, "relazioni") + .replace(StringPool.RETURN, StringPool.BLANK) + .replace(StringPool.NEW_LINE, StringPool.COMMA_AND_SPACE))); + } else { + delega = delega.replaceAll(".*", StringPool.BLANK).replaceAll( + "(.*)", "$1"); + } + } else { + delega = delega.replaceAll(".*", StringPool.BLANK).replaceAll( + "(.*)", "$1"); + } + if (dettPratica.getNormSismaBonus()) { + delega = delega.replaceAll("(.*?)", "$1"); + } else { + delega = delega.replaceAll(".*?", StringPool.BLANK); + } + StringBuilder professionisti = new StringBuilder(); + for (Soggetto soggetto : findByIntPratica(dettPratica.getIntPraticaId())) { + if (!soggetto.isRimosso()) { + switch (soggetto.getTipologiaSoggetto()) { + case TipoSoggettoUtil.PROGETTISTA: + case TipoSoggettoUtil.GEOLOGO: + case TipoSoggettoUtil.DIRETTORE_LAVORI: + case TipoSoggettoUtil.COLLAUDATORE: + professionisti.append(LanguageUtil.get(Locale.ITALIAN, + "delega-soggetto-" + soggetto.getTipologiaSoggetto())); + if (Validator.isNotNull(soggetto.getAmbitoProfessione())) { + professionisti.append(' '); + if ("ambitoProf-altro".equalsIgnoreCase(soggetto.getAmbitoProfessione())) { + professionisti.append(soggetto.getAmbitoAttivita()); + } else { + professionisti.append(soggetto.getAmbitoProfessione()); + } + } + professionisti.append(": ").append(HtmlUtil.escape(soggetto.getNome())).append(' ') + .append(HtmlUtil.escape(soggetto.getCognome())).append(" (") + .append(HtmlUtil.escape(soggetto.getCodiceFiscale().toUpperCase())).append(")
"); + } + } + } + delega = delega.replace("{{professionisti}}", professionisti); + return delega; } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java index e2a7716d..31070936 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/bo/service/persistence/FineLavoriPersistenceImpl.java @@ -5954,6 +5954,7 @@ public class FineLavoriPersistenceImpl extends BasePersistenceImpl fineLavoriImpl.setCausalePagamento(fineLavori.getCausalePagamento()); fineLavoriImpl.setMezzoPagamento(fineLavori.getMezzoPagamento()); fineLavoriImpl.setImportoBolli(fineLavori.getImportoBolli()); + fineLavoriImpl.setRichiestaAttestazione(fineLavori.isRichiestaAttestazione()); return fineLavoriImpl; } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delega.html b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delega.html new file mode 100644 index 00000000..6f6c36b5 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delega.html @@ -0,0 +1,83 @@ +

+ DPR 380/2001, art. 93
+ L.R. 1/2019, art. 36, c.1
+ Legge 190/2012, art. 1, comma 9 lettera “e”
+ + L.R. 23/2021, art. 31 comma 5
+
+ D. Lgs. 101/2018 +

+

DELEGA E AFFIDAMENTO INCARICHI PROFESSIONALI

+

+ Il sottoscritto {{nomecommittente}}, C.F. {{cfcommittente}}, nato a {{lncommittente}} il + {{dncommittente}} e residente in {{lrcommittente}} indirizzo {{ircommittente}} n° + {{nccommitttente}}, documento di identità {{dicommittente}} numero {{nicommittente}} rilasciato + da {{ricommittente}}, nella qualità di committente dei lavori, +

+

DELEGA

+

+ l’intermediario {{nometitolare}} codice fiscale {{cftitolare}} nato a {{lntitolare}} il + {{dntitolare}} e residente in {{lrtitolare}} indirizzo {{irtitolare}}{{nctitolare}} + alla trasmissione della denuncia prevista dagli artt. 65 e 93 del DPR 380/2001 per i lavori di + {{descrizione}} attraverso la piattaforma informatica “SISMICA” della Regione Sicilia +

+

+ Il sottoscritto contestualmente dichiara: +

+
    +
  • + ai sensi dell'art. 36, comma 1, della L.R. n° 1 del 22.01.2019, di avere affidato la progettazione e + l’esecuzione dei lavori ai seguenti professionisti:
    + {{professionisti}} +
  • +
  • + che il progetto strutturale esecutivo possiede i requisiti di completezza indicata nelle NTC 2018, con riguardo + anche alle indagini specialistiche ritenute necessarie alla realizzazione dell'opera; +
  • +
  • + ai sensi dell'art. 1, comma 9 lettera “e”, della legge n° 190/2012:
    + + [ ] di non trovarsi in rapporti di coniugio, parentela o affinità, del coniuge o del convivente, entro + il 2° grado, con i dirigenti e i dipendenti dell'Ufficio del Genio Civile deputati alla trattazione del + procedimento.
    + [ ] di trovarsi in rapporti di coniugio, parentela o affinità entro il 2° grado con i seguenti + dipendenti dell'Ufficio del Genio Civile:
    + ________________________________________
    + ________________________________________ +
    + + + di non trovarsi in rapporti di coniugio, parentela o affinità, del coniuge o del convivente, entro il 2° + grado, con i dirigenti e i dipendenti dell'Ufficio del Genio Civile deputati alla trattazione del + procedimento. + + + di trovarsi in rapporti di coniugio, parentela o affinità entro il 2° grado con i seguenti dipendenti + dell'Ufficio del Genio Civile: {{coniugio}}. + + +
  • + +
  • + trattandosi di intervento da realizzare in regime di agevolazione fiscale ai sensi degli artt 119 e 121 del + D.L. n.34/2020, convertito con modificazioni dalla Legge n.77/2020, di essere debitore nei confronti dei + professionisti incaricati delle rispettive spettanze pattuite per contratto o per atto equipollente e di + assumersi l’impegno a corrispondere le spettanze dovute anche nel caso in cui la procedura si dovesse + interrompere per sua iniziativa, ai sensi e per gli effetti di cui al comma 5 dell’art. 31 della L.R. n. + 23/2021; +
  • +
    +
  • + di essere informato, ai sensi dell’art. 13 del Regolamento UE 2016/679, recepito con D.Lgs. 101/2018, circa le + modalità di trattamento e l'utilizzo dei dati personali raccolti e di acconsentire, ai sensi e per gli effetti + di cui all’art. 7 e ss. del sopraccitato Regolamento, al trattamento, anche con strumenti informatici, dei dati + personali con le modalità e per le finalità connesse al procedimento cui la presente è riferita. +
  • +
+

+ Si allega la fotocopia del documento d’identità sopra indicato.

+

+

+ Data ________________________________________ +

+
Firma del delegante

________________________________________
\ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delegawrapper.html b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delegawrapper.html new file mode 100644 index 00000000..f7e12476 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/resource/asseverazioni/delegawrapper.html @@ -0,0 +1,29 @@ + + + + + + {{html}} + + 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 ae30fabc..c24b6a60 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=2809 - build.date=1652801248548 + build.number=2837 + build.date=1658222378941 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java index 4fdddf5b..f20aef94 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/FascicoloFePortlet.java @@ -37,6 +37,7 @@ import it.tref.liferay.portos.bo.shared.util.FirmeUtil; import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; import it.tref.liferay.portos.bo.util.AsseverazioniUtil; +import it.tref.liferay.portos.bo.util.AzioniPraticheUtil; import it.tref.liferay.portos.bo.util.DelegheUtil; import it.tref.liferay.portos.bo.util.MailUtil; import it.tref.liferay.portos.bo.util.SoggettiUtil; @@ -52,8 +53,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.regex.Pattern; import javax.portlet.ActionRequest; @@ -118,14 +121,13 @@ public class FascicoloFePortlet extends MVCPortlet { private static final Log _log = LogFactoryUtil.getLog(FascicoloFePortlet.class); @Override - public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, - PortletException { + public void serveResource(ResourceRequest request, ResourceResponse response) throws IOException, PortletException { - ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY); - String id = resourceRequest.getResourceID(); + ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); + String id = request.getResourceID(); ServiceContext serviceContext; try { - serviceContext = ServiceContextFactory.getInstance(resourceRequest); + serviceContext = ServiceContextFactory.getInstance(request); if ("province".equals(id)) { JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); List province = TerritorioLocalServiceUtil.getActiveProvince(); @@ -137,9 +139,9 @@ public class FascicoloFePortlet extends MVCPortlet { jsonObject.put("descLong", provincia.getSigla() + "- " + provincia.getProvincia()); jsonArray.put(jsonObject); } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, jsonArray); } else if ("comuni".equals(id)) { - String provinciaId = ParamUtil.getString(resourceRequest, "provinciaId"); + String provinciaId = ParamUtil.getString(request, "provinciaId"); JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); if (Validator.isNotNull(provinciaId) && !provinciaId.equals("0")) { List comuni = TerritorioLocalServiceUtil.getActiveComuniByCodiceProvincia(provinciaId); @@ -151,9 +153,9 @@ public class FascicoloFePortlet extends MVCPortlet { jsonArray.put(jsonObject); } } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, jsonArray); } else if ("zoneFasce".equals(id)) { - long comuneId = ParamUtil.getLong(resourceRequest, "comuneId", 0L); + long comuneId = ParamUtil.getLong(request, "comuneId", 0L); JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); if (Validator.isNotNull(comuneId)) { List territori = TerritorioLocalServiceUtil.getActiveTerritoriByComune(comuneId); @@ -170,9 +172,9 @@ public class FascicoloFePortlet extends MVCPortlet { jsonArray.put(jsonObject); } } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, jsonArray); } else if ("soggettiDelega".equals(id)) { - long intPraticaId = ParamUtil.getLong(resourceRequest, "intPraticaId", 0L); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId", 0L); IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); if (Validator.isNotNull(intPratica)) { @@ -187,10 +189,10 @@ public class FascicoloFePortlet extends MVCPortlet { } } } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, jsonArray); } else if ("tipologiaDelega".equals(id)) { - long intPraticaId = ParamUtil.getLong(resourceRequest, "intPraticaId", 0L); - long soggettoId = ParamUtil.getLong(resourceRequest, "soggettoId", 0L); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId", 0L); + long soggettoId = ParamUtil.getLong(request, "soggettoId", 0L); IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); Soggetto soggetto = SoggettoLocalServiceUtil.fetchSoggetto(soggettoId); JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); @@ -226,26 +228,26 @@ public class FascicoloFePortlet extends MVCPortlet { + DelegheUtil.TIPO_PAGAMENTO)); jsonArray.put(jsonObject); } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, jsonArray); } else if ("isCompletedDelegaGeologo".equals(id)) { - long classPk = ParamUtil.getLong(resourceRequest, "classPk"); + long classPk = ParamUtil.getLong(request, "classPk"); JSONObject json = JSONFactoryUtil.createJSONObject(); json.put("isCompleted", ValidazionePraticaUtil.isDelegaGeologoCompleted(classPk)); - writeJSON(resourceRequest, resourceResponse, json); + writeJSON(request, response, json); } else if ("confirmOtf".equals(id) || "otfSpese".equals(id) || "otfBolli".equals(id)) { - long pagamentoId = ParamUtil.getLong(resourceRequest, "pagamentoId"); + long pagamentoId = ParamUtil.getLong(request, "pagamentoId"); PagamentoLocalServiceUtil.updateOtf(pagamentoId, true); JSONObject json = JSONFactoryUtil.createJSONObject(); json.put("isCompleted", true); - writeJSON(resourceRequest, resourceResponse, json); + writeJSON(request, response, json); } else if ("resetOtf".equals(id)) { - long pagamentoId = ParamUtil.getLong(resourceRequest, "pagamentoId"); + long pagamentoId = ParamUtil.getLong(request, "pagamentoId"); PagamentoLocalServiceUtil.updateOtf(pagamentoId, false); JSONObject json = JSONFactoryUtil.createJSONObject(); json.put("isReset", true); - writeJSON(resourceRequest, resourceResponse, json); + writeJSON(request, response, json); } else if ("stampaFascicolo".equals(id)) { - long intPraticaId = ParamUtil.getLong(resourceRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); DLFolder folder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getCompanyGroupId(), 0L, "Template"); if (folder != null) { @@ -265,15 +267,15 @@ public class FascicoloFePortlet extends MVCPortlet { String titleDoc = intPratica.getNumeroProgetto() + StringPool.UNDERLINE + new Date().getTime() + ".pdf"; jasperPrint.setName(titleDoc); - HttpServletRequest request = PortalUtil.getHttpServletRequest(resourceRequest); - HttpServletResponse response = PortalUtil.getHttpServletResponse(resourceResponse); - ServletResponseUtil.sendFile(request, response, titleDoc, + HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(request); + HttpServletResponse httpResponse = PortalUtil.getHttpServletResponse(response); + ServletResponseUtil.sendFile(httpRequest, httpResponse, titleDoc, JasperExportManager.exportReportToPdf(jasperPrint), ContentTypes.APPLICATION_PDF); } } } else if ("stampaFascicoloVariante".equals(id)) { - long intPraticaId = ParamUtil.getLong(resourceRequest, "intPraticaId"); - long dettPraticaId = ParamUtil.getLong(resourceRequest, "dettPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); DettPratica dettPratica = DettPraticaLocalServiceUtil.fetchDettPratica(dettPraticaId); IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); DLFolder folder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getCompanyGroupId(), 0L, "Template"); @@ -295,15 +297,15 @@ public class FascicoloFePortlet extends MVCPortlet { String titleDoc = "variante_" + intPratica.getNumeroProgetto() + StringPool.UNDERLINE + new Date().getTime() + ".pdf"; jasperPrint.setName(titleDoc); - HttpServletRequest request = PortalUtil.getHttpServletRequest(resourceRequest); - HttpServletResponse response = PortalUtil.getHttpServletResponse(resourceResponse); - ServletResponseUtil.sendFile(request, response, titleDoc, + HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(request); + HttpServletResponse httpResponse = PortalUtil.getHttpServletResponse(response); + ServletResponseUtil.sendFile(httpRequest, httpResponse, titleDoc, JasperExportManager.exportReportToPdf(jasperPrint), ContentTypes.APPLICATION_PDF); } } } else if ("stampaFineLavori".equals(id)) { - long intPraticaId = ParamUtil.getLong(resourceRequest, "intPraticaId"); - long fineLavoriId = ParamUtil.getLong(resourceRequest, "fineLavoriId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId"); IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); DLFolder folder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getCompanyGroupId(), 0L, "Template"); if (folder != null) { @@ -324,15 +326,15 @@ public class FascicoloFePortlet extends MVCPortlet { String titleDoc = "fine_lavori_" + intPratica.getNumeroProgetto() + StringPool.UNDERLINE + new Date().getTime() + ".pdf"; jasperPrint.setName(titleDoc); - HttpServletRequest request = PortalUtil.getHttpServletRequest(resourceRequest); - HttpServletResponse response = PortalUtil.getHttpServletResponse(resourceResponse); - ServletResponseUtil.sendFile(request, response, titleDoc, + HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(request); + HttpServletResponse httpResponse = PortalUtil.getHttpServletResponse(response); + ServletResponseUtil.sendFile(httpRequest, httpResponse, titleDoc, JasperExportManager.exportReportToPdf(jasperPrint), ContentTypes.APPLICATION_PDF); } } } else if ("stampaCollaudo".equals(id)) { - long intPraticaId = ParamUtil.getLong(resourceRequest, "intPraticaId"); - long collaudoId = ParamUtil.getLong(resourceRequest, "collaudoId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + long collaudoId = ParamUtil.getLong(request, "collaudoId"); IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); DLFolder folder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getCompanyGroupId(), 0L, "Template"); if (folder != null) { @@ -352,15 +354,15 @@ public class FascicoloFePortlet extends MVCPortlet { String titleDoc = "collaudo_" + intPratica.getNumeroProgetto() + StringPool.UNDERLINE + new Date().getTime() + ".pdf"; jasperPrint.setName(titleDoc); - HttpServletRequest request = PortalUtil.getHttpServletRequest(resourceRequest); - HttpServletResponse response = PortalUtil.getHttpServletResponse(resourceResponse); - ServletResponseUtil.sendFile(request, response, titleDoc, + HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(request); + HttpServletResponse httpResponse = PortalUtil.getHttpServletResponse(response); + ServletResponseUtil.sendFile(httpRequest, httpResponse, titleDoc, JasperExportManager.exportReportToPdf(jasperPrint), ContentTypes.APPLICATION_PDF); } } } else { - super.serveResource(resourceRequest, resourceResponse); + super.serveResource(request, response); } } catch (Exception e) { _log.error(e, e); @@ -368,13 +370,13 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void addFascicolo(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addFascicolo(ActionRequest request, ActionResponse response) throws Exception { try { - long territorioId = ParamUtil.getLong(actionRequest, "territorioId"); - String tipoProcedura = ParamUtil.getString(actionRequest, "tipoProcedura"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); + long territorioId = ParamUtil.getLong(request, "territorioId"); + String tipoProcedura = ParamUtil.getString(request, "tipoProcedura"); + String successURL = ParamUtil.getString(request, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); DettPratica dettPratica = DettPraticaServiceUtil .addDettPratica(territorioId, tipoProcedura, serviceContext); if (tipoProcedura.equalsIgnoreCase(Constants.PROCEDURA_C)) { @@ -386,27 +388,27 @@ public class FascicoloFePortlet extends MVCPortlet { dettPratica.setTcRiparazioneInterventoLocale(true); DettPraticaLocalServiceUtil.updateDettPratica(dettPratica); } - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "mvcPath", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "dettPraticaId", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { _log.error(e, e); throw e; } } - public void addDelega(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addDelega(ActionRequest request, ActionResponse response) throws Exception { try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - String tipologia = ParamUtil.getString(actionRequest, "tipologiaDelega"); - long soggettoId = ParamUtil.getLong(actionRequest, "soggetto"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + String tipologia = ParamUtil.getString(request, "tipologiaDelega"); + long soggettoId = ParamUtil.getLong(request, "soggetto"); if (ValidazionePraticaUtil.delegheCompilazioneIsEnable(dettPraticaId)) { Soggetto soggetto = SoggettoLocalServiceUtil.getSoggetto(soggettoId); - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); DelegaServiceUtil.addDelega(serviceContext.getUserId(), intPratica.getIntPraticaId(), dettPraticaId, tipologia, soggetto.getCodiceFiscale(), serviceContext); @@ -417,10 +419,10 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void annullaDelega(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void annullaDelega(ActionRequest request, ActionResponse response) throws Exception { try { - long delegaId = ParamUtil.getLong(actionRequest, "delegaId"); + long delegaId = ParamUtil.getLong(request, "delegaId"); DelegaServiceUtil.annullaDelega(delegaId); } catch (PortalException | SystemException e) { _log.error(e, e); @@ -434,11 +436,11 @@ public class FascicoloFePortlet extends MVCPortlet { DettPraticaLocalServiceUtil.concludiPagamento(dettPraticaId); } - public void addGestioneUtenti(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addGestioneUtenti(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + String successURL = ParamUtil.getString(request, "successURL"); try { DettPratica lastDettPratica = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(intPraticaId); // ADT BUG VARIAZIONE SOGGETTO MULTI-CLICK @@ -451,47 +453,47 @@ public class FascicoloFePortlet extends MVCPortlet { lastDettPraticaEditableVS = DettPraticaServiceUtil.addDettPraticaClonedToIntPratica(intPraticaId, lastDettPratica.getDettPraticaId(), TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO, serviceContext); } - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "dettPraticaId", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "dettPraticaId", String.valueOf(lastDettPraticaEditableVS.getDettPraticaId())); String fragmentURL = "_1_WAR_portosfeportlet_page_soggetti"; if (successURL.contains(StringPool.POUND)) { successURL = successURL.substring(0, successURL.lastIndexOf(StringPool.POUND)); } successURL += "#_1_WAR_portosfeportlet_tab=" + fragmentURL; - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { - successURL = HttpUtil.setParameter(successURL, actionResponse.getNamespace() + "mvcPath", + successURL = HttpUtil.setParameter(successURL, response.getNamespace() + "mvcPath", "/html/fascicolofe/view.jsp"); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); _log.error(e, e); throw e; } } - public void deleteGestioneUtenti(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void deleteGestioneUtenti(ActionRequest request, ActionResponse response) throws Exception { try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + String successURL = ParamUtil.getString(request, "successURL"); DettPratica dettPratica = DettPraticaServiceUtil.getLastEditabledByIntPraticaAndTipoPratica(intPraticaId, Arrays.asList(new String[] { TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO })); if (Validator.isNull(dettPratica)) { throw new SystemException("no variazione-soggetti in progress int fascicolo #" + intPraticaId); } dettPratica = DettPraticaServiceUtil.deleteDettPratica(dettPratica); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { _log.error(e, e); throw e; } } - public void addVariante(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addVariante(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - boolean isVariante = ParamUtil.getBoolean(actionRequest, "isVariante"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + boolean isVariante = ParamUtil.getBoolean(request, "isVariante"); + String successURL = ParamUtil.getString(request, "successURL"); try { if (!isVariante) { throw new SystemException("Impossibile creare variante"); @@ -499,25 +501,24 @@ public class FascicoloFePortlet extends MVCPortlet { DettPratica lastDettPratica = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(intPraticaId); DettPratica dettPratica = DettPraticaServiceUtil.addDettPraticaClonedToIntPratica(intPraticaId, lastDettPratica.getDettPraticaId(), TipoIntegrazioneUtil.VARIANTE, serviceContext); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "dettPraticaId", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "isNewVariante", - StringPool.TRUE); - actionResponse.sendRedirect(successURL); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "isNewVariante", StringPool.TRUE); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { - successURL = HttpUtil.setParameter(successURL, actionResponse.getNamespace() + "mvcPath", + successURL = HttpUtil.setParameter(successURL, response.getNamespace() + "mvcPath", "/html/fascicolofe/view.jsp"); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); _log.error(e, e); throw e; } } - public void deleteVariante(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void deleteVariante(ActionRequest request, ActionResponse response) throws Exception { try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); DettPratica dettPratica = DettPraticaServiceUtil.getLastEditabledByIntPraticaAndTipoPratica(intPraticaId, Arrays.asList(new String[] { TipoIntegrazioneUtil.VARIANTE })); if (Validator.isNull(dettPratica)) { @@ -530,12 +531,12 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void addIntegrazione(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addIntegrazione(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - boolean isIntegrazione = ParamUtil.getBoolean(actionRequest, "isIntegrazione"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + boolean isIntegrazione = ParamUtil.getBoolean(request, "isIntegrazione"); + String successURL = ParamUtil.getString(request, "successURL"); try { if (!isIntegrazione) { throw new SystemException("Impossibile creare integrazione"); @@ -543,24 +544,24 @@ public class FascicoloFePortlet extends MVCPortlet { DettPratica lastDettPratica = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(intPraticaId); DettPratica dettPratica = DettPraticaServiceUtil.addDettPraticaClonedToIntPratica(intPraticaId, lastDettPratica.getDettPraticaId(), TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE, serviceContext); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "dettPraticaId", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { - successURL = HttpUtil.setParameter(successURL, actionResponse.getNamespace() + "mvcPath", + successURL = HttpUtil.setParameter(successURL, response.getNamespace() + "mvcPath", "/html/fascicolofe/view.jsp"); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); _log.error(e, e); throw e; } } - public void deleteIntegrazione(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void deleteIntegrazione(ActionRequest request, ActionResponse response) throws Exception { try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); DettPratica dettPratica = DettPraticaServiceUtil.getLastEditabledByIntPraticaAndTipoPratica(intPraticaId, - Arrays.asList(new String[] { TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE })); + Arrays.asList(TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE)); if (Validator.isNull(dettPratica)) { throw new SystemException("no integrazione in progress int fascicolo #" + intPraticaId); } @@ -571,11 +572,11 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void addFineLavori(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addFineLavori(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + String successURL = ParamUtil.getString(request, "successURL"); DettPratica dettPratica = DettPraticaServiceUtil.getLastCompletedByIntPratica(intPraticaId); if (dettPratica == null) { dettPratica = DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); @@ -584,26 +585,26 @@ public class FascicoloFePortlet extends MVCPortlet { FineLavori fineLavori = FineLavoriServiceUtil.addFineLavori(intPraticaId, serviceContext); fineLavori.setNormEsenteCollaudo(dettPratica.getCollaudoStatico()); fineLavori = FineLavoriServiceUtil.updateFineLavori(fineLavori); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "fineLavoriId", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "fineLavoriId", String.valueOf(fineLavori.getFineLavoriId())); /* * SDB: forse non è più necessario distinguere la fase i creazione di una nuovo fineLavori da un editing */ - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { - successURL = HttpUtil.setParameter(successURL, actionResponse.getNamespace() + "mvcPath", + successURL = HttpUtil.setParameter(successURL, response.getNamespace() + "mvcPath", "/html/fascicolofe/view.jsp"); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); _log.error(e, e); throw e; } } - public void deleteFineLavori(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void deleteFineLavori(ActionRequest request, ActionResponse response) throws Exception { try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); FineLavori fineLavori = FineLavoriServiceUtil.getLastEditable(intPraticaId); if (Validator.isNull(fineLavori)) { throw new SystemException("no Fine Lavori in progress in fascicolo #" + intPraticaId); @@ -616,182 +617,226 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void addCollaudo(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void addCollaudo(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - String successURL = ParamUtil.getString(actionRequest, "successURL"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + String successURL = ParamUtil.getString(request, "successURL"); try { Collaudo collaudo = CollaudoServiceUtil.addCollaudo(intPraticaId, serviceContext); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "collaudoId", + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "collaudoId", String.valueOf(collaudo.getCollaudoId())); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } catch (PortalException | SystemException e) { - successURL = HttpUtil.setParameter(successURL, actionResponse.getNamespace() + "mvcPath", + successURL = HttpUtil.setParameter(successURL, response.getNamespace() + "mvcPath", "/html/fascicolofe/view.jsp"); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); _log.error(e, e); throw e; } } - public void deleteCollaudo(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void deleteCollaudo(ActionRequest request, ActionResponse response) throws Exception { try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); Collaudo collaudo = CollaudoServiceUtil.getLastEditable(intPraticaId); if (Validator.isNull(collaudo)) { throw new SystemException("no Collaudo in progress in fascicolo #" + intPraticaId); } CollaudoServiceUtil.deleteCollaudo(collaudo); - } catch (PortalException | SystemException e) { _log.error(e, e); throw e; } } - public void verifyEntry(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void verifyEntry(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); if (ValidazionePraticaUtil.praticaIsEditable(dettPraticaId) && serviceContext.getUserId() == dettPratica.getUserId()) { - saveDatiDettPratica(dettPraticaId, actionRequest, actionResponse); + saveDatiDettPratica(dettPraticaId, request, response); } } - public void saveDettPratica(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void saveDettPratica(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); - String cmd = ParamUtil.getString(actionRequest, Constants.CMD); - boolean bozza = ParamUtil.getBoolean(actionRequest, "bozza"); + String cmd = ParamUtil.getString(request, Constants.CMD); + boolean bozza = ParamUtil.getBoolean(request, "bozza"); if (bozza) { - saveDatiDettPratica(dettPraticaId, actionRequest, actionResponse); + saveDatiDettPratica(dettPraticaId, request, response); } else if ("delega".equalsIgnoreCase(cmd) && DelegheUtil.hasDelegaAttiva(serviceContext.getUserId(), dettPratica.getDettPraticaId())) { - concludiDelegaDomanda(actionRequest, actionResponse); - String successURL = ParamUtil.getString(actionRequest, "successURL"); - actionResponse.sendRedirect(successURL); + concludiDelegaDomanda(request, response); + String successURL = ParamUtil.getString(request, "successURL"); + response.sendRedirect(successURL); } else if ("asseverazione".equalsIgnoreCase(cmd) && AsseverazioniUtil.hasAsseverazioneAttiva(serviceContext.getUserId(), dettPratica.getIntPraticaId())) { - asseveraDomanda(actionRequest, actionResponse); - String successURL = ParamUtil.getString(actionRequest, "successURL"); - actionResponse.sendRedirect(successURL); + asseveraDomanda(request, response); + String successURL = ParamUtil.getString(request, "successURL"); + response.sendRedirect(successURL); } else if ("domanda".equalsIgnoreCase(cmd)) { - saveDatiDettPratica(dettPraticaId, actionRequest, actionResponse); + saveDatiDettPratica(dettPraticaId, request, response); } else { throw new SystemException("operazione non gestita (" + cmd + StringPool.CLOSE_PARENTHESIS); } } - public void saveTipoPratica(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void saveTipoPratica(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); - String cmd = ParamUtil.getString(actionRequest, Constants.CMD); - boolean bozza = ParamUtil.getBoolean(actionRequest, "bozza"); + String cmd = ParamUtil.getString(request, Constants.CMD); + boolean bozza = ParamUtil.getBoolean(request, "bozza"); if (bozza) { - saveDatiTipoPratica(dettPraticaId, actionRequest, actionResponse); + saveDatiTipoPratica(dettPraticaId, request, response); } else if ("delega".equalsIgnoreCase(cmd) && DelegheUtil.hasDelegaAttiva(serviceContext.getUserId(), dettPratica.getDettPraticaId())) { - concludiDelegaDomanda(actionRequest, actionResponse); - String successURL = ParamUtil.getString(actionRequest, "successURL"); - actionResponse.sendRedirect(successURL); + concludiDelegaDomanda(request, response); + String successURL = ParamUtil.getString(request, "successURL"); + response.sendRedirect(successURL); } else if ("asseverazione".equalsIgnoreCase(cmd) && AsseverazioniUtil.hasAsseverazioneAttiva(serviceContext.getUserId(), dettPratica.getIntPraticaId())) { - asseveraDomanda(actionRequest, actionResponse); - String successURL = ParamUtil.getString(actionRequest, "successURL"); - actionResponse.sendRedirect(successURL); + asseveraDomanda(request, response); + String successURL = ParamUtil.getString(request, "successURL"); + response.sendRedirect(successURL); } else if ("domanda".equalsIgnoreCase(cmd)) { if (TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO.equals(dettPratica.getTipoIntegrazione())) { - saveVariazioneSoggetti(dettPraticaId, actionRequest, actionResponse); + saveVariazioneSoggetti(dettPraticaId, request, response); } else { - saveDatiTipoPratica(dettPraticaId, actionRequest, actionResponse); + saveDatiTipoPratica(dettPraticaId, request, response); } } else { throw new SystemException("operazione non gestita"); } } - public void saveFineLavori(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - long fineLavoriId = ParamUtil.getLong(actionRequest, "fineLavoriId"); - boolean bozza = ParamUtil.getBoolean(actionRequest, "bozza"); - boolean parziale = ParamUtil.getBoolean(actionRequest, "tipoFineLavori"); - Date dataFineLavori = ParamUtil.getDate(actionRequest, "dataFineLavori", - DateFormatFactoryUtil.getDate(actionRequest.getLocale()), null); - String codiceFiscaleDelegato = ParamUtil.getString(actionRequest, "direttoreLavori"); - boolean normEsenteBollo = ParamUtil.getBoolean(actionRequest, "normEsenteBollo"); - boolean normEsenteCollaudo = ParamUtil.getBoolean(actionRequest, "normEsenteCollaudo"); - boolean isCheckedAltro = ParamUtil.getBoolean(actionRequest, "altro_checkbox"); - String comunicazioneDirettoreLavori = isCheckedAltro ? ParamUtil.getString(actionRequest, + public void salvaInizioLavori(ActionRequest request, ActionResponse response) throws IOException, PortalException, + SystemException { + + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + Date dataInizioLavoriOpera = ParamUtil.getDate(request, "dataInizioLavoriOpera", + DateFormatFactoryUtil.getDate(request.getLocale()), null); + DettPratica dettPratica = DettPraticaLocalServiceUtil.fetchDettPratica(dettPraticaId); + long intPraticaId = dettPratica.getIntPraticaId(); + if (Validator.isNull(dettPratica.getDataInizioLavoriOpera()) && Validator.isNotNull(dataInizioLavoriOpera)) { + dettPratica.setDataInizioLavoriOpera(dataInizioLavoriOpera); + DettPraticaLocalServiceUtil.updateDettPratica(dettPratica); + List collaudatori = SoggettoLocalServiceUtil.findByIntPratica_TipologiaSoggetto_Rimosso( + intPraticaId, TipoSoggettoUtil.COLLAUDATORE, false); + if (collaudatori.size() > 0) { + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + Set sTo = new HashSet<>(); + for (Soggetto collaudatore : collaudatori) { + sTo.add(collaudatore.getEmail()); + } + String[] to = sTo.toArray(new String[sTo.size()]); + String[] cc = new String[0]; + String[] ccn = cc; + String url = FascicoloURLUtil.getFascicoloFEViewURL(dettPratica.getCompanyId(), intPraticaId, + "/html/fascicolofe/edit_fascicolo.jsp", StringPool.BLANK); + String tipoPratica = StringPool.BLANK; + if (AzioniPraticheUtil.isDeposito(intPraticaId)) { + tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, "tipo-pratica-01"); + } else if (AzioniPraticheUtil.isAutorizzazione(intPraticaId)) { + tipoPratica = LanguageUtil.get(LocaleUtil.ITALIAN, "tipo-pratica-02"); + } + IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); + Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); + Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); + Provincia provincia = ProvinciaLocalServiceUtil.findByC_C(comune.getCompanyId(), + comune.getCodiceProvincia()); + JSONObject variables = JSONFactoryUtil.createJSONObject(); + variables.put("tipoPratica", tipoPratica); + variables.put("link", url); + variables.put("intervento", dettPratica.getDescLongIntervento()); + variables.put("praticaNum", intPratica.getNumeroProgetto()); + variables.put("comune", comune.getDenominazione()); + variables.put("provincia", provincia.getProvincia()); + variables.put("data", ParamUtil.getString(request, "dataInizioLavoriOpera")); + MailUtil.invioMailNotifica(intPraticaId, dettPraticaId, dettPraticaId, DettPratica.class.getName(), to, + cc, ccn, "COMUNICAZIONE-INIZIO-LAVORI", variables, null, serviceContext); + } + } + PortalUtil.copyRequestParameters(request, response); + } + + public void saveFineLavori(ActionRequest request, ActionResponse response) throws Exception { + + long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId"); + boolean bozza = ParamUtil.getBoolean(request, "bozza"); + boolean parziale = ParamUtil.getBoolean(request, "tipoFineLavori"); + Date dataFineLavori = ParamUtil.getDate(request, "dataFineLavori", + DateFormatFactoryUtil.getDate(request.getLocale()), null); + String codiceFiscaleDelegato = ParamUtil.getString(request, "direttoreLavori"); + boolean normEsenteBollo = ParamUtil.getBoolean(request, "normEsenteBollo"); + boolean normEsenteCollaudo = ParamUtil.getBoolean(request, "normEsenteCollaudo"); + boolean isCheckedAltro = ParamUtil.getBoolean(request, "altro_checkbox"); + String comunicazioneDirettoreLavori = isCheckedAltro ? ParamUtil.getString(request, "comunicazioneDirettoreLavori") : StringPool.BLANK; - long userId = PortalUtil.getUserId(actionRequest); + boolean richiestaAttestazione = ParamUtil.getBoolean(request, "richiestaAttestazione"); + long userId = PortalUtil.getUserId(request); try { FineLavori fineLavori = FineLavoriServiceUtil.getFineLavori(fineLavoriId); if (!fineLavori.isCompletata()) { - if (bozza) { - FineLavoriServiceUtil.updateFineLavori(userId, fineLavori.getFineLavoriId(), - fineLavori.getIntPraticaId(), parziale, false, dataFineLavori, codiceFiscaleDelegato, - normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori); - } else { - FineLavoriServiceUtil.updateFineLavori(userId, fineLavori.getFineLavoriId(), - fineLavori.getIntPraticaId(), parziale, false, dataFineLavori, codiceFiscaleDelegato, - normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori); - } + FineLavoriServiceUtil.updateFineLavori(userId, fineLavori.getFineLavoriId(), + fineLavori.getIntPraticaId(), parziale, false, dataFineLavori, codiceFiscaleDelegato, + normEsenteBollo, normEsenteCollaudo, comunicazioneDirettoreLavori, richiestaAttestazione); } - String redirect = ParamUtil.getString(actionRequest, "redirect"); + String redirect = ParamUtil.getString(request, "redirect"); if (Validator.isNull(redirect)) { - String successURL = ParamUtil.getString(actionRequest, "successURL"); + String successURL = ParamUtil.getString(request, "successURL"); if (Validator.isNotNull(successURL)) { - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "fineLavoriId"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "fineLavoriId", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "fineLavoriId"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "fineLavoriId", String.valueOf(fineLavoriId)); - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "openVerifyUrl"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "openVerifyUrl", String.valueOf(!bozza)); /* * SDB: forse non è più necessario distinguere la fase i creazione di una nuovo fineLavori da un * editing */ - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } } } catch (PortalException e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fine-lavori.jsp"); - actionResponse.setRenderParameter("fineLavoriId", String.valueOf(fineLavoriId)); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fine-lavori.jsp"); + response.setRenderParameter("fineLavoriId", String.valueOf(fineLavoriId)); throw e; } catch (Exception e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fine-lavori.jsp"); - actionResponse.setRenderParameter("fineLavoriId", String.valueOf(fineLavoriId)); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fine-lavori.jsp"); + response.setRenderParameter("fineLavoriId", String.valueOf(fineLavoriId)); throw new PortalException(e); } } - public void saveCollaudo(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { - - long collaudoId = ParamUtil.getLong(actionRequest, "collaudoId"); - boolean bozza = ParamUtil.getBoolean(actionRequest, "bozza"); - boolean parziale = ParamUtil.getBoolean(actionRequest, "tipoCollaudo"); - Date dataCollaudo = ParamUtil.getDate(actionRequest, "dataCollaudo", - DateFormatFactoryUtil.getDate(actionRequest.getLocale()), null); - String codiceFiscaleDelegato = ParamUtil.getString(actionRequest, "collaudatore"); - boolean normEsenteBollo = ParamUtil.getBoolean(actionRequest, "normEsenteBollo"); - String noteCollaudo = ParamUtil.getString(actionRequest, "noteCollaudo", StringPool.BLANK); - long userId = PortalUtil.getUserId(actionRequest); + public void saveCollaudo(ActionRequest request, ActionResponse response) throws Exception { + + long collaudoId = ParamUtil.getLong(request, "collaudoId"); + boolean bozza = ParamUtil.getBoolean(request, "bozza"); + boolean parziale = ParamUtil.getBoolean(request, "tipoCollaudo"); + Date dataCollaudo = ParamUtil.getDate(request, "dataCollaudo", + DateFormatFactoryUtil.getDate(request.getLocale()), null); + String codiceFiscaleDelegato = ParamUtil.getString(request, "collaudatore"); + boolean normEsenteBollo = ParamUtil.getBoolean(request, "normEsenteBollo"); + String noteCollaudo = ParamUtil.getString(request, "noteCollaudo", StringPool.BLANK); + long userId = PortalUtil.getUserId(request); try { Collaudo collaudo = CollaudoServiceUtil.getCollaudo(collaudoId); if (!collaudo.isCompletata()) { @@ -803,50 +848,48 @@ public class FascicoloFePortlet extends MVCPortlet { parziale, false, dataCollaudo, codiceFiscaleDelegato, normEsenteBollo, noteCollaudo); } } - String redirect = ParamUtil.getString(actionRequest, "redirect"); + String redirect = ParamUtil.getString(request, "redirect"); if (Validator.isNull(redirect)) { - String successURL = ParamUtil.getString(actionRequest, "successURL"); + String successURL = ParamUtil.getString(request, "successURL"); if (Validator.isNotNull(successURL)) { - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "collaudoId"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "collaudoId", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "collaudoId"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "collaudoId", String.valueOf(collaudoId)); - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "openVerifyUrl"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "openVerifyUrl", String.valueOf(!bozza)); - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } } } catch (PortalException e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_collaudo.jsp"); - actionResponse.setRenderParameter("collaudoId", String.valueOf(collaudoId)); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_collaudo.jsp"); + response.setRenderParameter("collaudoId", String.valueOf(collaudoId)); throw e; } catch (Exception e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_collaudo.jsp"); - actionResponse.setRenderParameter("collaudoId", String.valueOf(collaudoId)); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_collaudo.jsp"); + response.setRenderParameter("collaudoId", String.valueOf(collaudoId)); throw new PortalException(e); } } - private void asseveraDomanda(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, - NestableException { + private void asseveraDomanda(ActionRequest request, ActionResponse response) throws IOException, NestableException { try { String dichiarazioni = StringPool.BLANK; - if (ParamUtil.getBoolean(actionRequest, "asPresenti", false)) { + if (ParamUtil.getBoolean(request, "asPresenti", false)) { Map parametri = new HashMap<>(); - parametri.put("coniugio", ParamUtil.getBoolean(actionRequest, "asConiugio", false)); - parametri.put("relazioni", ParamUtil.getString(actionRequest, "asRelazioni", StringPool.BLANK)); + parametri.put("coniugio", ParamUtil.getBoolean(request, "asConiugio", false)); + parametri.put("relazioni", ParamUtil.getString(request, "asRelazioni", StringPool.BLANK)); JSONSerializer serializer = JSONFactoryUtil.createJSONSerializer(); dichiarazioni = serializer.serializeDeep(parametri); } - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), - actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); if (AsseverazioniUtil.hasAsseverazioneAttiva(serviceContext.getUserId(), dettPratica.getIntPraticaId())) { User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); @@ -866,12 +909,11 @@ public class FascicoloFePortlet extends MVCPortlet { } } - private void concludiDelegaDomanda(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + private void concludiDelegaDomanda(ActionRequest request, ActionResponse response) throws Exception { try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), - actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); if (DelegheUtil.hasDelegaCompilazioneDomanda(serviceContext.getUserId(), dettPraticaId) || DelegheUtil.hasDelegaCompilazioneSezioneGeologica(serviceContext.getUserId(), dettPraticaId) @@ -880,11 +922,11 @@ public class FascicoloFePortlet extends MVCPortlet { List deleghe = DelegaServiceUtil.findByIntPratica_CodiceFiscale_InEsito( dettPratica.getIntPraticaId(), user.getScreenName(), new String[] { DelegheUtil.STATO_ASSEGNATA }, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); - saveDatiDettPratica(dettPraticaId, actionRequest, actionResponse); + saveDatiDettPratica(dettPraticaId, request, response); Map parametri = new HashMap<>(); - if (ParamUtil.getBoolean(actionRequest, "dgPresenti", false)) { - parametri.put("coniugio", ParamUtil.getBoolean(actionRequest, "dgConiugio", false)); - parametri.put("relazioni", ParamUtil.getString(actionRequest, "dgRelazioni", StringPool.BLANK)); + if (ParamUtil.getBoolean(request, "dgPresenti", false)) { + parametri.put("coniugio", ParamUtil.getBoolean(request, "dgConiugio", false)); + parametri.put("relazioni", ParamUtil.getString(request, "dgRelazioni", StringPool.BLANK)); } JSONSerializer serializer = JSONFactoryUtil.createJSONSerializer(); String dichiarazioni = serializer.serializeDeep(parametri); @@ -1268,298 +1310,282 @@ public class FascicoloFePortlet extends MVCPortlet { } } - private String getNotNullString(ActionRequest actionRequest, String param, String currentValue) { + private String getNotNullString(ActionRequest request, String param, String currentValue) { - String value = ParamUtil.getString(actionRequest, param); + String value = ParamUtil.getString(request, param); return Validator.isNull(value) ? currentValue : value; } - private Date getNotNullDate(ActionRequest actionRequest, String param, Date currentValue) { + private Date getNotNullDate(ActionRequest request, String param, Date currentValue) { - Date value = ParamUtil.getDate(actionRequest, param, DateFormatFactoryUtil.getDate(actionRequest.getLocale())); + Date value = ParamUtil.getDate(request, param, DateFormatFactoryUtil.getDate(request.getLocale())); return Validator.isNull(value) ? currentValue : value; } - private void saveDatiTipoPratica(long dettPraticaId, ActionRequest actionRequest, ActionResponse actionResponse) + private void saveDatiTipoPratica(long dettPraticaId, ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), actionRequest); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); - boolean bozza = ParamUtil.getBoolean(actionRequest, "bozza", true); - boolean disabledSubmit = ParamUtil.getBoolean(actionRequest, "disabledSubmit", true); - boolean geoDisabledSubmit = ParamUtil.getBoolean(actionRequest, "geoDisabledSubmit", true); - String protocollo = ParamUtil.getString(actionRequest, "protocollo"); - String tipoIntegrazione = ParamUtil.getString(actionRequest, "tipoIntegrazione"); - boolean varianteSostanziale = ParamUtil.getBoolean(actionRequest, "varianteSostanziale"); + boolean bozza = ParamUtil.getBoolean(request, "bozza", true); + boolean disabledSubmit = ParamUtil.getBoolean(request, "disabledSubmit", true); + boolean geoDisabledSubmit = ParamUtil.getBoolean(request, "geoDisabledSubmit", true); + String protocollo = ParamUtil.getString(request, "protocollo"); + String tipoIntegrazione = ParamUtil.getString(request, "tipoIntegrazione"); + boolean varianteSostanziale = ParamUtil.getBoolean(request, "varianteSostanziale"); User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); String codiceFiscaleDelegatoCommittente = user.getScreenName(); - boolean isCodiceFiscaleDelegatoFineLavoriAuthorized = ParamUtil.getBoolean(actionRequest, + boolean isCodiceFiscaleDelegatoFineLavoriAuthorized = ParamUtil.getBoolean(request, "codiceFiscaleDelegatoFineLavoriEnabled"); String codiceFiscaleDelegatoFineLavori = isCodiceFiscaleDelegatoFineLavoriAuthorized ? ParamUtil.getString( - actionRequest, "codiceFiscaleDelegatoFineLavori") : StringPool.BLANK; - boolean isCodiceFiscaleDelegatoCollaudoAuthorized = ParamUtil.getBoolean(actionRequest, + request, "codiceFiscaleDelegatoFineLavori") : StringPool.BLANK; + boolean isCodiceFiscaleDelegatoCollaudoAuthorized = ParamUtil.getBoolean(request, "codiceFiscaleDelegatoCollaudoEnabled"); - String codiceFiscaleDelegatoCollaudo = isCodiceFiscaleDelegatoCollaudoAuthorized ? ParamUtil.getString( - actionRequest, "codiceFiscaleDelegatoCollaudo") : StringPool.BLANK; - boolean inizioLavoriContestualeOpera = ParamUtil.getBoolean(actionRequest, "inizioLavoriContestualeOpera"); - long pagamentoId = ParamUtil.getLong(actionRequest, "pagamentoId"); - Date dataEffettuazione = ParamUtil.getDate(actionRequest, "dataEffettuazione", - DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - Date dataInizioLavoriOpera = ParamUtil.getDate(actionRequest, "dataInizioLavoriOpera", - DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - Date dataInizioEsecuzioneOpera = ParamUtil.getDate(actionRequest, "dataInizioEsecuzioneOpera", - DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - Date dataFineEsecuzioneOpera = ParamUtil.getDate(actionRequest, "dataFineEsecuzioneOpera", - DateFormatFactoryUtil.getDate(actionRequest.getLocale())); - String note = ParamUtil.getString(actionRequest, "note"); - String noteUfficio = ParamUtil.getString(actionRequest, "noteUfficio"); + String codiceFiscaleDelegatoCollaudo = isCodiceFiscaleDelegatoCollaudoAuthorized ? ParamUtil.getString(request, + "codiceFiscaleDelegatoCollaudo") : StringPool.BLANK; + boolean inizioLavoriContestualeOpera = ParamUtil.getBoolean(request, "inizioLavoriContestualeOpera"); + long pagamentoId = ParamUtil.getLong(request, "pagamentoId"); + Date dataEffettuazione = ParamUtil.getDate(request, "dataEffettuazione", + DateFormatFactoryUtil.getDate(request.getLocale())); + Date dataInizioLavoriOpera = ParamUtil.getDate(request, "dataInizioLavoriOpera", + DateFormatFactoryUtil.getDate(request.getLocale())); + Date dataInizioEsecuzioneOpera = ParamUtil.getDate(request, "dataInizioEsecuzioneOpera", + DateFormatFactoryUtil.getDate(request.getLocale())); + Date dataFineEsecuzioneOpera = ParamUtil.getDate(request, "dataFineEsecuzioneOpera", + DateFormatFactoryUtil.getDate(request.getLocale())); + String note = ParamUtil.getString(request, "note"); + String noteUfficio = ParamUtil.getString(request, "noteUfficio"); // PAGAMENTI - String codicePagamento = ParamUtil.getString(actionRequest, "codicePagamento"); - String causalePagamento = ParamUtil.getString(actionRequest, "causalePagamento"); - String mezzoPagamento = ParamUtil.getString(actionRequest, "mezzoPagamento"); - String importoBolli = ParamUtil.getString(actionRequest, "importoBolli"); - String importoSpeseIstruttoria = ParamUtil.getString(actionRequest, "importoSpeseIstruttoria"); - boolean pagNuoveCostruzioni = ParamUtil.getBoolean(actionRequest, "pagNuoveCostruzioni"); - int pagAdeguamentoSismico = ParamUtil.getInteger(actionRequest, "pagAdeguamentoSismico"); - int pagMiglioramentoSismico = ParamUtil.getInteger(actionRequest, "pagMiglioramentoSismico"); - boolean pagRiparazioneInterventoLocale = ParamUtil.getBoolean(actionRequest, "pagRiparazioneInterventoLocale"); - int pagNuovaCostruzione = ParamUtil.getInteger(actionRequest, "pagNuovaCostruzione"); - boolean pagVarianti = ParamUtil.getBoolean(actionRequest, "pagVarianti"); - int pagAltro = ParamUtil.getInteger(actionRequest, "pagAltro"); - boolean pagMiglioramentoSismicoSicilia = ParamUtil.getBoolean(actionRequest, "pagMiglioramentoSismicoSicilia"); - String pagCalcolatoAdeguamentoSismico = ParamUtil.getString(actionRequest, "pagCalcolatoAdeguamentoSismico"); - String pagCalcolatoMiglioramentoSismico = ParamUtil - .getString(actionRequest, "pagCalcolatoMiglioramentoSismico"); - String pagCalcolatoRiparazioneInterventoLocale = ParamUtil.getString(actionRequest, + String codicePagamento = ParamUtil.getString(request, "codicePagamento"); + String causalePagamento = ParamUtil.getString(request, "causalePagamento"); + String mezzoPagamento = ParamUtil.getString(request, "mezzoPagamento"); + String importoBolli = ParamUtil.getString(request, "importoBolli"); + String importoSpeseIstruttoria = ParamUtil.getString(request, "importoSpeseIstruttoria"); + boolean pagNuoveCostruzioni = ParamUtil.getBoolean(request, "pagNuoveCostruzioni"); + int pagAdeguamentoSismico = ParamUtil.getInteger(request, "pagAdeguamentoSismico"); + int pagMiglioramentoSismico = ParamUtil.getInteger(request, "pagMiglioramentoSismico"); + boolean pagRiparazioneInterventoLocale = ParamUtil.getBoolean(request, "pagRiparazioneInterventoLocale"); + int pagNuovaCostruzione = ParamUtil.getInteger(request, "pagNuovaCostruzione"); + boolean pagVarianti = ParamUtil.getBoolean(request, "pagVarianti"); + int pagAltro = ParamUtil.getInteger(request, "pagAltro"); + boolean pagMiglioramentoSismicoSicilia = ParamUtil.getBoolean(request, "pagMiglioramentoSismicoSicilia"); + String pagCalcolatoAdeguamentoSismico = ParamUtil.getString(request, "pagCalcolatoAdeguamentoSismico"); + String pagCalcolatoMiglioramentoSismico = ParamUtil.getString(request, "pagCalcolatoMiglioramentoSismico"); + String pagCalcolatoRiparazioneInterventoLocale = ParamUtil.getString(request, "pagCalcolatoRiparazioneInterventoLocale"); - String pagCalcolatoOperaNonQuantificabile = ParamUtil.getString(actionRequest, - "pagCalcolatoOperaNonQuantificabile"); - String pagEffettivoAdeguamentoSismico = ParamUtil.getString(actionRequest, "pagEffettivoAdeguamentoSismico"); - String pagEffettivoMiglioramentoSismico = ParamUtil - .getString(actionRequest, "pagEffettivoMiglioramentoSismico"); - String pagEffettivoRiparazioneInterventoLocale = ParamUtil.getString(actionRequest, + String pagCalcolatoOperaNonQuantificabile = ParamUtil.getString(request, "pagCalcolatoOperaNonQuantificabile"); + String pagEffettivoAdeguamentoSismico = ParamUtil.getString(request, "pagEffettivoAdeguamentoSismico"); + String pagEffettivoMiglioramentoSismico = ParamUtil.getString(request, "pagEffettivoMiglioramentoSismico"); + String pagEffettivoRiparazioneInterventoLocale = ParamUtil.getString(request, "pagEffettivoRiparazioneInterventoLocale"); - String pagEffettivoOperaNonQuantificabile = ParamUtil.getString(actionRequest, - "pagEffettivoOperaNonQuantificabile"); - String pagNoteUtente = ParamUtil.getString(actionRequest, "pagNoteUtente"); + String pagEffettivoOperaNonQuantificabile = ParamUtil.getString(request, "pagEffettivoOperaNonQuantificabile"); + String pagNoteUtente = ParamUtil.getString(request, "pagNoteUtente"); // SEZIONE DETTAGLI PRINCIPALI DettPratica dettCheck = DettPraticaLocalServiceUtil.fetchDettPratica(dettPraticaId); boolean disabledCollaudoStatico = false; if (dettCheck != null) { disabledCollaudoStatico = SoggettiUtil.isCommittenteAndDitta(dettCheck.getIntPraticaId()); } - boolean collaudoStatico = ParamUtil.getBoolean(actionRequest, "collaudoStatico"); + boolean collaudoStatico = ParamUtil.getBoolean(request, "collaudoStatico"); if (disabledCollaudoStatico) { collaudoStatico = dettCheck.getCollaudoStatico(); } - boolean lavoriInEconomiaCommittente = ParamUtil.getBoolean(actionRequest, "lavoriInEconomiaCommittente"); - String destinazione = ParamUtil.getString(actionRequest, "destinazione"); - String ag = ParamUtil.getString(actionRequest, "ag"); - String descLongIntervento = ParamUtil.getString(actionRequest, "descLongIntervento"); - String estremiCatastali = ParamUtil.getString(actionRequest, "estremiCatastali"); - String estremiPratCom = ParamUtil.getString(actionRequest, "estremiPratCom"); - String metratura = ParamUtil.getString(actionRequest, "metratura"); - boolean lavoriPubblici = ParamUtil.getBoolean(actionRequest, "lavoriPubblici"); - int lavoriPubbliciPercentuale = ParamUtil.getInteger(actionRequest, "lavoriPubbliciPercentuale"); - String numeroCivico = ParamUtil.getString(actionRequest, "numeroCivico"); - String dcFoglio = ParamUtil.getString(actionRequest, "dcFoglio"); - String dcAllegato = ParamUtil.getString(actionRequest, "dcAllegato"); - String particella1 = ParamUtil.getString(actionRequest, "particella1", StringPool.BLANK).replaceAll( + boolean lavoriInEconomiaCommittente = ParamUtil.getBoolean(request, "lavoriInEconomiaCommittente"); + String destinazione = ParamUtil.getString(request, "destinazione"); + String ag = ParamUtil.getString(request, "ag"); + String descLongIntervento = ParamUtil.getString(request, "descLongIntervento"); + String estremiCatastali = ParamUtil.getString(request, "estremiCatastali"); + String estremiPratCom = ParamUtil.getString(request, "estremiPratCom"); + String metratura = ParamUtil.getString(request, "metratura"); + boolean lavoriPubblici = ParamUtil.getBoolean(request, "lavoriPubblici"); + int lavoriPubbliciPercentuale = ParamUtil.getInteger(request, "lavoriPubbliciPercentuale"); + String numeroCivico = ParamUtil.getString(request, "numeroCivico"); + String dcFoglio = ParamUtil.getString(request, "dcFoglio"); + String dcAllegato = ParamUtil.getString(request, "dcAllegato"); + String particella1 = ParamUtil.getString(request, "particella1", StringPool.BLANK).replaceAll( Pattern.quote(StringPool.PIPE), StringPool.SPACE); - String particella2 = ParamUtil.getString(actionRequest, "particella2", StringPool.BLANK).replaceAll( + String particella2 = ParamUtil.getString(request, "particella2", StringPool.BLANK).replaceAll( Pattern.quote(StringPool.PIPE), StringPool.SPACE); - String particella3 = ParamUtil.getString(actionRequest, "particella3", StringPool.BLANK).replaceAll( + String particella3 = ParamUtil.getString(request, "particella3", StringPool.BLANK).replaceAll( Pattern.quote(StringPool.PIPE), StringPool.SPACE); - String particella4 = ParamUtil.getString(actionRequest, "particella4", StringPool.BLANK).replaceAll( + String particella4 = ParamUtil.getString(request, "particella4", StringPool.BLANK).replaceAll( Pattern.quote(StringPool.PIPE), StringPool.SPACE); String dcParticelle = particella1 + StringPool.PIPE + particella2 + StringPool.PIPE + particella3 + StringPool.PIPE + particella4; - String localizzazioneGeografica = ParamUtil.getString(actionRequest, "localizzazioneGeografica"); - boolean tcNuovaCostruzione = ParamUtil.getBoolean(actionRequest, "tcNuovaCostruzione"); - boolean tcAdeguamentoSismico = ParamUtil.getBoolean(actionRequest, "tcAdeguamentoSismico"); - boolean tcMiglioramentoSismico = ParamUtil.getBoolean(actionRequest, "tcMiglioramentoSismico"); - boolean tcRiparazioneInterventoLocale = ParamUtil.getBoolean(actionRequest, "tcRiparazioneInterventoLocale"); - boolean tcNuovaCostruzioneComplessa = ParamUtil.getBoolean(actionRequest, "tcNuovaCostruzioneComplessa"); - boolean tcInCA = ParamUtil.getBoolean(actionRequest, "tcInCA"); - boolean tcInOpera = ParamUtil.getBoolean(actionRequest, "tcInOpera"); - boolean tcPrefabbricato = ParamUtil.getBoolean(actionRequest, "tcPrefabbricato"); - boolean tcInAcciaio = ParamUtil.getBoolean(actionRequest, "tcInAcciaio"); - boolean tcMista = ParamUtil.getBoolean(actionRequest, "tcMista"); - boolean tcInMuratura = ParamUtil.getBoolean(actionRequest, "tcInMuratura"); - boolean tcInMuraturaOrdinaria = ParamUtil.getBoolean(actionRequest, "tcInMuraturaOrdinaria"); - boolean tcInMuraturaArmata = ParamUtil.getBoolean(actionRequest, "tcInMuraturaArmata"); - boolean tcInMuraturaMista = ParamUtil.getBoolean(actionRequest, "tcInMuraturaMista"); - boolean tcInLegno = ParamUtil.getBoolean(actionRequest, "tcInLegno"); - boolean tcAltro = ParamUtil.getBoolean(actionRequest, "tcAltro"); - String tcAltroDescrizione = ParamUtil.getString(actionRequest, "tcAltroDescrizione"); - boolean tcConDispositivi = ParamUtil.getBoolean(actionRequest, "tcConDispositivi"); + String localizzazioneGeografica = ParamUtil.getString(request, "localizzazioneGeografica"); + boolean tcNuovaCostruzione = ParamUtil.getBoolean(request, "tcNuovaCostruzione"); + boolean tcAdeguamentoSismico = ParamUtil.getBoolean(request, "tcAdeguamentoSismico"); + boolean tcMiglioramentoSismico = ParamUtil.getBoolean(request, "tcMiglioramentoSismico"); + boolean tcRiparazioneInterventoLocale = ParamUtil.getBoolean(request, "tcRiparazioneInterventoLocale"); + boolean tcNuovaCostruzioneComplessa = ParamUtil.getBoolean(request, "tcNuovaCostruzioneComplessa"); + boolean tcInCA = ParamUtil.getBoolean(request, "tcInCA"); + boolean tcInOpera = ParamUtil.getBoolean(request, "tcInOpera"); + boolean tcPrefabbricato = ParamUtil.getBoolean(request, "tcPrefabbricato"); + boolean tcInAcciaio = ParamUtil.getBoolean(request, "tcInAcciaio"); + boolean tcMista = ParamUtil.getBoolean(request, "tcMista"); + boolean tcInMuratura = ParamUtil.getBoolean(request, "tcInMuratura"); + boolean tcInMuraturaOrdinaria = ParamUtil.getBoolean(request, "tcInMuraturaOrdinaria"); + boolean tcInMuraturaArmata = ParamUtil.getBoolean(request, "tcInMuraturaArmata"); + boolean tcInMuraturaMista = ParamUtil.getBoolean(request, "tcInMuraturaMista"); + boolean tcInLegno = ParamUtil.getBoolean(request, "tcInLegno"); + boolean tcAltro = ParamUtil.getBoolean(request, "tcAltro"); + String tcAltroDescrizione = ParamUtil.getString(request, "tcAltroDescrizione"); + boolean tcConDispositivi = ParamUtil.getBoolean(request, "tcConDispositivi"); // Descrizione edificio - String dePiani = ParamUtil.getString(actionRequest, "dePiani"); - String deAltezza = ParamUtil.getString(actionRequest, "deAltezza"); - String deInterrati = ParamUtil.getString(actionRequest, "deInterrati"); - String deSuperficie = ParamUtil.getString(actionRequest, "deSuperficie"); - String deCostruzione = ParamUtil.getString(actionRequest, "deCostruzione"); - String deRistrutturazione = ParamUtil.getString(actionRequest, "deRistrutturazione"); - String deUso = ParamUtil.getString(actionRequest, "deUso"); - String dePrivata = ParamUtil.getString(actionRequest, "dePrivata"); - String dePubblica = ParamUtil.getString(actionRequest, "dePubblica"); - String deUtilizzazione = ParamUtil.getString(actionRequest, "deUtilizzazione"); - String dePosizioneEdificio = ParamUtil.getString(actionRequest, "dePosizioneEdificio"); - boolean deInfStradalePonte = ParamUtil.getBoolean(actionRequest, "deInfStradalePonte"); - boolean deInfStradaleStrada = ParamUtil.getBoolean(actionRequest, "deInfStradaleStrada"); - boolean deInfStradaleAltro = ParamUtil.getBoolean(actionRequest, "deInfStradaleAltro"); - boolean deInfIdraulicaLong = ParamUtil.getBoolean(actionRequest, "deInfIdraulicaLong"); - boolean deInfIdraulicaTrasv = ParamUtil.getBoolean(actionRequest, "deInfIdraulicaTrasv"); - boolean deInfIdraulicaAltro = ParamUtil.getBoolean(actionRequest, "deInfIdraulicaAltro"); - boolean deInfOperaAccStradale = ParamUtil.getBoolean(actionRequest, "deInfOperaAccStradale"); - boolean deInfOperaAccIdraulica = ParamUtil.getBoolean(actionRequest, "deInfOperaAccIdraulica"); - boolean deInfOperaAccAltro = ParamUtil.getBoolean(actionRequest, "deInfOperaAccAltro"); - boolean deInfAltraInfrastruttura = ParamUtil.getBoolean(actionRequest, "deInfAltraInfrastruttura"); - boolean deInfAltro = ParamUtil.getBoolean(actionRequest, "deInfAltro"); - String deInfAltroDesc = ParamUtil.getString(actionRequest, "deInfAltroDesc"); - String dccFondazioni = ParamUtil.getString(actionRequest, "dccFondazioni"); - boolean dccStruttureEleMuraturePietrame = ParamUtil - .getBoolean(actionRequest, "dccStruttureEleMuraturePietrame"); - boolean dccStruttureEleMuratureLaterizio = ParamUtil.getBoolean(actionRequest, - "dccStruttureEleMuratureLaterizio"); - boolean dccStruttureEleMuratureMisto = ParamUtil.getBoolean(actionRequest, "dccStruttureEleMuratureMisto"); - boolean dccStruttureEleMuratureStoriche = ParamUtil - .getBoolean(actionRequest, "dccStruttureEleMuratureStoriche"); - String dccStruttureEleAcciaio = ParamUtil.getString(actionRequest, "dccStruttureEleAcciaio"); - String dccStruttureEleCA = ParamUtil.getString(actionRequest, "dccStruttureEleCA"); - String dccStruttureEleLegno = ParamUtil.getString(actionRequest, "dccStruttureEleLegno"); - boolean dccStruttureEleMistoCA = ParamUtil.getBoolean(actionRequest, "dccStruttureEleMistoCA"); - boolean dccStruttureEleMistoAcciaio = ParamUtil.getBoolean(actionRequest, "dccStruttureEleMistoAcciaio"); - boolean dccStruttureEleMistoMuratura = ParamUtil.getBoolean(actionRequest, "dccStruttureEleMistoMuratura"); - boolean dccStruttureEleMistoLegno = ParamUtil.getBoolean(actionRequest, "dccStruttureEleMistoLegno"); - boolean dccStruttureElePrefabbricato = ParamUtil.getBoolean(actionRequest, "dccStruttureElePrefabbricato"); - boolean dccStruttureEleAltro = ParamUtil.getBoolean(actionRequest, "dccStruttureEleAltro"); - String dccStruttureEleAltroDescrizione = ParamUtil.getString(actionRequest, "dccStruttureEleAltroDescrizione"); - boolean dccOrizzontamentiCAAcciaio = ParamUtil.getBoolean(actionRequest, "dccOrizzontamentiCAAcciaio"); - boolean dccOrizzontamentiLegno = ParamUtil.getBoolean(actionRequest, "dccOrizzontamentiLegno"); - boolean dccOrizzontamentiLegnoCA = ParamUtil.getBoolean(actionRequest, "dccOrizzontamentiLegnoCA"); - boolean dccOrizzontamentiLamieraGrecata = ParamUtil - .getBoolean(actionRequest, "dccOrizzontamentiLamieraGrecata"); - boolean dccOrizzontamentiVolte = ParamUtil.getBoolean(actionRequest, "dccOrizzontamentiVolte"); - boolean dccOrizzontamentiAltro = ParamUtil.getBoolean(actionRequest, "dccOrizzontamentiAltro"); - String dccOrizzontamentiAltroDescrizione = ParamUtil.getString(actionRequest, - "dccOrizzontamentiAltroDescrizione"); - String dccCopertura = ParamUtil.getString(actionRequest, "dccCopertura"); - boolean dccCoperturaCAAcciaio = ParamUtil.getBoolean(actionRequest, "dccCoperturaCAAcciaio"); - boolean dccCoperturaLegno = ParamUtil.getBoolean(actionRequest, "dccCoperturaLegno"); - boolean dccCoperturaLegnoCA = ParamUtil.getBoolean(actionRequest, "dccCoperturaLegnoCA"); - boolean dccCoperturaLamieraGrecata = ParamUtil.getBoolean(actionRequest, "dccCoperturaLamieraGrecata"); - boolean dccCoperturaPannelli = ParamUtil.getBoolean(actionRequest, "dccCoperturaPannelli"); - boolean dccCoperturaPVCTelonati = ParamUtil.getBoolean(actionRequest, "dccCoperturaPVCTelonati"); - boolean dccCoperturaLeggere = ParamUtil.getBoolean(actionRequest, "dccCoperturaLeggere"); - boolean dccCoperturaAltro = ParamUtil.getBoolean(actionRequest, "dccCoperturaAltro"); - String dccCoperturaAltroDesrizione = ParamUtil.getString(actionRequest, "dccCoperturaAltroDesrizione"); - boolean dccElemNonStrutLaterizio = ParamUtil.getBoolean(actionRequest, "dccElemNonStrutLaterizio"); - boolean dccElemNonStrutCartongesso = ParamUtil.getBoolean(actionRequest, "dccElemNonStrutCartongesso"); - boolean dccElemNonStrutCalcestruzzo = ParamUtil.getBoolean(actionRequest, "dccElemNonStrutCalcestruzzo"); - boolean dccElemNonStrutLegno = ParamUtil.getBoolean(actionRequest, "dccElemNonStrutLegno"); - boolean dccElemNonStrutAltro = ParamUtil.getBoolean(actionRequest, "dccElemNonStrutAltro"); - String dccElemNonStrutAltroDescrizione = ParamUtil.getString(actionRequest, "dccElemNonStrutAltroDescrizione"); - boolean dccOpereDiRinforzoInsCatene = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoInsCatene"); - boolean dccOpereDiRinforzoInsCordoli = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoInsCordoli"); - boolean dccOpereDiRinforzoIniArmate = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoIniArmate"); - boolean dccOpereDiRinforzoPlaccaggi = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoPlaccaggi"); - boolean dccOpereDiRinforzoIrrSolai = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoIrrSolai"); - boolean dccOpereDiRinforzoRinforziFRP = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoRinforziFRP"); - boolean dccOpereDiRinforzoTelaiECerchiature = ParamUtil.getBoolean(actionRequest, + String dePiani = ParamUtil.getString(request, "dePiani"); + String deAltezza = ParamUtil.getString(request, "deAltezza"); + String deInterrati = ParamUtil.getString(request, "deInterrati"); + String deSuperficie = ParamUtil.getString(request, "deSuperficie"); + String deCostruzione = ParamUtil.getString(request, "deCostruzione"); + String deRistrutturazione = ParamUtil.getString(request, "deRistrutturazione"); + String deUso = ParamUtil.getString(request, "deUso"); + String dePrivata = ParamUtil.getString(request, "dePrivata"); + String dePubblica = ParamUtil.getString(request, "dePubblica"); + String deUtilizzazione = ParamUtil.getString(request, "deUtilizzazione"); + String dePosizioneEdificio = ParamUtil.getString(request, "dePosizioneEdificio"); + boolean deInfStradalePonte = ParamUtil.getBoolean(request, "deInfStradalePonte"); + boolean deInfStradaleStrada = ParamUtil.getBoolean(request, "deInfStradaleStrada"); + boolean deInfStradaleAltro = ParamUtil.getBoolean(request, "deInfStradaleAltro"); + boolean deInfIdraulicaLong = ParamUtil.getBoolean(request, "deInfIdraulicaLong"); + boolean deInfIdraulicaTrasv = ParamUtil.getBoolean(request, "deInfIdraulicaTrasv"); + boolean deInfIdraulicaAltro = ParamUtil.getBoolean(request, "deInfIdraulicaAltro"); + boolean deInfOperaAccStradale = ParamUtil.getBoolean(request, "deInfOperaAccStradale"); + boolean deInfOperaAccIdraulica = ParamUtil.getBoolean(request, "deInfOperaAccIdraulica"); + boolean deInfOperaAccAltro = ParamUtil.getBoolean(request, "deInfOperaAccAltro"); + boolean deInfAltraInfrastruttura = ParamUtil.getBoolean(request, "deInfAltraInfrastruttura"); + boolean deInfAltro = ParamUtil.getBoolean(request, "deInfAltro"); + String deInfAltroDesc = ParamUtil.getString(request, "deInfAltroDesc"); + String dccFondazioni = ParamUtil.getString(request, "dccFondazioni"); + boolean dccStruttureEleMuraturePietrame = ParamUtil.getBoolean(request, "dccStruttureEleMuraturePietrame"); + boolean dccStruttureEleMuratureLaterizio = ParamUtil.getBoolean(request, "dccStruttureEleMuratureLaterizio"); + boolean dccStruttureEleMuratureMisto = ParamUtil.getBoolean(request, "dccStruttureEleMuratureMisto"); + boolean dccStruttureEleMuratureStoriche = ParamUtil.getBoolean(request, "dccStruttureEleMuratureStoriche"); + String dccStruttureEleAcciaio = ParamUtil.getString(request, "dccStruttureEleAcciaio"); + String dccStruttureEleCA = ParamUtil.getString(request, "dccStruttureEleCA"); + String dccStruttureEleLegno = ParamUtil.getString(request, "dccStruttureEleLegno"); + boolean dccStruttureEleMistoCA = ParamUtil.getBoolean(request, "dccStruttureEleMistoCA"); + boolean dccStruttureEleMistoAcciaio = ParamUtil.getBoolean(request, "dccStruttureEleMistoAcciaio"); + boolean dccStruttureEleMistoMuratura = ParamUtil.getBoolean(request, "dccStruttureEleMistoMuratura"); + boolean dccStruttureEleMistoLegno = ParamUtil.getBoolean(request, "dccStruttureEleMistoLegno"); + boolean dccStruttureElePrefabbricato = ParamUtil.getBoolean(request, "dccStruttureElePrefabbricato"); + boolean dccStruttureEleAltro = ParamUtil.getBoolean(request, "dccStruttureEleAltro"); + String dccStruttureEleAltroDescrizione = ParamUtil.getString(request, "dccStruttureEleAltroDescrizione"); + boolean dccOrizzontamentiCAAcciaio = ParamUtil.getBoolean(request, "dccOrizzontamentiCAAcciaio"); + boolean dccOrizzontamentiLegno = ParamUtil.getBoolean(request, "dccOrizzontamentiLegno"); + boolean dccOrizzontamentiLegnoCA = ParamUtil.getBoolean(request, "dccOrizzontamentiLegnoCA"); + boolean dccOrizzontamentiLamieraGrecata = ParamUtil.getBoolean(request, "dccOrizzontamentiLamieraGrecata"); + boolean dccOrizzontamentiVolte = ParamUtil.getBoolean(request, "dccOrizzontamentiVolte"); + boolean dccOrizzontamentiAltro = ParamUtil.getBoolean(request, "dccOrizzontamentiAltro"); + String dccOrizzontamentiAltroDescrizione = ParamUtil.getString(request, "dccOrizzontamentiAltroDescrizione"); + String dccCopertura = ParamUtil.getString(request, "dccCopertura"); + boolean dccCoperturaCAAcciaio = ParamUtil.getBoolean(request, "dccCoperturaCAAcciaio"); + boolean dccCoperturaLegno = ParamUtil.getBoolean(request, "dccCoperturaLegno"); + boolean dccCoperturaLegnoCA = ParamUtil.getBoolean(request, "dccCoperturaLegnoCA"); + boolean dccCoperturaLamieraGrecata = ParamUtil.getBoolean(request, "dccCoperturaLamieraGrecata"); + boolean dccCoperturaPannelli = ParamUtil.getBoolean(request, "dccCoperturaPannelli"); + boolean dccCoperturaPVCTelonati = ParamUtil.getBoolean(request, "dccCoperturaPVCTelonati"); + boolean dccCoperturaLeggere = ParamUtil.getBoolean(request, "dccCoperturaLeggere"); + boolean dccCoperturaAltro = ParamUtil.getBoolean(request, "dccCoperturaAltro"); + String dccCoperturaAltroDesrizione = ParamUtil.getString(request, "dccCoperturaAltroDesrizione"); + boolean dccElemNonStrutLaterizio = ParamUtil.getBoolean(request, "dccElemNonStrutLaterizio"); + boolean dccElemNonStrutCartongesso = ParamUtil.getBoolean(request, "dccElemNonStrutCartongesso"); + boolean dccElemNonStrutCalcestruzzo = ParamUtil.getBoolean(request, "dccElemNonStrutCalcestruzzo"); + boolean dccElemNonStrutLegno = ParamUtil.getBoolean(request, "dccElemNonStrutLegno"); + boolean dccElemNonStrutAltro = ParamUtil.getBoolean(request, "dccElemNonStrutAltro"); + String dccElemNonStrutAltroDescrizione = ParamUtil.getString(request, "dccElemNonStrutAltroDescrizione"); + boolean dccOpereDiRinforzoInsCatene = ParamUtil.getBoolean(request, "dccOpereDiRinforzoInsCatene"); + boolean dccOpereDiRinforzoInsCordoli = ParamUtil.getBoolean(request, "dccOpereDiRinforzoInsCordoli"); + boolean dccOpereDiRinforzoIniArmate = ParamUtil.getBoolean(request, "dccOpereDiRinforzoIniArmate"); + boolean dccOpereDiRinforzoPlaccaggi = ParamUtil.getBoolean(request, "dccOpereDiRinforzoPlaccaggi"); + boolean dccOpereDiRinforzoIrrSolai = ParamUtil.getBoolean(request, "dccOpereDiRinforzoIrrSolai"); + boolean dccOpereDiRinforzoRinforziFRP = ParamUtil.getBoolean(request, "dccOpereDiRinforzoRinforziFRP"); + boolean dccOpereDiRinforzoTelaiECerchiature = ParamUtil.getBoolean(request, "dccOpereDiRinforzoTelaiECerchiature"); - boolean dccOpereDiRinforzoInsRompitratta = ParamUtil.getBoolean(actionRequest, - "dccOpereDiRinforzoInsRompitratta"); - boolean dccOpereDiRinforzoAltro = ParamUtil.getBoolean(actionRequest, "dccOpereDiRinforzoAltro"); - String dccOpereDiRinforzoAltroDescrizione = ParamUtil.getString(actionRequest, - "dccOpereDiRinforzoAltroDescrizione"); + boolean dccOpereDiRinforzoInsRompitratta = ParamUtil.getBoolean(request, "dccOpereDiRinforzoInsRompitratta"); + boolean dccOpereDiRinforzoAltro = ParamUtil.getBoolean(request, "dccOpereDiRinforzoAltro"); + String dccOpereDiRinforzoAltroDescrizione = ParamUtil.getString(request, "dccOpereDiRinforzoAltroDescrizione"); // DATI geologici - String geoClasseIndagine = getNotNullString(actionRequest, "geoClasseIndagine", - dettPratica.getGeoClasseIndagine()); - String geoCategoriaSottosuolo = getNotNullString(actionRequest, "geoCategoriaSottosuolo", + String geoClasseIndagine = getNotNullString(request, "geoClasseIndagine", dettPratica.getGeoClasseIndagine()); + String geoCategoriaSottosuolo = getNotNullString(request, "geoCategoriaSottosuolo", dettPratica.getGeoCategoriaSottosuolo()); - String geoCategoriaTopografica = getNotNullString(actionRequest, "geoCategoriaTopografica", + String geoCategoriaTopografica = getNotNullString(request, "geoCategoriaTopografica", dettPratica.getGeoCategoriaTopografica()); - String geoConsolidamento = getNotNullString(actionRequest, "geoConsolidamento", - dettPratica.getGeoConsolidamento()); - String geoPericolositaGeologica = getNotNullString(actionRequest, "geoPericolositaGeologica", + String geoConsolidamento = getNotNullString(request, "geoConsolidamento", dettPratica.getGeoConsolidamento()); + String geoPericolositaGeologica = getNotNullString(request, "geoPericolositaGeologica", dettPratica.getGeoPericolositaGeologica()); - String geoRischioGeomorfologicoPai = getNotNullString(actionRequest, "geoRischioGeomorfologicoPai", + String geoRischioGeomorfologicoPai = getNotNullString(request, "geoRischioGeomorfologicoPai", dettPratica.getGeoRischioGeomorfologicoPai()); - String geoPericolositaIdraulicaPai = getNotNullString(actionRequest, "geoPericolositaIdraulicaPai", + String geoPericolositaIdraulicaPai = getNotNullString(request, "geoPericolositaIdraulicaPai", dettPratica.getGeoPericolositaIdraulicaPai()); - String geoRischioIdraulicoPai = getNotNullString(actionRequest, "geoRischioIdraulicoPai", + String geoRischioIdraulicoPai = getNotNullString(request, "geoRischioIdraulicoPai", dettPratica.getGeoRischioIdraulicoPai()); - String geoPericolositaSismica = getNotNullString(actionRequest, "geoPericolositaSismica", + String geoPericolositaSismica = getNotNullString(request, "geoPericolositaSismica", dettPratica.getGeoPericolositaSismica()); - String geoPericolositaIdraulica = getNotNullString(actionRequest, "geoPericolositaIdraulica", + String geoPericolositaIdraulica = getNotNullString(request, "geoPericolositaIdraulica", dettPratica.getGeoPericolositaIdraulica()); - String geoPericolositaGeomorfica = getNotNullString(actionRequest, "geoPericolositaGeomorfica", + String geoPericolositaGeomorfica = getNotNullString(request, "geoPericolositaGeomorfica", dettPratica.getGeoPericolositaGeomorfica()); - String geoFattibilitaGeologica = getNotNullString(actionRequest, "geoFattibilitaGeologica", + String geoFattibilitaGeologica = getNotNullString(request, "geoFattibilitaGeologica", dettPratica.getGeoFattibilitaGeologica()); - String geoFattibilitaSismica = getNotNullString(actionRequest, "geoFattibilitaSismica", + String geoFattibilitaSismica = getNotNullString(request, "geoFattibilitaSismica", dettPratica.getGeoFattibilitaSismica()); - String geoFattibilitaIdraulica = getNotNullString(actionRequest, "geoFattibilitaIdraulica", + String geoFattibilitaIdraulica = getNotNullString(request, "geoFattibilitaIdraulica", dettPratica.getGeoFattibilitaIdraulica()); - String geoOperaRilevante = getNotNullString(actionRequest, "geoOperaRilevante", - dettPratica.getGeoOperaRilevante()); - String geoOpereDiSostegno = getNotNullString(actionRequest, "geoOpereDiSostegno", - dettPratica.getGeoOpereDiSostegno()); - String geoOpereInSotterranea = getNotNullString(actionRequest, "geoOpereInSotterranea", + String geoOperaRilevante = getNotNullString(request, "geoOperaRilevante", dettPratica.getGeoOperaRilevante()); + String geoOpereDiSostegno = getNotNullString(request, "geoOpereDiSostegno", dettPratica.getGeoOpereDiSostegno()); + String geoOpereInSotterranea = getNotNullString(request, "geoOpereInSotterranea", dettPratica.getGeoOpereInSotterranea()); - String geoPresenzaPrescrizioni = getNotNullString(actionRequest, "geoPresenzaPrescrizioni", + String geoPresenzaPrescrizioni = getNotNullString(request, "geoPresenzaPrescrizioni", dettPratica.getGeoPresenzaPrescrizioni()); - String geoNotePrescrizioni = getNotNullString(actionRequest, "geoNotePrescrizioni", + String geoNotePrescrizioni = getNotNullString(request, "geoNotePrescrizioni", dettPratica.getGeoNotePrescrizioni()); - String geoNoteIndagini = getNotNullString(actionRequest, "geoNoteIndagini", dettPratica.getGeoNoteIndagini()); - String geoEvidenzeGeomorfiche = getNotNullString(actionRequest, "geoEvidenzeGeomorfiche", + String geoNoteIndagini = getNotNullString(request, "geoNoteIndagini", dettPratica.getGeoNoteIndagini()); + String geoEvidenzeGeomorfiche = getNotNullString(request, "geoEvidenzeGeomorfiche", dettPratica.getGeoEvidenzeGeomorfiche()); - String geoEvidenzeGeologiche = getNotNullString(actionRequest, "geoEvidenzeGeologiche", + String geoEvidenzeGeologiche = getNotNullString(request, "geoEvidenzeGeologiche", dettPratica.getGeoEvidenzeGeologiche()); - Date geoDtRelazione = getNotNullDate(actionRequest, "geoDtRelazione", dettPratica.getGeoDtRelazione()); + Date geoDtRelazione = getNotNullDate(request, "geoDtRelazione", dettPratica.getGeoDtRelazione()); // normative - boolean normLavoriInProprio = ParamUtil.getBoolean(actionRequest, "normLavoriInProprio"); - boolean normEsenteBollo = ParamUtil.getBoolean(actionRequest, "normEsenteBollo"); - boolean normEsenteSpese = ParamUtil.getBoolean(actionRequest, "normEsenteSpese"); - boolean normDpr01Dep = ParamUtil.getBoolean(actionRequest, "normDpr01Dep"); - boolean normDpr02Dep = ParamUtil.getBoolean(actionRequest, "normDpr02Dep"); - boolean normDpr01Aut = ParamUtil.getBoolean(actionRequest, "normDpr01Aut"); - boolean normDpr02Aut = ParamUtil.getBoolean(actionRequest, "normDpr02Aut"); - boolean normDm01 = ParamUtil.getBoolean(actionRequest, "normDm01"); - boolean normDm02 = ParamUtil.getBoolean(actionRequest, "normDm02"); - boolean normDm03 = ParamUtil.getBoolean(actionRequest, "normDm03"); - boolean normDm2018 = ParamUtil.getBoolean(actionRequest, "normDm2018"); - boolean normDprg01 = ParamUtil.getBoolean(actionRequest, "normDprg01"); - boolean normDprg02 = ParamUtil.getBoolean(actionRequest, "normDprg02"); - boolean normAnr = ParamUtil.getBoolean(actionRequest, "normAnr"); - boolean normArt3com3 = ParamUtil.getBoolean(actionRequest, "normArt3com3"); - boolean normArt3com4 = ParamUtil.getBoolean(actionRequest, "normArt3com4"); - boolean normOrd01 = ParamUtil.getBoolean(actionRequest, "normOrd01"); - boolean normDm04 = ParamUtil.getBoolean(actionRequest, "normDm04"); - boolean normDm05 = ParamUtil.getBoolean(actionRequest, "normDm05"); - boolean normCI01 = ParamUtil.getBoolean(actionRequest, "normCI01"); - boolean normLTC01 = ParamUtil.getBoolean(actionRequest, "normLTC01"); - boolean suap = ParamUtil.getBoolean(actionRequest, "suap"); - boolean normSismaBonus = ParamUtil.getBoolean(actionRequest, "normSismaBonus"); - String clRischioPreInt = ParamUtil.getString(actionRequest, "clRischioPreInt"); - String clRischioPostInt = ParamUtil.getString(actionRequest, "clRischioPostInt"); - boolean intervFinPub = ParamUtil.getBoolean(actionRequest, "intervFinPub"); - String intervFinPubDesc = intervFinPub ? ParamUtil.getString(actionRequest, "intervFinPubDesc") - : StringPool.BLANK; - - String contestoPaesaggistico = ParamUtil.getString(actionRequest, "contestoPaesaggistico"); - String livelloDiTutela = ParamUtil.getString(actionRequest, "livelloDiTutela"); - String vincoli = ParamUtil.getString(actionRequest, "vincoli"); - - long userId = PortalUtil.getUserId(actionRequest); + boolean normLavoriInProprio = ParamUtil.getBoolean(request, "normLavoriInProprio"); + boolean normEsenteBollo = ParamUtil.getBoolean(request, "normEsenteBollo"); + boolean normEsenteSpese = ParamUtil.getBoolean(request, "normEsenteSpese"); + boolean normDpr01Dep = ParamUtil.getBoolean(request, "normDpr01Dep"); + boolean normDpr02Dep = ParamUtil.getBoolean(request, "normDpr02Dep"); + boolean normDpr01Aut = ParamUtil.getBoolean(request, "normDpr01Aut"); + boolean normDpr02Aut = ParamUtil.getBoolean(request, "normDpr02Aut"); + boolean normDm01 = ParamUtil.getBoolean(request, "normDm01"); + boolean normDm02 = ParamUtil.getBoolean(request, "normDm02"); + boolean normDm03 = ParamUtil.getBoolean(request, "normDm03"); + boolean normDm2018 = ParamUtil.getBoolean(request, "normDm2018"); + boolean normDprg01 = ParamUtil.getBoolean(request, "normDprg01"); + boolean normDprg02 = ParamUtil.getBoolean(request, "normDprg02"); + boolean normAnr = ParamUtil.getBoolean(request, "normAnr"); + boolean normArt3com3 = ParamUtil.getBoolean(request, "normArt3com3"); + boolean normArt3com4 = ParamUtil.getBoolean(request, "normArt3com4"); + boolean normOrd01 = ParamUtil.getBoolean(request, "normOrd01"); + boolean normDm04 = ParamUtil.getBoolean(request, "normDm04"); + boolean normDm05 = ParamUtil.getBoolean(request, "normDm05"); + boolean normCI01 = ParamUtil.getBoolean(request, "normCI01"); + boolean normLTC01 = ParamUtil.getBoolean(request, "normLTC01"); + boolean suap = ParamUtil.getBoolean(request, "suap"); + boolean normSismaBonus = ParamUtil.getBoolean(request, "normSismaBonus"); + String clRischioPreInt = ParamUtil.getString(request, "clRischioPreInt"); + String clRischioPostInt = ParamUtil.getString(request, "clRischioPostInt"); + boolean intervFinPub = ParamUtil.getBoolean(request, "intervFinPub"); + String intervFinPubDesc = intervFinPub ? ParamUtil.getString(request, "intervFinPubDesc") : StringPool.BLANK; + + String contestoPaesaggistico = ParamUtil.getString(request, "contestoPaesaggistico"); + String livelloDiTutela = ParamUtil.getString(request, "livelloDiTutela"); + String vincoli = ParamUtil.getString(request, "vincoli"); + + long userId = PortalUtil.getUserId(request); String via = dettPratica.getVia(); String localita = dettPratica.getLocalita(); - if (!ParamUtil.getString(actionRequest, "via").equals(StringPool.BLANK)) { - via = ParamUtil.getString(actionRequest, "via"); + if (!ParamUtil.getString(request, "via").equals(StringPool.BLANK)) { + via = ParamUtil.getString(request, "via"); } - if (!ParamUtil.getString(actionRequest, "localita").equals(StringPool.BLANK)) { - localita = ParamUtil.getString(actionRequest, "localita"); + if (!ParamUtil.getString(request, "localita").equals(StringPool.BLANK)) { + localita = ParamUtil.getString(request, "localita"); } try { DettPraticaServiceUtil.updateDettPratica(userId, dettPratica.getDettPraticaId(), @@ -1615,26 +1641,25 @@ public class FascicoloFePortlet extends MVCPortlet { normDm04, normDm05, normCI01, normLTC01, suap, normSismaBonus, clRischioPreInt, clRischioPostInt, intervFinPub, intervFinPubDesc, tcNuovaCostruzioneComplessa, contestoPaesaggistico, livelloDiTutela, vincoli, serviceContext, bozza, disabledSubmit, geoDisabledSubmit); - String redirect = ParamUtil.getString(actionRequest, "redirect"); + String redirect = ParamUtil.getString(request, "redirect"); if (Validator.isNull(redirect)) { - String successURL = ParamUtil.getString(actionRequest, "successURL"); - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "isNewVariante"); + String successURL = ParamUtil.getString(request, "successURL"); + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "isNewVariante"); if (Validator.isNotNull(successURL)) { - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl"); - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "verifyArea"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "openVerifyUrl"); + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "verifyArea"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "openVerifyUrl", String.valueOf(!bozza)); - String verifyArea = ParamUtil.getString(actionRequest, "verifyArea", StringPool.BLANK); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "verifyArea", + String verifyArea = ParamUtil.getString(request, "verifyArea", StringPool.BLANK); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "verifyArea", String.valueOf(verifyArea)); - String fragmentURL = ParamUtil.getString(actionRequest, "current_tab"); + String fragmentURL = ParamUtil.getString(request, "current_tab"); if (Validator.isNotNull(fragmentURL)) { - successURL = HttpUtil - .removeParameter(successURL, actionResponse.getNamespace() + "current_tab"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "current_tab", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "current_tab"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "current_tab", fragmentURL); - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "historyKey"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "historyKey", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "historyKey"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "historyKey", "_1_WAR_portosfeportlet_tab=" + fragmentURL); if (successURL.contains(StringPool.POUND)) { @@ -1642,93 +1667,93 @@ public class FascicoloFePortlet extends MVCPortlet { } successURL += "#_1_WAR_portosfeportlet_tab=" + fragmentURL; } - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } else { - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); - actionResponse.setRenderParameter("backURL", ParamUtil.getString(actionRequest, "backURL")); - actionResponse.setRenderParameter("dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); - actionResponse.setRenderParameter("intPraticaId", String.valueOf(dettPratica.getIntPraticaId())); - actionResponse.setRenderParameter("openVerifyUrl", String.valueOf(!bozza)); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); + response.setRenderParameter("backURL", ParamUtil.getString(request, "backURL")); + response.setRenderParameter("dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); + response.setRenderParameter("intPraticaId", String.valueOf(dettPratica.getIntPraticaId())); + response.setRenderParameter("openVerifyUrl", String.valueOf(!bozza)); } } } catch (PortalException e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); throw e; } catch (Exception e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); throw new PortalException(e); } } - private void saveVariazioneSoggetti(long dettPraticaId, ActionRequest actionRequest, ActionResponse actionResponse) + private void saveVariazioneSoggetti(long dettPraticaId, ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), actionRequest); - boolean bozza = ParamUtil.getBoolean(actionRequest, "bozza", true); + ServiceContext serviceContext = ServiceContextFactory.getInstance(DettPratica.class.getName(), request); + boolean bozza = ParamUtil.getBoolean(request, "bozza", true); User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); String codiceFiscaleDelegatoCommittente = user.getScreenName(); - boolean isCodiceFiscaleDelegatoFineLavoriAuthorized = ParamUtil.getBoolean(actionRequest, + boolean isCodiceFiscaleDelegatoFineLavoriAuthorized = ParamUtil.getBoolean(request, "codiceFiscaleDelegatoFineLavoriEnabled"); String codiceFiscaleDelegatoFineLavori = isCodiceFiscaleDelegatoFineLavoriAuthorized ? ParamUtil.getString( - actionRequest, "codiceFiscaleDelegatoFineLavori") : StringPool.BLANK; - boolean isCodiceFiscaleDelegatoCollaudoAuthorized = ParamUtil.getBoolean(actionRequest, + request, "codiceFiscaleDelegatoFineLavori") : StringPool.BLANK; + boolean isCodiceFiscaleDelegatoCollaudoAuthorized = ParamUtil.getBoolean(request, "codiceFiscaleDelegatoCollaudoEnabled"); - String codiceFiscaleDelegatoCollaudo = isCodiceFiscaleDelegatoCollaudoAuthorized ? ParamUtil.getString( - actionRequest, "codiceFiscaleDelegatoCollaudo") : StringPool.BLANK; - long userId = PortalUtil.getUserId(actionRequest); + String codiceFiscaleDelegatoCollaudo = isCodiceFiscaleDelegatoCollaudoAuthorized ? ParamUtil.getString(request, + "codiceFiscaleDelegatoCollaudo") : StringPool.BLANK; + long userId = PortalUtil.getUserId(request); try { DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); DettPraticaServiceUtil.updateDettPraticaSoggetti(userId, dettPratica.getDettPraticaId(), dettPratica.getIntPraticaId(), codiceFiscaleDelegatoCommittente, codiceFiscaleDelegatoFineLavori, codiceFiscaleDelegatoCollaudo, serviceContext); - String redirect = ParamUtil.getString(actionRequest, "redirect"); + String redirect = ParamUtil.getString(request, "redirect"); if (Validator.isNull(redirect)) { - String successURL = ParamUtil.getString(actionRequest, "successURL"); + String successURL = ParamUtil.getString(request, "successURL"); if (Validator.isNotNull(successURL)) { - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl"); - successURL = HttpUtil.removeParameter(successURL, actionResponse.getNamespace() + "verifyArea"); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "openVerifyUrl", + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "openVerifyUrl"); + successURL = HttpUtil.removeParameter(successURL, response.getNamespace() + "verifyArea"); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "openVerifyUrl", String.valueOf(!bozza)); - String verifyArea = ParamUtil.getString(actionRequest, "verifyArea", StringPool.BLANK); - successURL = HttpUtil.addParameter(successURL, actionResponse.getNamespace() + "verifyArea", + String verifyArea = ParamUtil.getString(request, "verifyArea", StringPool.BLANK); + successURL = HttpUtil.addParameter(successURL, response.getNamespace() + "verifyArea", String.valueOf(verifyArea)); String fragmentURL = "_1_WAR_portosfeportlet_page_soggetti"; if (successURL.contains(StringPool.POUND)) { successURL = successURL.substring(0, successURL.lastIndexOf(StringPool.POUND)); } successURL += "#_1_WAR_portosfeportlet_tab=" + fragmentURL; - actionResponse.sendRedirect(successURL); + response.sendRedirect(successURL); } else { - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); - actionResponse.setRenderParameter("backURL", ParamUtil.getString(actionRequest, "backURL")); - actionResponse.setRenderParameter("dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); - actionResponse.setRenderParameter("intPraticaId", String.valueOf(dettPratica.getIntPraticaId())); - actionResponse.setRenderParameter("openVerifyUrl", String.valueOf(!bozza)); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); + response.setRenderParameter("backURL", ParamUtil.getString(request, "backURL")); + response.setRenderParameter("dettPraticaId", String.valueOf(dettPratica.getDettPraticaId())); + response.setRenderParameter("intPraticaId", String.valueOf(dettPratica.getIntPraticaId())); + response.setRenderParameter("openVerifyUrl", String.valueOf(!bozza)); } } } catch (PortalException e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); throw e; } catch (Exception e) { _log.error(e, e); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); - actionResponse.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); + PortalUtil.copyRequestParameters(request, response); + response.setRenderParameter("mvcPath", "/html/fascicolofe/edit_fascicolo.jsp"); throw new PortalException(e); } } - public void deleteFascicolo(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { + public void deleteFascicolo(ActionRequest request, ActionResponse response) throws Exception { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); try { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); IntPraticaServiceUtil.deleteIntPratica(intPraticaId, serviceContext.getUserId()); } catch (PortalException | SystemException e) { _log.error(e, e); @@ -1736,48 +1761,48 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void richiediAsseverazioni(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void richiediAsseverazioni(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); if (ValidazionePraticaUtil.asseverazioniIsEnable(dettPraticaId)) { AsseverazioneServiceUtil.richiediAsseverazioni(dettPraticaId, serviceContext); } else { - SessionErrors.add(actionRequest, "asseverazioni-non-richiedibili"); + SessionErrors.add(request, "asseverazioni-non-richiedibili"); } } - public void annullaAsseverazione(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void annullaAsseverazione(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long asseverazioneId = ParamUtil.getLong(actionRequest, "asseverazioneId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long asseverazioneId = ParamUtil.getLong(request, "asseverazioneId"); Asseverazione asseverazione = AsseverazioneLocalServiceUtil.getAsseverazione(asseverazioneId); if (AsseverazioniUtil.hasGestisciFileAsseverazione(serviceContext.getUserId(), asseverazioneId)) { AsseverazioneServiceUtil.resetAsseverazione(asseverazione.getDettPraticaId(), asseverazioneId); } else { - SessionErrors.add(actionRequest, "asseverazioni-non-richiedibili"); + SessionErrors.add(request, "asseverazioni-non-richiedibili"); } } - public void rimuoviFileAsseverazione(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void rimuoviFileAsseverazione(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long asseverazioneId = ParamUtil.getLong(actionRequest, "asseverazioneId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long asseverazioneId = ParamUtil.getLong(request, "asseverazioneId"); if (AsseverazioniUtil.hasGestisciFileAsseverazione(serviceContext.getUserId(), asseverazioneId)) { AsseverazioneServiceUtil.rimuoviFileAsseverazione(asseverazioneId); } else { - SessionErrors.add(actionRequest, "asseverazioni-non-richiedibili"); + SessionErrors.add(request, "asseverazioni-non-richiedibili"); } } - public void allegatoFileAnnullamento(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void allegatoFileAnnullamento(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { try { - UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); + UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request); ServiceContext serviceContext = ServiceContextFactory.getInstance(uploadRequest); long intPraticaId = ParamUtil.getLong(uploadRequest, "intPraticaId"); String sourceFileName = uploadRequest.getFileName("abortFile"); @@ -1787,17 +1812,17 @@ public class FascicoloFePortlet extends MVCPortlet { // validazione: solo alcune estensioni String ext = FileUtil.getExtension(sourceFileName); if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { - SessionErrors.add(actionRequest, "error.geniocivilefe.annullamento.allegato.ext.valid"); + SessionErrors.add(request, "error.geniocivilefe.annullamento.allegato.ext.valid"); } // lunghezza fissata a 200 if (sourceFileName.length() > 200) { - SessionErrors.add(actionRequest, "error.geniocivilefe.annullamento.allegato.length.valid"); + SessionErrors.add(request, "error.geniocivilefe.annullamento.allegato.length.valid"); } } else { - SessionErrors.add(actionRequest, "error.geniocivilefe.annullamento.allegato.is.request"); + SessionErrors.add(request, "error.geniocivilefe.annullamento.allegato.is.request"); } - if (!SessionErrors.isEmpty(actionRequest)) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + if (!SessionErrors.isEmpty(request)) { + PortalUtil.copyRequestParameters(request, response); } else { byte[] content = FileUtil.getBytes(file); List soggettiValidi = SoggettoServiceUtil.getValidByIntPratica(intPraticaId); @@ -1807,7 +1832,7 @@ public class FascicoloFePortlet extends MVCPortlet { codiciFiscaliValidi.add(soggetto.getCodiceFiscale()); } } - User user = PortalUtil.getUser(actionRequest); + User user = PortalUtil.getUser(request); String jsonFirmatari = StringPool.BLANK; FirmeBean firmeBean = new FirmeBean(); if (applicaFirma) { @@ -1821,45 +1846,45 @@ public class FascicoloFePortlet extends MVCPortlet { IntPraticaLocalServiceUtil.allegaFileAnnullamento(intPraticaId, content, sourceFileName, jsonFirmatari, serviceContext); } else { - SessionErrors.add(actionRequest, "error.annullamento.add.file.non.firmato"); - String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); - actionResponse.sendRedirect(redirectURL); + SessionErrors.add(request, "error.annullamento.add.file.non.firmato"); + String redirectURL = ParamUtil.getString(request, "errorUrl"); + response.sendRedirect(redirectURL); } } } catch (Exception e) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + PortalUtil.copyRequestParameters(request, response); _log.error("Error", e); throw new SystemException(e); } } - public void generaFirmaAnnullamento(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void generaFirmaAnnullamento(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); - boolean isSigned = ParamUtil.getBoolean(actionRequest, "appSign"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); + boolean isSigned = ParamUtil.getBoolean(request, "appSign"); if (isSigned) { IntPraticaLocalServiceUtil.generateFileAnnullamento(intPraticaId, serviceContext); } else { - SessionErrors.add(actionRequest, "error.annullamento.add.file.non.firmato"); - String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); - actionResponse.sendRedirect(redirectURL); + SessionErrors.add(request, "error.annullamento.add.file.non.firmato"); + String redirectURL = ParamUtil.getString(request, "errorUrl"); + response.sendRedirect(redirectURL); } } catch (Exception e) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + PortalUtil.copyRequestParameters(request, response); _log.error("Error", e); throw new SystemException(e); } } - public void allegatoFileAsseverazione(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void allegatoFileAsseverazione(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { String dettagliFirme = StringPool.BLANK; try { - UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); + UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request); ServiceContext serviceContext = ServiceContextFactory.getInstance(uploadRequest); long asseverazioneId = ParamUtil.getLong(uploadRequest, "asseverazioneId"); String sourceFileName = uploadRequest.getFileName("docFile"); @@ -1869,20 +1894,20 @@ public class FascicoloFePortlet extends MVCPortlet { // validazione: solo alcune estensioni String ext = FileUtil.getExtension(sourceFileName); if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { - SessionErrors.add(actionRequest, "error.geniocivilefe.asseverazione.allegato.ext.valid"); + SessionErrors.add(request, "error.geniocivilefe.asseverazione.allegato.ext.valid"); } // lunghezza fissata a 200 if (sourceFileName.length() > 200) { - SessionErrors.add(actionRequest, "error.geniocivilefe.asseverazione.allegato.length.valid"); + SessionErrors.add(request, "error.geniocivilefe.asseverazione.allegato.length.valid"); } } else { - SessionErrors.add(actionRequest, "error.geniocivilefe.asseverazione.allegato.is.request"); + SessionErrors.add(request, "error.geniocivilefe.asseverazione.allegato.is.request"); } } else { - SessionErrors.add(actionRequest, "error.geniocivilefe.asseverazione.non.richiedibile"); + SessionErrors.add(request, "error.geniocivilefe.asseverazione.non.richiedibile"); } Asseverazione asseverazione = AsseverazioneLocalServiceUtil.getAsseverazione(asseverazioneId); - if (SessionErrors.isEmpty(actionRequest)) { + if (SessionErrors.isEmpty(request)) { byte[] content = FileUtil.getBytes(file); boolean isSignedByTitolare = ValidazionePraticaUtil.isAsseverazioneSignedByOwner(sourceFileName, content, serviceContext.getCompanyId(), asseverazione.getCodiceFiscale(), StringPool.BLANK); @@ -1890,7 +1915,7 @@ public class FascicoloFePortlet extends MVCPortlet { AsseverazioneServiceUtil.allegaFileAsseverazione(asseverazioneId, content, sourceFileName, serviceContext); } else { - SessionErrors.add(actionRequest, "error.geniocivilefe.asseverazione.allegato.firma.valid"); + SessionErrors.add(request, "error.geniocivilefe.asseverazione.allegato.firma.valid"); // Impostazione parametri di rendering per messaggio di errore. List firmatari = ValidazionePraticaUtil.gatherSignatures(sourceFileName, content, serviceContext.getCompanyId(), StringPool.BLANK); @@ -1899,72 +1924,71 @@ public class FascicoloFePortlet extends MVCPortlet { + firme + StringPool.CLOSE_BRACKET; } } - if (!SessionErrors.isEmpty(actionRequest)) { - String redirectURL = ParamUtil.getString(actionRequest, "errorUrl"); - redirectURL = HttpUtil.addParameter(redirectURL, actionResponse.getNamespace() + "dettPraticaId", + if (!SessionErrors.isEmpty(request)) { + String redirectURL = ParamUtil.getString(request, "errorUrl"); + redirectURL = HttpUtil.addParameter(redirectURL, response.getNamespace() + "dettPraticaId", String.valueOf(asseverazione.getDettPraticaId())); - actionResponse.sendRedirect(redirectURL); + response.sendRedirect(redirectURL); } } catch (Exception e) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + PortalUtil.copyRequestParameters(request, response); _log.error("Error", e); throw new SystemException(e); } - actionResponse.setRenderParameter("dettagliFirme", dettagliFirme); + response.setRenderParameter("dettagliFirme", dettagliFirme); } - public void deleteFileAnnullamento(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void deleteFileAnnullamento(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { - long fileAnnulamentoId = ParamUtil.getLong(actionRequest, "docPraticaAnnullamentoId"); + long fileAnnulamentoId = ParamUtil.getLong(request, "docPraticaAnnullamentoId"); if (Validator.isNotNull(fileAnnulamentoId)) { IntPraticaLocalServiceUtil.deleteFileAnnullamento(fileAnnulamentoId); } } - public void confermaAsseverazione(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, + public void confermaAsseverazione(ActionRequest request, ActionResponse response) throws IOException, PortalException, SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long asseverazioneId = ParamUtil.getLong(actionRequest, "asseverazioneId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long asseverazioneId = ParamUtil.getLong(request, "asseverazioneId"); if (AsseverazioniUtil.hasCambioStatoAsseverazione(serviceContext.getUserId(), asseverazioneId)) { AsseverazioneServiceUtil.cambioStatoAsseverazioni(asseverazioneId, AsseverazioniUtil.STATO_ESEGUITA); } else { - SessionErrors.add(actionRequest, "asseverazioni-non-richiedibili"); + SessionErrors.add(request, "asseverazioni-non-richiedibili"); } } - public void annullaAsseverazioni(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, + public void annullaAsseverazioni(ActionRequest request, ActionResponse response) throws IOException, PortalException, SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); if (AsseverazioniUtil.hasAnnullaAsseverazioni(serviceContext.getUserId(), dettPraticaId)) { AsseverazioneServiceUtil.annullaAsseverazioni(dettPraticaId); } else { - SessionErrors.add(actionRequest, "asseverazioni-non-annullabili"); + SessionErrors.add(request, "asseverazioni-non-annullabili"); } } - public void updateFormPagamento(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, + public void updateFormPagamento(ActionRequest request, ActionResponse response) throws PortalException, SystemException { - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - boolean normEsenteBollo = ParamUtil.getBoolean(actionRequest, "normEsenteBollo"); - boolean normEsenteSpese = ParamUtil.getBoolean(actionRequest, "normEsenteSpese"); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + boolean normEsenteBollo = ParamUtil.getBoolean(request, "normEsenteBollo"); + boolean normEsenteSpese = ParamUtil.getBoolean(request, "normEsenteSpese"); if (Validator.isNotNull(dettPraticaId)) { DettPraticaServiceUtil.updateCheckPagamenti(dettPraticaId, normEsenteSpese, normEsenteBollo); } - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + PortalUtil.copyRequestParameters(request, response); } - public void pagaInvia(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, - SystemException { + public void pagaInvia(ActionRequest request, ActionResponse response) throws PortalException, SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - long fineLavoriId = ParamUtil.getLong(actionRequest, "fineLavoriId"); - long collaudoId = ParamUtil.getLong(actionRequest, "collaudoId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId"); + long collaudoId = ParamUtil.getLong(request, "collaudoId"); DettPratica dettPratica = null; FineLavori fineLavori = null; Collaudo collaudo = null; @@ -1986,48 +2010,46 @@ public class FascicoloFePortlet extends MVCPortlet { if (Validator.isNotNull(pagamento)) { codiceFiscaleCommittente = pagamento.getCodiceFiscaleCommittente(); } - codiceFiscaleCommittente = ParamUtil.getString(actionRequest, "codiceFiscaleCommittente", - codiceFiscaleCommittente); - String url = ParamUtil.getString(actionRequest, "url"); + codiceFiscaleCommittente = ParamUtil.getString(request, "codiceFiscaleCommittente", codiceFiscaleCommittente); + String url = ParamUtil.getString(request, "url"); if (Validator.isNotNull(dettPratica)) { if (ValidazionePraticaUtil.pagamentoIsEnable(dettPraticaId) && DelegheUtil.canDoPayment(serviceContext.getUserId(), dettPraticaId)) { - int pagAdeguamentoSismico = ParamUtil.getInteger(actionRequest, "pagAdeguamentoSismico", + int pagAdeguamentoSismico = ParamUtil.getInteger(request, "pagAdeguamentoSismico", dettPratica.getPagAdeguamentoSismico()); - int pagAltro = ParamUtil.getInteger(actionRequest, "pagAltro", dettPratica.getPagAltro()); - int pagMiglioramentoSismico = ParamUtil.getInteger(actionRequest, "pagMiglioramentoSismico", + int pagAltro = ParamUtil.getInteger(request, "pagAltro", dettPratica.getPagAltro()); + int pagMiglioramentoSismico = ParamUtil.getInteger(request, "pagMiglioramentoSismico", dettPratica.getPagMiglioramentoSismico()); - int pagNuovaCostruzione = ParamUtil.getInteger(actionRequest, "pagNuovaCostruzione", + int pagNuovaCostruzione = ParamUtil.getInteger(request, "pagNuovaCostruzione", dettPratica.getPagNuovaCostruzione()); - boolean pagNuoveCostruzioni = ParamUtil.getBoolean(actionRequest, "pagNuoveCostruzioni", + boolean pagNuoveCostruzioni = ParamUtil.getBoolean(request, "pagNuoveCostruzioni", dettPratica.getPagNuoveCostruzioni()); - boolean pagRiparazioneInterventoLocale = ParamUtil.getBoolean(actionRequest, + boolean pagRiparazioneInterventoLocale = ParamUtil.getBoolean(request, "pagRiparazioneInterventoLocale", dettPratica.getPagRiparazioneInterventoLocale()); - boolean pagMiglioramentoSismicoSicilia = ParamUtil.getBoolean(actionRequest, + boolean pagMiglioramentoSismicoSicilia = ParamUtil.getBoolean(request, "pagMiglioramentoSismicoSicilia", dettPratica.getPagMiglioramentoSismicoSicilia()); - String pagCalcolatoAdeguamentoSismico = ParamUtil.getString(actionRequest, - "pagCalcolatoAdeguamentoSismico", dettPratica.getPagCalcolatoAdeguamentoSismico()); - String pagCalcolatoMiglioramentoSismico = ParamUtil.getString(actionRequest, + String pagCalcolatoAdeguamentoSismico = ParamUtil.getString(request, "pagCalcolatoAdeguamentoSismico", + dettPratica.getPagCalcolatoAdeguamentoSismico()); + String pagCalcolatoMiglioramentoSismico = ParamUtil.getString(request, "pagCalcolatoMiglioramentoSismico", dettPratica.getPagCalcolatoMiglioramentoSismico()); - String pagCalcolatoRiparazioneInterventoLocale = ParamUtil.getString(actionRequest, + String pagCalcolatoRiparazioneInterventoLocale = ParamUtil.getString(request, "pagCalcolatoRiparazioneInterventoLocale", dettPratica.getPagCalcolatoRiparazioneInterventoLocale()); - String pagCalcolatoOperaNonQuantificabile = ParamUtil.getString(actionRequest, + String pagCalcolatoOperaNonQuantificabile = ParamUtil.getString(request, "pagCalcolatoOperaNonQuantificabile", dettPratica.getPagCalcolatoOperaNonQuantificabile()); - String pagEffettivoAdeguamentoSismico = ParamUtil.getString(actionRequest, - "pagEffettivoAdeguamentoSismico", dettPratica.getPagEffettivoAdeguamentoSismico()); - String pagEffettivoMiglioramentoSismico = ParamUtil.getString(actionRequest, + String pagEffettivoAdeguamentoSismico = ParamUtil.getString(request, "pagEffettivoAdeguamentoSismico", + dettPratica.getPagEffettivoAdeguamentoSismico()); + String pagEffettivoMiglioramentoSismico = ParamUtil.getString(request, "pagEffettivoMiglioramentoSismico", dettPratica.getPagEffettivoMiglioramentoSismico()); - String pagEffettivoRiparazioneInterventoLocale = ParamUtil.getString(actionRequest, + String pagEffettivoRiparazioneInterventoLocale = ParamUtil.getString(request, "pagEffettivoRiparazioneInterventoLocale", dettPratica.getPagEffettivoRiparazioneInterventoLocale()); - String pagEffettivoOperaNonQuantificabile = ParamUtil.getString(actionRequest, + String pagEffettivoOperaNonQuantificabile = ParamUtil.getString(request, "pagEffettivoOperaNonQuantificabile", dettPratica.getPagEffettivoOperaNonQuantificabile()); - String pagNoteUtente = ParamUtil.getString(actionRequest, "pagNoteUtente", - dettPratica.getPagNoteUtente()); - boolean pagVarianti = ParamUtil.getBoolean(actionRequest, "pagVarianti", dettPratica.getPagVarianti()); - String importoSpeseIstruttoria = ParamUtil.getString(actionRequest, "importoSpeseIstruttoria", + String pagNoteUtente = ParamUtil.getString(request, "pagNoteUtente", dettPratica.getPagNoteUtente()); + boolean pagVarianti = ParamUtil.getBoolean(request, "pagVarianti", dettPratica.getPagVarianti()); + String importoSpeseIstruttoria = ParamUtil.getString(request, "importoSpeseIstruttoria", dettPratica.getImportoSpeseIstruttoria()); // ADT: BUG FE ID=30 - CALCOLO IMPORTO // controllo non effettuato se spese esente @@ -2081,34 +2103,33 @@ public class FascicoloFePortlet extends MVCPortlet { throw new PortalException("You have not permission to create the payment for Collaudo " + collaudoId); } } else { - SessionErrors.add(actionRequest, "pagamento-non-possibile"); + SessionErrors.add(request, "pagamento-non-possibile"); } } - public void sostituisciPagamento(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void sostituisciPagamento(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long pagamentoId = ParamUtil.getLong(actionRequest, "pagamentoId"); - String mezzo = ParamUtil.getString(actionRequest, "mezzo"); - String codiceFiscaleCommittente = ParamUtil.getString(actionRequest, "codiceFiscaleCommittente"); - String url = ParamUtil.getString(actionRequest, "url"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long pagamentoId = ParamUtil.getLong(request, "pagamentoId"); + String mezzo = ParamUtil.getString(request, "mezzo"); + String codiceFiscaleCommittente = ParamUtil.getString(request, "codiceFiscaleCommittente"); + String url = ParamUtil.getString(request, "url"); PagamentoServiceUtil .sostituisciPagamento(pagamentoId, codiceFiscaleCommittente, mezzo, url, serviceContext); } catch (Exception e) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + PortalUtil.copyRequestParameters(request, response); _log.error(e, e); throw new SystemException(e); } } - public void invioMailDelega(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, - SystemException { + public void invioMailDelega(ActionRequest request, ActionResponse response) throws PortalException, SystemException { try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long delegaId = ParamUtil.getLong(actionRequest, "delegaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long delegaId = ParamUtil.getLong(request, "delegaId"); Delega delega = DelegaLocalServiceUtil.getDelega(delegaId); List soggetti = SoggettoLocalServiceUtil.getValidTmpByIntPratica_CodiceFiscale( delega.getIntPraticaId(), delega.getCodiceFiscale(), 0L); @@ -2124,44 +2145,44 @@ public class FascicoloFePortlet extends MVCPortlet { String[] ccn = new String[0]; String url = FascicoloURLUtil.getFascicoloFEViewURL(intPratica.getCompanyId(), intPratica.getIntPraticaId(), "/html/fascicolofe/edit_fascicolo.jsp", StringPool.BLANK); - JSONObject templateVariablesExtra = JSONFactoryUtil.createJSONObject(); - templateVariablesExtra.put("receiver", soggetto.getDescrizioneCompleta()); - templateVariablesExtra.put("roles", roles); - templateVariablesExtra.put("delega", + JSONObject variables = JSONFactoryUtil.createJSONObject(); + variables.put("receiver", soggetto.getDescrizioneCompleta()); + variables.put("roles", roles); + variables.put("delega", LanguageUtil.get(LocaleUtil.ITALIAN, "label-deleghe-tipologia-" + delega.getTipologia())); - templateVariablesExtra.put("link", url); + variables.put("link", url); MailUtil.invioMailNotifica(delega.getIntPraticaId(), delega.getDettPraticaId(), delegaId, - Delega.class.getName(), to, cc, ccn, "INVIO-DELEGA", templateVariablesExtra, null, serviceContext); + Delega.class.getName(), to, cc, ccn, "INVIO-DELEGA", variables, null, serviceContext); } catch (Exception e) { _log.error(e, e); throw new SystemException(e); } } - public void salvaStampaPratica(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, + public void salvaStampaPratica(ActionRequest request, ActionResponse response) throws PortalException, SystemException { - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); - ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); + ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); long fileEntryId = IntPraticaLocalServiceUtil.generateReportPratica(intPratica, serviceContext.getUserId()); FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntry(fileEntryId); try { - actionResponse.sendRedirect(DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, + response.sendRedirect(DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), themeDisplay, "&download=true")); } catch (IOException e) { - SessionErrors.add(actionRequest, "error-download-pdf-domanda"); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + SessionErrors.add(request, "error-download-pdf-domanda"); + PortalUtil.copyRequestParameters(request, response); } } - public void invioMailAsseverazione(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void invioMailAsseverazione(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long asseverazioneId = ParamUtil.getLong(actionRequest, "asseverazioneId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long asseverazioneId = ParamUtil.getLong(request, "asseverazioneId"); Asseverazione asseverazione = AsseverazioneLocalServiceUtil.getAsseverazione(asseverazioneId); Soggetto soggetto = SoggettoLocalServiceUtil.getValidTmpByIntPratica_CodiceFiscale( asseverazione.getIntPraticaId(), asseverazione.getCodiceFiscale(), 0L).get(0); @@ -2197,11 +2218,11 @@ public class FascicoloFePortlet extends MVCPortlet { } } - public void allegatoFilePagamento(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void allegatoFilePagamento(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { try { - UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); + UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(request); ServiceContext serviceContext = ServiceContextFactory.getInstance(uploadRequest); long pagamentoId = ParamUtil.getLong(uploadRequest, "pagamentoId"); String sourceFileName = uploadRequest.getFileName("docFile"); @@ -2210,35 +2231,35 @@ public class FascicoloFePortlet extends MVCPortlet { // validazione: solo alcune estensioni String ext = FileUtil.getExtension(sourceFileName); if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { - SessionErrors.add(actionRequest, "error.geniocivilefe.pagamento.allegato.ext.valid"); + SessionErrors.add(request, "error.geniocivilefe.pagamento.allegato.ext.valid"); } // lunghezza fissata a 200 if (sourceFileName.length() > 200) { - SessionErrors.add(actionRequest, "error.geniocivilefe.pagamento.allegato.length.valid"); + SessionErrors.add(request, "error.geniocivilefe.pagamento.allegato.length.valid"); } } else { - SessionErrors.add(actionRequest, "error.geniocivilefe.pagamento.allegato.is.request"); + SessionErrors.add(request, "error.geniocivilefe.pagamento.allegato.is.request"); } - if (!SessionErrors.isEmpty(actionRequest)) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + if (!SessionErrors.isEmpty(request)) { + PortalUtil.copyRequestParameters(request, response); } else { byte[] content = FileUtil.getBytes(file); PagamentoServiceUtil.updatePagamentoManuale(pagamentoId, content, sourceFileName, serviceContext); } } catch (Exception e) { - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + PortalUtil.copyRequestParameters(request, response); _log.error("Error", e); throw new SystemException(e); } } - public void completeDomandaEsente(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, + public void completeDomandaEsente(ActionRequest request, ActionResponse response) throws IOException, PortalException, SystemException { - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); - long fineLavoriId = ParamUtil.getLong(actionRequest, "fineLavoriId"); - long collaudoId = ParamUtil.getLong(actionRequest, "collaudoId"); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId"); + long collaudoId = ParamUtil.getLong(request, "collaudoId"); if (Validator.isNotNull(dettPraticaId)) { DettPraticaServiceUtil.updateEsito(dettPraticaId, WorkflowConstants.STATUS_APPROVED); } else if (Validator.isNotNull(fineLavoriId)) { @@ -2246,72 +2267,72 @@ public class FascicoloFePortlet extends MVCPortlet { } else if (Validator.isNotNull(collaudoId)) { CollaudoServiceUtil.updateEsito(collaudoId, WorkflowConstants.STATUS_APPROVED); } else { - SessionErrors.add(actionRequest, "completamento-integrazione-non-possibile"); + SessionErrors.add(request, "completamento-integrazione-non-possibile"); } } - public void completeIntegrazione(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, + public void completeIntegrazione(ActionRequest request, ActionResponse response) throws IOException, PortalException, SystemException { - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); if (Validator.isNotNull(dettPraticaId)) { DettPraticaServiceUtil.updateEsitoIntegrazione(dettPraticaId, WorkflowConstants.STATUS_APPROVED); } else { - SessionErrors.add(actionRequest, "completamento-integrazione-non-possibile"); + SessionErrors.add(request, "completamento-integrazione-non-possibile"); } } - public void completeCambioSoggetti(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, + public void completeCambioSoggetti(ActionRequest request, ActionResponse response) throws IOException, PortalException, SystemException { - long dettPraticaId = ParamUtil.getLong(actionRequest, "dettPraticaId"); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); if (Validator.isNotNull(dettPraticaId)) { DettPraticaServiceUtil.updateEsito(dettPraticaId, WorkflowConstants.STATUS_APPROVED); } else { - SessionErrors.add(actionRequest, "completamento-cambio-soggetti-non-possibile"); + SessionErrors.add(request, "completamento-cambio-soggetti-non-possibile"); } } - public void completeAnnullamento(ActionRequest actionRequest, ActionResponse actionResponse) - throws PortalException, SystemException { + public void completeAnnullamento(ActionRequest request, ActionResponse response) throws PortalException, + SystemException { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); long userId = serviceContext.getUserId(); - boolean confimCheck = ParamUtil.getBoolean(actionRequest, "confirmCheck"); + boolean confimCheck = ParamUtil.getBoolean(request, "confirmCheck"); if (confimCheck) { if (Validator.isNotNull(intPraticaId)) { IntPraticaServiceUtil.completeAnnullamento(intPraticaId, userId); } else { - SessionErrors.add(actionRequest, "completamento-annullamento-fascicolo-non-possibile"); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + SessionErrors.add(request, "completamento-annullamento-fascicolo-non-possibile"); + PortalUtil.copyRequestParameters(request, response); } } else { - SessionErrors.add(actionRequest, "annullamento-fascicolo-not-checked"); - PortalUtil.copyRequestParameters(actionRequest, actionResponse); + SessionErrors.add(request, "annullamento-fascicolo-not-checked"); + PortalUtil.copyRequestParameters(request, response); } } - public void cloneFascicolo(ActionRequest actionRequest, ActionResponse actionResponse) { + public void cloneFascicolo(ActionRequest request, ActionResponse response) { try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); - long intPraticaId = ParamUtil.getLong(actionRequest, "intPraticaId"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); IntPraticaLocalServiceUtil.cloneIntPratica(intPraticaId, serviceContext); } catch (Exception e) { - SessionErrors.add(actionRequest, "clone-fascicolo-not-possible"); + SessionErrors.add(request, "clone-fascicolo-not-possible"); } } - public void rigeneraPagamento(ActionRequest actionRequest, ActionResponse actionResponse) throws PortalException, + public void rigeneraPagamento(ActionRequest request, ActionResponse response) throws PortalException, SystemException, InterruptedException { - ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); - ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest); + ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); serviceContext.setCompanyId(themeDisplay.getCompanyId()); - HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); - String url = PortalUtil.getCurrentCompleteURL(request); - long pagamentoId = ParamUtil.getLong(actionRequest, "pagamentoId", 0L); + HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(request); + String url = PortalUtil.getCurrentCompleteURL(httpRequest); + long pagamentoId = ParamUtil.getLong(request, "pagamentoId", 0L); if (pagamentoId != 0L) { PagamentoLocalServiceUtil.annullaPagamento(pagamentoId); Thread.sleep(2000); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java index 4d2cd869..3c2a6d0b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/fe/portlet/SoggettiPraticaPortlet.java @@ -3,23 +3,30 @@ package it.tref.liferay.portos.fe.portlet; import it.tref.liferay.portos.bo.model.Comune; import it.tref.liferay.portos.bo.model.DettPratica; import it.tref.liferay.portos.bo.model.DocPratica; +import it.tref.liferay.portos.bo.model.IntPratica; import it.tref.liferay.portos.bo.model.Provincia; import it.tref.liferay.portos.bo.model.Soggetto; import it.tref.liferay.portos.bo.model.SoggettoSoap; +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.DettPraticaServiceUtil; import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; +import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; import it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil; import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; import it.tref.liferay.portos.bo.service.SoggettoServiceUtil; +import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; import it.tref.liferay.portos.bo.shared.bean.FirmeBean; import it.tref.liferay.portos.bo.shared.util.FirmeUtil; import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; import it.tref.liferay.portos.bo.util.ValidazionePraticaUtil; +import it.tref.liferay.portos.mailmanager.shared.messaging.util.MailManagerUtil; +import it.tref.liferay.portos.mailmanager.shared.model.FileAttachment; import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -41,8 +48,10 @@ 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.repository.model.FileEntry; +import com.liferay.portal.kernel.servlet.HttpHeaders; import com.liferay.portal.kernel.servlet.SessionErrors; import com.liferay.portal.kernel.upload.UploadPortletRequest; +import com.liferay.portal.kernel.util.ContentTypes; import com.liferay.portal.kernel.util.DateFormatFactoryUtil; import com.liferay.portal.kernel.util.FileUtil; import com.liferay.portal.kernel.util.HttpUtil; @@ -335,16 +344,60 @@ public class SoggettiPraticaPortlet extends MVCPortlet { } @Override - public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, - PortletException { + public void serveResource(ResourceRequest request, ResourceResponse response) throws IOException, PortletException { - String id = resourceRequest.getResourceID(); try { - ServiceContext serviceContext = ServiceContextFactory.getInstance(resourceRequest); - if ("compilaSoggetti".equals(id)) { - long userId = ParamUtil.getLong(resourceRequest, "userId", 0L); - String codiceFiscale = ParamUtil.getString(resourceRequest, "codiceFiscale"); - String tipologiaSoggetto = ParamUtil.getString(resourceRequest, "tipologiaSoggetto"); + ServiceContext serviceContext = ServiceContextFactory.getInstance(request); + long companyId = serviceContext.getCompanyId(); + String id = request.getResourceID(); + if ("inviaMailDelega".equals(id)) { + JSONObject result = JSONFactoryUtil.createJSONObject(); + long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); + DettPratica dettPratica = DettPraticaLocalServiceUtil.fetchDettPratica(dettPraticaId); + IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(dettPratica.getIntPraticaId()); + Territorio territorio = TerritorioLocalServiceUtil.fetchTerritorio(intPratica.getTerritorioId()); + Comune comune = ComuneLocalServiceUtil.fetchComune(territorio.getComuneId()); + Provincia provincia = ProvinciaLocalServiceUtil.findByC_C(comune.getCompanyId(), + comune.getCodiceProvincia()); + Soggetto committente = SoggettoLocalServiceUtil.fetchSoggetto(ParamUtil.getLong(request, + "committenteId")); + Soggetto titolare = SoggettoLocalServiceUtil.getValidByIntPratica_CodiceFiscale( + dettPratica.getIntPraticaId(), dettPratica.getCodiceFiscaleDelegatoCommittente()).get(0); + String[] to = { committente.getEmail() }; + String[] cc = {}; + String[] ccn = {}; + JSONObject templateVariables = JSONFactoryUtil.createJSONObject(); + templateVariables.put("receiver", committente.getNome() + ' ' + committente.getCognome()); + templateVariables.put("titolareDigitale", titolare.getNome() + ' ' + titolare.getCognome()); + templateVariables.put("titolareDigitaleMail", titolare.getEmail()); + templateVariables.put("intervento", dettPratica.getDescLongIntervento()); + templateVariables.put("comune", comune.getDenominazione()); + templateVariables.put("provincia", provincia.getProvincia()); + List fileAttachments = new ArrayList<>(); + FileAttachment fileAttachment = new FileAttachment(); + fileAttachment.setFileEntryId(SoggettoLocalServiceUtil.savePdfDelega(request)); + fileAttachment.generateFile(); + fileAttachments.add(fileAttachment); + MailManagerUtil.sendMailByTemplatName(DettPratica.class.getName(), dettPraticaId, + "INVIO-DELEGA-COMMITTENTE", to, cc, ccn, templateVariables, fileAttachments, serviceContext); + result.put("message", "Email inviata con successo a " + committente.getEmail()); + writeJSON(request, response, result); + } else if ("delegaPdf".equals(id)) { + byte[] pdf = SoggettoLocalServiceUtil.getPdfDelega(request); + response.setContentType(ContentTypes.APPLICATION_PDF); + Soggetto committente = SoggettoLocalServiceUtil.fetchSoggetto(ParamUtil.getLong(request, + "committenteId")); + response.addProperty(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"Delega_" + + committente.getDescrizioneCompleta().replace(' ', '_') + ".pdf\""); + response.setContentLength(pdf.length); + OutputStream os = response.getPortletOutputStream(); + os.write(pdf); + os.flush(); + os.close(); + } else if ("compilaSoggetti".equals(id)) { + long userId = ParamUtil.getLong(request, "userId", 0L); + String codiceFiscale = ParamUtil.getString(request, "codiceFiscale"); + String tipologiaSoggetto = ParamUtil.getString(request, "tipologiaSoggetto"); JSONArray jsonSoggetti = JSONFactoryUtil.createJSONArray(); if (Validator.isNotNull(userId) && Validator.isNotNull(codiceFiscale) && Validator.isNotNull(tipologiaSoggetto)) { @@ -364,35 +417,35 @@ public class SoggettiPraticaPortlet extends MVCPortlet { jsonSoggetti.put(serialized); } } - writeJSON(resourceRequest, resourceResponse, jsonSoggetti); + writeJSON(request, response, jsonSoggetti); } else if ("province".equals(id)) { - JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); + JSONArray array = JSONFactoryUtil.createJSONArray(); List province = ProvinciaLocalServiceUtil.findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, OrderByComparatorFactoryUtil.create("portos_bo_Provincia", "provincia", true)); for (Provincia provincia : province) { - JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); - jsonObject.put("provinciaId", provincia.getCodiceProvincia()); - jsonObject.put("descLong", provincia.getSigla() + "- " + provincia.getProvincia()); - jsonArray.put(jsonObject); + JSONObject object = JSONFactoryUtil.createJSONObject(); + object.put("provinciaId", provincia.getCodiceProvincia()); + object.put("descLong", provincia.getSigla() + " - " + provincia.getProvincia()); + array.put(object); } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, array); } else if ("comuni".equals(id)) { - String codiceProvincia = ParamUtil.getString(resourceRequest, "provinciaId"); - JSONArray jsonArray = JSONFactoryUtil.createJSONArray(); + String codiceProvincia = ParamUtil.getString(request, "provinciaId"); + JSONArray array = JSONFactoryUtil.createJSONArray(); if (Validator.isNotNull(codiceProvincia) && Validator.isNotNull(codiceProvincia)) { - List comuni = ComuneLocalServiceUtil.findByCompanyIdCodiceProvincia( - serviceContext.getCompanyId(), codiceProvincia, QueryUtil.ALL_POS, QueryUtil.ALL_POS, + List comuni = ComuneLocalServiceUtil.findByCompanyIdCodiceProvincia(companyId, + codiceProvincia, QueryUtil.ALL_POS, QueryUtil.ALL_POS, OrderByComparatorFactoryUtil.create("portos_bo_Comune", "denominazione", true)); for (Comune comune : comuni) { - JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); - jsonObject.put("comuneId", comune.getComuneId()); - jsonObject.put("descLong", comune.getDenominazione()); - jsonArray.put(jsonObject); + JSONObject object = JSONFactoryUtil.createJSONObject(); + object.put("comuneId", comune.getComuneId()); + object.put("descLong", comune.getDenominazione()); + array.put(object); } } - writeJSON(resourceRequest, resourceResponse, jsonArray); + writeJSON(request, response, array); } else { - super.serveResource(resourceRequest, resourceResponse); + super.serveResource(request, response); } } catch (Exception e) { _log.error(e, e); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/asseverazione_actions.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/asseverazione_actions.jsp index 1f8951bb..d072ad0c 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/asseverazione_actions.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/asseverazione_actions.jsp @@ -151,7 +151,8 @@ String random = StringUtil.randomId().toString(); String downloadUrl = DLUtil.getPreviewURL(fileEntry, fileEntry.getLatestFileVersion(), themeDisplay, "&download=true"); %> - + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_collaudo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_collaudo.jsp index 29823d3f..dbb82304 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_collaudo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_collaudo.jsp @@ -1,11 +1,9 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> - <%@page import="it.tref.liferay.portos.bo.util.AzioniPraticheUtil"%> <%@page import="com.liferay.portal.kernel.util.HttpUtil"%> <%@page import="it.tref.liferay.portos.bo.service.FineLavoriLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.FineLavoriServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.FineLavori"%> -<%@page import="com.liferay.portal.kernel.servlet.ServletContextPool"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> <%@page import="it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.CollaudoLocalServiceUtil"%> @@ -13,9 +11,7 @@ <%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> <%@page import="it.tref.liferay.portos.bo.shared.util.PortletKeys"%> -<%@page import="it.tref.liferay.portos.bo.util.DelegheUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.SoggettoServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Soggetto"%> <%@page import="com.liferay.portal.kernel.bean.BeanPropertiesUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Comune"%> @@ -23,459 +19,421 @@ <%@page import="it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.TerritorioServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Territorio"%> <%@page import="it.tref.liferay.portos.bo.service.IntPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> <%@ include file="/html/fascicolofe/init.jsp" %> - <% - String backURL = ParamUtil.getString(request, "backURL"); - long collaudoId = ParamUtil.getLong(request, "collaudoId",0l); - Collaudo collaudo = CollaudoLocalServiceUtil.fetchCollaudo(collaudoId); - - if( Validator.isNull(collaudo) ){ - long intPraticaIdParam = ParamUtil.getLong(request, "intPraticaId"); - collaudo = CollaudoLocalServiceUtil.getLastEditable(intPraticaIdParam); - collaudoId = collaudo.getCollaudoId(); - } - - boolean openVerifyUrl = ParamUtil.getBoolean(request, "openVerifyUrl"); - boolean showHistory = ParamUtil.getBoolean(request, "showHistory", true); - - long intPraticaId = collaudo.getIntPraticaId(); - IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); - DettPratica dettPratica = DettPraticaServiceUtil.getLastCompletedByIntPratica(intPraticaId); - if(dettPratica == null){ - dettPratica = DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); - } - - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), territorio.getCodiceProvincia()); - - Soggetto collaudatore = null; - List collaudatori = SoggettoLocalServiceUtil.findByIntPratica_CodiceFiscale(intPraticaId, dettPratica.getCodiceFiscaleDelegatoCollaudo()); - if(!collaudatori.isEmpty()){ - collaudatore = collaudatori.get(0); - } - - String formName = "fmCollaudo"; - - boolean disabledEditing = collaudo.getCompletata(); - request.setAttribute("bean.collaudo", collaudo); +String backURL = ParamUtil.getString(request, "backURL"); +long collaudoId = ParamUtil.getLong(request, "collaudoId", 0L); +Collaudo collaudo = CollaudoLocalServiceUtil.fetchCollaudo(collaudoId); +if (Validator.isNull(collaudo)) { + long intPraticaIdParam = ParamUtil.getLong(request, "intPraticaId"); + collaudo = CollaudoLocalServiceUtil.getLastEditable(intPraticaIdParam); + collaudoId = collaudo.getCollaudoId(); +} +boolean openVerifyUrl = ParamUtil.getBoolean(request, "openVerifyUrl"); +long intPraticaId = collaudo.getIntPraticaId(); +IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); +DettPratica dettPratica = DettPraticaServiceUtil.getLastCompletedByIntPratica(intPraticaId); +if (dettPratica == null) { + dettPratica = DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); +} +Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); +Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); +Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), territorio.getCodiceProvincia()); +Soggetto collaudatore = null; +List collaudatori = SoggettoLocalServiceUtil.findByIntPratica_CodiceFiscale(intPraticaId, dettPratica.getCodiceFiscaleDelegatoCollaudo()); +if (!collaudatori.isEmpty()) { + collaudatore = collaudatori.get(0); +} +String formName = "fmCollaudo"; +boolean disabledEditing = collaudo.getCompletata(); +request.setAttribute("bean.collaudo", collaudo); %> - - - - - - + + + + -
-
+
<% - String label = StringPool.BLANK; - if(disabledEditing){ - label = "view-collaudo"; - }else if(Validator.isNull(collaudo.getCollaudoId())){ - label = "new-collaudo"; - } else { - label = "edit-collaudo"; - } + String label = StringPool.BLANK; + if (disabledEditing) { + label = "view-collaudo"; + } else if (Validator.isNull(collaudo.getCollaudoId())) { + label = "new-collaudo"; + } else { + label = "edit-collaudo"; + } %> - +
-
-
- - - - - - +
+
+ + +
- -
-
- -
-
-
- <%= LanguageUtil.get(pageContext, "col-prov") %> +
+ +
+
+
+ <%= LanguageUtil.get(pageContext, "col-prov") %> +
+
+ <%=BeanPropertiesUtil.getString(provincia, "provincia")%> +
+
+ <%= LanguageUtil.get(pageContext, "col-comune") %> +
+
+ <%=BeanPropertiesUtil.getString(comune, "denominazione")%> +
-
- <%=BeanPropertiesUtil.getString(provincia, "provincia")%> +
+
+ <%= LanguageUtil.get(pageContext, "col-sismica") %> +
+
+ <%= BeanPropertiesUtil.getString(territorio, "zona") %> +
+
+ <%= LanguageUtil.get(pageContext, "col-pericolosita") %> +
+
+ <%= BeanPropertiesUtil.getString(territorio, "fascia") %> +
-
- <%= LanguageUtil.get(pageContext, "col-comune") %> +
+
+ <%= LanguageUtil.get(pageContext, "col-range") %> +
+
+ <%= BeanPropertiesUtil.getString(territorio, "agMin") %> - <%= BeanPropertiesUtil.getString(territorio, "agMax") %> +
-
- <%=BeanPropertiesUtil.getString(comune, "denominazione")%> +
+
+
+ <%= LanguageUtil.get(pageContext, "col-desc-interv") %> +
+
+ <%=BeanPropertiesUtil.getString(dettPratica, "descLongIntervento") %> +
-
-
-
- <%= LanguageUtil.get(pageContext, "col-sismica") %> +
+
+
+ <%= LanguageUtil.get(pageContext, "col-commit") %> +
+
+ <% + List committenti = SoggettoLocalServiceUtil + .findByIntPratica_TipologiaSoggetto(intPraticaId, + TipoSoggettoUtil.COMMITTENTE); + if (!committenti.isEmpty()) { + %> +
    + <% + for(Soggetto committente : committenti){ + %> +
  • + <%= committente.getDescrizioneCompleta() %> +
  • + <% + } + %> +
+ <% + } + %> +
+
+ <%= LanguageUtil.get(pageContext, "col-collaudatore") %> +
+
+ + + <%= collaudatore.getDescrizioneCompleta() %> + +
-
- <%= BeanPropertiesUtil.getString(territorio, "zona") %> +
+
+ <%= LanguageUtil.get(pageContext, "col-tipo-dom") %> +
+
+ <%= LanguageUtil.get(pageContext, "tipo-pratica-" + + intPratica.getTipoPratica()) %> +
+
+ <%= LanguageUtil.get(pageContext, "col-data-invio-fl") %> +
+
+ <% + FineLavori lastFineLavori = FineLavoriServiceUtil.getLastCompleted(intPraticaId); + %> + + <%= dateFormatDate.format(lastFineLavori.getDataFineLavori()) %> + +
-
- <%= LanguageUtil.get(pageContext, "col-pericolosita") %> +
+
+
+ <%= LanguageUtil.get(pageContext, "col-tipo") %> +
+
+ + + + + + + + +
+
+ <%= LanguageUtil.get(pageContext, "col-data-fine") %> +
+
+ + + + + + +
-
- <%= BeanPropertiesUtil.getString(territorio, "fascia") %> +
+
+ +
-
-
-
- <%= LanguageUtil.get(pageContext, "col-range") %> +
+
+
+ +

+ <%= MessageFormat.format( + LanguageUtil.get(pageContext, "col-dichiaraz-collaudatore"), + collaudatore.getNome(), collaudatore.getCognome()) %> +

+
+
-
- <%= BeanPropertiesUtil.getString(territorio, "agMin") %> - <%= BeanPropertiesUtil.getString(territorio, "agMax") %> +
+
+
+ <%= LanguageUtil.get(pageContext, "col-varianti") %>: +
-
-
-
-
- <%= LanguageUtil.get(pageContext, "col-desc-interv") %> +
+
+ + + + <% + String tipoIntegrazione = Validator.isNotNull(dettPraticaExtra.getTipoIntegrazione()) ? LanguageUtil.get(pageContext, "label-integrazione-"+dettPraticaExtra.getTipoIntegrazione()) : ""; + %> + + + <%= intPratica.getTitle(locale, true) %> + + + <%= tipoIntegrazione %> + + + + +
-
- <%=BeanPropertiesUtil.getString(dettPratica, "descLongIntervento") %> +
+
+ + + + + + <%= intPratica.getTitle(locale,true) %> + + + + + +
-
-
-
-
- <%= LanguageUtil.get(pageContext, "col-commit") %> -
-
- <% - List committenti = SoggettoLocalServiceUtil.findByIntPratica_TipologiaSoggetto(intPraticaId, TipoSoggettoUtil.COMMITTENTE); - if(!committenti.isEmpty()){ - %> -
    - <% - for(Soggetto committente : committenti){ - %> -
  • - <%= committente.getDescrizioneCompleta() %> -
  • - <% - } - %> -
- <% - } - %> -
-
- <%= LanguageUtil.get(pageContext, "col-collaudatore") %> -
-
- - - - <%= collaudatore.getDescrizioneCompleta() %> - - -
-
-
-
- <%= LanguageUtil.get(pageContext, "col-tipo-dom") %> -
-
- <%= LanguageUtil.get(pageContext, "tipo-pratica-"+intPratica.getTipoPratica()) %> -
-
- <%= LanguageUtil.get(pageContext, "col-data-invio-fl") %> -
-
- <% - FineLavori lastFineLavori = FineLavoriServiceUtil.getLastCompleted(intPraticaId); - %> - - <%= dateFormatDate.format(lastFineLavori.getDataFineLavori()) %> - -
-
-
-
-
- <%= LanguageUtil.get(pageContext, "col-tipo") %> -
-
- - - - - - - - -
-
- <%= LanguageUtil.get(pageContext, "col-data-fine") %> -
-
- - - - - - -
-
-
-
- -
-
-
-
-
- -

- <%= MessageFormat.format(LanguageUtil.get(pageContext, "col-dichiaraz-collaudatore"), collaudatore.getNome(), collaudatore.getCognome()) %> -

-
-
-
-
-
-
- <%= LanguageUtil.get(pageContext, "col-varianti") %>: -
-
-
-
- - - - <% - String tipoIntegrazione = Validator.isNotNull(dettPraticaExtra.getTipoIntegrazione()) ? LanguageUtil.get(pageContext, "label-integrazione-"+dettPraticaExtra.getTipoIntegrazione()) : ""; - %> - - - - - <%= intPratica.getTitle(locale,true) %> - - - - <%= tipoIntegrazione %> - - - - - -
-
-
-
- - - - - - - - <%= intPratica.getTitle(locale,true) %> - - - - - - - -
-
-
-
- - - - - - - - <%= intPratica.getTitle(locale,true) %> - - - - - - - -
-
-
-
-
- <%= LanguageUtil.get(pageContext, "col-note") %>: -
-
-
-
- -
-
- -
- -
+
+
+ + + + + + <%= intPratica.getTitle(locale, true) %> + + + + + +
+
+
+
+
+ <%= LanguageUtil.get(pageContext, "col-note") %>: +
+
+
+
+ +
+
+
+ +

-
-
- <%= LanguageUtil.get(pageContext, "col-allegati") %>: -
-
- <% - String comingFrom = "page_collaudo"; - %> - +
+
+ <%= LanguageUtil.get(pageContext, "col-allegati") %>: +
+
+ <% + String comingFrom = "page_collaudo"; + %> + var allegatiEdit = false; - Liferay.on('popupReady',function(event) { + Liferay.on('popupReady',function (event) { var modalName = event._event.details[0].windowName; var modalWin = Liferay.Util.Window.getById(modalName); - modalWin.after('visibleChange', function(event) { - if(event.prevVal){ - if(allegatiEdit){ - Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); - } - } - }); - modalWin.after('hide', function(event) { - if(allegatiEdit){ - Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); + modalWin.after('visibleChange', function (event) { + if (event.prevVal && allegatiEdit) { + Liferay.Portlet.refresh("#p_p_id_<%= PortletKeys.ALLEGATI %>_INSTANCE_<%= comingFrom %>_"); + } + }); + modalWin.after('hide', function (event) { + if (allegatiEdit) { + Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); } }); - modalWin.after('destroy', function(event) { + modalWin.after('destroy', function (event) { if(allegatiEdit){ - Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); + Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); } - }); + }); }); - Liferay.on('allegati-<%=comingFrom%>-open',function(event) { - allegatiEdit=true; + Liferay.on('allegati-<%= comingFrom %>-open', function (event) { + allegatiEdit = true; }); - Liferay.on('allegati-<%=comingFrom%>-ready',function(event) { - if(allegatiEdit){ - allegatiEdit=false; - } - + Liferay.on('allegati-<%= comingFrom %>-ready', function (event) { + allegatiEdit = false; }); - - - -
-
+ +
+
- - - + + - - + + - Liferay.Util.openWindow( - { - id: 'openVerificaCollaudo', - title: 'Verifica Collaudo', - uri: '<%=verifyRenderURL%>' - } - ); + Liferay.Util.openWindow({ + id: 'openVerificaCollaudo', + title: 'Verifica Collaudo', + uri: '<%=verifyRenderURL%>', + }); - <% - String refreshURL = HttpUtil.removeParameter(editEntryURL.toString(), "_"+PortletKeys.FASCICOLOFE+"_openVerifyUrl"); +String refreshURL = HttpUtil.removeParameter(editEntryURL.toString(), + "_" + PortletKeys.FASCICOLOFE + "_openVerifyUrl"); %> - var verifyPopupReady = false; - Liferay.on('popupReady',function(event) { - - var modalName = event._event.details[0].windowName; - var modalWin = Liferay.Util.Window.getById(modalName); - - modalWin.after('visibleChange', function(event) { - if(event.prevVal && verifyPopupReady){ - window.location.href = "<%= refreshURL %>" - } - }); - modalWin.after('hide', function(event) { - if(verifyPopupReady){ - window.location.href = "<%= refreshURL %>" - } - }); - modalWin.after('destroy', function(event) { - if(verifyPopupReady){ - window.location.href = "<%= refreshURL %>" - } - }); +var verifyPopupReady = false; +Liferay.on('popupReady',function (event) { + var modalName = event._event.details[0].windowName; + var modalWin = Liferay.Util.Window.getById(modalName); + modalWin.after('visibleChange', function (event) { + if (event.prevVal && verifyPopupReady) { + window.location.href = "<%= refreshURL %>" + } + }); + modalWin.after('hide', function (event) { + if (verifyPopupReady) { + window.location.href = "<%= refreshURL %>" + } }); - Liferay.on('verifyPopup-ready',function(event) { - verifyPopupReady=true; + modalWin.after('destroy', function (event) { + if (verifyPopupReady) { + window.location.href = "<%= refreshURL %>" + } }); +}); +Liferay.on('verifyPopup-ready',function (event) { + verifyPopupReady = true; +}); - \ No newline at end of file +Liferay.provide(window, 'saveCollaudo', function (bozza) { + AUI().one('#bozza').set('value',bozza); + submitForm(document.<%= formName %>); +}, ['aui-base']); + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_fine-lavori.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_fine-lavori.jsp index f525d1dc..3642236e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_fine-lavori.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_fine-lavori.jsp @@ -1,147 +1,123 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> - -<%@page import="it.tref.liferay.portos.bo.util.AzioniPraticheUtil"%> +<%@page import="com.liferay.portal.kernel.bean.BeanPropertiesUtil"%> <%@page import="com.liferay.portal.kernel.util.HttpUtil"%> +<%@page import="it.tref.liferay.portos.bo.model.Comune"%> +<%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> +<%@page import="it.tref.liferay.portos.bo.model.FineLavori"%> +<%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> +<%@page import="it.tref.liferay.portos.bo.model.Provincia"%> +<%@page import="it.tref.liferay.portos.bo.model.Soggetto"%> +<%@page import="it.tref.liferay.portos.bo.model.Territorio"%> +<%@page import="it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.FineLavoriLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.FineLavoriServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.FineLavori"%> +<%@page import="it.tref.liferay.portos.bo.service.IntPraticaServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil"%> -<%@page import="com.liferay.portal.kernel.servlet.ServletContextPool"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> +<%@page import="it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.PortletKeys"%> -<%@page import="it.tref.liferay.portos.bo.util.DelegheUtil"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.SoggettoServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.Soggetto"%> -<%@page import="com.liferay.portal.kernel.bean.BeanPropertiesUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.Comune"%> -<%@page import="it.tref.liferay.portos.bo.model.Provincia"%> -<%@page import="it.tref.liferay.portos.bo.service.ProvinciaLocalServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.ComuneLocalServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.TerritorioServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.Territorio"%> -<%@page import="it.tref.liferay.portos.bo.service.IntPraticaServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> +<%@page import="it.tref.liferay.portos.bo.util.AzioniPraticheUtil"%> <%@ include file="/html/fascicolofe/init.jsp" %> - <% - String backURL = ParamUtil.getString(request, "backURL"); - long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId",0l); - FineLavori fineLavori = FineLavoriLocalServiceUtil.fetchFineLavori(fineLavoriId); - if( Validator.isNull(fineLavori) ){ - long intPraticaIdParam = ParamUtil.getLong(request, "intPraticaId"); - fineLavori = FineLavoriServiceUtil.getLastEditable(intPraticaIdParam); - fineLavoriId = fineLavori.getFineLavoriId(); - } - - boolean openVerifyUrl = ParamUtil.getBoolean(request, "openVerifyUrl"); - boolean showHistory = ParamUtil.getBoolean(request, "showHistory", true); - - long intPraticaId = fineLavori.getIntPraticaId(); - IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); - DettPratica dettPratica = DettPraticaServiceUtil.getLastCompletedByIntPratica(intPraticaId); - if(dettPratica == null){ - dettPratica = DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); - } - - Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); - Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); - Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), territorio.getCodiceProvincia()); - - Soggetto direttoreLavori = null; - List direttori = SoggettoLocalServiceUtil.findByIntPratica_CodiceFiscale(intPraticaId, dettPratica.getCodiceFiscaleDelegatoFineLavori()); - if(!direttori.isEmpty()){ - direttoreLavori = direttori.get(0); - } - - String formName = "fmFineLavori"; - - boolean disabledEditing = fineLavori.getCompletata(); - request.setAttribute("bean.fineLavori", fineLavori); - - boolean isNewFineLavori = ParamUtil.getBoolean(request, "isNewFineLavori"); +String backURL = ParamUtil.getString(request, "backURL"); +long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId", 0L); +FineLavori fineLavori = FineLavoriLocalServiceUtil.fetchFineLavori(fineLavoriId); +if (Validator.isNull(fineLavori)) { + long intPraticaIdParam = ParamUtil.getLong(request, "intPraticaId"); + fineLavori = FineLavoriServiceUtil.getLastEditable(intPraticaIdParam); + fineLavoriId = fineLavori.getFineLavoriId(); +} +boolean openVerifyUrl = ParamUtil.getBoolean(request, "openVerifyUrl"); +long intPraticaId = fineLavori.getIntPraticaId(); +IntPratica intPratica = IntPraticaServiceUtil.getIntPratica(intPraticaId); +DettPratica dettPratica = DettPraticaServiceUtil.getLastCompletedByIntPratica(intPraticaId); +if (dettPratica == null) { + dettPratica = DettPraticaServiceUtil.getLastEditableByIntPratica(intPraticaId); +} +Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); +Comune comune = ComuneLocalServiceUtil.getComune(territorio.getComuneId()); +Provincia provincia = ProvinciaLocalServiceUtil.fetchByC_C(territorio.getCompanyId(), territorio.getCodiceProvincia()); +Soggetto direttoreLavori = null; +List direttori = SoggettoLocalServiceUtil.findByIntPratica_CodiceFiscale(intPraticaId, + dettPratica.getCodiceFiscaleDelegatoFineLavori()); +if (!direttori.isEmpty()) { + direttoreLavori = direttori.get(0); +} +String fmName = "fmFineLavori"; +boolean disabledEditing = fineLavori.getCompletata(); +request.setAttribute("bean.fineLavori", fineLavori); %> - - - - - + + + - - - - + + -
-
+
<% - String label = StringPool.BLANK; - if(disabledEditing){ - label = "view-fine-lavori"; - }else if(Validator.isNull(fineLavori.getFineLavoriId())){ - label = "new-fine-lavori"; - } else { - label = "edit-fine-lavori"; - } + String label = StringPool.BLANK; + if (disabledEditing) { + label = "view-fine-lavori"; + } else if (Validator.isNull(fineLavori.getFineLavoriId())) { + label = "new-fine-lavori"; + } else { + label = "edit-fine-lavori"; + } %> - +
-
+
- - - - - - + + +
-
-
+
+ +
+
+
+ <%= dateFormatDate.format(dettPratica.getDataInizioLavoriOpera()) %> +
+
+
+
-
-
+
+
<%= LanguageUtil.get(pageContext, "fl-prov") %>
- <%=BeanPropertiesUtil.getString(provincia, "provincia")%> + <%= BeanPropertiesUtil.getString(provincia, "provincia") %>
<%= LanguageUtil.get(pageContext, "fl-comune") %>
- <%=BeanPropertiesUtil.getString(comune, "denominazione")%> + <%= BeanPropertiesUtil.getString(comune, "denominazione") %>
-
-
-
+
+
+
<%= LanguageUtil.get(pageContext, "fl-sismica") %>
@@ -153,411 +129,353 @@
<%= BeanPropertiesUtil.getString(territorio, "fascia") %>
-
-
-
+
+
+
<%= LanguageUtil.get(pageContext, "fl-range") %>
- <%= BeanPropertiesUtil.getString(territorio, "agMin") %> - <%= BeanPropertiesUtil.getString(territorio, "agMax") %> + <%= BeanPropertiesUtil.getString(territorio, "agMin") %> - + <%= BeanPropertiesUtil.getString(territorio, "agMax") %>
-
-
-
-
+
+
+
+
<%= LanguageUtil.get(pageContext, "fl-desc-interv") %>
- <%=BeanPropertiesUtil.getString(dettPratica, "descLongIntervento") %> -
-
-
-
-
- <%= LanguageUtil.get(pageContext, "fl-commit") %> -
-
- <% - List committenti = SoggettoLocalServiceUtil.findByIntPratica_TipologiaSoggetto(intPraticaId, TipoSoggettoUtil.COMMITTENTE); - if(!committenti.isEmpty()){ - %> -
    - <% - for(Soggetto committente : committenti){ - %> -
  • - <%= committente.getDescrizioneCompleta() %> -
  • - <% - } - %> -
- <% - } - %> -
-
- <%= LanguageUtil.get(pageContext, "fl-dir-lav") %> -
-
- - - - <%= direttoreLavori.getDescrizioneCompleta() %> - - -
-
-
-
- <%= LanguageUtil.get(pageContext, "fl-tipo-dom") %> -
-
- <%= LanguageUtil.get(pageContext, "tipo-pratica-"+intPratica.getTipoPratica()) %> -
-
-
-
-
- <%= LanguageUtil.get(pageContext, "fl-tipo") %> -
-
- - - + <%= BeanPropertiesUtil.getString(dettPratica, "descLongIntervento") %> +
+
+
+
+
+ <%= LanguageUtil.get(pageContext, "fl-commit") %> +
+
+ <% + List committenti = SoggettoLocalServiceUtil + .findByIntPratica_TipologiaSoggetto(intPraticaId, + TipoSoggettoUtil.COMMITTENTE); + if (!committenti.isEmpty()) { + %> +
    + <% + for (Soggetto committente : committenti) { + %> +
  • + <%= committente.getDescrizioneCompleta() %> +
  • + <% + } + %> +
+ <% + } + %> +
+
+ <%= LanguageUtil.get(pageContext, "fl-dir-lav") %> +
+
+ + + + <%= direttoreLavori.getDescrizioneCompleta() %> + + +
+
+
+
+ <%= LanguageUtil.get(pageContext, "fl-tipo-dom") %> +
+
+ <%= LanguageUtil.get(pageContext, "tipo-pratica-" + + intPratica.getTipoPratica()) %> +
+
+
+
+
+ <%= LanguageUtil.get(pageContext, "fl-tipo") %> +
+
+ + + + + + - - + + + - - - - -
-
- <%= LanguageUtil.get(pageContext, "fl-data-fine") %> -
-
+
+
+ <%= LanguageUtil.get(pageContext, "fl-data-fine") %> +
+
- + -
-
-
-
-
- -
-
-
-
-
- <%= LanguageUtil.get(pageContext, "fl-varianti") %>: -
-
-
-
- - - - - <% - String tipoIntegrazione = Validator.isNotNull(dettPraticaExtra.getTipoIntegrazione()) ? LanguageUtil.get(pageContext, "label-integrazione-"+dettPraticaExtra.getTipoIntegrazione()) : ""; - %> - - - - - <%= intPratica.getTitle(locale,true) %> - - - - <%= tipoIntegrazione %> - - - <%-- - - - <% - String buttonId = "dettagliButton_"+index; - String contentId = "dettagliContent_"+index; - String titleId = "Dettagli "+tipoIntegrazione+" #"+dettPraticaExtra.getDettPraticaId(); - %> - - - - -
-
-
-
- <% - if(dettPraticaExtra.getTipoIntegrazione().equals(TipoIntegrazioneUtil.VARIANTE)){ - %> - - - - <% - } else if(dettPraticaExtra.getTipoIntegrazione().equals(TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE)){ - %> - - - - <% - } - %> -
- - - - - - -
-
- -
- - - - - - -
-
-
-
-
-
-
- - - - - - - -
-
--%> - -
- -
-
-
-
-
- - +
+
+
+
+ + * <%= LanguageUtil.get(pageContext, "fl-attestazione-note") %> +
+
+
+
+
+ +
+
+
+
+
+ <%= LanguageUtil.get(pageContext, "fl-varianti") %>: +
+
+
+
+ + - - - - - - <%= intPratica.getTitle(locale,true) %> - - - - - - - -
-
-
-
- -

- <%= MessageFormat.format(LanguageUtil.get(pageContext, "fl-dichiaraz-direttore"), direttoreLavori.getNome(), direttoreLavori.getCognome()) %> -

-
-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
- - - - - - -
-
+ + <% + String tipoIntegrazione = Validator.isNull(dettPraticaExtra + .getTipoIntegrazione()) ? StringPool.BLANK : LanguageUtil.get( + pageContext, + "label-integrazione-" + dettPraticaExtra.getTipoIntegrazione()); + %> + + + <%= intPratica.getTitle(locale,true) %> + + + <%= tipoIntegrazione %> + + + + +
+
+
+
+ + + + + + <%= intPratica.getTitle(locale, true) %> + + + + + +
+
+
+
+ +

+ <%= MessageFormat.format(LanguageUtil.get(pageContext, + "fl-dichiaraz-direttore"), direttoreLavori.getNome(), + direttoreLavori.getCognome()) %> +

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

- <%= MessageFormat.format(LanguageUtil.get(pageContext, "fl-firma-direttore"), direttoreLavori.getNome(), direttoreLavori.getCognome(), direttoreLavori.getCodiceFiscale()) %> -

-
-
-
-
-
-
- <%= LanguageUtil.get(pageContext, "fl-allegati") %>: -
-
- <% - String comingFrom = "page_fine_lavori"; - %> - - var allegatiEdit = false; - Liferay.on('popupReady',function(event) { - var modalName = event._event.details[0].windowName; - var modalWin = Liferay.Util.Window.getById(modalName); - modalWin.after('visibleChange', function(event) { - if(event.prevVal){ - if(allegatiEdit){ - Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); - } - } - }); - modalWin.after('hide', function(event) { - if(allegatiEdit){ - Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); - } +
+
+
+
+ +

+ <%= MessageFormat.format(LanguageUtil.get(pageContext, "fl-firma-direttore"), + direttoreLavori.getNome(), direttoreLavori.getCognome(), + direttoreLavori.getCodiceFiscale()) %> +

+
+
+
+
+
+
+ <%= LanguageUtil.get(pageContext, "fl-allegati") %>: +
+
+ <% + String comingFrom = "page_fine_lavori"; + %> + + var allegatiEdit = false; + Liferay.on('popupReady', function (event) { + var modalName = event._event.details[0].windowName; + var modalWin = Liferay.Util.Window.getById(modalName); + modalWin.after('visibleChange', function (event) { + if (event.prevVal) { + if (allegatiEdit) { + Liferay.Portlet.refresh( + "#p_p_id_<%= PortletKeys.ALLEGATI %>_INSTANCE_<%= comingFrom %>_" + ); + } + } + }); + modalWin.after('hide', function (event) { + if (allegatiEdit) { + Liferay.Portlet.refresh( + "#p_p_id_<%= PortletKeys.ALLEGATI %>_INSTANCE_<%= comingFrom %>_" + ); + } + }); + modalWin.after('destroy', function (event) { + if (allegatiEdit) { + Liferay.Portlet.refresh( + "#p_p_id_<%= PortletKeys.ALLEGATI %>_INSTANCE_<%= comingFrom %>_" + ); + } + }); }); - modalWin.after('destroy', function(event) { - if(allegatiEdit){ - Liferay.Portlet.refresh("#p_p_id_<%=PortletKeys.ALLEGATI%>_INSTANCE_<%=comingFrom%>_"); - } - }); - }); - Liferay.on('allegati-<%=comingFrom%>-open',function(event) { - allegatiEdit=true; - }); - Liferay.on('allegati-<%=comingFrom%>-ready',function(event) { - if(allegatiEdit){ - allegatiEdit=false; - } - - }); - - - - - -
-
-
- - - - - - - - - - Liferay.Util.openWindow( - { + Liferay.on('allegati-<%= comingFrom %>-open', function (event) { + allegatiEdit = true; + }); + Liferay.on('allegati-<%= comingFrom %>-ready', function (event) { + allegatiEdit = false; + }); + + +
+
+
+ + + + + + + + + Liferay.Util.openWindow({ id: 'openVerificaFineLavori', title: 'Verifica Fine Lavori', - uri: '<%=verifyRenderURL%>' - } - ); - - - + uri: '<%= verifyRenderURL %>', + }); + + <% - String refreshURL = HttpUtil.removeParameter(editEntryURL.toString(), "_"+PortletKeys.FASCICOLOFE+"_openVerifyUrl"); +String refreshURL = HttpUtil.removeParameter(editEntryURL.toString(), "_" + PortletKeys.FASCICOLOFE + "_openVerifyUrl"); %> - - - /* SDB: disabilitato. Il checkbox arriva disabilitato se il dettPratica da cui si fa il fine lavori ha collaudo statico false. - * se sarà necessario questo listener disabilita il checkbox al momento che viene dececcato. - */ - if(false){ - AUI().one('#normEsenteCollaudoCheckbox').on('click', function(event){ - - if(confirm("ATTENZIONE:\n rimuovendo la selezione non sarà possibile riattivarla in queste fase.")){ - if (!this.attr('checked')){ - this.addClass('disabled'); - this.set('disabled', true); - } - } else { - this.set('checked',true); - this.set('value',true); - Liferay.Util.updateCheckboxValue(this); - } - - }); - } - var verifyPopupReady = false; - Liferay.on('popupReady',function(event) { - - var modalName = event._event.details[0].windowName; - var modalWin = Liferay.Util.Window.getById(modalName); - - modalWin.after('visibleChange', function(event) { - if(event.prevVal && verifyPopupReady){ - window.location.href = "<%= refreshURL %>" - } - }); - modalWin.after('hide', function(event) { - if(verifyPopupReady){ - window.location.href = "<%= refreshURL %>" - } - }); - modalWin.after('destroy', function(event) { - if(verifyPopupReady){ - window.location.href = "<%= refreshURL %>" - } - }); +var verifyPopupReady = false; +Liferay.on('popupReady',function (event) { + var modalName = event._event.details[0].windowName; + var modalWin = Liferay.Util.Window.getById(modalName); + modalWin.after('visibleChange', function (event) { + if (event.prevVal && verifyPopupReady) { + window.location.href = "<%= refreshURL %>" + } + }); + modalWin.after('hide', function (event) { + if (verifyPopupReady) { + window.location.href = "<%= refreshURL %>" + } }); - Liferay.on('verifyPopup-ready',function(event) { - verifyPopupReady=true; + modalWin.after('destroy', function (event) { + if(verifyPopupReady){ + window.location.href = "<%= refreshURL %>" + } }); - - - - Liferay.provide( - window, - 'saveFineLavori', - function(bozza) { - AUI().one('#bozza').set('value',bozza); - submitForm(document.<%= formName %>); - }, - ['aui-base'] - ); +}); +Liferay.on('verifyPopup-ready', function (event) { + verifyPopupReady = true; +}); +Liferay.provide( + window, + 'saveFineLavori', + function (bozza) { + AUI().one('#bozza').set('value', bozza); + submitForm(document.<%= fmName %>); + }, + ['aui-base'] +); \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_inizio_lavori.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_inizio_lavori.jsp new file mode 100644 index 00000000..0b3eba18 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/edit_inizio_lavori.jsp @@ -0,0 +1,44 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="/html/fascicolofe/init.jsp"%> +<% +String backURL = ParamUtil.getString(request, "backURL"); +long dettPraticaId = ParamUtil.getLong(request, "dettPraticaId"); +String fmName = "fmInizioLavori"; +%> + + + + + + +
+
+
+
+ Data inizio lavori + + + + +
+
+ + + +
+
+
+
+
+ +Liferay.provide( + window, + 'saveFineLavori', + function () { + submitForm(document.<%= fmName %>); + }, + ['aui-base'] +); + \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/fascicolo_action.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/fascicolo_action.jsp index a5ecf336..a8175132 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/fascicolo_action.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/fascicolo_action.jsp @@ -2,6 +2,7 @@ <%@page import="it.tref.liferay.portos.bo.model.Asseverazione"%> <%@page import="it.tref.liferay.portos.bo.model.Delega"%> <%@page import="it.tref.liferay.portos.bo.model.DettPratica"%> +<%@page import="it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.DettPraticaServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> @@ -34,7 +35,8 @@ if (searchContainer != null) { long intPraticaId = ParamUtil.getLong(request, "intPraticaId"); intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); } -String intPraticaIdString = String.valueOf(intPratica.getIntPraticaId()); +long intPraticaId = intPratica.getIntPraticaId(); +String intPraticaIdString = String.valueOf(intPraticaId); String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdString; %> @@ -58,7 +60,7 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - + @@ -66,7 +68,7 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - "> @@ -76,9 +78,9 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr <% DettPratica variazioniSoggetto = DettPraticaServiceUtil.getLastEditabledByIntPraticaAndTipoPratica( - intPratica.getIntPraticaId(), Arrays. asList(TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO)); + intPraticaId, Arrays. asList(TipoIntegrazioneUtil.VARIAZIONE_SOGGETTO)); %> - "> @@ -90,9 +92,8 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - + @@ -110,9 +111,8 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr url="<%= deleteGestioneUtentiURL %>" /> - "> <% Map dataMap = new HashMap(); @@ -127,7 +127,7 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - + @@ -135,16 +135,15 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr target="_blank" /> <% - boolean canAddVariante = ValidazionePraticaUtil.praticaCanAddVariante(intPratica.getIntPraticaId()); - boolean canEditVariante = ValidazionePraticaUtil.praticaCanEditVariante(intPratica.getIntPraticaId()); - boolean canDeleteVariante = ValidazionePraticaUtil.praticaCanDeleteVariante(intPratica.getIntPraticaId()); + boolean canAddVariante = ValidazionePraticaUtil.praticaCanAddVariante(intPraticaId); + boolean canEditVariante = ValidazionePraticaUtil.praticaCanEditVariante(intPraticaId); + boolean canDeleteVariante = ValidazionePraticaUtil.praticaCanDeleteVariante(intPraticaId); %>
- "> @@ -177,18 +176,17 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr
<% - boolean canAddIntegrazione = ValidazionePraticaUtil.praticaCanAddIntegrazione(intPratica.getIntPraticaId()); - boolean canEditIntegrazione = ValidazionePraticaUtil.praticaCanEditIntegrazione(intPratica.getIntPraticaId()); - boolean canDeleteIntegrazione = ValidazionePraticaUtil.praticaCanDeleteIntegrazione( - intPratica.getIntPraticaId()); + boolean canAddIntegrazione = ValidazionePraticaUtil.praticaCanAddIntegrazione(intPraticaId); + boolean canEditIntegrazione = ValidazionePraticaUtil.praticaCanEditIntegrazione(intPraticaId); + boolean canDeleteIntegrazione = ValidazionePraticaUtil.praticaCanDeleteIntegrazione(intPraticaId); %>
- + @@ -222,43 +220,53 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - +
- - - - - - - - - - - - + <% + DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastCompletedByIntPratica(intPraticaId); + %> + + + + + + + + + + + + + + + + + + + + + + + +
- + - - + @@ -269,20 +277,15 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr url="<%= deleteFineLavoriURL %>" /> - +
- + @@ -293,8 +296,7 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - + @@ -302,8 +304,7 @@ String randomId = StringUtil.randomId() + StringPool.UNDERLINE + intPraticaIdStr - + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/common/save_actions.jspf b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/common/save_actions.jspf index b65256a9..a12ba34e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/common/save_actions.jspf +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/common/save_actions.jspf @@ -37,7 +37,6 @@ String script = + "if (el_relazioni.length) {" + "var el_coniugio = $('input[name=_" + PortletKeys.FASCICOLOFE + "_{{prefix}}Coniugio]');" + "var el_coniugiochk = $('input[name=_" + PortletKeys.FASCICOLOFE + "_{{prefix}}Coniugio]:checked');" - + "console.log('length: ' + el_relazioni.length);" + "var err_coniugio = (el_coniugiochk.length == 0);" + "var err_relazioni = ((el_relazioni.val().replace(/\\s*/g, '').length < 10) && (el_coniugiochk.val() == 1));" + "el_coniugio.parent().css({color:(err_coniugio ? '#a94442' : '#333')});" diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp index 71453dec..75fa3aaa 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/navigator/domanda/page_dettagli_principali.jsp @@ -57,6 +57,9 @@ boolean isDisabled = disabledInput && !enabledByIntegrazione; String displayStyle = proceduraC ? "display:none" : StringPool.BLANK; String urlIframeMappe = dettPratica.getUrlMappeFe(request, comune, disabledInput || isGeoEditable); String originMappe = PortalUtil.getPortalURL(request); +if (!ConfigurazioneLocalServiceUtil.isProduction()) { + originMappe = "https://sismica.sicilia.it"; +} %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo.jsp index 1669a753..9327b0d2 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo.jsp @@ -1,232 +1,180 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.FineLavoriServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.FineLavori"%> -<%@page import="com.liferay.portal.kernel.util.LocaleUtil"%> -<%@page import="java.util.Locale"%> -<%@page import="it.tref.liferay.portos.bo.util.PagamentiCommonUtil"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.PagamentoConstants"%> -<%@page import="it.tref.liferay.portos.bo.service.PagamentoLocalServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.service.PagamentoServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.model.Pagamento"%> -<%@page import="java.text.NumberFormat"%> -<%@page import="it.tref.liferay.portos.bo.model.Soggetto"%> -<%@page import="it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.FineLavoriServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.PagamentoLocalServiceUtil"%> <%@page import="it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil"%> - +<%@page import="it.tref.liferay.portos.bo.shared.util.PagamentoConstants"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.PagamentiCommonUtil"%> <%@page import="java.math.BigDecimal"%> -<%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> -<%@page import="it.tref.liferay.portos.bo.model.IntPratica"%> -<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> +<%@page import="java.text.NumberFormat"%> <%@ include file="/html/fascicolofe/init.jsp" %> - <% - long intPraticaId = ParamUtil.getLong(request, "intPraticaId",0l); - long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId",0l); - IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); - FineLavori fineLavori = FineLavoriServiceUtil.getFineLavori(fineLavoriId); - if(fineLavori==null){ - fineLavori = FineLavoriServiceUtil.getLastEditable(intPraticaId); - } - - String formName = "fmpaga"; - String buttonId = "fmbutton"; - - long companyId = company.getCompanyId(); - - boolean disabledInput = Validator.isNotNull(fineLavori.getPagamentoId()); - - boolean pagamentoIsPagato = false; - boolean pagamentoIsPending = false; - boolean pagamentoNonPagabile = false; - boolean pagamentoRifiutato = false; - boolean pagamentoAnnullato = false; - Pagamento pagamento = null; - if( Validator.isNotNull(fineLavori.getPagamentoId()) ){ - pagamento = PagamentoLocalServiceUtil.getPagamento(fineLavori.getPagamentoId()); - pagamentoIsPagato = pagamento.getUtilizzata().equalsIgnoreCase(PagamentoConstants.UTILIZZATA_PAGATA); - pagamentoIsPending = pagamento.getUtilizzata().equalsIgnoreCase(PagamentoConstants.UTILIZZATA_IN_CORSO); - pagamentoNonPagabile = pagamento.getUtilizzata().equalsIgnoreCase(PagamentoConstants.UTILIZZATA_NON_PAGABILE); - pagamentoRifiutato = pagamento.getUtilizzata().equalsIgnoreCase(PagamentoConstants.UTILIZZATA_RIFIUTATA); - pagamentoAnnullato = pagamento.getUtilizzata().equalsIgnoreCase(PagamentoConstants.UTILIZZATA_ANNULLATO); - } - - String formRicevutaPagamento = "fmRicevuta"; - //String formSostituisciPagamento = "fmSostituisci"; - - String currentCompleteUrl = PortalUtil.getCurrentCompleteURL(request); +long intPraticaId = ParamUtil.getLong(request, "intPraticaId", 0L); +long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId", 0L); +IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); +FineLavori fineLavori = FineLavoriServiceUtil.getFineLavori(fineLavoriId); +if (fineLavori == null) { + fineLavori = FineLavoriServiceUtil.getLastEditable(intPraticaId); +} +String formName = "fmpaga"; +String buttonId = "fmbutton"; +long companyId = company.getCompanyId(); +boolean disabledInput = Validator.isNotNull(fineLavori.getPagamentoId()); +boolean pagamentoIsPagato = false; +boolean pagamentoIsPending = false; +boolean pagamentoNonPagabile = false; +boolean pagamentoRifiutato = false; +boolean pagamentoAnnullato = false; +Pagamento pagamento = null; +if (Validator.isNotNull(fineLavori.getPagamentoId())) { + pagamento = PagamentoLocalServiceUtil.getPagamento(fineLavori.getPagamentoId()); + pagamentoIsPagato = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_PAGATA); + pagamentoIsPending = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_IN_CORSO); + pagamentoNonPagabile = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_NON_PAGABILE); + pagamentoRifiutato = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_RIFIUTATA); + pagamentoAnnullato = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_ANNULLATO); +} +String formRicevutaPagamento = "fmRicevuta"; +String currentCompleteUrl = PortalUtil.getCurrentCompleteURL(request); %> - - + - - + -

Calcolo importo

- - - + + + - -
+
- - +
-
- <%= intPratica.getTitle(false) %> +
+ <%= intPratica.getTitle(false) %> - <%= Validator.isNotNull(intPratica) ? " - "+LanguageUtil.get(pageContext, "tipo-pratica-"+intPratica.getTipoPratica()) : "" %> + - <%= LanguageUtil.get(pageContext, "tipo-pratica-" + intPratica.getTipoPratica()) %>
- - +
-
+
- -
-
+ +
+
-
- <%= LanguageUtil.get(pageContext, "text-pagamento-completato-bolli") %> -
+
+ <%= LanguageUtil.get(pageContext, "text-pagamento-completato-bolli") %> +
- - - - - + + + + + - - -
- <%= LanguageUtil.get(pageContext, "text-pagamento-manuale-bolli") %> - - - - + +
+ <%= LanguageUtil.get(pageContext, "text-pagamento-manuale-bolli") %> + + + + + - - <%-- - - - - - - - - - -
- - - - - - - - - - - -
--%>
-
- +
+
- - - 'p7m,pdf' + + + 'p7m,pdf'
-
- - - - + + + + - <%--
- <%= LanguageUtil.get(pageContext, "text-pagamento-iris") %> -
-
- - -
--%> -
- + + -
- <%= LanguageUtil.get(pageContext, "text-pagamento-nonpagabile-bolli") %> +
+ <%= LanguageUtil.get(pageContext, + "text-pagamento-nonpagabile-bolli") %>
-
- <%= LanguageUtil.get(pageContext, "text-pagamento-rifiutato-bolli") %> +
+ <%= LanguageUtil.get(pageContext, + "text-pagamento-rifiutato-bolli") %>
-
- - - +
+ + +
- <%--
- - - - - - - - - - - - - - - - - - - - -
--%> <%= LanguageUtil.get(pageContext, "text-pagamento-annullato-bolli") %> @@ -239,7 +187,6 @@
- @@ -247,11 +194,9 @@
- - @@ -259,111 +204,107 @@ -
-
- +
+ <% - List committenti = SoggettoLocalServiceUtil.getValidByIntPratica_TipologiaSoggetto(intPraticaId, TipoSoggettoUtil.COMMITTENTE); - for(Soggetto committente : committenti){ + List committenti = SoggettoLocalServiceUtil.getValidByIntPratica_TipologiaSoggetto( + intPraticaId, TipoSoggettoUtil.COMMITTENTE); + for (Soggetto committente : committenti) { %> - - <% - } + + <% + } %>
-
-
+
- -
-
-
- -
-
-
+ +
+
+
+ +
+
+
-
    -
  1. - Esente Bollo -
  2. -
+
    +
  1. + Esente Bollo +
  2. +
-
-
- -
+
+
+
Totale importo
<% - BigDecimal importoBollo = null; - if(Validator.isNotNull(pagamento)){ - importoBollo = new BigDecimal(pagamento.getImporto()); - } else { - importoBollo = fineLavori.isNormEsenteBollo() ? new BigDecimal("0.00") : PagamentiCommonUtil.getImportoBolli(companyId, fineLavori.getFineLavoriId(), FineLavori.class.getName(), TipoIntegrazioneUtil.FINE_LAVORI); - } + BigDecimal importoBollo = null; + if (Validator.isNotNull(pagamento)) { + importoBollo = new BigDecimal(pagamento.getImporto()); + } else { + importoBollo = fineLavori.isNormEsenteBollo() ? new BigDecimal("0.00") + : PagamentiCommonUtil.getImportoBolli(companyId, + fineLavori.getFineLavoriId(), FineLavori.class.getName(), + TipoIntegrazioneUtil.FINE_LAVORI); + } %> -
<%= NumberFormat.getCurrencyInstance(LocaleUtil.getSiteDefault()).format(importoBollo) %>
+
<%= NumberFormat.getCurrencyInstance( + LocaleUtil.getSiteDefault()).format(importoBollo) %>
-
-
- +
+
+
-
- - - - + + +
-
-
+
+
<% - String paymentConfirmText = ""; - if( PagamentiCommonUtil.irisIsEnable(companyId) ){ - paymentConfirmText = LanguageUtil.get(pageContext, "label-confirm-payment-iris"); - } else{ - paymentConfirmText = LanguageUtil.get(pageContext, "label-confirm-payment-manual"); - } + String paymentConfirmText = StringPool.BLANK; + if (PagamentiCommonUtil.irisIsEnable(companyId)) { + paymentConfirmText = LanguageUtil.get(pageContext, "label-confirm-payment-iris"); + } else { + paymentConfirmText = LanguageUtil.get(pageContext, "label-confirm-payment-manual"); + } %> <%= paymentConfirmText %>
- - - - - - - + + + + + + +
- diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo_old.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo_old.jsp new file mode 100644 index 00000000..dab62474 --- /dev/null +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/fascicolofe/verify_fine-lavori_calcolo_old.jsp @@ -0,0 +1,312 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="it.tref.liferay.portos.bo.model.FineLavori"%> +<%@page import="it.tref.liferay.portos.bo.model.Pagamento"%> +<%@page import="it.tref.liferay.portos.bo.service.FineLavoriServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.PagamentoLocalServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.PagamentoConstants"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil"%> +<%@page import="it.tref.liferay.portos.bo.util.PagamentiCommonUtil"%> +<%@page import="java.math.BigDecimal"%> +<%@page import="java.text.NumberFormat"%> +<%@ include file="/html/fascicolofe/init.jsp" %> +<% +long intPraticaId = ParamUtil.getLong(request, "intPraticaId", 0L); +long fineLavoriId = ParamUtil.getLong(request, "fineLavoriId", 0L); +IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); +FineLavori fineLavori = FineLavoriServiceUtil.getFineLavori(fineLavoriId); +if (fineLavori == null) { + fineLavori = FineLavoriServiceUtil.getLastEditable(intPraticaId); +} +String formName = "fmpaga"; +String buttonId = "fmbutton"; +long companyId = company.getCompanyId(); +boolean disabledInput = Validator.isNotNull(fineLavori.getPagamentoId()); +boolean pagamentoIsPagato = false; +boolean pagamentoIsPending = false; +boolean pagamentoNonPagabile = false; +boolean pagamentoRifiutato = false; +boolean pagamentoAnnullato = false; +Pagamento pagamento = null; +if (Validator.isNotNull(fineLavori.getPagamentoId())) { + pagamento = PagamentoLocalServiceUtil.getPagamento(fineLavori.getPagamentoId()); + pagamentoIsPagato = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_PAGATA); + pagamentoIsPending = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_IN_CORSO); + pagamentoNonPagabile = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_NON_PAGABILE); + pagamentoRifiutato = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_RIFIUTATA); + pagamentoAnnullato = pagamento.getUtilizzata().equals(PagamentoConstants.UTILIZZATA_ANNULLATO); +} +String formRicevutaPagamento = "fmRicevuta"; +String currentCompleteUrl = PortalUtil.getCurrentCompleteURL(request); +%> + + + + + + + + + + +
+

Calcolo importo

+
+ + + + + +
+
+ + + +
+
+
+ <%= intPratica.getTitle(false) %> + + <%= Validator.isNull(intPratica) ? StringPool.BLANK + : " - " + LanguageUtil.get(pageContext, "tipo-pratica-" + intPratica.getTipoPratica()) %> + +
+
+
+ + +
+
+
+
+ +
+
+ + +
+ <%= LanguageUtil.get(pageContext, "text-pagamento-completato-bolli") %> +
+
+ + + + + + + + + +
+ <%= LanguageUtil.get(pageContext, "text-pagamento-manuale-bolli") %> + + + + + + + +
+
+ +
+ + + 'p7m,pdf' + +
+ + + +
+
+
+ + + + + +
+
+ + +
+ <%= LanguageUtil.get(pageContext, + "text-pagamento-nonpagabile-bolli") %> +
+
+ +
+ <%= LanguageUtil.get(pageContext, + "text-pagamento-rifiutato-bolli") %> +
+
+
+ + + + +
+
+ + <%= LanguageUtil.get(pageContext, "text-pagamento-annullato-bolli") %> + +
+
+
+
+
+
+
+
+ + + + + +
+
+ + + + + + + + + + + +
+
+
+ + <% + List committenti = SoggettoLocalServiceUtil.getValidByIntPratica_TipologiaSoggetto( + intPraticaId, TipoSoggettoUtil.COMMITTENTE); + for (Soggetto committente : committenti) { + %> + + <% + } + %> + +
+
+
+
+
+ +
+
+
+ +
+
+
+ +
    +
  1. + Esente Bollo +
  2. +
+
+
+
+
+
Totale importo
+ <% + BigDecimal importoBollo = null; + if (Validator.isNotNull(pagamento)) { + importoBollo = new BigDecimal(pagamento.getImporto()); + } else { + importoBollo = fineLavori.isNormEsenteBollo() ? new BigDecimal("0.00") + : PagamentiCommonUtil.getImportoBolli(companyId, + fineLavori.getFineLavoriId(), FineLavori.class.getName(), + TipoIntegrazioneUtil.FINE_LAVORI); + } + %> +
<%= NumberFormat.getCurrencyInstance( + LocaleUtil.getSiteDefault()).format(importoBollo) %>
+
+
+
+
+
+
+
+ +
+
+
+ + + + +
+
+
+
+ <% + String paymentConfirmText = StringPool.BLANK; + if (PagamentiCommonUtil.irisIsEnable(companyId)) { + paymentConfirmText = LanguageUtil.get(pageContext, "label-confirm-payment-iris"); + } else { + paymentConfirmText = LanguageUtil.get(pageContext, "label-confirm-payment-manual"); + } + %> + <%= paymentConfirmText %> +
+ + + + + + + + + +
+
+
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 e5db105f..936aae14 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 @@ -202,7 +202,7 @@ boolean inBO = ParamUtil.getBoolean(request, "inBO");
- + Tipologia +<%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> +<%@page import="it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil"%> +<%@page import="it.tref.liferay.portos.bo.shared.util.PortletKeys"%> +<%@include file="/html/soggettipratica/init.jsp"%> +<% +String cssClass = "col-xs-12 col-sm-6 col-md-4"; +Format format = new SimpleDateFormat("dd/MM/yyyy"); +long committenteId = ParamUtil.getLong(renderRequest, "committenteId"); +long dettPraticaId = ParamUtil.getLong(renderRequest, "dettPraticaId"); +String action = ParamUtil.getString(renderRequest, "action", "anteprima"); +%> + + + + + +<% +for (String key : renderRequest.getParameterMap().keySet()) { + String value = renderRequest.getParameter(key); + %> + + <% +} +%> + + +<% +for (String key : renderRequest.getParameterMap().keySet()) { + String value = renderRequest.getParameter(key); + %> + + <% +} +%> + + + + + + + + +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+ + + +

+
+
+ +
+ <%= SoggettoLocalServiceUtil.getAnteprimaDelega(renderRequest) %> +
+
+
+ diff --git a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp index 43866e0c..c9ec73d4 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-fe-portlet/docroot/html/soggettipratica/view.jsp @@ -49,6 +49,14 @@ if (!ValidazionePraticaUtil.praticaIsEditable(dettPratica.getDettPraticaId())) { } Soggetto soggettoDelegato = DelegheUtil.getPersonaDelegaCompilazioneDomanda(dettPratica.getDettPraticaId()); boolean inBO = ParamUtil.getBoolean(request, "inBO", false); +Soggetto titolare = null; +if (Validator.isNotNull(dettPratica.getCodiceFiscaleDelegatoCommittente())) { + List titolari = SoggettoLocalServiceUtil.getValidByIntPratica_CodiceFiscale(dettPratica.getIntPraticaId(), + dettPratica.getCodiceFiscaleDelegatoCommittente()); + if (!titolari.isEmpty()) { + titolare = titolari.get(0); + } +} %> <% @@ -178,6 +186,21 @@ dataMap.put("id", PortletKeys.SOGGETTI + "_dialogEditSoggetto"); + + + + + + + <% + dataMap.put("title", "Genera Delega"); + %> + + @@ -512,15 +535,6 @@ dataMap.put("id", PortletKeys.SOGGETTI + "_dialogEditSoggetto"); inlineField="true" useNamespace="false" /> - <% - List titolari = SoggettoLocalServiceUtil - .getValidByIntPratica_CodiceFiscale(dettPratica.getIntPraticaId(), - dettPratica.getCodiceFiscaleDelegatoCommittente()); - Soggetto titolare = null; - if (!titolari.isEmpty()) { - titolare = titolari.get(0); - } - %> ' /> + - - - - - Liferay.provide( - window, - 'save', - function() { - var A = new AUI(); - - var body = window.editor.getHTML(); - - document.fm.body.value = body; - - submitForm(document.fm); - - } - ); - +Liferay.provide( window, 'save', function() { + var A = new AUI(); + var body = window.editor.getHTML(); + document.fm.body.value = body; + submitForm(document.fm); +}); \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_action.jsp b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_action.jsp index 43de79f2..dda35504 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_action.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_action.jsp @@ -1,53 +1,29 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/html/mail_manager/init.jsp" %> - <% SearchContainer searchContainer = (SearchContainer) request.getAttribute("liferay-ui:search:searchContainer"); - String redirect = searchContainer.getIteratorURL().toString(); - ResultRow row = (ResultRow) request.getAttribute(WebKeys.SEARCH_CONTAINER_RESULT_ROW); - Email entry = (Email) row.getObject(); %> - - - + - - - - - + - - - - + - - - diff --git a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_history_popup_button.jsp b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_history_popup_button.jsp index 08210e78..46334425 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_history_popup_button.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/email_history_popup_button.jsp @@ -1,34 +1,26 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/html/mail_manager/init.jsp" %> - - - - <% - String cssClass = ParamUtil.getString(request, "cssClass"); - String buttonValue = ParamUtil.getString(request, "buttonValue","email-history-popup-btn"); - - long classNameId = ParamUtil.getLong(request, "classNameId"); - long classPK = ParamUtil.getLong(request, "classPK"); - String templateName = ParamUtil.getString(request, "templateName"); + + <% + String cssClass = ParamUtil.getString(request, "cssClass"); + String buttonValue = ParamUtil.getString(request, "buttonValue","email-history-popup-btn"); + long classNameId = ParamUtil.getLong(request, "classNameId"); + long classPK = ParamUtil.getLong(request, "classPK"); + String templateName = ParamUtil.getString(request, "templateName"); %> - - - + - - + + - - + + - - + + - - - - \ No newline at end of file + + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/init.jsp b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/init.jsp index e1014604..08f67ce2 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/init.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/init.jsp @@ -1,6 +1,5 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/html/init.jsp" %> - <%@page import="com.liferay.portal.kernel.util.TextFormatter"%> <%@page import="com.liferay.portal.kernel.repository.model.FileVersion"%> <%@page import="com.liferay.portal.kernel.util.StringBundler"%> @@ -12,7 +11,6 @@ <%@page import="com.liferay.portal.kernel.util.UnicodeFormatter"%> <%@page import="it.tref.liferay.portos.mailmanager.model.Email"%> <%@page import="it.tref.liferay.portos.mailmanager.service.EmailAttachmentLocalServiceUtil"%> - <%@page import="it.tref.liferay.portos.mailmanager.RequiredEmailToException"%> <%@page import="it.tref.liferay.portos.mailmanager.RequiredEmailBodyException"%> <%@page import="it.tref.liferay.portos.mailmanager.RequiredEmailSubjectException"%> @@ -22,11 +20,10 @@ <%@page import="it.tref.liferay.portos.mailmanager.EmailFromException"%> <%@page import="it.tref.liferay.portos.mailmanager.RequiredEmailFromException"%> <%@page import="com.sun.xml.internal.ws.api.message.Attachment"%> - <%@page import="com.liferay.portal.kernel.dao.search.SearchContainer"%> <%@page import="com.liferay.portal.kernel.util.WebKeys"%> <%@page import="com.liferay.portal.kernel.dao.search.ResultRow"%> <%@page import="com.liferay.portal.kernel.portlet.LiferayWindowState"%> <%@page import="it.tref.liferay.portos.mailmanager.shared.util.PortletKeys"%> <%@page import="it.tref.liferay.portos.mailmanager.permission.ActionKeys"%> -<%@page import="it.tref.liferay.portos.mailmanager.permission.EmailPermission"%> \ No newline at end of file +<%@page import="it.tref.liferay.portos.mailmanager.permission.EmailPermission"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/view.jsp index 5a3f7523..ce666fda 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-mail-manager-portlet/docroot/html/mail_manager/view.jsp @@ -1,165 +1,115 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@include file="/html/mail_manager/init.jsp" %> - +<%@include file="/html/mail_manager/init.jsp"%> <% - long classNameId = ParamUtil.getLong(request, "classNameId"); - long classPK = ParamUtil.getLong(request, "classPK"); - String templateName = ParamUtil.getString(request, "templateName"); - - long companyId = company.getCompanyId(); - +long classNameId = ParamUtil.getLong(request, "classNameId"); +long classPK = ParamUtil.getLong(request, "classPK"); +String templateName = ParamUtil.getString(request, "templateName"); +long companyId = company.getCompanyId(); %> - - - - <% - List results = null; - int count = 0; - - if(Validator.isNotNull(classNameId) && Validator.isNotNull(classPK)){ - results = EmailLocalServiceUtil.findByC_G_C_C(companyId, scopeGroupId, classNameId, classPK, searchContainer.getStart(), searchContainer.getEnd()); - count = EmailLocalServiceUtil.countByC_G_C_C(companyId, scopeGroupId, classNameId, classPK); - }else if(Validator.isNotNull(templateName)){ - results = EmailLocalServiceUtil.findByC_G_T(companyId, scopeGroupId, templateName, searchContainer.getStart(), searchContainer.getEnd()); - count = EmailLocalServiceUtil.countByC_G_T(companyId, scopeGroupId, templateName); - }else{ - results = EmailLocalServiceUtil.findByCompany(companyId, searchContainer.getStart(), searchContainer.getEnd()); - count = EmailLocalServiceUtil.countByCompany(companyId); - } - - searchContainer.setResults(results); - searchContainer.setTotal(count); + + <% + List results = null; + int count = 0; + if (Validator.isNotNull(classNameId) && Validator.isNotNull(classPK)) { + results = EmailLocalServiceUtil.findByC_G_C_C(companyId, scopeGroupId, classNameId, classPK, + searchContainer.getStart(), searchContainer.getEnd()); + count = EmailLocalServiceUtil.countByC_G_C_C(companyId, scopeGroupId, classNameId, classPK); + } else if (Validator.isNotNull(templateName)) { + results = EmailLocalServiceUtil.findByC_G_T(companyId, scopeGroupId, templateName, searchContainer.getStart(), + searchContainer.getEnd()); + count = EmailLocalServiceUtil.countByC_G_T(companyId, scopeGroupId, templateName); + } else { + results = EmailLocalServiceUtil.findByCompany(companyId, searchContainer.getStart(), searchContainer.getEnd()); + count = EmailLocalServiceUtil.countByCompany(companyId); + } + searchContainer.setResults(results); + searchContainer.setTotal(count); %> - - - + - - <% String[] to = email.getToArray(); %> - - + <%= to.length %> - - - A.one('#toCount<%= email.getEmailId() %>').on('click', function(event) { - - var modal = new A.Modal( - { - modal: true, - centered: true, - visible: true, - - bodyContent: '<%= getContent(to) %>', - headerContent: '
', - render: '#modal', - width: 300 - } - ).render(); + var modal = new A.Modal({ + modal: true, + centered: true, + visible: true, + bodyContent: '<%= getContent(to) %>', + headerContent: '
', + render: '#modal', + width: 300, + }).render(); }); -
-
- - <% String[] cc = email.getCcArray(); %> - - + <%= cc.length %> - - - A.one('#ccCount<%= email.getEmailId() %>').on('click', function(event) { - - var modal = new A.Modal( - { - modal: true, - centered: true, - visible: true, - bodyContent: '<%= getContent(cc) %>', - headerContent: '
', - render: '#modal', - width: 300 - } - ).render(); + var modal = new A.Modal({ + modal: true, + centered: true, + visible: true, + bodyContent: '<%= getContent(cc) %>', + headerContent: '
', + render: '#modal', + width: 300, + }).render(); }); -
-
- - <% String[] bcc = email.getBccArray(); %> - - + <%= bcc.length %> - - - A.one('#bccCount<%= email.getEmailId() %>').on('click', function(event) { - - var modal = new A.Modal( - { - modal: true, - centered: true, - visible: true, - bodyContent: '<%= getContent(bcc) %>', - headerContent: '
', - render: '#modal', - width: 300 - } - ).render(); + var modal = new A.Modal({ + modal: true, + centered: true, + visible: true, + bodyContent: '<%= getContent(bcc) %>', + headerContent: '
', + render: '#modal', + width: 300, + }).render(); }); -
-
- <%= StringUtil.shorten(email.getSubject(), 50) %> - - <%= StringUtil.shorten(HtmlUtil.extractText(email.getBody()), 50) %> + <%= StringUtil.shorten(HtmlUtil.extractText(email.getBody()), 50)%> - - @@ -167,45 +117,31 @@ - - + - - - - <% List emailAttachments = email.getEmailAttachments(); %> -
- + <%= emailAttachments.size() %>
- -
- - <% for (EmailAttachment emailAttachment : emailAttachments) { + <% + for (EmailAttachment emailAttachment : emailAttachments) { FileEntry fileEntry = emailAttachment.getFileEntry(); FileVersion fileVersion = fileEntry.getFileVersion(); %> - <%= fileEntry.getTitle() %> @@ -217,72 +153,46 @@ <%= TextFormatter.formatStorageSize(fileVersion.getSize(), locale) %> - + - <% } %> - + <% + } + %>
- - A.one('#attachmentCount<%= email.getEmailId() %>').on('click', function(event) { - var attachments = A.one('#attachments<%= email.getEmailId() %>'); attachments.show(); - - var modal = new A.Modal( - { - modal: true, - centered: true, - visible: true, - bodyContent: attachments, - headerContent: '
', - render: '#modal', - width: 550 - } - ).render(); + var modal = new A.Modal({ + modal: true, + centered: true, + visible: true, + bodyContent: attachments, + headerContent: '
', + render: '#modal', + width: 550, + }).render(); }); -
-
-
- - -
- - - +
-
- <%! - private String getContent(String[] addresses) { - - StringBundler sb = new StringBundler(); - - for (String address : addresses) { - sb.append("
"); - sb.append("
"); - sb.append(address); - sb.append("
"); - sb.append("
"); - } - - return sb.toString(); + StringBundler sb = new StringBundler(); + for (String address : addresses) { + sb.append("
") + .append(address) + .append("
"); + } + return sb.toString(); } - %> \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/lib/velocity.jar b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/lib/velocity.jar new file mode 100644 index 0000000000000000000000000000000000000000..e7151c5cd4167ff1d3e17e7a715d7a4fcb5b010c GIT binary patch literal 421339 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

@2t;g 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�csXapRom0hd3BMQU9_p;Y|IW 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 literal 0 HcmV?d00001 diff --git a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties index a9196a9a..6f452505 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties +++ b/liferay-plugins-sdk-6.2/portlets/portos-report-portlet/docroot/WEB-INF/src/service.properties @@ -13,8 +13,8 @@ ## build.namespace=portos_rep - build.number=33 - build.date=1634829831564 + build.number=34 + build.date=1657543608492 build.auto.upgrade=true ## diff --git a/liferay-plugins-sdk-6.2/shared/portos-audit-shared/.classpath b/liferay-plugins-sdk-6.2/shared/portos-audit-shared/.classpath index a81a6130..84f163c5 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-audit-shared/.classpath +++ b/liferay-plugins-sdk-6.2/shared/portos-audit-shared/.classpath @@ -2,6 +2,6 @@ - + diff --git a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/.classpath b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/.classpath index 5420f255..46f10f5c 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/.classpath +++ b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/.classpath @@ -2,9 +2,9 @@ - - - - + + + + diff --git a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/PagamentoConstants.java b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/PagamentoConstants.java index fe7b94e4..c608a413 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/PagamentoConstants.java +++ b/liferay-plugins-sdk-6.2/shared/portos-bo-shared/src/it/tref/liferay/portos/bo/shared/util/PagamentoConstants.java @@ -31,8 +31,6 @@ public class PagamentoConstants { } }; - public PagamentoConstants() {} - public static String mezzoToLabel(String mezzo) { return mezzoToLabel.get(mezzo); diff --git a/liferay-plugins-sdk-6.2/shared/portos-firma-shared/.classpath b/liferay-plugins-sdk-6.2/shared/portos-firma-shared/.classpath index a81a6130..84f163c5 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-firma-shared/.classpath +++ b/liferay-plugins-sdk-6.2/shared/portos-firma-shared/.classpath @@ -2,6 +2,6 @@ - + diff --git a/liferay-plugins-sdk-6.2/shared/portos-kaleo-shared/.classpath b/liferay-plugins-sdk-6.2/shared/portos-kaleo-shared/.classpath index a81a6130..84f163c5 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-kaleo-shared/.classpath +++ b/liferay-plugins-sdk-6.2/shared/portos-kaleo-shared/.classpath @@ -2,6 +2,6 @@ - + diff --git a/liferay-plugins-sdk-6.2/shared/portos-mail-manager-shared/.classpath b/liferay-plugins-sdk-6.2/shared/portos-mail-manager-shared/.classpath index 26a802f4..1539349c 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-mail-manager-shared/.classpath +++ b/liferay-plugins-sdk-6.2/shared/portos-mail-manager-shared/.classpath @@ -2,7 +2,7 @@ - - + + diff --git a/liferay-plugins-sdk-6.2/shared/portos-report-shared/.classpath b/liferay-plugins-sdk-6.2/shared/portos-report-shared/.classpath index b2effbd2..1141b9c0 100644 --- a/liferay-plugins-sdk-6.2/shared/portos-report-shared/.classpath +++ b/liferay-plugins-sdk-6.2/shared/portos-report-shared/.classpath @@ -6,6 +6,6 @@ - + diff --git a/liferay-plugins-sdk-6.2/webs/portos-kaleo-web/.classpath b/liferay-plugins-sdk-6.2/webs/portos-kaleo-web/.classpath index d8ab75fe..50ef1a48 100644 --- a/liferay-plugins-sdk-6.2/webs/portos-kaleo-web/.classpath +++ b/liferay-plugins-sdk-6.2/webs/portos-kaleo-web/.classpath @@ -13,7 +13,7 @@ - +