Пример #1
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):
        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly

        ensure_fase(fase, Fase.ANAGRAFICA)

        _esito_cc = piano.getFirstAction(
            TipologiaAzione.esito_conferenza_copianificazione)
        if needs_execution(_esito_cc):
            chiudi_azione(_esito_cc, set_data=False)

            procedura_avvio.notifica_genio_civile = True
            procedura_avvio.save()

            now = get_now()

            _cc = ConferenzaCopianificazione.objects.get(piano=piano)
            _cc.data_chiusura_conferenza = now
            _cc.save()

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.protocollo_genio_civile,
                    qualifica_richiesta=QualificaRichiesta.GC,
                    stato=StatoAzione.NECESSARIA,
                ))
Пример #2
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _epv = piano.getFirstAction(
            TipologiaAzione.emissione_provvedimento_verifica)
        if needs_execution(_epv):
            now = get_now()
            chiudi_azione(_epv, now)

            procedura_vas.data_assoggettamento = now
            procedura_vas.verifica_effettuata = True
            procedura_vas.save()

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.
                    pubblicazione_provvedimento_verifica_ac,
                    qualifica_richiesta=QualificaRichiesta.AC,
                    stato=StatoAzione.NECESSARIA,
                ))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.
                    pubblicazione_provvedimento_verifica_ap,
                    qualifica_richiesta=QualificaRichiesta.COMUNE,
                    stato=StatoAzione.NECESSARIA,
                ))
Пример #3
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        ensure_fase(fase, Fase.AVVIO)

        pubblicazione_burt = piano.getFirstAction(
            TipologiaAzione.pubblicazione_burt)

        if needs_execution(pubblicazione_burt):
            chiudi_azione(pubblicazione_burt)

            now = get_now()

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.osservazioni_enti,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    now,  # ???
                    procedura_adozione.data_ricezione_osservazioni)))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.osservazioni_regione,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    now,  # ???
                    procedura_adozione.data_ricezione_osservazioni)))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.upload_osservazioni_privati,
                    qualifica_richiesta=QualificaRichiesta.COMUNE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    now,  # ???
                    procedura_adozione.data_ricezione_osservazioni)))

            if procedura_adozione.pubblicazione_burt_data and \
                    piano.procedura_vas.tipologia != TipologiaVAS.NON_NECESSARIA:

                _procedura_adozione_vas, created = ProceduraAdozioneVAS.objects.get_or_create(
                    piano=piano)

                crea_azione(
                    Azione(
                        piano=piano,
                        tipologia=TipologiaAzione.pareri_adozione_sca,
                        qualifica_richiesta=QualificaRichiesta.SCA,
                        stato=StatoAzione.ATTESA,
                    ).imposta_scadenza(
                        get_scadenza(
                            procedura_adozione.pubblicazione_burt_data,
                            TipoExpire.ADOZIONE_VAS_PARERI_SCA)))
Пример #4
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _pareri_verifica_vas = piano.getFirstAction(
            TipologiaAzione.trasmissione_dpv_vas)
        if needs_execution(_pareri_verifica_vas):
            now = get_now()
            chiudi_azione(_pareri_verifica_vas, now)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.pareri_verifica_sca,
                    qualifica_richiesta=QualificaRichiesta.SCA,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza(
                    get_scadenza(now, TipoExpire.PARERI_VERIFICA_SCA)))
Пример #5
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        _avvio_procedimento = piano.getFirstAction(
            TipologiaAzione.avvio_procedimento)
        if needs_execution(_avvio_procedimento):
            if not cls.autorita_ok(piano, [Qualifica.GC]):
                raise GraphQLError(
                    "Genio Civile non trovato tra i soggetti operanti",
                    code=400)

            if not cls.autorita_ok(piano, [Qualifica.OPREG]):
                raise GraphQLError(
                    "Pianificazione o Urbanistica non trovato tra i soggetti operanti",
                    code=400)

            if procedura_avvio.conferenza_copianificazione is None:
                raise GraphQLError("Conferenza copianificazione non impostata",
                                   code=400)

            chiudi_azione(_avvio_procedimento)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.contributi_tecnici,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    get_now(),  # ??
                    procedura_avvio.data_scadenza_risposta)))

            crea_azione(Azione(
                piano=piano,
                tipologia=TipologiaAzione.selezione_tipologia_vas,
                qualifica_richiesta=QualificaRichiesta.COMUNE,
                stato=StatoAzione.ATTESA,
            ),
                        send_mail=False)

            init_vas_procedure(piano, user)
Пример #6
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        # _avvio_procedimento = piano.getFirstAction(TIPOLOGIA_AZIONE.avvio_procedimento)
        # if isExecuted(_avvio_procedimento):
        if procedura_avvio.conferenza_copianificazione != TipologiaCopianificazione.POSTICIPATA:
            return GraphQLError(
                "Errore nello stato del piano - Tipologia copianificazione errata",
                code=400)

        _richiesta_cc = piano.getFirstAction(
            TipologiaAzione.richiesta_conferenza_copianificazione)
        if needs_execution(_richiesta_cc):
            chiudi_azione(_richiesta_cc, set_data=False)

            procedura_avvio.notifica_genio_civile = False
            procedura_avvio.save()

            _cc = ConferenzaCopianificazione.objects.get(piano=piano)
            _cc.data_richiesta_conferenza = get_now()
            _cc.data_scadenza_risposta = procedura_avvio.data_scadenza_risposta
            _cc.save()

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.richiesta_integrazioni,
                       qualifica_richiesta=QualificaRichiesta.REGIONE,
                       stato=StatoAzione.ATTESA))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.
                    esito_conferenza_copianificazione,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ))
Пример #7
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        ensure_fase(fase, Fase.AVVIO)

        _controdeduzioni = piano.getFirstAction(
            TipologiaAzione.controdeduzioni)
        if needs_execution(_controdeduzioni):
            now = get_now()
            chiudi_azione(_controdeduzioni, now)

            for tipo in [
                    TipologiaAzione.osservazioni_enti,
                    TipologiaAzione.osservazioni_regione,
                    TipologiaAzione.upload_osservazioni_privati
            ]:
                oss = piano.getFirstAction(tipo)
                if needs_execution(oss):
                    chiudi_azione(oss, now)

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.piano_controdedotto,
                       qualifica_richiesta=QualificaRichiesta.COMUNE,
                       stato=StatoAzione.ATTESA))
Пример #8
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        _invio_doc_preliminare = piano.getFirstAction(
            TipologiaAzione.invio_doc_preliminare)
        if needs_execution(_invio_doc_preliminare):
            now = get_now()
            chiudi_azione(_invio_doc_preliminare, now)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.trasmissione_pareri_sca,
                    qualifica_richiesta=QualificaRichiesta.SCA,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza(
                    get_scadenza(now, TipoExpire.TRASMISSIONE_PARERI_SCA)))

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.trasmissione_pareri_ac,
                       qualifica_richiesta=QualificaRichiesta.AC,
                       stato=StatoAzione.ATTESA))
Пример #9
0
 def make_token_expiration(days=365):
     _expire_days = getattr(settings, 'TOKEN_EXPIRE_DAYS', days)
     _expire_time = get_now()
     _expire_delta = datetime.timedelta(days=_expire_days)
     return _expire_time + _expire_delta
Пример #10
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        _avvio_procedimento = piano.getFirstAction(
            TipologiaAzione.avvio_procedimento)
        _contributi_tecnici = piano.getFirstAction(
            TipologiaAzione.contributi_tecnici)

        if is_executed(_avvio_procedimento) and needs_execution(
                _contributi_tecnici):

            chiudi_azione(_contributi_tecnici)

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.formazione_del_piano,
                       qualifica_richiesta=QualificaRichiesta.COMUNE,
                       stato=StatoAzione.NECESSARIA))

            if procedura_avvio.conferenza_copianificazione == TipologiaCopianificazione.NECESSARIA:

                procedura_avvio.notifica_genio_civile = False
                procedura_avvio.save()

                _cc, created = ConferenzaCopianificazione.objects.get_or_create(
                    piano=piano)
                _cc.data_richiesta_conferenza = get_now()
                _cc.data_scadenza_risposta = procedura_avvio.data_scadenza_risposta
                _cc.save()

                crea_azione(
                    Azione(piano=piano,
                           tipologia=TipologiaAzione.richiesta_integrazioni,
                           qualifica_richiesta=QualificaRichiesta.REGIONE,
                           stato=StatoAzione.ATTESA))

                crea_azione(
                    Azione(piano=piano,
                           tipologia=TipologiaAzione.
                           esito_conferenza_copianificazione,
                           qualifica_richiesta=QualificaRichiesta.REGIONE,
                           stato=StatoAzione.ATTESA))

            elif procedura_avvio.conferenza_copianificazione == TipologiaCopianificazione.POSTICIPATA:

                procedura_avvio.notifica_genio_civile = False
                procedura_avvio.save()

                _cc, created = ConferenzaCopianificazione.objects.get_or_create(
                    piano=piano)
                _cc.data_scadenza_risposta = procedura_avvio.data_scadenza_risposta
                _cc.save()

                crea_azione(
                    Azione(piano=piano,
                           tipologia=TipologiaAzione.
                           richiesta_conferenza_copianificazione,
                           qualifica_richiesta=QualificaRichiesta.COMUNE,
                           stato=StatoAzione.ATTESA))

            elif procedura_avvio.conferenza_copianificazione == TipologiaCopianificazione.NON_NECESSARIA:

                procedura_avvio.notifica_genio_civile = True
                procedura_avvio.save()

                crea_azione(
                    Azione(piano=piano,
                           tipologia=TipologiaAzione.protocollo_genio_civile,
                           qualifica_richiesta=QualificaRichiesta.GC,
                           stato=StatoAzione.NECESSARIA))
Пример #11
0
def init_vas_procedure(piano: Piano, utente: Utente):

    procedura_vas = piano.procedura_vas
    _selezione_tipologia_vas = piano.getFirstAction(
        TipologiaAzione.selezione_tipologia_vas)

    now = get_now()

    if needs_execution(_selezione_tipologia_vas):
        chiudi_azione(_selezione_tipologia_vas, now)
    else:
        raise GraphQLError("Stato inconsistente nell'inizializzazione VAS",
                           code=500)

    if procedura_vas.tipologia == TipologiaVAS.NON_NECESSARIA:
        pass

    elif procedura_vas.tipologia == TipologiaVAS.PROCEDURA_ORDINARIA:

        crea_azione(
            Azione(
                piano=piano,
                tipologia=TipologiaAzione.invio_doc_preliminare,
                qualifica_richiesta=QualificaRichiesta.COMUNE,
                stato=StatoAzione.ATTESA,
            ))

    elif procedura_vas.tipologia == TipologiaVAS.VERIFICA:

        crea_azione(
            Azione(
                piano=piano,
                tipologia=TipologiaAzione.trasmissione_dpv_vas,
                qualifica_richiesta=QualificaRichiesta.AC,
                stato=StatoAzione.ATTESA,
            ).imposta_scadenza(
                get_scadenza(now, TipoExpire.TRASMISSIONE_DPV_VAS)))

    elif procedura_vas.tipologia == TipologiaVAS.VERIFICA_SEMPLIFICATA:

        crea_azione(
            Azione(
                piano=piano,
                tipologia=TipologiaAzione.emissione_provvedimento_verifica,
                qualifica_richiesta=QualificaRichiesta.AC,
                stato=StatoAzione.ATTESA,
            ).imposta_scadenza(
                get_scadenza(now,
                             TipoExpire.EMISSIONE_PV_VERIFICASEMPLIFICATA)))

    elif procedura_vas.tipologia == TipologiaVAS.PROCEDIMENTO_SEMPLIFICATO:

        crea_azione(
            Azione(
                piano=piano,
                tipologia=TipologiaAzione.pareri_verifica_sca,
                qualifica_richiesta=QualificaRichiesta.SCA,
                stato=StatoAzione.ATTESA,
            ).imposta_scadenza(
                get_scadenza(
                    now,
                    TipoExpire.PARERI_VERIFICA_SCA_PROCEDIMENTOSEMPLIFICATO)))

        # AC deve essere notificato
        piano_phase_changed.send(
            message_type=TipoMail.trasmissione_dp_vas,
            sender=Piano,
            piano=piano,
            user=utente,
        )