Search in sources :

Example 1 with CompensoBulk

use of it.cnr.contab.compensi00.docs.bulk.CompensoBulk in project sigla-main by consiglionazionaledellericerche.

the class ScritturaPartitaDoppiaComponent method addMovimentoCoge.

private Movimento_cogeBulk addMovimentoCoge(UserContext userContext, Scrittura_partita_doppiaBulk scritturaPartitaDoppia, IDocumentoCogeBulk doccoge, TestataPrimaNota testata, String aTipoDett, String aSezione, String aCdConto, BigDecimal aImporto, IDocumentoCogeBulk aPartita) throws ComponentException {
    try {
        if (aImporto.compareTo(BigDecimal.ZERO) == 0)
            return null;
        Movimento_cogeBulk movimentoCoge = new Movimento_cogeBulk();
        ContoHome contoHome = (ContoHome) getHome(userContext, ContoBulk.class);
        ContoBulk contoBulk = (ContoBulk) contoHome.findByPrimaryKey(new ContoBulk(aCdConto, CNRUserContext.getEsercizio(userContext)));
        movimentoCoge.setToBeCreated();
        movimentoCoge.setUser(userContext.getUser());
        movimentoCoge.setConto(contoBulk);
        movimentoCoge.setIm_movimento(aImporto);
        movimentoCoge.setTerzo(Optional.ofNullable(testata.getCdTerzo()).map(cdTerzo -> {
            try {
                return findByPrimaryKey(userContext, new TerzoBulk(cdTerzo));
            } catch (ComponentException e) {
                return handleException(e);
            }
        }).filter(TerzoBulk.class::isInstance).map(TerzoBulk.class::cast).orElse(null));
        movimentoCoge.setDt_da_competenza_coge(testata.getDtDa());
        movimentoCoge.setDt_a_competenza_coge(testata.getDtA());
        movimentoCoge.setStato(Movimento_cogeBulk.STATO_DEFINITIVO);
        movimentoCoge.setFl_modificabile(Boolean.FALSE);
        if (doccoge instanceof Fattura_passivaBulk) {
            Fattura_passivaBulk fatpas = (Fattura_passivaBulk) doccoge;
            movimentoCoge.setCd_cds(fatpas.getCd_cds_origine());
            movimentoCoge.setEsercizio(fatpas.getEsercizio());
            movimentoCoge.setCd_unita_organizzativa(fatpas.getCd_uo_origine());
            movimentoCoge.setTi_istituz_commerc(fatpas.getTi_istituz_commerc());
        } else if (doccoge instanceof Fattura_attivaBulk) {
            Fattura_attivaBulk fatatt = (Fattura_attivaBulk) doccoge;
            movimentoCoge.setCd_cds(fatatt.getCd_cds_origine());
            movimentoCoge.setEsercizio(fatatt.getEsercizio());
            movimentoCoge.setCd_unita_organizzativa(fatatt.getCd_uo_origine());
            movimentoCoge.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
        } else if (doccoge instanceof Documento_genericoBulk) {
            Documento_genericoBulk documento_genericoBulk = (Documento_genericoBulk) doccoge;
            movimentoCoge.setCd_cds(documento_genericoBulk.getCd_cds_origine());
            movimentoCoge.setEsercizio(documento_genericoBulk.getEsercizio());
            movimentoCoge.setCd_unita_organizzativa(documento_genericoBulk.getCd_uo_origine());
            movimentoCoge.setTi_istituz_commerc(documento_genericoBulk.getTi_istituz_commerc());
        } else if (doccoge instanceof CompensoBulk) {
            CompensoBulk compensoBulk = (CompensoBulk) doccoge;
            movimentoCoge.setCd_cds(compensoBulk.getCd_cds_origine());
            movimentoCoge.setEsercizio(compensoBulk.getEsercizio());
            movimentoCoge.setCd_unita_organizzativa(compensoBulk.getCd_uo_origine());
            movimentoCoge.setTi_istituz_commerc(compensoBulk.getTi_istituz_commerc());
        } else if (doccoge instanceof MandatoBulk) {
            MandatoBulk mandatoBulk = (MandatoBulk) doccoge;
            movimentoCoge.setCd_cds(mandatoBulk.getCd_cds_origine());
            movimentoCoge.setEsercizio(mandatoBulk.getEsercizio());
            movimentoCoge.setCd_unita_organizzativa(mandatoBulk.getCd_uo_origine());
            movimentoCoge.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
        }
        if (aPartita != null) {
            movimentoCoge.setCd_tipo_documento(aPartita.getCd_tipo_doc());
            movimentoCoge.setCd_cds_documento(aPartita.getCd_cds());
            movimentoCoge.setCd_uo_documento(aPartita.getCd_uo());
            movimentoCoge.setEsercizio_documento(aPartita.getEsercizio());
            movimentoCoge.setPg_numero_documento(aPartita.getPg_doc());
        }
        movimentoCoge.setTi_riga(aTipoDett);
        if (aSezione.equals(Movimento_cogeBulk.SEZIONE_DARE))
            scritturaPartitaDoppia.addToMovimentiDareColl(movimentoCoge);
        else
            scritturaPartitaDoppia.addToMovimentiAvereColl(movimentoCoge);
        logger.info("TipoRiga: " + aTipoDett + " - Conto: " + aCdConto + " - Sezione: " + aSezione + " - Importo: " + aImporto + (aPartita != null ? " - Partita: " + aPartita.getCd_tipo_doc() + "/" + aPartita.getCd_cds() + "/" + aPartita.getCd_uo() + "/" + aPartita.getEsercizio() + "/" + aPartita.getPg_doc() : ""));
        return movimentoCoge;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) CompensoBulk(it.cnr.contab.compensi00.docs.bulk.CompensoBulk) SQLException(java.sql.SQLException) PersistencyException(it.cnr.jada.persistency.PersistencyException) RemoteException(java.rmi.RemoteException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException)

Example 2 with CompensoBulk

use of it.cnr.contab.compensi00.docs.bulk.CompensoBulk in project sigla-main by consiglionazionaledellericerche.

the class ScritturaPartitaDoppiaComponent method proposeScritturaPartitaDoppiaMandatoStipendi.

private Scrittura_partita_doppiaBulk proposeScritturaPartitaDoppiaMandatoStipendi(UserContext userContext, MandatoBulk mandato) throws ComponentException, PersistencyException, RemoteException {
    // recupero il documento generico passivo leggendolo dalla tabelle stipendiCofiBulk
    Stipendi_cofiBulk stipendiCofiBulk = ((Stipendi_cofiHome) getHome(userContext, Stipendi_cofiBulk.class)).findStipendiCofi(mandato);
    if (!Optional.ofNullable(stipendiCofiBulk).isPresent())
        throw new ApplicationException("Il mandato " + mandato.getEsercizio() + "/" + mandato.getCds() + "/" + mandato.getPg_mandato() + " non risulta pagare uno stipendio. Proposta di prima nota non possibile.");
    CompensoBulk compensoStipendi = (CompensoBulk) Utility.createCompensoComponentSession().inizializzaBulkPerModifica(userContext, new CompensoBulk(stipendiCofiBulk.getCd_cds_comp(), stipendiCofiBulk.getCd_uo_comp(), stipendiCofiBulk.getEsercizio_comp(), stipendiCofiBulk.getPg_comp()));
    // Recupero dal compenso tutti i conti patrimoniali aperti
    List<Movimento_cogeBulk> dettPnPatrimonialePartita = this.findContoAnag(userContext, compensoStipendi);
    if (dettPnPatrimonialePartita == null || dettPnPatrimonialePartita.isEmpty())
        throw new ApplicationException("Non è stato possibile individuare la riga di tipo debito/credito per il compenso " + stipendiCofiBulk.getEsercizio_comp() + "/" + stipendiCofiBulk.getCd_cds_comp() + "/" + stipendiCofiBulk.getCd_uo_comp() + "/" + stipendiCofiBulk.getPg_comp() + ". Proposta di prima nota non possibile.");
    TestataPrimaNota testataPrimaNota = new TestataPrimaNota(mandato.getMandato_terzo().getCd_terzo(), null, null);
    // Chiudo i conti patrimoniali
    Voce_epBulk voceEpBanca = this.findContoBanca(userContext, CNRUserContext.getEsercizio(userContext));
    for (Iterator<Movimento_cogeBulk> i = dettPnPatrimonialePartita.iterator(); i.hasNext(); ) {
        Movimento_cogeBulk dettPN = i.next();
        testataPrimaNota.addDettaglio(compensoStipendi.getTipoDocumentoEnum().getTipoPatrimoniale(), Movimento_cogeBulk.getControSezione(compensoStipendi.getTipoDocumentoEnum().getSezionePatrimoniale()), dettPN.getCd_voce_ep(), dettPN.getIm_movimento());
        testataPrimaNota.addDettaglio(Movimento_cogeBulk.TipoRiga.TESORERIA.value(), compensoStipendi.getTipoDocumentoEnum().getSezionePatrimoniale(), voceEpBanca.getCd_voce_ep(), dettPN.getIm_movimento());
    }
    // Devo leggere la reversale vincolata
    List<Contributo_ritenutaBulk> righeCori = compensoStipendi.getChildren();
    BigDecimal imRitenute = righeCori.stream().map(Contributo_ritenutaBulk::getAmmontare).reduce(BigDecimal.ZERO, BigDecimal::add);
    if (imRitenute.compareTo(mandato.getIm_ritenute()) != 0)
        throw new ApplicationException("L'importo delle righe ritenute del compenso associato al mandato non corrisponde con l'importo ritenute associato al mandato.");
    // Registrazione conto CONTRIBUTI-RITENUTE
    righeCori.stream().forEach(cori -> {
        try {
            BigDecimal imCori = cori.getAmmontare();
            Pair<Voce_epBulk, Voce_epBulk> pairContoCori = this.findPairContiMandato(userContext, cori);
            Voce_epBulk contoVersamentoCori = pairContoCori.getSecond();
            testataPrimaNota.openDettaglioPatrimoniale(compensoStipendi, contoVersamentoCori.getCd_voce_ep(), imCori, false);
            testataPrimaNota.addDettaglio(Movimento_cogeBulk.TipoRiga.TESORERIA.value(), Movimento_cogeBulk.getControSezione(compensoStipendi.getTipoDocumentoEnum().getSezionePatrimoniale()), voceEpBanca.getCd_voce_ep(), imCori);
        } catch (ComponentException | PersistencyException e) {
            throw new ApplicationRuntimeException(e);
        }
    });
    return this.generaScrittura(userContext, mandato, Arrays.asList(testataPrimaNota), true);
}
Also used : Contributo_ritenutaBulk(it.cnr.contab.compensi00.docs.bulk.Contributo_ritenutaBulk) Stipendi_cofiHome(it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofiHome) BigDecimal(java.math.BigDecimal) PersistencyException(it.cnr.jada.persistency.PersistencyException) Stipendi_cofiBulk(it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofiBulk) CompensoBulk(it.cnr.contab.compensi00.docs.bulk.CompensoBulk)

Example 3 with CompensoBulk

use of it.cnr.contab.compensi00.docs.bulk.CompensoBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCompensoAction method doOnFlGenerataFatturaChange.

public Forward doOnFlGenerataFatturaChange(ActionContext context) {
    try {
        fillModel(context);
        CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
        CompensoBulk compenso = (CompensoBulk) bp.getModel();
        if (!compenso.getFl_generata_fattura())
            compenso.resetDatiFattura();
        return context.findDefaultForward();
    } catch (Throwable ex) {
        return handleException(context, ex);
    }
}
Also used : CRUDCompensoBP(it.cnr.contab.compensi00.bp.CRUDCompensoBP)

Example 4 with CompensoBulk

use of it.cnr.contab.compensi00.docs.bulk.CompensoBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCompensoAction method doBlankSearchFind_voce_iva.

public Forward doBlankSearchFind_voce_iva(ActionContext context, CompensoBulk compenso) {
    if (compenso != null) {
        CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
        compenso.setVoceIva(new Voce_ivaBulk());
        compenso.setStatoCompensoToEseguiCalcolo();
        bp.setDirty(true);
    }
    return context.findDefaultForward();
}
Also used : CRUDCompensoBP(it.cnr.contab.compensi00.bp.CRUDCompensoBP) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk)

Example 5 with CompensoBulk

use of it.cnr.contab.compensi00.docs.bulk.CompensoBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCompensoAction method doOnImNettoDaTrattenereChange.

public Forward doOnImNettoDaTrattenereChange(ActionContext context) {
    try {
        CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
        CompensoBulk compenso = (CompensoBulk) bp.getModel();
        java.math.BigDecimal oldImp = compenso.getIm_netto_da_trattenere();
        try {
            fillModel(context);
            if (compenso.isStatoCompensoEseguiCalcolo()) {
                compenso.setIm_netto_da_trattenere(oldImp);
                setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "E' necessario eseguire prima il calcolo.");
                return context.findDefaultForward();
            }
            if (Utility.nvl(compenso.getIm_netto_da_trattenere()).compareTo(new BigDecimal(0)) < 0) {
                compenso.setIm_netto_da_trattenere(new BigDecimal(0));
                setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "L'importo Netto da sospendere non può essere negativo.");
                return context.findDefaultForward();
            }
            if (Utility.nvl(compenso.getIm_netto_percipiente()).compareTo(Utility.nvl(compenso.getIm_netto_da_trattenere())) < 0) {
                compenso.setIm_netto_da_trattenere(oldImp);
                setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "L'importo Netto da sospendere non può superare l'importo netto da pagare.");
                return context.findDefaultForward();
            }
            return context.findDefaultForward();
        } catch (it.cnr.jada.bulk.FillException e) {
            compenso.setIm_netto_da_trattenere(oldImp);
            bp.setModel(context, compenso);
            throw e;
        }
    } catch (Throwable e) {
        return handleException(context, e);
    }
}
Also used : BigDecimal(java.math.BigDecimal) CRUDCompensoBP(it.cnr.contab.compensi00.bp.CRUDCompensoBP) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.compensi00.docs.bulk(it.cnr.contab.compensi00.docs.bulk) BigDecimal(java.math.BigDecimal)

Aggregations

CRUDCompensoBP (it.cnr.contab.compensi00.bp.CRUDCompensoBP)59 CompensoBulk (it.cnr.contab.compensi00.docs.bulk.CompensoBulk)54 PersistencyException (it.cnr.jada.persistency.PersistencyException)43 RemoteException (java.rmi.RemoteException)31 ComponentException (it.cnr.jada.comp.ComponentException)30 ApplicationException (it.cnr.jada.comp.ApplicationException)25 BigDecimal (java.math.BigDecimal)24 CompensoComponentSession (it.cnr.contab.compensi00.ejb.CompensoComponentSession)23 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)17 Tipo_trattamentoBulk (it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk)15 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)14 CompensoHome (it.cnr.contab.compensi00.docs.bulk.CompensoHome)13 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)13 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)12 Timestamp (java.sql.Timestamp)11 TerzoHome (it.cnr.contab.anagraf00.core.bulk.TerzoHome)10 it.cnr.contab.compensi00.docs.bulk (it.cnr.contab.compensi00.docs.bulk)10 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)10 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)10 UserContext (it.cnr.jada.UserContext)10