@ -76,19 +76,19 @@ public class ValidazionePraticaUtil {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
IntPratica intPratica = IntPraticaServiceUtil . getIntPratica ( dettPratica . getIntPraticaId ( ) ) ;
return ! intPratica . getSospesa ( ) & & ! intPratica . isAnnullata ( )
& & ! AsseverazioniUtil . hasAsseverazioniAttive ( dettPraticaId )
& & ! ValidazionePraticaUtil . pagamentoIsEnable ( dettPraticaId )
& & ! AsseverazioniUtil . hasAsseverazioniAttive ( dettPraticaId ) & & ! pagamentoIsEnable ( dettPraticaId )
& & dettPratica . getStatus ( ) = = WorkflowConstants . STATUS_DRAFT ;
}
public static boolean praticaIsCompleta ( long dettPraticaId ) throws SystemException , PortalException {
DettPratica dettPratica = DettPraticaLocalServiceUtil . getDettPratica ( dettPraticaId ) ;
return isDettagliPrincipaliCompleta ( dettPraticaId )
& & isAnagrafeSoggettiCompleta ( dettPraticaId )
& & isDescrizioneEdificioCompleta ( dettPraticaId )
& & isSezioneGeologicaCompleta ( dettPraticaId )
& & ( ( dettPratica . getStatus ( ) ! = WorkflowConstants . STATUS_DRAFT ) | | isSezioneAllegatiCompleta ( dettPraticaId ) ) ;
return notCompletedDettagliPrincipali ( dettPraticaId ) . isEmpty ( )
& & notCompletedAnagrafeSoggetti ( dettPraticaId ) . isEmpty ( )
& & notCompletedDescrizioneEdificio ( dettPraticaId ) . isEmpty ( )
& & notCompletedSezioneGeologica ( dettPraticaId ) . isEmpty ( )
& & ( ( dettPratica . getStatus ( ) ! = WorkflowConstants . STATUS_DRAFT ) | | notCompletedSezioniAllegati (
dettPraticaId ) . isEmpty ( ) ) ;
}
public static boolean canEditPratica ( long intPraticaId ) throws PortalException , SystemException {
@ -120,7 +120,8 @@ public class ValidazionePraticaUtil {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
IntPratica intPratica = IntPraticaServiceUtil . getIntPratica ( dettPratica . getIntPraticaId ( ) ) ;
return isAnagrafeSoggettiCompleta ( dettPraticaId ) & & intPratica . getStatus ( ) ! = WorkflowConstants . STATUS_ANY
return notCompletedAnagrafeSoggetti ( dettPraticaId ) . isEmpty ( )
& & intPratica . getStatus ( ) ! = WorkflowConstants . STATUS_ANY
& & intPratica . getStatus ( ) ! = WorkflowConstants . STATUS_INCOMPLETE
& & TipoIntegrazioneUtil . VARIAZIONE_SOGGETTO . equals ( dettPratica . getTipoIntegrazione ( ) ) ;
}
@ -141,8 +142,9 @@ public class ValidazionePraticaUtil {
DettPratica dettPratica = DettPraticaServiceUtil . getLastEditabledByIntPraticaAndTipoPratica ( intPraticaId ,
Arrays . asList ( TipoIntegrazioneUtil . VARIANTE , TipoIntegrazioneUtil . RICHIESTA_INTEGRAZIONE ,
TipoIntegrazioneUtil . VARIAZIONE_SOGGETTO ) ) ;
return Validator . isNotNull ( dettPratica ) | | intPratica . getStatus ( ) = = WorkflowConstants . STATUS_ANY
| | intPratica . getStatus ( ) = = WorkflowConstants . STATUS_INCOMPLETE ;
return ( Validator . isNotNull ( dettPratica ) | | intPratica . getStatus ( ) = = WorkflowConstants . STATUS_ANY | | intPratica
. getStatus ( ) = = WorkflowConstants . STATUS_INCOMPLETE )
& & ! StatoPraticaConstants . NON_AUTORIZZATA . equalsIgnoreCase ( intPratica . getStatoPratica ( ) ) ;
}
public static boolean praticaCanAddVariante ( long intPraticaId ) throws SystemException , PortalException {
@ -327,7 +329,8 @@ public class ValidazionePraticaUtil {
return praticaIsCompleta ( dettPraticaId ) & & ! DelegheUtil . hasDelegheCompilazioneAttive ( dettPraticaId )
& & AsseverazioniUtil . allAsseverazioniCompleted ( dettPraticaId )
// se è un'integrazione non si paga
& & ! intPratica . getStatoPratica ( ) . equals ( StatoPraticaConstants . INTEGRAZIONE ) ;
& & ! intPratica . getStatoPratica ( ) . equals ( StatoPraticaConstants . INTEGRAZIONE )
& & ! dettPratica . getTipoIntegrazione ( ) . equals ( TipoIntegrazioneUtil . VARIAZIONE_SOGGETTO ) ;
}
public static boolean canCompleteDettPraticaEsente ( long dettPraticaId ) throws SystemException , PortalException {
@ -391,25 +394,6 @@ public class ValidazionePraticaUtil {
& & ! AsseverazioniUtil . hasAsseverazioniAttive ( dettPraticaId ) ;
}
public static boolean isSectionCompleted ( String section , long dettPraticaId ) throws PortalException ,
SystemException {
switch ( section ) {
case SezioniUtil . SEZIONE_DETTAGLI_PRINCIPALI :
return isDettagliPrincipaliCompleta ( dettPraticaId ) ;
case SezioniUtil . SEZIONE_ANAGRAFE_SOGGETTI :
return isAnagrafeSoggettiCompleta ( dettPraticaId ) ;
case SezioniUtil . SEZIONE_DESCRIZIONE_EDIFICIO :
return isDescrizioneEdificioCompleta ( dettPraticaId ) ;
case SezioniUtil . SEZIONE_GEOLOGICA :
return isSezioneGeologicaCompleta ( dettPraticaId ) ;
case SezioniUtil . SEZIONE_ALLEGATI :
return isSezioneAllegatiCompleta ( dettPraticaId ) ;
default :
return false ;
}
}
public static List < String > notCompletedSection ( String section , long dettPraticaId ) throws PortalException ,
SystemException {
@ -434,41 +418,6 @@ public class ValidazionePraticaUtil {
return notCompletedSezioneGeologica ( dettPraticaId ) . isEmpty ( ) ;
}
private static boolean isDettagliPrincipaliCompleta ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
IntPratica intPratica = IntPraticaServiceUtil . getIntPratica ( dettPratica . getIntPraticaId ( ) ) ;
Territorio territorio = TerritorioLocalServiceUtil . getTerritorio ( intPratica . getTerritorioId ( ) ) ;
boolean ag = true ;
if ( ! territorio . getZona ( ) . equals ( Constants . ZONA_2 ) & & ! territorio . getZona ( ) . equals ( Constants . ZONA_4 ) ) {
ag = Validator . isNotNull ( dettPratica . getAg ( ) ) ;
}
boolean aiSensi = AzioniPraticheUtil . isDeposito ( intPratica . getIntPraticaId ( ) ) ? ( dettPratica . getNormDpr01Dep ( ) | | dettPratica
. getNormDpr02Dep ( ) ) : ( dettPratica . getNormDpr01Aut ( ) | | dettPratica . getNormDpr02Aut ( ) ) ;
boolean nelRispetto = dettPratica . getNormDm01 ( ) | | dettPratica . getNormDm02 ( ) | | dettPratica . getNormDm2018 ( ) ;
boolean sismaBonus = ! dettPratica . getNormSismaBonus ( )
| | ( Validator . isNotNull ( dettPratica . getClRischioPreInt ( ) ) | | Validator . isNotNull ( dettPratica
. getClRischioPostInt ( ) ) ) ;
boolean tipologiaCostruttiva = intPratica . getTipoProcedura ( ) . equalsIgnoreCase ( Constants . PROCEDURA_C )
| | dettPratica . getTcInCA ( ) | | dettPratica . getTcInAcciaio ( ) | | dettPratica . getTcInMuratura ( )
| | dettPratica . getTcInLegno ( ) | | dettPratica . getTcAltro ( ) ;
boolean intervFinPub = ! dettPratica . getIntervFinPub ( ) | | Validator . isNotNull ( dettPratica . getIntervFinPubDesc ( ) ) ;
boolean controllo = ag
& & aiSensi
& & nelRispetto
& & sismaBonus
& & tipologiaCostruttiva
& & intervFinPub
& & Validator . isNotNull ( dettPratica . getDescLongIntervento ( ) )
& & Validator . isNotNull ( dettPratica . getDestinazione ( ) )
& & ( dettPratica . getTcNuovaCostruzione ( ) | | dettPratica . getTcMiglioramentoSismico ( )
| | dettPratica . getTcAdeguamentoSismico ( ) | | dettPratica . getTcRiparazioneInterventoLocale ( ) | | dettPratica
. getTcNuovaCostruzioneComplessa ( ) ) & & Validator . isNotNull ( dettPratica . getVia ( ) ) ;
boolean coordinateGeografiche = Validator . isNotNull ( dettPratica . getLocalizzazioneGeografica ( ) )
& & ! ( "|||" . equals ( dettPratica . getLocalizzazioneGeografica ( ) ) ) ;
return controllo & & coordinateGeografiche ;
}
private static List < String > notCompletedDettagliPrincipali ( long dettPraticaId ) throws PortalException ,
SystemException {
@ -480,8 +429,9 @@ public class ValidazionePraticaUtil {
& & Validator . isNull ( dettPratica . getAg ( ) ) ) {
notCompleted . add ( "ag" ) ;
}
boolean aiSensi = AzioniPraticheUtil . isDeposito ( intPratica . getIntPraticaId ( ) ) ? ( dettPratica . getNormDpr01Dep ( ) | | dettPratica
. getNormDpr02Dep ( ) ) : ( dettPratica . getNormDpr01Aut ( ) | | dettPratica . getNormDpr02Aut ( ) ) ;
boolean aiSensi = AzioniPraticheUtil . isDeposito ( intPratica . getIntPraticaId ( ) )
? ( dettPratica . getNormDpr01Dep ( ) | | dettPratica . getNormDpr02Dep ( ) )
: ( dettPratica . getNormDpr01Aut ( ) | | dettPratica . getNormDpr02Aut ( ) ) ;
if ( ! aiSensi ) {
notCompleted . add ( "at-least-aiSensi" ) ;
}
@ -543,100 +493,6 @@ public class ValidazionePraticaUtil {
& & ! isRiparazioneLocale ( dettPratica ) ;
}
private static boolean isAnagrafeSoggettiCompleta ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
long intPraticaId = dettPratica . getIntPraticaId ( ) ;
boolean titolare = SoggettiUtil . isTitolareInSoggetti ( intPraticaId ) ;
boolean collaudatoreNotRequired = ! isCollaudatoreRequired ( dettPratica ) ;
boolean direttoreLavoriNotRequired = dettPratica . getLavoriPubblici ( ) ;
boolean dittaNotRequired = dettPratica . getNormLavoriInProprio ( ) | | dettPratica . getLavoriPubblici ( ) ;
boolean collaudatore = true ;
int numeroCollaudatori = 0 ;
boolean ditta = dettPratica . getNormLavoriInProprio ( ) | | dettPratica . getLavoriPubblici ( ) ;
boolean committente = false ;
boolean progettista = false ;
boolean direttore = dettPratica . getLavoriPubblici ( ) ;
boolean geologo = false ;
List < Soggetto > soggetti = SoggettoLocalServiceUtil . getValidTmpByIntPratica ( intPraticaId ) ;
for ( Soggetto soggetto : soggetti ) {
if ( ! TipoSoggettoUtil . validaCodiceFiscale ( soggetto . getCodiceFiscale ( ) , true ) ) {
return false ;
}
switch ( soggetto . getTipologiaSoggetto ( ) ) {
case TipoSoggettoUtil . COLLAUDATORE :
numeroCollaudatori + + ;
collaudatore = true ;
break ;
case TipoSoggettoUtil . COMMITTENTE :
committente = true ;
break ;
case TipoSoggettoUtil . DIRETTORE_LAVORI :
direttore = true ;
break ;
case TipoSoggettoUtil . DITTA :
ditta = true ;
break ;
case TipoSoggettoUtil . GEOLOGO :
geologo = true ;
break ;
case TipoSoggettoUtil . PROGETTISTA :
progettista = true ;
break ;
default :
break ;
}
}
boolean isDelegaCommittente = SoggettiUtil . isTitolareInCommittenti ( intPraticaId )
| | Validator . isNotNull ( dettPratica . getCodiceFiscaleDelegatoCommittente ( ) ) ;
boolean isDelegaFineLavori = direttoreLavoriNotRequired
| | Validator . isNotNull ( dettPratica . getCodiceFiscaleDelegatoFineLavori ( ) ) ;
boolean isDelegaCollaudo = collaudatoreNotRequired
| | Validator . isNotNull ( dettPratica . getCodiceFiscaleDelegatoCollaudo ( ) ) ;
boolean deleghe = isDelegaCommittente & & isDelegaFineLavori & & isDelegaCollaudo ;
boolean collaudatorePrincipale = true ;
boolean committentePrincipale = true ;
boolean direttorePrincipale = true ;
boolean dittaPrincipale = true ;
boolean geologoPrincipale = true ;
boolean progettistaPrincipale = true ;
if ( ! collaudatoreNotRequired & & collaudatore
& & Validator . isNull ( dettPratica . getCodiceFiscalePrincipaleCollaudatore ( ) ) ) {
collaudatorePrincipale = false ;
}
if ( dettPratica . getNormLavoriInProprio ( ) & & ( dettPratica . getTcInCA ( ) | | dettPratica . getTcInAcciaio ( ) )
& & ( numeroCollaudatori < 3 ) ) {
collaudatore = false ;
}
if ( committente & & Validator . isNull ( dettPratica . getCodiceFiscalePrincipaleCommittente ( ) ) ) {
committentePrincipale = false ;
}
if ( ! direttoreLavoriNotRequired & & direttore
& & Validator . isNull ( dettPratica . getCodiceFiscalePrincipaleDirettoreLavori ( ) ) ) {
direttorePrincipale = false ;
}
if ( ! dittaNotRequired & & ditta & & Validator . isNull ( dettPratica . getCodiceFiscalePrincipaleDitta ( ) ) ) {
dittaPrincipale = false ;
}
if ( geologo & & Validator . isNull ( dettPratica . getCodiceFiscalePrincipaleGeologo ( ) ) ) {
geologoPrincipale = false ;
}
if ( progettista & & Validator . isNull ( dettPratica . getCodiceFiscalePrincipaleProgettista ( ) ) ) {
progettistaPrincipale = false ;
}
boolean principali = collaudatorePrincipale & committentePrincipale & direttorePrincipale & dittaPrincipale
& geologoPrincipale & progettistaPrincipale ;
if ( dettPratica . getNormArt3com3 ( ) ) {
geologo = true ;
}
int soggettiIncompleti = SoggettoLocalServiceUtil . countTmpNotCompletedByDettPratica ( dettPraticaId ) ;
if ( soggettiIncompleti > 0 ) {
return false ;
}
return titolare & & collaudatore & & ditta & & committente & & progettista & & direttore & & geologo & & deleghe
& & principali ;
}
private static List < String > notCompletedAnagrafeSoggetti ( long dettPraticaId ) throws PortalException ,
SystemException {
@ -759,86 +615,6 @@ public class ValidazionePraticaUtil {
return notCompleted ;
}
private static boolean isDescrizioneEdificioCompleta ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
IntPratica intPratica = IntPraticaLocalServiceUtil . getIntPratica ( dettPratica . getIntPraticaId ( ) ) ;
if ( intPratica . getTipoProcedura ( ) . equalsIgnoreCase ( Constants . PROCEDURA_C ) ) {
return true ;
}
// se infrastruttura controllo solo DATI INFRASTRUTTURA
boolean infrastruttura = infrastrutture . contains ( dettPratica . getDestinazione ( ) ) ;
if ( infrastruttura ) {
return dettPratica . getDeInfStradaleStrada ( ) | | dettPratica . getDeInfStradalePonte ( )
| | dettPratica . getDeInfStradaleAltro ( ) | | dettPratica . getDeInfIdraulicaLong ( )
| | dettPratica . getDeInfIdraulicaTrasv ( ) | | dettPratica . getDeInfIdraulicaAltro ( )
| | dettPratica . getDeInfOperaAccStradale ( ) | | dettPratica . getDeInfOperaAccIdraulica ( )
| | dettPratica . getDeInfOperaAccAltro ( ) | | dettPratica . getDeInfAltraInfrastruttura ( )
| | Validator . isNotNull ( dettPratica . getDeInfAltroDesc ( ) ) ;
}
// se non infrastruttura controllo il resto
boolean controllo = Validator . isNotNull ( dettPratica . getDePiani ( ) )
& & Validator . isNotNull ( dettPratica . getDeAltezza ( ) ) & & Validator . isNotNull ( dettPratica . getDeInterrati ( ) )
& & Validator . isNotNull ( dettPratica . getDeSuperficie ( ) )
& & Validator . isNotNull ( dettPratica . getDeCostruzione ( ) ) & & Validator . isNotNull ( dettPratica . getDeUso ( ) )
& & Validator . isNotNull ( dettPratica . getDeUtilizzazione ( ) )
& & Validator . isNotNull ( dettPratica . getDePrivata ( ) ) & & Validator . isNotNull ( dettPratica . getDePubblica ( ) ) ;
boolean isComponentiCostruttiveDisabled = ! dettPratica . getTcNuovaCostruzione ( )
& & dettPratica . getTcRiparazioneInterventoLocale ( ) ;
if ( isComponentiCostruttiveDisabled ) {
return controllo ;
}
boolean fondazioni = Validator . isNotNull ( dettPratica . getDccFondazioni ( ) ) ;
boolean elevazioni = ( Validator . isNotNull ( dettPratica . getDccStruttureEleMuraturePietrame ( ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleMuratureLaterizio ( ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleMuratureMisto ( ) ) | | Validator
. isNotNull ( dettPratica . getDccStruttureEleMuratureStoriche ( ) ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleAcciaio ( ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleCA ( ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleLegno ( ) )
| | ( Validator . isNotNull ( dettPratica . getDccStruttureEleMistoCA ( ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleMistoAcciaio ( ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureEleMistoMuratura ( ) ) | | Validator
. isNotNull ( dettPratica . getDccStruttureEleMistoLegno ( ) ) )
| | Validator . isNotNull ( dettPratica . getDccStruttureElePrefabbricato ( ) )
| | ( Validator . isNotNull ( dettPratica . getDccStruttureEleAltro ( ) ) & & Validator . isNotNull ( dettPratica
. getDccStruttureEleAltroDescrizione ( ) ) ) ;
boolean orizzontamenti = Validator . isNotNull ( dettPratica . getDccOrizzontamentiCAAcciaio ( ) )
| | Validator . isNotNull ( dettPratica . getDccOrizzontamentiLamieraGrecata ( ) )
| | Validator . isNotNull ( dettPratica . getDccOrizzontamentiLegno ( ) )
| | Validator . isNotNull ( dettPratica . getDccOrizzontamentiLegnoCA ( ) )
| | Validator . isNotNull ( dettPratica . getDccOrizzontamentiVolte ( ) )
| | ( Validator . isNotNull ( dettPratica . getDccOrizzontamentiAltro ( ) ) & & Validator . isNotNull ( dettPratica
. getDccOrizzontamentiAltroDescrizione ( ) ) ) ;
boolean coperture = Validator . isNotNull ( dettPratica . getDccCopertura ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaCAAcciaio ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaLamieraGrecata ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaLeggere ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaLegno ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaLegnoCA ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaPannelli ( ) )
| | Validator . isNotNull ( dettPratica . getDccCoperturaPVCTelonati ( ) )
| | ( Validator . isNotNull ( dettPratica . getDccCoperturaAltro ( ) ) & & Validator . isNotNull ( dettPratica
. getDccCoperturaAltroDesrizione ( ) ) ) ;
boolean non_strutturali = Validator . isNotNull ( dettPratica . getDccElemNonStrutLaterizio ( ) )
| | Validator . isNotNull ( dettPratica . getDccElemNonStrutCalcestruzzo ( ) )
| | Validator . isNotNull ( dettPratica . getDccElemNonStrutCartongesso ( ) )
| | Validator . isNotNull ( dettPratica . getDccElemNonStrutLegno ( ) )
| | ( Validator . isNotNull ( dettPratica . getDccElemNonStrutAltro ( ) ) & & Validator . isNotNull ( dettPratica
. getDccElemNonStrutAltroDescrizione ( ) ) ) ;
boolean rinforzo = Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoInsCatene ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoInsCordoli ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoIniArmate ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoPlaccaggi ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoIrrSolai ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoRinforziFRP ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoTelaiECerchiature ( ) )
| | Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoInsRompitratta ( ) )
| | ( Validator . isNotNull ( dettPratica . getDccOpereDiRinforzoAltro ( ) ) & & Validator . isNotNull ( dettPratica
. getDccOpereDiRinforzoAltroDescrizione ( ) ) ) ;
return controllo & & fondazioni & & elevazioni & & orizzontamenti & & coperture & & non_strutturali & & rinforzo ;
}
private static List < String > notCompletedDescrizioneEdificio ( long dettPraticaId ) throws PortalException ,
SystemException {
@ -959,134 +735,6 @@ public class ValidazionePraticaUtil {
return notCompleted ;
}
private static boolean isSezioneGeologicaCompleta ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
// Se check NormArt3com3 sez. geologica non obbligatoria
if ( dettPratica . getNormArt3com3 ( ) ) {
return true ;
}
boolean formGeologo = false ;
formGeologo = Validator . isNotNull ( dettPratica . getGeoDtRelazione ( ) )
& & Validator . isNotNull ( dettPratica . getGeoClasseIndagine ( ) )
& & Validator . isNotNull ( dettPratica . getGeoOperaRilevante ( ) )
& & Validator . isNotNull ( dettPratica . getGeoCategoriaSottosuolo ( ) )
& & Validator . isNotNull ( dettPratica . getGeoCategoriaTopografica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoOpereDiSostegno ( ) )
& & Validator . isNotNull ( dettPratica . getGeoConsolidamento ( ) )
& & Validator . isNotNull ( dettPratica . getGeoOpereInSotterranea ( ) )
& & Validator . isNotNull ( dettPratica . getGeoPericolositaGeologica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoPericolositaGeomorfica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoRischioGeomorfologicoPai ( ) )
& & Validator . isNotNull ( dettPratica . getGeoPericolositaIdraulicaPai ( ) )
& & Validator . isNotNull ( dettPratica . getGeoRischioIdraulicoPai ( ) )
& & Validator . isNotNull ( dettPratica . getGeoPericolositaSismica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoFattibilitaSismica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoPericolositaIdraulica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoFattibilitaIdraulica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoFattibilitaGeologica ( ) )
& & Validator . isNotNull ( dettPratica . getGeoPresenzaPrescrizioni ( ) )
& & Validator . isNotNull ( dettPratica . getGeoEvidenzeGeologiche ( ) )
& & Validator . isNotNull ( dettPratica . getGeoEvidenzeGeomorfiche ( ) ) ;
List < Delega > delegheGeologo = DelegaLocalServiceUtil . findByDettPratica_Tipologia_InEsito ( dettPraticaId ,
DelegheUtil . TIPO_GEOLOGO , new String [ ] { DelegheUtil . STATO_ESEGUITA } , QueryUtil . ALL_POS ,
QueryUtil . ALL_POS , null ) ;
boolean allegatiGeologo = dettPratica . getNormArt3com3 ( ) ;
if ( ! allegatiGeologo ) {
long intPraticaId = dettPratica . getIntPraticaId ( ) ;
List < DocPratica > a14Docs = DocPraticaLocalServiceUtil . getValidTmpByIntPratica_Tipologia (
dettPratica . getIntPraticaId ( ) , DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A14 , QueryUtil . ALL_POS ,
QueryUtil . ALL_POS ) ;
boolean a14 = ! a14Docs . isEmpty ( ) | | ! delegheGeologo . isEmpty ( ) ;
if ( ! a14 ) {
for ( DocPratica doc : a14Docs ) {
FirmeBean firme = FirmeUtil . deserialize ( doc . getJsonFirmatari ( ) ) ;
List < String > signatures = firme . allSignatures ( ) ;
if ( ! isAllRequiredValid ( doc . getTipologia ( ) , dettPratica . getIntPraticaId ( ) , signatures ,
AsseverazioniUtil . getRequiredSubjectsByCodiceDoc ( doc . getTipologia ( ) ) , doc ) ) {
return false ;
}
}
}
List < DocPratica > a05Docs = DocPraticaLocalServiceUtil . getValidTmpByIntPratica_Tipologia (
dettPratica . getIntPraticaId ( ) , DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A05 , QueryUtil . ALL_POS ,
QueryUtil . ALL_POS ) ;
// ADT BUG ID=20 (A05 SEMPRE OBBLIGATORIO SE NON SETTATO IL CHECK SULLA SEZIONE GEOLOGICA)
boolean a05 = ! a05Docs . isEmpty ( ) ;
if ( a05 ) {
for ( DocPratica doc : a05Docs ) {
FirmeBean firme = FirmeUtil . deserialize ( doc . getJsonFirmatari ( ) ) ;
List < String > signatures = firme . allSignatures ( ) ;
List < String > firmeRichieste = AsseverazioniUtil . getRequiredSubjectsByCodiceDoc ( doc . getTipologia ( ) ) ;
List < Soggetto > soggettiInseriti = SoggettoLocalServiceUtil . findByIntPratica ( dettPratica
. getIntPraticaId ( ) ) ;
List < String > firmeFiltrate = new ArrayList < String > ( ) ;
for ( String string : firmeRichieste ) {
firmeFiltrate . add ( string ) ;
}
boolean DLPresente = false ;
for ( Soggetto soggetto : soggettiInseriti ) {
if ( soggetto . getTipologiaSoggetto ( ) . equals ( TipoSoggettoUtil . DIRETTORE_LAVORI ) ) {
DLPresente = true ;
}
}
if ( ! DLPresente | | ! dettPratica . isLavoriPubblici ( ) ) {
firmeFiltrate . remove ( TipoSoggettoUtil . DIRETTORE_LAVORI ) ;
}
if ( ! isAllRequiredValid ( doc . getTipologia ( ) , dettPratica . getIntPraticaId ( ) , signatures ,
firmeFiltrate , doc ) ) {
return false ;
}
}
}
List < DocPratica > a06Docs = DocPraticaLocalServiceUtil . getValidTmpByIntPratica_Tipologia (
dettPratica . getIntPraticaId ( ) , DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A06 , QueryUtil . ALL_POS ,
QueryUtil . ALL_POS ) ;
boolean a06 = ! a06Docs . isEmpty ( ) ;
if ( ! a06Docs . isEmpty ( ) ) {
for ( DocPratica doc : a06Docs ) {
FirmeBean firme = FirmeUtil . deserialize ( doc . getJsonFirmatari ( ) ) ;
List < String > signatures = firme . allSignatures ( ) ;
if ( ! isA06Valid ( dettPratica , dettPratica . getIntPraticaId ( ) , signatures , doc ) ) {
// Return false if A06 doesn't contain (Progettista OR Geologo ) AND Direttore_Lavori
return false ;
}
}
}
List < DocPratica > a15Docs = DocPraticaLocalServiceUtil . getValidTmpByIntPratica_Tipologia (
dettPratica . getIntPraticaId ( ) , DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A15 , QueryUtil . ALL_POS ,
QueryUtil . ALL_POS ) ;
boolean a15 = true ;
if ( ! a15Docs . isEmpty ( ) ) {
for ( DocPratica doc : a15Docs ) {
FirmeBean firme = FirmeUtil . deserialize ( doc . getJsonFirmatari ( ) ) ;
List < String > signatures = firme . allSignatures ( ) ;
if ( ! isA07A15Valid ( dettPratica , intPraticaId , signatures , doc ) ) {
return false ;
}
}
}
List < String > tipologiaAllegati = DocumentiPraticaUtil . getIndaginiGeologiche ( ) ;
List < DocPratica > a16Docs = DocPraticaLocalServiceUtil . getValidTmpByIntPratica_Tipologie ( intPraticaId ,
tipologiaAllegati . toArray ( new String [ 0 ] ) , QueryUtil . ALL_POS , QueryUtil . ALL_POS ) ;
boolean a16 = ! a16Docs . isEmpty ( ) ;
if ( ! a16Docs . isEmpty ( ) ) {
for ( DocPratica doc : a16Docs ) {
FirmeBean firme = FirmeUtil . deserialize ( doc . getJsonFirmatari ( ) ) ;
List < String > signatures = firme . allSignatures ( ) ;
List < String > signaturesPerSubject = getSignaturePerSubject ( intPraticaId , signatures ,
TipoSoggettoUtil . GEOLOGO , doc . getClassPk ( ) ) ;
if ( signaturesPerSubject . isEmpty ( ) ) {
return false ;
}
}
}
allegatiGeologo = a14 & & a05 & & a06 & & a15 & & a16 ;
}
return formGeologo & & allegatiGeologo ;
}
public static List < String > notCompletedSezioneGeologica ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
@ -1266,119 +914,6 @@ public class ValidazionePraticaUtil {
return notCompleted ;
}
private static boolean isSezioneAllegatiCompleta ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
long intPraticaId = dettPratica . getIntPraticaId ( ) ;
IntPratica intPratica = IntPraticaLocalServiceUtil . getIntPratica ( intPraticaId ) ;
List < String > tipologiaAllegati = DocumentiPraticaUtil . getDocObbligatoriDomanda ( intPratica . getTipoProcedura ( ) ) ;
List < String > tipologiaSoggetti = new ArrayList < String > ( ) ;
boolean collaudatoreNotRequired = dettPratica . getCollaudoStatico ( ) | | dettPratica . getLavoriPubblici ( ) ;
boolean direttoreLavoriNotRequired = dettPratica . getLavoriPubblici ( ) ;
boolean dittaNotRequired = dettPratica . getNormLavoriInProprio ( ) | | dettPratica . getLavoriPubblici ( ) ;
for ( String tipSoggetto : TipoSoggettoUtil . getAllSubjects ( ) ) {
if ( tipSoggetto . equals ( TipoSoggettoUtil . COLLAUDATORE ) & & collaudatoreNotRequired ) {
continue ;
}
if ( tipSoggetto . equals ( TipoSoggettoUtil . DIRETTORE_LAVORI ) & & direttoreLavoriNotRequired ) {
continue ;
}
if ( tipSoggetto . equals ( TipoSoggettoUtil . DITTA ) & & dittaNotRequired ) {
continue ;
}
tipologiaSoggetti . add ( tipSoggetto ) ;
}
Set < String > firmeTotali = new HashSet < > ( ) ;
boolean contieneDocumenti = false ;
for ( String codiceDoc : tipologiaAllegati ) {
if ( isDocPraticaRequired ( dettPratica , codiceDoc ) ) {
List < DocPratica > docs = DocPraticaLocalServiceUtil . getValidTmpByIntPratica_Tipologia ( intPraticaId ,
codiceDoc , QueryUtil . ALL_POS , QueryUtil . ALL_POS ) ;
if ( docs . isEmpty ( ) ) {
// Ci dev'essere almeno un allegato per ogni tipologia obbligatoria
return false ;
}
for ( DocPratica doc : docs ) {
// Se il documento proviene da una dett precedente non viene controllato perche si presuppone che
// sia stata già verificato
if ( ! doc . getClassName ( ) . equalsIgnoreCase ( DettPratica . class . getName ( ) )
| | doc . getClassPk ( ) ! = dettPraticaId ) {
continue ;
}
contieneDocumenti = true ;
FirmeBean firme = FirmeUtil . deserialize ( doc . getJsonFirmatari ( ) ) ;
List < String > signatures = firme . allSignatures ( ) ;
firmeTotali . addAll ( signatures ) ;
boolean isEnoughOne = AsseverazioniUtil . isEnoughOne ( codiceDoc ) ;
if ( codiceDoc . equalsIgnoreCase ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A00 ) ) {
if ( ! isA00Valid ( dettPratica , signatures ) ) {
return false ;
}
} else if ( codiceDoc . equalsIgnoreCase ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A06 ) ) {
if ( ! isA06Valid ( dettPratica , intPraticaId , signatures , doc ) ) {
// Return false if A06 doesn't contain (Progettista OR Geologo ) AND Direttore_Lavori
return false ;
}
} else if ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A07 . equals ( codiceDoc ) ) {
if ( ! isA07A15Valid ( dettPratica , intPraticaId , signatures , doc ) ) {
// Return false if A07 doesn't contain Progettista AND Direttore_Lavori
return false ;
}
} else if ( codiceDoc . equalsIgnoreCase ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A09 ) ) {
if ( ! isA09Valid ( dettPratica , intPraticaId , signatures , doc ) ) {
// Return false if A09 doesn't contain Progettista AND Direttore_Lavori
return false ;
}
} else if ( codiceDoc . equalsIgnoreCase ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A15 ) ) {
if ( ! isA07A15Valid ( dettPratica , intPraticaId , signatures , doc ) ) {
return false ;
}
} else if ( codiceDoc . equalsIgnoreCase ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A17 ) ) {
if ( ! isA17Valid ( dettPratica , signatures ) ) {
return false ;
}
} else if ( codiceDoc . equalsIgnoreCase ( DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_DELEGA ) ) {
if ( ! isA98Valid ( dettPratica , intPraticaId , signatures ) ) {
return false ;
}
} else if ( isEnoughOne & & signatures . isEmpty ( ) ) {
// Return false if one sign is enought but there are no signs for this subjectType
return false ;
} else {
if ( ! isAllRequiredValid ( codiceDoc , intPraticaId , signatures , tipologiaSoggetti , doc ) ) {
// Return false if is required per this subjectType but it is not present
return false ;
}
}
}
}
}
// Ogni progettista e direttore dei lavori deve avere apposto almeno una firma sulla totalità degli allegati
if ( contieneDocumenti ) {
List < Soggetto > progettisti = SoggettoLocalServiceUtil . getValidTmpByIntPratica_TipologiaSoggetto (
intPraticaId , TipoSoggettoUtil . PROGETTISTA ) ;
for ( Soggetto progettista : progettisti ) {
if ( progettista . getDettPraticaId ( ) = = dettPraticaId ) {
if ( ! firmeTotali . contains ( progettista . getCodiceFiscale ( ) . toLowerCase ( ) ) ) {
return false ;
}
}
}
List < Soggetto > direttoriLavori = SoggettoLocalServiceUtil . getValidTmpByIntPratica_TipologiaSoggetto (
intPraticaId , TipoSoggettoUtil . DIRETTORE_LAVORI ) ;
for ( Soggetto direttore : direttoriLavori ) {
if ( direttore . getDettPraticaId ( ) = = dettPraticaId ) {
if ( ! firmeTotali . contains ( direttore . getCodiceFiscale ( ) . toLowerCase ( ) ) ) {
return false ;
}
}
}
}
return true ;
}
private static List < String > notCompletedSezioniAllegati ( long dettPraticaId ) throws PortalException , SystemException {
DettPratica dettPratica = DettPraticaServiceUtil . getDettPratica ( dettPraticaId ) ;
@ -1436,15 +971,20 @@ public class ValidazionePraticaUtil {
if ( ! isA98Valid ( dettPratica , intPraticaId , signatures ) ) {
notCompleted . add ( "Allegato Delega firme obbligatorie mancanti" ) ;
}
} else if ( isEnoughOne & & signatures . isEmpty ( ) ) {
// Return false if one sign is enought but there are no signs for this subjectType
notCompleted . add ( codiceDoc + " non firmato ") ;
} else {
} 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 ) ) {
// Return false if is required per this subjectType but it is not present
notCompleted . add ( codiceDoc + " firme obbligatorie mancanti" ) ;
}
} else if ( isEnoughOne & & signatures . isEmpty ( ) ) {
// Return false if one sign is enought but there are no signs for this subjectType
notCompleted . add ( codiceDoc + " non firmato" ) ;
} else if ( ! isAllRequiredValid ( codiceDoc , intPraticaId , signatures ,
TipoSoggettoUtil . getAllSubjects ( ) , doc ) ) {
notCompleted . add ( codiceDoc + " firme obbligatorie mancanti" ) ;
}
}
}
@ -1505,13 +1045,14 @@ public class ValidazionePraticaUtil {
return ! dettPratica . getNormArt3com3 ( ) ;
case DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A15 :
// nell'ultima version A15 non è più obbligatorio, ma se c'è deve essere firmato da GEOLOGO E DIRETTORE
// dei
// LAVORI
// dei LAVORI
return false ;
case DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A09 :
return ! dettPratica . getNormArt3com4 ( ) ;
case DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A17 :
return isA17Required ( dettPratica ) ;
case DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_A29 :
return dettPratica . getNormLavoriInProprio ( ) ;
case DocumentiPraticaUtil . TIPOLOGIA_ALLEGATO_DELEGA :
return isA98Required ( dettPratica ) ;
default :
@ -1639,7 +1180,6 @@ public class ValidazionePraticaUtil {
}
for ( String tipoSoggetto : tipologiaSoggetti ) {
boolean isRequired = AsseverazioniUtil . isAsseverazioneRequiredByCodiceDoc ( codiceDoc , tipoSoggetto ) ;
if ( TipoSoggettoUtil . DIRETTORE_LAVORI . equalsIgnoreCase ( tipoSoggetto ) & & direttoreLavoriNotRequired ) {
isRequired = false ;