Search in sources :

Example 1 with Incarichi_repertorio_rappBulk

use of it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk in project sigla-main by consiglionazionaledellericerche.

the class IncarichiRepertorioComponent method salvaDefinitivo.

public OggettoBulk salvaDefinitivo(UserContext usercontext, OggettoBulk oggettobulk) throws ComponentException {
    try {
        if (oggettobulk instanceof Incarichi_repertorioBulk) {
            Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk) oggettobulk;
            boolean isDaInviareCorteConti = incarico.isIncaricoProvvisorio() && incarico.getFl_inviato_corte_conti() && incarico.getEsito_corte_conti() == null;
            if (incarico.getNr_provv() == null || incarico.getDt_provv() == null) {
                if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                    throw new ApplicationException("Inserire numero e data protocollo del provvedimento di nomina del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\".");
                else
                    throw new ApplicationException("Inserire numero e data protocollo del provvedimento di nomina del terzo.");
            }
            if (incarico.getDt_stipula() == null)
                throw handleException(new ApplicationException("Inserire la data di stipula del contratto!"));
            if (incarico.getFl_inviato_corte_conti()) {
                if (incarico.getTerzo() == null || incarico.getTerzo().getCd_terzo() == null)
                    throw handleException(new ApplicationException("Completare le informazioni relative al terzo!"));
            }
            if (!isDaInviareCorteConti) {
                if (incarico.isIncaricoInviatoCorteConti() && (incarico.getEsito_corte_conti() == null || !incarico.getEsito_corte_conti().equals(Incarichi_repertorioBulk.ESITO_LEGITTIMO)))
                    throw handleException(new ApplicationException("E' possibile rendere definitivi solo i contratti con esito \"LEGITTIMO\" del controllo della Corte dei Conti!"));
                if (incarico.getFl_inviato_corte_conti() && incarico.getDt_invio_corte_conti() == null)
                    throw handleException(new ApplicationException("Inserire la data di ricezione degli atti inviati alla Corte dei Conti!"));
                if (incarico.getDt_inizio_validita() == null || incarico.getDt_fine_validita() == null)
                    throw handleException(new ApplicationException("Completare le informazioni relative alla data di inizio e fine validit\340 del contratto!"));
                if (incarico.getTerzo() == null || incarico.getTerzo().getCd_terzo() == null || incarico.getTipo_trattamento() == null || incarico.getTipo_rapporto() == null || incarico.getTi_istituz_commerc() == null)
                    throw handleException(new ApplicationException("Completare le informazioni relative al terzo e al trattamento da applicare!"));
            }
            Incarichi_proceduraHome proceduraHome = (Incarichi_proceduraHome) getHome(usercontext, Incarichi_proceduraBulk.class);
            Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) proceduraHome.findByPrimaryKey(incarico.getIncarichi_procedura());
            getHomeCache(usercontext).fetchAll(usercontext);
            Incarichi_parametriBulk parametri = Utility.createIncarichiProceduraComponentSession().getIncarichiParametri(usercontext, procedura);
            if (incarico.getDt_stipula() == null)
                throw handleException(new ApplicationException("Non \350 possibile effettuare l'operazione perchè non risulta inserita la data di stipula del contratto."));
            if (!UtenteBulk.isSuperUtenteFunzioniIncarichi(usercontext)) {
                if (parametri == null || parametri.getLimite_dt_stipula() == null) {
                    if (!incarico.getFl_inviato_corte_conti() && DateUtils.daysBetweenDates(incarico.getDt_stipula(), EJBCommonServices.getServerDate()) > 5)
                        throw handleException(new ApplicationException("Non \350 possibile effettuare l'operazione perch\350 dalla data di stipula del contratto risultano trascorsi piu' di 5 giorni."));
                    else if (incarico.getFl_inviato_corte_conti() && incarico.getDt_inizio_validita() != null && DateUtils.daysBetweenDates(incarico.getDt_inizio_validita(), EJBCommonServices.getServerDate()) > 5)
                        throw handleException(new ApplicationException("Non \350 possibile effettuare l'operazione perch\350 dalla data di inizio validit\340 del contratto risultano trascorsi piu' di 5 giorni."));
                } else if (parametri != null && parametri.getLimite_dt_stipula() != null && parametri.getLimite_dt_stipula().equals("Y")) {
                    Integer limite = new Integer(0);
                    if (parametri.getGiorni_limite_dt_stipula() != null)
                        limite = parametri.getGiorni_limite_dt_stipula();
                    if (!incarico.getFl_inviato_corte_conti() && DateUtils.daysBetweenDates(incarico.getDt_stipula(), EJBCommonServices.getServerDate()) > limite.intValue())
                        throw handleException(new ApplicationException("Non \350 possibile effettuare l'operazione perch\350 dalla data di stipula del contratto risultano trascorsi piu' di " + limite.toString() + " giorni."));
                    else if (incarico.getFl_inviato_corte_conti() && incarico.getDt_inizio_validita() != null && DateUtils.daysBetweenDates(incarico.getDt_inizio_validita(), EJBCommonServices.getServerDate()) > limite.intValue())
                        throw handleException(new ApplicationException("Non \350 possibile effettuare l'operazione perch\350 dalla data di inizio validit\340 del contratto risultano trascorsi piu' di " + limite.toString() + " giorni."));
                }
            }
            if (incarico.getContratto() == null) {
                if (parametri == null || parametri.getAllega_contratto() == null || parametri.getAllega_contratto().equals("Y")) {
                    if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                        // Istanzio la classe per riempire tipo_archivioKeys
                        new Incarichi_procedura_archivioBulk();
                    }
                    if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_CONTRATTO).toString() + "\".");
                    else
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_CONTRATTO).toString() + "\".");
                }
            }
            if (incarico.getCurriculumVincitore() == null) {
                if (parametri != null && parametri.getAllega_curriculum_vitae() != null && parametri.getAllega_curriculum_vitae().equals("Y")) {
                    if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                        // Istanzio la classe per riempire tipo_archivioKeys
                        new Incarichi_procedura_archivioBulk();
                    }
                    if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_CURRICULUM_VINCITORE).toString() + "\".");
                    else
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_CURRICULUM_VINCITORE).toString() + "\".");
                }
            }
            if (incarico.getConflittoInteressi() == null) {
                if (parametri != null && parametri.getAllega_conflitto_interesse() != null && parametri.getAllega_conflitto_interesse().equals("Y")) {
                    if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                        // Istanzio la classe per riempire tipo_archivioKeys
                        new Incarichi_procedura_archivioBulk();
                    }
                    if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_CONFLITTO_INTERESSI).toString() + "\".");
                    else
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_CONFLITTO_INTERESSI).toString() + "\".");
                }
            }
            if (incarico.getAttestazioneDirettore() == null) {
                if (parametri != null && parametri.getAllega_attestazione_direttore() != null && parametri.getAllega_attestazione_direttore().equals("Y")) {
                    if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                        // Istanzio la classe per riempire tipo_archivioKeys
                        new Incarichi_procedura_archivioBulk();
                    }
                    if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_ATTESTAZIONE_DIRETTORE).toString() + "\".");
                    else
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_ATTESTAZIONE_DIRETTORE).toString() + "\".");
                }
            }
            if (incarico.getDecretoDiNomina() == null) {
                if (parametri != null && parametri.getAllega_decreto_nomina() != null && parametri.getAllega_decreto_nomina().equals("Y")) {
                    if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                        // Istanzio la classe per riempire tipo_archivioKeys
                        new Incarichi_procedura_archivioBulk();
                    }
                    if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_DECRETO_DI_NOMINA).toString() + "\".");
                    else
                        throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_DECRETO_DI_NOMINA).toString() + "\".");
                }
            }
            if (incarico.getFl_inviato_corte_conti() && incarico.getEsito_corte_conti() != null && incarico.getAttoEsitoControllo() == null) {
                if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                    // Istanzio la classe per riempire tipo_archivioKeys
                    new Incarichi_procedura_archivioBulk();
                }
                if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                    throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto del terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_ATTO_ESITO_CONTROLLO).toString() + "\".");
                else
                    throw new it.cnr.jada.comp.ApplicationException("Allegare al contratto un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_ATTO_ESITO_CONTROLLO).toString() + "\".");
            }
            procedura.setArchivioAllegati(new BulkList(proceduraHome.findArchivioAllegati(procedura)));
            if (procedura.getDecisioneAContrattare() == null) {
                if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
                    // Istanzio la classe per riempire tipo_archivioKeys
                    new Incarichi_procedura_archivioBulk();
                }
                if (parametri == null || parametri.getAllega_decisione_ctr() == null || parametri.getAllega_decisione_ctr().equals("Y"))
                    throw new it.cnr.jada.comp.ApplicationException("Allegare alla \"Procedura di conferimento incarico\" un file di tipo \"" + Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_DECISIONE_A_CONTRATTARE).toString() + "\".");
            }
            if (procedura.isDichiarazioneContraenteRequired()) {
                // Controllo che sia stata inserita la dichiarazione del contraente....almeno quella del primo anno di validità dell'incarico
                boolean existRapportoAnnoStipula = false;
                GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
                data_da.setTime(incarico.getDt_stipula());
                if (incarico.getIncarichi_repertorio_rappColl() != null && !incarico.getIncarichi_repertorio_rappColl().isEmpty()) {
                    for (Iterator i = incarico.getIncarichi_repertorio_rappColl().iterator(); i.hasNext(); ) {
                        Incarichi_repertorio_rappBulk rapporto = (Incarichi_repertorio_rappBulk) i.next();
                        if (!rapporto.isAnnullato() && rapporto.getAnno_competenza().equals(data_da.get(java.util.Calendar.YEAR)))
                            existRapportoAnnoStipula = true;
                    }
                }
                if (!existRapportoAnnoStipula) {
                    if (incarico.getV_terzo() != null && incarico.getV_terzo().getCognome() != null && incarico.getV_terzo().getNome() != null)
                        throw new it.cnr.jada.comp.ApplicationException("Inserire la dichiarazione dell'anno " + data_da.get(java.util.Calendar.YEAR) + ", anno di stipula del contratto, resa dal terzo \"" + incarico.getV_terzo().getCognome() + " " + incarico.getV_terzo().getNome() + "\" sui rapporti stipulati con altri enti.");
                    else
                        throw new it.cnr.jada.comp.ApplicationException("Inserire la dichiarazione dell'anno " + data_da.get(java.util.Calendar.YEAR) + ", anno di stipula del contratto, resa dal terzo sui rapporti stipulati con altri enti.");
                }
            }
            if (procedura.getTipo_attivita_fp() == null && procedura.isProceduraForIncarichi())
                throw new it.cnr.jada.comp.ApplicationException("Indicare, nella sezione 'Dati Perla', l'attività economica dell'incarico necessaria per la comunicazione dei dati al sistema informativo PERLA del Ministero della Funzione Pubblica.");
            if (procedura.getFl_applicazione_norma() == null)
                throw new it.cnr.jada.comp.ApplicationException("Indicare, nella sezione '" + (procedura.isProceduraForIncarichi() ? "Dati Perla" : "Altri Dati") + "', se l'incarico è stato conferito in applicazione di una specifica norma.");
            if (procedura.isApplicazioneNormaAttiva()) {
                if (procedura.getCd_tipo_norma_perla() == null)
                    throw new it.cnr.jada.comp.ApplicationException("Indicare, nella sezione '" + (procedura.isProceduraForIncarichi() ? "Dati Perla" : "Altri Dati") + "', il tipo di norma in base al quale è stato conferito l'incarico.");
                else if (procedura.getCd_tipo_norma_perla().equals("999") && procedura.getDs_libera_norma_perla() == null)
                    throw new it.cnr.jada.comp.ApplicationException("Indicare, nella sezione '" + (procedura.isProceduraForIncarichi() ? "Dati Perla" : "Altri Dati") + "', una breve descrizione della norma in base al quale è stato conferito l'incarico.");
            }
            if (procedura.getProcedura_amministrativa_beneficiario() == null || procedura.getProcedura_amministrativa_beneficiario().getCd_proc_amm() == null)
                throw new it.cnr.jada.comp.ApplicationException("Indicare, nella sezione '" + (procedura.isProceduraForIncarichi() ? "Dati Perla" : "Altri Dati") + "', la modalità di individuazione del beneficiario.");
            incarico.setStato(isDaInviareCorteConti ? Incarichi_repertorioBulk.STATO_INVIATO : Incarichi_repertorioBulk.STATO_DEFINITIVO);
            incarico.setToBeUpdated();
            updateBulk(usercontext, incarico);
            salvaDefinitivoCMIS(usercontext, incarico);
            procedura.setIncarichi_repertorioColl(new BulkList(proceduraHome.findIncarichi_repertorioList(usercontext, procedura)));
            Integer contadef = 0, containv = 0;
            for (Iterator i = procedura.getIncarichi_repertorioColl().iterator(); i.hasNext(); ) {
                Incarichi_repertorioBulk incaricoColl = (Incarichi_repertorioBulk) i.next();
                if (incaricoColl.isIncaricoDefinitivo() || incaricoColl.isIncaricoChiuso())
                    contadef = contadef + 1;
                if (incaricoColl.isIncaricoInviatoCorteConti())
                    containv = containv + 1;
            }
            if (procedura.getNr_contratti().equals(contadef)) {
                if (!procedura.isProceduraDefinitiva()) {
                    procedura.setStato(Incarichi_proceduraBulk.STATO_DEFINITIVO);
                    procedura.setToBeUpdated();
                    updateBulk(usercontext, procedura);
                    Utility.createIncarichiProceduraComponentSession().salvaDefinitivoCMIS(usercontext, procedura);
                }
            } else if (procedura.getNr_contratti().equals(contadef + containv)) {
                if (!procedura.isProceduraInviataCorteConti()) {
                    procedura.setStato(Incarichi_proceduraBulk.STATO_INVIATO);
                    procedura.setToBeUpdated();
                    updateBulk(usercontext, procedura);
                }
            }
            this.comunicaPerla(usercontext, incarico);
        } else {
            updateBulk(usercontext, oggettobulk);
        }
        return oggettobulk;
    } catch (Throwable throwable) {
        throw handleException(throwable);
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) Incarichi_parametriBulk(it.cnr.contab.incarichi00.tabrif.bulk.Incarichi_parametriBulk) BulkList(it.cnr.jada.bulk.BulkList) ApplicationException(it.cnr.jada.comp.ApplicationException)

Example 2 with Incarichi_repertorio_rappBulk

use of it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk in project sigla-main by consiglionazionaledellericerche.

the class IncarichiProceduraAction method doOnDtDichiarazioneChange.

public Forward doOnDtDichiarazioneChange(ActionContext context) {
    CRUDIncarichiProceduraBP bp = (CRUDIncarichiProceduraBP) getBusinessProcess(context);
    Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk) (bp.getIncarichiColl().getModel());
    Incarichi_repertorio_rappBulk incaricoRapp = (Incarichi_repertorio_rappBulk) (bp.getIncarichiRappColl().getModel());
    java.sql.Timestamp oldDate = null;
    if (incaricoRapp.getDt_dichiarazione() != null)
        oldDate = (java.sql.Timestamp) incaricoRapp.getDt_dichiarazione().clone();
    try {
        fillModel(context);
        if (incarico != null && incarico.getDt_stipula() != null && incaricoRapp != null && incaricoRapp.getDt_dichiarazione() != null && incarico.getDt_stipula().after(incaricoRapp.getDt_dichiarazione()))
            throw new ValidationException("La \"Data di dichiarazione\" deve essere superiore o uguale alla \"Data di stipula\" del contratto.");
        return context.findDefaultForward();
    } catch (Throwable ex) {
        // In caso di errore ripropongo la data precedente
        incaricoRapp.setDt_dichiarazione(oldDate);
        try {
            return handleException(context, ex);
        } catch (Throwable e) {
            return handleException(context, e);
        }
    }
}
Also used : CRUDIncarichiProceduraBP(it.cnr.contab.incarichi00.bp.CRUDIncarichiProceduraBP) ValidationException(it.cnr.jada.bulk.ValidationException) Incarichi_repertorioBulk(it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk) Incarichi_repertorio_rappBulk(it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk) Timestamp(java.sql.Timestamp) Timestamp(java.sql.Timestamp)

Example 3 with Incarichi_repertorio_rappBulk

use of it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDIncarichiEstrazioneFpBP method generaNuovoConsulentePerla2018.

private IncaricoConsulente generaNuovoConsulentePerla2018(ActionContext context, V_incarichi_elenco_fpBulk v_incarico) throws BusinessProcessException, ComponentException {
    Incarichi_repertorioBulk incarico = v_incarico.getIncaricoRepertorio();
    IncaricoConsulente incaricoPerla = new IncaricoConsulente();
    // AMMINISTRAZIONE DICHIARANTE
    Dichiarante dichiarante = new Dichiarante();
    dichiarante.setCodiceAooIpa(v_incarico.getCodiceAooIpa());
    incaricoPerla.setDichiarante(dichiarante);
    // PERCETTORE
    // ESTERO
    // Se trattasi di consulente estero che ha il codice fiscale valorizzato metto il campo estero a "false" così come indicato dalla Dott.ssa Paola Sarti
    // della Funzione Pubblica altrimenti metto quello corretto
    boolean terzoEstero = false;
    if (incarico.getTerzo().getAnagrafico().getCodice_fiscale() == null || incarico.getTerzo().getAnagrafico().getCodice_fiscale().length() != 16) {
        try {
            terzoEstero = !NazioneBulk.ITALIA.equals(incarico.getTerzo().getAnagrafico().getComune_nascita().getTi_italiano_estero());
        } catch (Exception e) {
        }
    }
    if (incarico.getTerzo().getAnagrafico().isPersonaFisica()) {
        PercettorePf percettorePf = new PercettorePf();
        percettorePf.setEstero(terzoEstero ? YesNoEnum.Y : YesNoEnum.N);
        if (!terzoEstero) {
            // CODICE FISCALE
            try {
                percettorePf.setCodiceFiscale(incarico.getTerzo().getAnagrafico().getCodice_fiscale());
            } catch (Exception e) {
            }
        }
        // COGNOME
        try {
            percettorePf.setCognome(incarico.getTerzo().getAnagrafico().getCognome());
        } catch (Exception e) {
        }
        // NOME
        try {
            percettorePf.setNome(incarico.getTerzo().getAnagrafico().getNome());
        } catch (Exception e) {
        }
        // SESSO
        try {
            percettorePf.setGenere("M".equals(incarico.getTerzo().getAnagrafico().getTi_sesso()) ? GenereEnum.M : GenereEnum.F);
        } catch (Exception e) {
        }
        // DATA NASCITA
        percettorePf.setDataNascita(incarico.getTerzo().getAnagrafico().getDt_nascita());
        if (!terzoEstero) {
            // COMUNE NASCITA
            try {
                percettorePf.setComuneNascita(incarico.getTerzo().getAnagrafico().getComune_nascita().getCd_catastale());
                if (percettorePf.getComuneNascita().equals("*"))
                    percettorePf.setComuneNascita(percettorePf.getCodiceFiscale().substring(12, 4));
            } catch (Exception e) {
                percettorePf.setComuneNascita(percettorePf.getCodiceFiscale().substring(12, 4));
            }
        }
        incaricoPerla.setPercettorePf(percettorePf);
    } else {
        PercettorePg percettorePg = new PercettorePg();
        percettorePg.setEstero(terzoEstero ? YesNoEnum.Y : YesNoEnum.N);
        if (!terzoEstero) {
            // CODICE FISCALE
            try {
                percettorePg.setCodiceFiscale(incarico.getTerzo().getAnagrafico().getCodice_fiscale());
            } catch (Exception e) {
            }
        }
        percettorePg.setDenominazione(incarico.getTerzo().getDenominazione_sede());
        incaricoPerla.setPercettorePg(percettorePg);
    }
    // FINE PERCETTORE
    // DATI INCARICO
    DatiIncarico datiIncarico = new DatiIncarico();
    // DESCRIZIONE INCARICO
    StringBuffer descrizione = new StringBuffer();
    descrizione.append("(" + incarico.getEsercizio() + '/' + incarico.getPg_repertorio() + ")");
    descrizione.append(" - " + incarico.getIncarichi_procedura().getOggetto());
    datiIncarico.setOggettoIncarico(descrizione.length() > 200 ? descrizione.substring(0, 199) : descrizione.toString());
    // DATA AFFIDAMENTO
    datiIncarico.setDataConferimento(v_incarico.getDt_stipula());
    // DATA INIZIO
    datiIncarico.setDataInizio(v_incarico.getDt_inizio_validita());
    // ATTO CONFERIMENTO
    StringBuilder atto = new StringBuilder();
    atto.append(incarico.getCd_provv());
    if (atto.length() > 0 && incarico.getNr_provv() != null)
        atto.append("/");
    atto.append(incarico.getNr_provv());
    if (atto.length() > 0 && incarico.getDt_provv() != null)
        atto.append(" del ");
    atto.append(new java.text.SimpleDateFormat("dd/MM/yyyy").format(incarico.getDt_provv()));
    datiIncarico.setEstremiAttoConferimento(atto.toString());
    // TIPO DI RAPPORTO
    BigInteger tipoRapporto;
    if (incarico.getIncarichi_procedura().getTipo_incarico().getTipoRapporto().getFl_inquadramento().booleanValue())
        datiIncarico.setTipoRapporto(TipoRapportoEnum.COLLABORAZIONE_COORDINATA_CONTINUATIVA);
    else
        datiIncarico.setTipoRapporto(TipoRapportoEnum.PRESTAZIONE_OCCASIONALE);
    // NATURA CONFERIMENTO
    BigInteger naturaConferimento;
    if (incarico.getIncarichi_procedura().getTipo_prestazione() != null && incarico.getIncarichi_procedura().getTipo_prestazione().getTipo_classificazione() != null) {
        if (incarico.getIncarichi_procedura().getTipo_prestazione().isPrevistaDaNormeDiLegge())
            // DI NATURA VINCOLATA
            datiIncarico.setNaturaConferimento(NaturaConferimentoEnum.NATURA_VINCOLATA);
        else
            // DI NATURA DISCREZIONALE
            datiIncarico.setNaturaConferimento(NaturaConferimentoEnum.NATURA_DISCREZIONALE);
    } else
        // DI NATURA DISCREZIONALE
        datiIncarico.setNaturaConferimento(NaturaConferimentoEnum.NATURA_DISCREZIONALE);
    // ATTESTAZIONE VERIFICA INSUSSISTENZA
    if (incarico.getConflittoInteressi() != null && incarico.getConflittoInteressi().getCms_node_ref() != null)
        datiIncarico.setAttestazioneVerificaInsussistenza(YesNoEnum.Y);
    else
        datiIncarico.setAttestazioneVerificaInsussistenza(YesNoEnum.N);
    // RIFERIMENTO REGOLAMENTO
    // Y= si è fatto riferimento ad un regolamento adottato dall'amministrazione,
    // N= non si è fatto riferimento ad un regolamento adottato dall'amministrazione
    datiIncarico.setRiferimentoRegolamento(YesNoEnum.Y);
    incaricoPerla.setDatiIncarico(datiIncarico);
    // DATI ECONOMICI INCARICO
    DatiEconomici datiEconomiciIncarico = new DatiEconomici();
    // COMPENSO
    datiEconomiciIncarico.setCompenso(v_incarico.getImporto_lordo_con_variazioni().setScale(2));
    // 1 PREVISTO, 2 PRESUNTO, 3 GRATUITO
    if (datiEconomiciIncarico.getCompenso().compareTo(BigDecimal.ZERO) <= 0)
        // GRATUITO
        datiEconomiciIncarico.setTipoCompenso(TipoCompensoEnum.GRATUITO);
    else
        // PREVISTO
        datiEconomiciIncarico.setTipoCompenso(TipoCompensoEnum.PREVISTO);
    // ComponentiVariabilCompenso
    datiEconomiciIncarico.setComponentiVariabilCompenso(YesNoEnum.N);
    // DATA FINE
    GregorianCalendar gcdf = new GregorianCalendar();
    gcdf.setTime(v_incarico.getDt_fine_validita_variazione() == null ? v_incarico.getDt_fine_validita() : v_incarico.getDt_fine_validita_variazione());
    datiEconomiciIncarico.setDataFine(gcdf.getTime());
    incaricoPerla.setDatiEconomici(datiEconomiciIncarico);
    // RIFERIMENTO NORMATIVO (Obbligatorio soltanto se l’incarico è stato conferito in applicazione di una specifica norma)
    if (Optional.ofNullable(incarico.getIncarichi_procedura().getTipo_norma_perla()).isPresent() && incarico.getIncarichi_procedura().getTipo_norma_perla().getCd_tipo_norma().equals("67")) {
        // RIFERIMENTO NORMATIVO (GESTIONE TABELLA TIPO_NORMA_PERLA)
        it.cnr.perlapa.incarico.consulente.RiferimentoNormativo riferimentoNormativo = new it.cnr.perlapa.incarico.consulente.RiferimentoNormativo();
        riferimentoNormativo.setRiferimento(34);
        riferimentoNormativo.setNumero(incarico.getIncarichi_procedura().getTipo_norma_perla().getNumero_tipo_norma());
        riferimentoNormativo.setArticolo(incarico.getIncarichi_procedura().getTipo_norma_perla().getArticolo_tipo_norma());
        riferimentoNormativo.setComma(incarico.getIncarichi_procedura().getTipo_norma_perla().getComma_tipo_norma());
        riferimentoNormativo.setData(incarico.getIncarichi_procedura().getTipo_norma_perla().getDt_tipo_norma());
        incaricoPerla.setRiferimentoNormativo(riferimentoNormativo);
    }
    // ALLEGATI
    // CURRICULUM VITAE
    Allegati allegati = new Allegati();
    try {
        allegati.setCurriculumVitae(SpringUtil.getBean("storeService", StoreService.class).getResource(incarico.getCurriculumVincitore().getCms_node_ref()));
    } catch (Throwable e) {
    }
    // DICHIARAZIONE INCARICHI
    try {
        if (incarico.getIncarichi_repertorio_rappColl() != null && !incarico.getIncarichi_repertorio_rappColl().isEmpty()) {
            GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
            data_da.setTime(incarico.getDt_stipula());
            for (Iterator i = incarico.getIncarichi_repertorio_rappColl().iterator(); i.hasNext(); ) {
                Incarichi_repertorio_rappBulk rapporto = (Incarichi_repertorio_rappBulk) i.next();
                if (!rapporto.isAnnullato() && rapporto.getAnno_competenza().equals(data_da.get(java.util.Calendar.YEAR))) {
                    allegati.setDichiarazioneIncarichi(storeService.getResource(rapporto.getCms_node_ref()));
                    break;
                }
            }
        }
    } catch (Throwable e) {
    }
    incaricoPerla.setAllegati(allegati);
    // PAGATO
    if (incaricoPerla.getDatiEconomici().getCompenso().compareTo(BigDecimal.ZERO) != 0) {
        IncarichiEstrazioneFpComponentSession comp = (IncarichiEstrazioneFpComponentSession) createComponentSession("CNRINCARICHI00_EJB_IncarichiEstrazioneFpComponentSession", IncarichiEstrazioneFpComponentSession.class);
        BigDecimal importoPagato = comp.getPagatoIncarico(context.getUserContext(), incarico);
        incaricoPerla.getDatiEconomici().setAmmontareErogato(importoPagato.setScale(2));
        if (importoPagato.compareTo(incaricoPerla.getDatiEconomici().getCompenso()) < 0)
            incaricoPerla.getDatiEconomici().setIncaricoSaldato(YesNoEnum.N);
        else
            incaricoPerla.getDatiEconomici().setIncaricoSaldato(YesNoEnum.Y);
    } else {
        incaricoPerla.getDatiEconomici().setIncaricoSaldato(YesNoEnum.N);
        incaricoPerla.getDatiEconomici().setAmmontareErogato(BigDecimal.ZERO);
    }
    return incaricoPerla;
}
Also used : RiferimentoNormativo(it.perla.accenture.com.anagrafeprestazioni_inserimentoincarichi.ConsulenteType.Incarico.RiferimentoNormativo) Incarichi_repertorioBulk(it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk) Allegati(it.cnr.perlapa.incarico.consulente.Allegati) DatiIncarico(it.cnr.perlapa.incarico.consulente.DatiIncarico) IncarichiEstrazioneFpComponentSession(it.cnr.contab.incarichi00.ejb.IncarichiEstrazioneFpComponentSession) RemoteIterator(it.cnr.jada.util.RemoteIterator) it.cnr.perlapa.incarico(it.cnr.perlapa.incarico) Incarichi_repertorio_rappBulk(it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk) PercettorePg(it.cnr.perlapa.incarico.consulente.PercettorePg) DatatypeConfigurationException(javax.xml.datatype.DatatypeConfigurationException) ValidationException(it.cnr.jada.bulk.ValidationException) JAXBException(javax.xml.bind.JAXBException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) ComponentException(it.cnr.jada.comp.ComponentException) BigDecimal(java.math.BigDecimal) PercettorePf(it.cnr.perlapa.incarico.consulente.PercettorePf) BigInteger(java.math.BigInteger)

Aggregations

Incarichi_repertorioBulk (it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk)2 Incarichi_repertorio_rappBulk (it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk)2 ValidationException (it.cnr.jada.bulk.ValidationException)2 CRUDIncarichiProceduraBP (it.cnr.contab.incarichi00.bp.CRUDIncarichiProceduraBP)1 IncarichiEstrazioneFpComponentSession (it.cnr.contab.incarichi00.ejb.IncarichiEstrazioneFpComponentSession)1 Incarichi_parametriBulk (it.cnr.contab.incarichi00.tabrif.bulk.Incarichi_parametriBulk)1 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)1 BulkList (it.cnr.jada.bulk.BulkList)1 ApplicationException (it.cnr.jada.comp.ApplicationException)1 ComponentException (it.cnr.jada.comp.ComponentException)1 RemoteIterator (it.cnr.jada.util.RemoteIterator)1 it.cnr.perlapa.incarico (it.cnr.perlapa.incarico)1 Allegati (it.cnr.perlapa.incarico.consulente.Allegati)1 DatiIncarico (it.cnr.perlapa.incarico.consulente.DatiIncarico)1 PercettorePf (it.cnr.perlapa.incarico.consulente.PercettorePf)1 PercettorePg (it.cnr.perlapa.incarico.consulente.PercettorePg)1 RiferimentoNormativo (it.perla.accenture.com.anagrafeprestazioni_inserimentoincarichi.ConsulenteType.Incarico.RiferimentoNormativo)1 BigDecimal (java.math.BigDecimal)1 BigInteger (java.math.BigInteger)1 Timestamp (java.sql.Timestamp)1