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);
}
}
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);
}
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);
}
}
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();
}
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);
}
}
Aggregations