use of it.cnr.contab.coepcoan00.core.bulk.Scrittura_partita_doppiaHome in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaFromDocumentoComponent method caricaScrittura.
protected void caricaScrittura(UserContext userContext, IDocumentoCogeBulk documentoCogeBulk) throws ComponentException {
try {
if (Optional.ofNullable(getHome(userContext, Configurazione_cnrBulk.class)).filter(Configurazione_cnrHome.class::isInstance).map(Configurazione_cnrHome.class::cast).orElseThrow(() -> new DetailedRuntimeException("Configurazione Home not found")).isAttivaEconomicaParallela(userContext)) {
Scrittura_partita_doppiaHome partitaDoppiaHome = Optional.ofNullable(getHome(userContext, Scrittura_partita_doppiaBulk.class)).filter(Scrittura_partita_doppiaHome.class::isInstance).map(Scrittura_partita_doppiaHome.class::cast).orElseThrow(() -> new DetailedRuntimeException("Partita doppia Home not found"));
final Optional<Scrittura_partita_doppiaBulk> scritturaOpt = partitaDoppiaHome.findByDocumentoAmministrativo(documentoCogeBulk);
if (scritturaOpt.isPresent()) {
Scrittura_partita_doppiaBulk scrittura = scritturaOpt.get();
scrittura.setMovimentiDareColl(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, scrittura.getClass())).findMovimentiDareColl(userContext, scrittura)));
scrittura.setMovimentiAvereColl(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, scrittura.getClass())).findMovimentiAvereColl(userContext, scrittura)));
documentoCogeBulk.setScrittura_partita_doppia(scrittura);
}
}
} catch (PersistencyException | ComponentException e) {
throw handleException((OggettoBulk) documentoCogeBulk, e);
}
}
use of it.cnr.contab.coepcoan00.core.bulk.Scrittura_partita_doppiaHome in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaComponent method findContoAnag.
/**
* Ritorna la lista delle righe prima nota associate che movimentano i conti patrimoniali di tipo debito/credito associati al documento
* @param userContext
* @param docamm
* @return
* @throws ComponentException
* @throws PersistencyException
*/
private List<Movimento_cogeBulk> findContoAnag(UserContext userContext, IDocumentoCogeBulk docamm) throws ComponentException, PersistencyException {
Scrittura_partita_doppiaHome partitaDoppiaHome = Optional.ofNullable(getHome(userContext, Scrittura_partita_doppiaBulk.class)).filter(Scrittura_partita_doppiaHome.class::isInstance).map(Scrittura_partita_doppiaHome.class::cast).orElseThrow(() -> new DetailedRuntimeException("Partita doppia Home not found"));
final Optional<Scrittura_partita_doppiaBulk> scritturaOpt = partitaDoppiaHome.findByDocumentoAmministrativo(docamm);
if (scritturaOpt.isPresent()) {
Scrittura_partita_doppiaBulk scrittura = scritturaOpt.get();
scrittura.setMovimentiDareColl(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, scrittura.getClass())).findMovimentiDareColl(userContext, scrittura)));
scrittura.setMovimentiAvereColl(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, scrittura.getClass())).findMovimentiAvereColl(userContext, scrittura)));
return scrittura.getAllMovimentiColl().stream().filter(el -> el.getSezione().equals(docamm.getTipoDocumentoEnum().getSezionePatrimoniale())).filter(el -> docamm.getTipoDocumentoEnum().getTipoPatrimoniale().equals(el.getTi_riga())).collect(Collectors.toList());
}
return null;
}
use of it.cnr.contab.coepcoan00.core.bulk.Scrittura_partita_doppiaHome in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaComponent method proposeScritturaPartitaDoppiaManRevAnnullato.
private Scrittura_partita_doppiaBulk proposeScritturaPartitaDoppiaManRevAnnullato(UserContext userContext, IManRevBulk manrev) throws ComponentException, PersistencyException {
boolean isMandato = manrev instanceof MandatoBulk;
if (!manrev.isAnnullato())
throw new ApplicationException((isMandato ? "Il mandato " : "La reversale") + manrev.getEsercizio() + "/" + manrev.getCd_cds() + "/" + manrev.getPg_manrev() + " non risulta " + (isMandato ? "annullato" : "annullata") + ". Proposta di prima nota non possibile.");
TestataPrimaNota testataPrimaNota = new TestataPrimaNota(manrev.getTerzo().getCd_terzo(), null, null);
// devo stornare scrittura prima nota del mandato
// prendo tutte le prime note e scrivo registrazioni di senso inverso
List<Scrittura_partita_doppiaBulk> scritturePd = ((Scrittura_partita_doppiaHome) getHome(userContext, Scrittura_partita_doppiaBulk.class)).findByDocumentoCoge(manrev);
scritturePd.stream().forEach(scrittura -> {
try {
List<Movimento_cogeBulk> movimentiCoge = new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, Scrittura_partita_doppiaBulk.class)).findMovimentiDareColl(userContext, scrittura));
movimentiCoge.addAll(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, Scrittura_partita_doppiaBulk.class)).findMovimentiAvereColl(userContext, scrittura)));
movimentiCoge.stream().forEach(movimento -> {
Partita partita = Optional.of(movimento).filter(mov -> Optional.ofNullable(mov.getCd_tipo_documento()).isPresent()).map(mov -> new Partita(mov, scrittura)).orElse(null);
testataPrimaNota.addDettaglio(movimento.getTi_riga(), Movimento_cogeBulk.getControSezione(movimento.getSezione()), movimento.getSezione(), movimento.getIm_movimento(), partita);
});
} catch (ComponentException | PersistencyException e) {
throw new ApplicationRuntimeException(e);
}
});
return this.generaScrittura(userContext, manrev, Arrays.asList(testataPrimaNota), true);
}
Aggregations