Salvatore La Manna
3 anni fa
175 ha cambiato i file con 8852 aggiunte e 15863 eliminazioni
File diff soppresso perché troppo grande
Load Diff
File diff soppresso perché troppo grande
Load Diff
File diff soppresso perché troppo grande
Load Diff
@ -1,447 +0,0 @@
|
||||
package it.tref.liferay.portos.bo.util; |
||||
|
||||
import it.tref.liferay.portos.bo.model.Asseverazione; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.model.Soggetto; |
||||
import it.tref.liferay.portos.bo.model.Territorio; |
||||
import it.tref.liferay.portos.bo.service.AsseverazioneLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DelegaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.TerritorioLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.Collections; |
||||
import java.util.HashMap; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Locale; |
||||
import java.util.Map; |
||||
import java.util.Set; |
||||
|
||||
import com.liferay.portal.kernel.dao.orm.QueryUtil; |
||||
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.util.LocaleUtil; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
import com.liferay.portal.kernel.workflow.WorkflowConstants; |
||||
import com.liferay.portal.model.User; |
||||
import com.liferay.portal.service.UserLocalServiceUtil; |
||||
|
||||
public class AsseverazioniUtil { |
||||
|
||||
public static final String STATO_ASSEGNATA = "AS"; |
||||
public static final String STATO_ESEGUITA = "ES"; |
||||
public static final String STATO_ANNULLATA = "AN"; |
||||
public static final String STATO_EXPIRED = "EX"; |
||||
|
||||
public static final String ASSEVERAZIONE_DA_APPLICATIVO = "AP"; |
||||
public static final String ASSEVERAZIONE_DA_ALLEGATO = "AL"; |
||||
|
||||
public static boolean hasAsseverazioniAttive(long dettPraticaId) throws SystemException { |
||||
|
||||
return AsseverazioneLocalServiceUtil.countByDettPratica_InEsito(dettPraticaId, new String[] { STATO_ASSEGNATA, |
||||
STATO_ESEGUITA }) > 0; |
||||
} |
||||
|
||||
public static boolean hasCambioStatoAsseverazione(long userId, long asseverazioneId) throws PortalException, |
||||
SystemException { |
||||
|
||||
Asseverazione asseverazione = AsseverazioneLocalServiceUtil.getAsseverazione(asseverazioneId); |
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(asseverazione.getDettPraticaId()); |
||||
User user = UserLocalServiceUtil.getUser(userId); |
||||
return (asseverazione.getCodiceFiscale().equalsIgnoreCase(user.getScreenName()) || dettPratica.getUserId() == userId) |
||||
&& dettPratica.getStatus() == WorkflowConstants.STATUS_DRAFT; |
||||
} |
||||
|
||||
public static boolean hasRichiediAsseverazioni(long userId, long dettPraticaId) throws PortalException, |
||||
SystemException { |
||||
|
||||
DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); |
||||
return !hasAsseverazioniAttive(dettPraticaId) && dettPratica.getUserId() == userId |
||||
&& ValidazionePraticaUtil.praticaIsCompleta(dettPraticaId) |
||||
&& dettPratica.getStatus() == WorkflowConstants.STATUS_DRAFT; |
||||
} |
||||
|
||||
public static boolean hasAnnullaAsseverazioni(long userId, long dettPraticaId) throws PortalException, |
||||
SystemException { |
||||
|
||||
DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); |
||||
return hasAsseverazioniAttive(dettPraticaId) && dettPratica.getUserId() == userId |
||||
&& dettPratica.getStatus() == WorkflowConstants.STATUS_DRAFT; |
||||
} |
||||
|
||||
public static boolean hasGestisciFileAsseverazione(long userId, long asseverazioneId) throws PortalException, |
||||
SystemException { |
||||
|
||||
Asseverazione asseverazione = AsseverazioneLocalServiceUtil.getAsseverazione(asseverazioneId); |
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(asseverazione.getDettPraticaId()); |
||||
return dettPratica.getUserId() == userId && dettPratica.getStatus() == WorkflowConstants.STATUS_DRAFT; |
||||
} |
||||
|
||||
public static boolean hasAsseverazioneAttiva(long userId, long dettPraticaId) throws PortalException, |
||||
SystemException { |
||||
|
||||
User user = UserLocalServiceUtil.getUser(userId); |
||||
return AsseverazioneLocalServiceUtil.countByDettPratica_CodiceFiscale_InEsito(dettPraticaId, |
||||
user.getScreenName(), new String[] { STATO_ASSEGNATA }) > 0; |
||||
} |
||||
|
||||
public static String ASSEVERAZIONI_DOMANDA = "asseverazioni_domanda"; |
||||
public static String ASSEVERAZIONI_VARIANTE = "asseverazioni_variante"; |
||||
public static String ASSEVERAZIONI_INTEGRAZIONE = "asseverazioni_integrazione"; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final Map<String, List<String>> REQUIRED = new HashMap<String, List<String>>() { |
||||
{ |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A02, |
||||
Arrays.<String> asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A03, |
||||
Arrays.<String> asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A04, |
||||
Arrays.<String> asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A08, |
||||
Arrays.<String> asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A10, |
||||
Arrays.<String> asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A13, |
||||
Arrays.<String> asList(TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A15, |
||||
Arrays.<String> asList(TipoSoggettoUtil.GEOLOGO, TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
// Domanda
|
||||
put(ASSEVERAZIONI_DOMANDA, Arrays.<String> asList(TipoSoggettoUtil.DIRETTORE_LAVORI, |
||||
TipoSoggettoUtil.PROGETTISTA, TipoSoggettoUtil.DITTA, TipoSoggettoUtil.COLLAUDATORE, |
||||
TipoSoggettoUtil.TITOLARE_DIGITALE)); |
||||
// Variante
|
||||
put(ASSEVERAZIONI_VARIANTE, Collections.<String> emptyList()); |
||||
// Integrazioni
|
||||
put(ASSEVERAZIONI_INTEGRAZIONE, Collections.<String> emptyList()); |
||||
// Fine Lavori
|
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_GIORNALE_LAVORI, |
||||
Arrays.<String> asList(TipoSoggettoUtil.DIRETTORE_LAVORI)); |
||||
// Collaudo
|
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_RELAZIONE_COLLAUDO, |
||||
Arrays.<String> asList(TipoSoggettoUtil.COLLAUDATORE)); |
||||
} |
||||
}; |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static final Map<String, List<String>> recommended = new HashMap<String, List<String>>() { |
||||
{ |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A04, Arrays.asList(TipoSoggettoUtil.DITTA)); |
||||
put(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A10, Arrays.asList(TipoSoggettoUtil.DITTA)); |
||||
} |
||||
}; |
||||
|
||||
private static final List<String> oneIsEnough = Arrays.<String> asList(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A11, |
||||
DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A12, DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17, |
||||
DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_ALTRI, DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_DELEGA); |
||||
|
||||
public static boolean isAsseverazioneDomandaRequiredByTipoSoggetto(long dettPraticaId, String tipoSoggetto) |
||||
throws PortalException, SystemException { |
||||
|
||||
DettPratica dettPratica = DettPraticaServiceUtil.getDettPratica(dettPraticaId); |
||||
long intPraticaId = dettPratica.getIntPraticaId(); |
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); |
||||
if (TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE.equalsIgnoreCase(dettPratica.getTipoIntegrazione()) |
||||
|| TipoIntegrazioneUtil.VARIANTE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
Set<Soggetto> nuoviSoggetti = new HashSet<>( |
||||
SoggettoLocalServiceUtil.getValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, tipoSoggetto)); |
||||
List<String> cfNuoviSoggetti = SoggettoLocalServiceUtil.getCfValidTmpByDettPratica_TipologiaSoggetto( |
||||
dettPraticaId, tipoSoggetto); |
||||
List<String> nuoviDelegati = DelegaLocalServiceUtil.findCfByDettPratica_Tipologia_InEsito(dettPraticaId, |
||||
new String[] { tipoSoggetto }, new String[] { AsseverazioniUtil.STATO_ESEGUITA }); |
||||
nuoviDelegati.removeAll(cfNuoviSoggetti); |
||||
for (String cfDelegato : nuoviDelegati) { |
||||
nuoviSoggetti.addAll(SoggettoLocalServiceUtil.getValidTmpByIntPratica_CodiceFiscale( |
||||
dettPratica.getIntPraticaId(), cfDelegato, 0L)); |
||||
} |
||||
if (TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
User titolaredigitaleUser = UserLocalServiceUtil.getUser(intPratica.getUserId()); |
||||
Soggetto titolareDigitale = SoggettoLocalServiceUtil |
||||
.getValidTmpByIntPratica_CodiceFiscale_TipologiaSoggetto(intPraticaId, |
||||
titolaredigitaleUser.getScreenName(), tipoSoggetto, 0); |
||||
if (Validator.isNotNull(titolareDigitale) |
||||
&& tipoSoggetto.equalsIgnoreCase(titolareDigitale.getTipologiaSoggetto())) { |
||||
nuoviSoggetti.add(titolareDigitale); |
||||
} |
||||
} else if (TipoIntegrazioneUtil.VARIANTE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
if (!TipoSoggettoUtil.GEOLOGO.equalsIgnoreCase(tipoSoggetto) |
||||
&& !TipoSoggettoUtil.COLLAUDATORE.equalsIgnoreCase(tipoSoggetto)) { |
||||
List<Soggetto> soggettiPrincipali = SoggettoLocalServiceUtil |
||||
.getSoggettiPrincipaliValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, |
||||
new String[] { tipoSoggetto }); |
||||
nuoviSoggetti.addAll(soggettiPrincipali); |
||||
} |
||||
} |
||||
return nuoviSoggetti.size() > 0; |
||||
} else { |
||||
boolean collaudatoreNotRequired = dettPratica.getNoCollaudo() || dettPratica.getCollaudoStatico(); |
||||
boolean direttoreLavoriNotRequired = dettPratica.getLavoriPubblici() |
||||
|| dettPratica.getNormLavoriNoDirettore(); |
||||
boolean dittaNotRequired = dettPratica.getNormLavoriInProprio() || dettPratica.getLavoriPubblici(); |
||||
if (TipoSoggettoUtil.TITOLARE_DIGITALE.equalsIgnoreCase(tipoSoggetto)) { |
||||
return true; |
||||
} else if (TipoSoggettoUtil.DIRETTORE_LAVORI.equalsIgnoreCase(tipoSoggetto) && direttoreLavoriNotRequired) { |
||||
return checkAsseverazioniRichiestaOriginaria(tipoSoggetto, dettPraticaId); |
||||
} else if (TipoSoggettoUtil.COLLAUDATORE.equalsIgnoreCase(tipoSoggetto) && collaudatoreNotRequired) { |
||||
return false; |
||||
} else if (TipoSoggettoUtil.DITTA.equalsIgnoreCase(tipoSoggetto) && dittaNotRequired) { |
||||
return false; |
||||
} else if (TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto)) { |
||||
return REQUIRED.get(ASSEVERAZIONI_DOMANDA).contains(tipoSoggetto); |
||||
} else if (REQUIRED.containsKey(ASSEVERAZIONI_DOMANDA)) { |
||||
return checkAsseverazioniRichiestaOriginaria(tipoSoggetto, dettPraticaId); |
||||
} |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
public static boolean isAsseverazioneDomandaRecommendedByTipoSoggetto(long dettPraticaId, String tipoSoggetto) |
||||
throws PortalException, SystemException { |
||||
|
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); |
||||
if (TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE.equalsIgnoreCase(dettPratica.getTipoIntegrazione()) |
||||
|| TipoIntegrazioneUtil.VARIANTE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
return false; |
||||
} |
||||
if (recommended.containsKey(ASSEVERAZIONI_DOMANDA)) { |
||||
return recommended.get(ASSEVERAZIONI_DOMANDA).contains(tipoSoggetto); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
public static boolean isAsseverazioneRequiredByCodiceDoc(String codiceDoc, String tipoSoggetto) { |
||||
|
||||
if (REQUIRED.containsKey(codiceDoc)) { |
||||
return REQUIRED.get(codiceDoc).contains(tipoSoggetto); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
public static boolean isAsseverazioneRecommendedByCodiceDoc(String codiceDoc, String tipoSoggetto) { |
||||
|
||||
if (recommended.containsKey(codiceDoc)) { |
||||
return recommended.get(codiceDoc).contains(tipoSoggetto); |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
public static boolean allAsseverazioniCompleted(long dettPraticaId) throws SystemException, PortalException { |
||||
|
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(dettPraticaId); |
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(dettPratica.getIntPraticaId()); |
||||
|
||||
if (TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE.equalsIgnoreCase(dettPratica.getTipoIntegrazione()) |
||||
|| TipoIntegrazioneUtil.VARIANTE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
boolean soggetti = false; |
||||
boolean delegati = false; |
||||
List<Asseverazione> asseverazioniEseguite = AsseverazioneLocalServiceUtil.findByDettPratica_InEsito( |
||||
dettPraticaId, new String[] { AsseverazioniUtil.STATO_ESEGUITA }, QueryUtil.ALL_POS, |
||||
QueryUtil.ALL_POS, null); |
||||
if (asseverazioniEseguite.size() == 0) { |
||||
return false; |
||||
} |
||||
List<String> nuoviSoggetti = new ArrayList<String>( |
||||
SoggettoLocalServiceUtil.getCfValidTmpByDettPratica(dettPraticaId)); |
||||
List<String> nuoviDelegati = new ArrayList<String>( |
||||
DelegaLocalServiceUtil.findCfByDettPratica_Tipologia_InEsito(dettPraticaId, new String[] { |
||||
TipoSoggettoUtil.DIRETTORE_LAVORI, TipoSoggettoUtil.GEOLOGO, TipoSoggettoUtil.DITTA, |
||||
TipoSoggettoUtil.PROGETTISTA }, new String[] { AsseverazioniUtil.STATO_ESEGUITA })); |
||||
Set<String> cfAsseverazioni = new HashSet<>(); |
||||
for (Asseverazione asseverazione : asseverazioniEseguite) { |
||||
cfAsseverazioni.add(asseverazione.getCodiceFiscale()); |
||||
} |
||||
if (TipoIntegrazioneUtil.RICHIESTA_INTEGRAZIONE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
boolean titolareDigitale = false; |
||||
User titolaredigitaleUser = UserLocalServiceUtil.getUser(intPratica.getUserId()); |
||||
if (cfAsseverazioni.contains(titolaredigitaleUser.getScreenName())) { |
||||
titolareDigitale = true; |
||||
} |
||||
if (cfAsseverazioni.containsAll(nuoviSoggetti)) { |
||||
soggetti = true; |
||||
} |
||||
nuoviDelegati.removeAll(nuoviSoggetti); |
||||
if (cfAsseverazioni.containsAll(nuoviDelegati)) { |
||||
delegati = true; |
||||
} |
||||
if (!soggetti && delegati) { |
||||
if (cfAsseverazioni.containsAll(nuoviSoggetti)) { |
||||
soggetti = true; |
||||
} |
||||
} |
||||
return titolareDigitale && soggetti && delegati; |
||||
} else if (TipoIntegrazioneUtil.VARIANTE.equalsIgnoreCase(dettPratica.getTipoIntegrazione())) { |
||||
boolean soggettiPrincipali = false; |
||||
String[] tipoSoggetti = new String[] { TipoSoggettoUtil.DIRETTORE_LAVORI, TipoSoggettoUtil.DITTA, |
||||
TipoSoggettoUtil.PROGETTISTA }; |
||||
List<String> cfSoggettiPrincipali = SoggettoLocalServiceUtil |
||||
.getCfSoggettiPrincipaliValidTmpByDettPratica_TipologiaSoggetto(dettPraticaId, tipoSoggetti); |
||||
if (cfAsseverazioni.containsAll(cfSoggettiPrincipali)) { |
||||
soggettiPrincipali = true; |
||||
} |
||||
nuoviSoggetti.removeAll(cfSoggettiPrincipali); |
||||
if (cfAsseverazioni.containsAll(nuoviSoggetti)) { |
||||
soggetti = true; |
||||
} |
||||
nuoviDelegati.removeAll(cfSoggettiPrincipali); |
||||
nuoviDelegati.removeAll(nuoviSoggetti); |
||||
if (cfAsseverazioni.containsAll(nuoviDelegati)) { |
||||
delegati = true; |
||||
} |
||||
return soggettiPrincipali && soggetti && delegati; |
||||
} |
||||
} else { |
||||
for (String tipoSoggetto : REQUIRED.get(ASSEVERAZIONI_DOMANDA)) { |
||||
if (isAsseverazioneDomandaRequiredByTipoSoggetto(dettPraticaId, tipoSoggetto)) { |
||||
List<Asseverazione> asseverazioniEseguite = AsseverazioneLocalServiceUtil |
||||
.findByDettPratica_Tipologia_InEsito(dettPraticaId, tipoSoggetto, |
||||
new String[] { AsseverazioniUtil.STATO_ESEGUITA }, QueryUtil.ALL_POS, |
||||
QueryUtil.ALL_POS, null); |
||||
if (asseverazioniEseguite.size() == 0) { |
||||
return false; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
public static boolean isRequiredTerna(String codiceDoc, List<Soggetto> ditte, List<Soggetto> committenti, |
||||
DettPratica dettPratica) throws SystemException { |
||||
|
||||
if (codiceDoc.equals(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_A17)) { |
||||
if (SoggettiUtil.isCommittenteAndDitta(committenti, ditte) |
||||
&& SoggettiUtil.isCollaudatorePresent(dettPratica.getDettPraticaId())) |
||||
return true; |
||||
else if (SoggettiUtil.isCommittenteAndDitta(committenti, ditte) |
||||
&& ValidazionePraticaUtil.isCollaudatoreRequired(dettPratica)) |
||||
return true; |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
public static boolean isEnoughOne(String codiceDoc) { |
||||
|
||||
return oneIsEnough.contains(codiceDoc); |
||||
} |
||||
|
||||
public static boolean signaturesContains(long intPraticaId, String tipoSoggetto, List<String> signatures) |
||||
throws SystemException { |
||||
|
||||
for (String sign : signatures) { |
||||
List<Soggetto> soggetti = SoggettoLocalServiceUtil.findByIntPratica_CodiceFiscale(intPraticaId, sign); |
||||
for (Soggetto soggetto : soggetti) { |
||||
if (soggetto.getTipologiaSoggetto().equals(tipoSoggetto)) { |
||||
return true; |
||||
} |
||||
} |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
@SuppressWarnings("serial") |
||||
public static final Map<String, String> iconMapper = new HashMap<String, String>() { |
||||
{ |
||||
put(TipoSoggettoUtil.COMMITTENTE, "fa-bullseye"); |
||||
put(TipoSoggettoUtil.DIRETTORE_LAVORI, "fa-bullhorn"); |
||||
put(TipoSoggettoUtil.DITTA, "fa-industry"); |
||||
put(TipoSoggettoUtil.GEOLOGO, "fa-globe"); |
||||
put(TipoSoggettoUtil.COLLAUDATORE, "fa-wrench"); |
||||
put(TipoSoggettoUtil.PROGETTISTA, "fa-object-ungroup"); |
||||
} |
||||
}; |
||||
|
||||
public static String retrieveAsseverazioneText(Asseverazione asseverazione, String codiceFiscale) |
||||
throws PortalException, SystemException { |
||||
|
||||
if (!codiceFiscale.equalsIgnoreCase(asseverazione.getCodiceFiscale())) { |
||||
return StringPool.BLANK; |
||||
} |
||||
Object[] params = new Object[] {}; |
||||
String result = StringPool.BLANK; |
||||
String tipoAsseverazione = asseverazione.getTipologia(); |
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(asseverazione.getDettPraticaId()); |
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(asseverazione.getIntPraticaId()); |
||||
Soggetto soggetto = SoggettoLocalServiceUtil.getValidTmpByIntPratica_CodiceFiscale_TipologiaSoggetto( |
||||
asseverazione.getIntPraticaId(), codiceFiscale, asseverazione.getTipologia(), 0); |
||||
switch (tipoAsseverazione) { |
||||
case TipoSoggettoUtil.COLLAUDATORE: |
||||
params = new Object[] { |
||||
soggetto.getDescrizioneCompleta(), |
||||
("albo-altro".equalsIgnoreCase(soggetto.getAlbo()) ? soggetto.getAlboDescr() : soggetto |
||||
.getAlbo()), soggetto.getProvinciaAlbo(), soggetto.getNumIscrAlbo() }; |
||||
break; |
||||
case TipoSoggettoUtil.COMMITTENTE: |
||||
params = new Object[] { soggetto.getDescrizioneCompleta() }; |
||||
break; |
||||
case TipoSoggettoUtil.DIRETTORE_LAVORI: |
||||
params = new Object[] { |
||||
soggetto.getDescrizioneCompleta(), |
||||
(SoggettiUtil.isSoggettoPrincipale(soggetto.getSoggettoId(), dettPratica.getDettPraticaId()) ? "Principale" |
||||
: StringPool.BLANK) |
||||
+ (Validator.isNull(soggetto.getAmbitoProfessione()) ? StringPool.BLANK : (soggetto |
||||
.getAmbitoProfessione().equalsIgnoreCase("ambitoProf-altro") ? soggetto |
||||
.getAmbitoAttivita() : LanguageUtil.get(Locale.ITALIAN, "label-ambito-" |
||||
+ soggetto.getAmbitoProfessione()))), soggetto.getAlbo(), |
||||
soggetto.getProvinciaAlbo(), soggetto.getNumIscrAlbo() }; |
||||
break; |
||||
case TipoSoggettoUtil.DITTA: |
||||
params = new Object[] { |
||||
soggetto.getCodiceFiscale().toUpperCase() + " - " + soggetto.getLegaleRap(), |
||||
soggetto.getDenominazione() |
||||
+ StringPool.SPACE |
||||
+ (SoggettiUtil.isSoggettoPrincipale(soggetto.getSoggettoId(), |
||||
dettPratica.getDettPraticaId()) ? "Principale" : StringPool.BLANK) |
||||
+ StringPool.SPACE |
||||
+ (Validator.isNull(soggetto.getAmbitoProfessione()) ? StringPool.BLANK : (soggetto |
||||
.getAmbitoProfessione().equalsIgnoreCase("ambitoProf-altro") ? soggetto |
||||
.getAmbitoAttivita() : LanguageUtil.get(Locale.ITALIAN, "label-ambito-" |
||||
+ soggetto.getAmbitoProfessione()))) }; |
||||
break; |
||||
case TipoSoggettoUtil.GEOLOGO: |
||||
params = new String[] { soggetto.getDescrizioneCompleta() }; |
||||
break; |
||||
case TipoSoggettoUtil.PROGETTISTA: |
||||
Territorio territorio = TerritorioLocalServiceUtil.getTerritorio(intPratica.getTerritorioId()); |
||||
params = new Object[] { |
||||
soggetto.getDescrizioneCompleta(), |
||||
(SoggettiUtil.isSoggettoPrincipale(soggetto.getSoggettoId(), dettPratica.getDettPraticaId()) ? "Principale" |
||||
: StringPool.BLANK) |
||||
+ (Validator.isNull(soggetto.getAmbitoProfessione()) ? StringPool.BLANK : (soggetto |
||||
.getAmbitoProfessione().equalsIgnoreCase("ambitoProf-altro") ? soggetto |
||||
.getAmbitoAttivita() : LanguageUtil.get(Locale.ITALIAN, "label-ambito-" |
||||
+ soggetto.getAmbitoProfessione()))), soggetto.getAlbo(), |
||||
soggetto.getProvinciaAlbo(), soggetto.getNumIscrAlbo(), |
||||
dettPratica.getTcNuovaCostruzione() ? "X" : StringPool.SPACE, |
||||
dettPratica.getTcAdeguamentoSismico() ? "X" : StringPool.SPACE, |
||||
dettPratica.getTcMiglioramentoSismico() ? "X" : StringPool.SPACE, |
||||
dettPratica.getTcRiparazioneInterventoLocale() ? "X" : StringPool.SPACE, territorio.getZona(), |
||||
territorio.getFascia() }; |
||||
break; |
||||
} |
||||
result = LanguageUtil.format(LocaleUtil.ITALIAN, "confirm-asseverazione-" + tipoAsseverazione, params); |
||||
// Added fixed bottom
|
||||
result += LanguageUtil.get(LocaleUtil.ITALIAN, "confirm-asseverazione-bottom"); |
||||
return result; |
||||
} |
||||
|
||||
/** |
||||
* @author ADT |
||||
*/ |
||||
private static boolean checkAsseverazioniRichiestaOriginaria(String tipoSoggetto, long dettPraticaId) |
||||
throws SystemException { |
||||
|
||||
List<Soggetto> soggettiPerTipologia = SoggettoLocalServiceUtil.findByDettPratica_TipologiaSoggetto( |
||||
dettPraticaId, tipoSoggetto); |
||||
return soggettiPerTipologia != null && soggettiPerTipologia.size() > 0; |
||||
} |
||||
} |
@ -1,233 +0,0 @@
|
||||
package it.tref.liferay.portos.bo.util; |
||||
|
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.IntPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.Constants; |
||||
import it.tref.liferay.portos.bo.shared.util.StatoPraticaConstants; |
||||
import it.tref.liferay.portos.bo.shared.util.TipoIntegrazioneUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.Collections; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
import com.liferay.portal.kernel.exception.PortalException; |
||||
import com.liferay.portal.kernel.exception.SystemException; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.workflow.WorkflowConstants; |
||||
|
||||
public class AzioniPraticheUtil { |
||||
|
||||
public static final String ACTION_AGGIUNGI_SOGGETTO = "AGGIUNGI_SOGGETTO"; |
||||
public static final String ACTION_RIMUOVI_SOGGETTO = "RIMUOVI_SOGGETTO"; |
||||
public static final String ACTION_VARIAZIONE_SOGGETTI = "VARIAZIONE_SOGGETTI"; |
||||
public static final String ACTION_VARIANTE = "VARIANTE"; |
||||
public static final String ACTION_FL_PARZIALE = "FL_PARZIALE"; |
||||
public static final String ACTION_FL_TOTALE = "FL_TOTALE"; |
||||
public static final String ACTION_ANNULLA = "ANNULLA"; |
||||
public static final String ACTION_CO_PARZIALE = "CO_PARZIALE"; |
||||
public static final String ACTION_CO_TOTALE = "CO_TOTALE"; |
||||
public static final String ACTION_INTEGRAZIONE = "INTEGRAZIONE"; |
||||
|
||||
public static final String STATE_COMPILAZIONE = "COMPILAZIONE"; |
||||
public static final String STATE_VIDIMATO = "VIDIMATO"; |
||||
public static final String STATE_SOTTOPOSTO_A_PARERE_AUTORIZZAZIONE = "SP_AUTORIZZAZIONE"; |
||||
public static final String STATE_SOTTOPOSTO_A_PARERE_DEPOSITO = "SP_DEPOSITO"; |
||||
public static final String STATE_ANNULLATO = "ANNULLATO"; |
||||
public static final String STATE_NON_CONFORME = "NON_CONFORME"; |
||||
public static final String NON_AUTORIZZATA = "NON_AUTORIZZATA"; |
||||
public static final String STATE_INTEGRAZIONE_AUTORIZZAZIONE = "INTEGRAZIONE_AUTORIZZAZIONE"; |
||||
public static final String STATE_INTEGRAZIONE_DEPOSITO = "INTEGRAZIONE_DEPOSITO"; |
||||
public static final String STATE_FINE_LAVORI_PARZIALE = "FINE_LAVORI_PARZIALE"; |
||||
public static final String STATE_FINE_LAVORI_TOTALE = "FINE_LAVORI_TOTALE"; |
||||
public static final String STATE_COLLAUDO_PARZIALE = "COLLAUDO_PARZIALE"; |
||||
|
||||
private static final List<String> ALL_ACTIONS = Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, |
||||
ACTION_RIMUOVI_SOGGETTO, ACTION_VARIAZIONE_SOGGETTI, ACTION_VARIANTE, ACTION_FL_PARZIALE, ACTION_FL_TOTALE, |
||||
ACTION_ANNULLA, ACTION_CO_PARZIALE, ACTION_CO_TOTALE); |
||||
|
||||
@SuppressWarnings("serial") |
||||
private static Map<String, List<String>> STATE_ACTIONS_MAP = new HashMap<String, List<String>>() { |
||||
{ |
||||
put(STATE_VIDIMATO, ALL_ACTIONS); |
||||
put(STATE_SOTTOPOSTO_A_PARERE_AUTORIZZAZIONE, Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, |
||||
ACTION_RIMUOVI_SOGGETTO, ACTION_VARIAZIONE_SOGGETTI, ACTION_ANNULLA)); |
||||
put(STATE_SOTTOPOSTO_A_PARERE_DEPOSITO, ALL_ACTIONS); |
||||
put(STATE_ANNULLATO, Collections.<String> emptyList()); |
||||
put(STATE_NON_CONFORME, Collections.<String> emptyList()); |
||||
put(NON_AUTORIZZATA, Collections.<String> emptyList()); |
||||
put(STATE_INTEGRAZIONE_AUTORIZZAZIONE, Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, |
||||
ACTION_RIMUOVI_SOGGETTO, ACTION_INTEGRAZIONE, ACTION_ANNULLA)); |
||||
put(STATE_INTEGRAZIONE_DEPOSITO, Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, ACTION_RIMUOVI_SOGGETTO, |
||||
ACTION_INTEGRAZIONE, ACTION_ANNULLA)); |
||||
put(STATE_COMPILAZIONE, |
||||
Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, ACTION_RIMUOVI_SOGGETTO, ACTION_ANNULLA)); |
||||
put(STATE_FINE_LAVORI_PARZIALE, Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, ACTION_RIMUOVI_SOGGETTO, |
||||
ACTION_VARIANTE, ACTION_FL_PARZIALE, ACTION_FL_TOTALE, ACTION_CO_PARZIALE)); |
||||
put(STATE_FINE_LAVORI_TOTALE, Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, ACTION_RIMUOVI_SOGGETTO, |
||||
ACTION_CO_TOTALE, ACTION_CO_PARZIALE)); |
||||
put(STATE_COLLAUDO_PARZIALE, Arrays.<String> asList(ACTION_AGGIUNGI_SOGGETTO, ACTION_RIMUOVI_SOGGETTO, |
||||
ACTION_VARIANTE, ACTION_CO_PARZIALE, ACTION_CO_TOTALE)); |
||||
} |
||||
}; |
||||
|
||||
public static boolean isAllowedAction(long intPraticaId, String action) throws PortalException, SystemException { |
||||
|
||||
if (!ALL_ACTIONS.contains(action) && !ACTION_INTEGRAZIONE.equalsIgnoreCase(action)) { |
||||
throw new SystemException("Azione non presente: " + action); |
||||
} |
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); |
||||
boolean isDeposito = isDeposito(intPraticaId); |
||||
boolean isAutorizzazione = isAutorizzazione(intPraticaId); |
||||
String status = StringPool.BLANK; |
||||
if (intPratica.getStatus() == WorkflowConstants.STATUS_PENDING) { |
||||
if (intPratica.hasRichiestaIntegrazioneAttiva()) { |
||||
if (isDeposito) { |
||||
status = STATE_INTEGRAZIONE_DEPOSITO; |
||||
} else if (isAutorizzazione) { |
||||
status = STATE_INTEGRAZIONE_AUTORIZZAZIONE; |
||||
} else { |
||||
throw new SystemException("Tipo pratica non esiste"); |
||||
} |
||||
} else if (isDeposito) { |
||||
status = STATE_SOTTOPOSTO_A_PARERE_DEPOSITO; |
||||
} else if (isAutorizzazione) { |
||||
status = STATE_SOTTOPOSTO_A_PARERE_AUTORIZZAZIONE; |
||||
} else { |
||||
throw new SystemException("Tipo pratica non esiste"); |
||||
} |
||||
} else if (StatoPraticaConstants.CONFORME.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_VIDIMATO; |
||||
} else if (StatoPraticaConstants.NON_CONFORME.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_NON_CONFORME; |
||||
} else if (StatoPraticaConstants.AUTORIZZATA.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_VIDIMATO; |
||||
} else if (StatoPraticaConstants.NON_AUTORIZZATA.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = NON_AUTORIZZATA; |
||||
} else if (StatoPraticaConstants.ANNULLATA.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_ANNULLATO; |
||||
} else if (StatoPraticaConstants.VIDIMATA.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_VIDIMATO; |
||||
} else if (StatoPraticaConstants.FINE_LAVORI.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_FINE_LAVORI_TOTALE; |
||||
} else if (StatoPraticaConstants.FINE_LAVORI_PARZIALE.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_FINE_LAVORI_PARZIALE; |
||||
} else if (intPratica.getStatus() == WorkflowConstants.STATUS_ANY) { |
||||
status = STATE_COMPILAZIONE; |
||||
} else if (StatoPraticaConstants.COLLAUDO_PARZIALE.equalsIgnoreCase(intPratica.getStatoPratica())) { |
||||
status = STATE_COLLAUDO_PARZIALE; |
||||
} |
||||
List<String> actionList = STATE_ACTIONS_MAP.get(status); |
||||
if ((actionList == null) || !actionList.contains(action)) { |
||||
return false; |
||||
} |
||||
if (!action.equalsIgnoreCase(ACTION_INTEGRAZIONE) && intPratica.getCollaudoTotale()) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_FL_PARZIALE) && intPratica.getFineLavoriTotale()) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_FL_TOTALE) && intPratica.getFineLavoriTotale()) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_CO_PARZIALE) && !intPratica.getFineLavoriParziale()) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_CO_TOTALE) && !intPratica.getFineLavoriTotale()) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_VARIANTE) && intPratica.getFineLavoriTotale()) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_ANNULLA) |
||||
&& (intPratica.getFineLavoriTotale() || intPratica.getFineLavoriParziale() || intPratica |
||||
.getCollaudoParziale())) { |
||||
return false; |
||||
} |
||||
if (action.equalsIgnoreCase(ACTION_RIMUOVI_SOGGETTO) && intPratica.getCollaudoParziale()) { |
||||
return false; |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
public static boolean canPrintFascicolo(long intPraticaId) throws PortalException, SystemException { |
||||
|
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); |
||||
if ((!intPratica.getStatoPratica().equals(StringPool.BLANK) || intPratica.isValidata()) |
||||
&& !intPratica.getNumeroProgetto().equals(StringPool.BLANK)) { |
||||
return true; |
||||
} else { |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
public static boolean canPrintFascicoloVariante(long intPraticaId) throws PortalException, SystemException { |
||||
|
||||
int nVarianti = DettPraticaLocalServiceUtil.countCompletedByIntPraticaAndTipoPratica(intPraticaId, |
||||
Arrays.asList(new String[] { TipoIntegrazioneUtil.VARIANTE })); |
||||
if (nVarianti > 0) { |
||||
return true; |
||||
} else { |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
public static boolean canAddSoggetto(long intPraticaId, String tipoSoggetto) throws PortalException, |
||||
SystemException { |
||||
|
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); |
||||
if (!isAllowedAction(intPraticaId, ACTION_AGGIUNGI_SOGGETTO)) { |
||||
return false; |
||||
} |
||||
if ((!TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto) && !TipoSoggettoUtil.COLLAUDATORE |
||||
.equalsIgnoreCase(tipoSoggetto)) && (intPratica.isFineLavoriTotale())) { |
||||
return false; |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
public static boolean canRemoveSoggetto(long intPraticaId, String tipoSoggetto) throws PortalException, |
||||
SystemException { |
||||
|
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); |
||||
if (!isAllowedAction(intPraticaId, ACTION_RIMUOVI_SOGGETTO)) { |
||||
return false; |
||||
} |
||||
if ((!TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(tipoSoggetto) && !TipoSoggettoUtil.COLLAUDATORE |
||||
.equalsIgnoreCase(tipoSoggetto)) |
||||
&& (intPratica.isFineLavoriTotale() || intPratica.getCollaudoParziale())) { |
||||
return false; |
||||
} |
||||
if ((TipoSoggettoUtil.DIRETTORE_LAVORI.equalsIgnoreCase(tipoSoggetto) || TipoSoggettoUtil.DITTA |
||||
.equalsIgnoreCase(tipoSoggetto)) && intPratica.isFineLavoriParziale()) { |
||||
return false; |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
public static boolean isDeposito(long intPraticaId) throws PortalException, SystemException { |
||||
|
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); |
||||
return intPratica.getTipoPratica().equalsIgnoreCase(Constants.TIPO_PRATICA_DEPOSITO); |
||||
} |
||||
|
||||
public static boolean isAutorizzazione(long intPraticaId) throws PortalException, SystemException { |
||||
|
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.getIntPratica(intPraticaId); |
||||
return intPratica.getTipoPratica().equalsIgnoreCase(Constants.TIPO_PRATICA_AUTORIZZAZIONE); |
||||
} |
||||
|
||||
public static boolean canAddVariazioneSoggetti(long intPraticaId) throws PortalException, SystemException { |
||||
|
||||
IntPratica intPratica = IntPraticaLocalServiceUtil.fetchIntPratica(intPraticaId); |
||||
if (!intPratica.getStatoPratica().equals(StringPool.BLANK) |
||||
&& !intPratica.getNumeroProgetto().equals(StringPool.BLANK)) { |
||||
return true; |
||||
} else { |
||||
return false; |
||||
} |
||||
} |
||||
} |
File diff soppresso perché troppo grande
Load Diff
File diff soppresso perché troppo grande
Load Diff
File diff soppresso perché troppo grande
Load Diff
@ -1,11 +1,7 @@
|
||||
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
||||
<%@ include file="/html/init.jsp" %> |
||||
|
||||
<%@page import="it.tref.liferay.portos.bo.search.ControlloPraticaAdvancedSearch"%> |
||||
<%@page import="javax.portlet.PortletURL"%> |
||||
|
||||
<% |
||||
String tabNames = "Tab_MieiTask,Tab_TaskMieiRuoli,Tab_AtriTask"; |
||||
|
||||
String tabs1 = ParamUtil.getString(request, "tabs1", StringUtil.split(tabNames)[0]); |
||||
%> |
Some files were not shown because too many files have changed in this diff Show More
Caricamento…
Reference in new issue