use of it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDDocumentoGenericoAttivoBP method sdoppiaDettaglioInAutomatico.
public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
try {
it.cnr.contab.doccont00.ejb.AccertamentoAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualAccertamentoBP.getVirtualComponentSession(context, true);
DocumentoGenericoComponentSession session = (DocumentoGenericoComponentSession) createComponentSession();
Documento_genericoBulk documento = (Documento_genericoBulk) getModel();
Documento_generico_rigaBulk dettaglioSelezionato = (Documento_generico_rigaBulk) getDettaglio().getModel();
Accertamento_scadenzarioBulk scadenzaNuova = null;
if (dettaglioSelezionato == null)
return;
if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(Documento_genericoBulk.STATO_PAGATO))
setMessage("Non è possibile sdoppiare righe in un documento pagato");
if (dettaglioSelezionato.getIm_riga() == null) {
setMessage("Non è possibile sdoppiare righe in cui l'importo di origine non è valorizzato");
return;
}
if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getIm_riga()) != -1) {
setMessage("L'importo nuovo della riga da sdoppiare deve essere positivo ed inferiore " + "all'importo originario del riga stessa");
return;
}
Accertamento_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getAccertamento_scadenziario();
java.math.BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia();
java.math.BigDecimal newImportoRigaNuova = dettaglioSelezionato.getIm_riga().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
if (dettaglioSelezionato.getAccertamento_scadenziario() != null) {
/*
* L'importo della scadenza vecchia sarà pari al valore iniziale diminuito del valore originario del
* dettaglio e aumentato del valore nuovo.
* Ciò al fine di gestire il caso di utenti che collegano più dettagli di documento alla stessa scadenza
*/
scadenzaNuova = (Accertamento_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(Utility.nvl(dettaglioSelezionato.getIm_riga())).add(Utility.nvl(dettaglioSelezionato.getIm_riga_sdoppia())));
// ricarico l'accertamento e recupero i riferimenti alle scadenze
AccertamentoBulk accertamento = (AccertamentoBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getAccertamento());
if (!accertamento.getAccertamento_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !accertamento.getAccertamento_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
throw new ValidationException("Errore nello sdoppiamento della scadenza dell'accertamento.");
scadenzaVecchia = accertamento.getAccertamento_scadenzarioColl().get(accertamento.getAccertamento_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
scadenzaNuova = accertamento.getAccertamento_scadenzarioColl().get(accertamento.getAccertamento_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
}
// creo la nuova riga di dettaglio e la associo al documento
Documento_generico_rigaBulk nuovoDettaglio = new Documento_generico_rigaBulk();
getDettaglio().addDetail(nuovoDettaglio);
nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
// Aggiorno la vecchia riga di dettaglio ed in particolare l'importo della riga da sdoppiare
// del doc amministrativo
dettaglioSelezionato.setIm_riga(newImportoRigaVecchia);
dettaglioSelezionato.setIm_riga_divisa(newImportoRigaVecchia);
dettaglioSelezionato.setToBeUpdated();
if (scadenzaVecchia != null) {
dettaglioSelezionato.setAccertamento_scadenziario(scadenzaVecchia);
documento.addToDefferredSaldi(scadenzaVecchia.getAccertamento(), scadenzaVecchia.getAccertamento().getSaldiInfo());
}
if (scadenzaNuova != null) {
BulkList selectedModels = new BulkList();
selectedModels.add(nuovoDettaglio);
documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
documento.addToDefferredSaldi(scadenzaNuova.getAccertamento(), scadenzaNuova.getAccertamento().getSaldiInfo());
}
documento = session.rebuildDocumento(context.getUserContext(), documento);
getAccertamentiController().getSelection().clear();
getAccertamentiController().setModelIndex(context, -1);
getAccertamentiController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getAccertamentiController().getDetails(), dettaglioSelezionato));
documento.setDetailDoubled(true);
setModel(context, documento);
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDNotaDiDebitoAttivaAction method doOpenAccertamentiWindow.
/**
* richiede l'apertura del pannello dell'accertamento per la modifica della
* scadenza selezionata
*
* @param context L'ActionContext della richiesta
* @return Il Forward alla pagina di risposta
*/
public Forward doOpenAccertamentiWindow(ActionContext context) {
try {
CRUDNotaDiDebitoAttivaBP bp = (CRUDNotaDiDebitoAttivaBP) getBusinessProcess(context);
fillModel(context);
Accertamento_scadenzarioBulk scadenza = (Accertamento_scadenzarioBulk) bp.getAccertamentiController().getModel();
boolean viewMode = bp.isViewing();
if (scadenza == null)
throw new it.cnr.jada.comp.ApplicationException("Selezionare l'accertamento da " + (viewMode ? "visualizzare" : "modificare") + " in manuale!");
// controllo che la scadenza appartenga all'esercizio di scrivania nella fase di cancellazione
if (bp.isDeleting() && !bp.isViewing() && !it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).equals(scadenza.getEsercizio()))
throw new it.cnr.jada.comp.ApplicationException("La scadenza selezionata appartiene all'esercizio " + scadenza.getEsercizio().intValue() + "! Operazione annullata.");
if (!viewMode && bp instanceof IDocumentoAmministrativoBP)
viewMode = !((IDocumentoAmministrativoBP) bp).getDocumentoAmministrativoCorrente().isEditable();
String status = viewMode ? "V" : "M";
it.cnr.contab.doccont00.bp.CRUDVirtualAccertamentoBP nbp = it.cnr.contab.doccont00.bp.CRUDVirtualAccertamentoBP.getBusinessProcessFor(context, scadenza.getAccertamento(), status + "RSWTh");
nbp.edit(context, scadenza.getAccertamento(), true);
nbp.selezionaScadenza(scadenza, context);
context.addHookForward("bringback", this, "doBringBackOpenAccertamentiWindow");
HookForward hook = (HookForward) context.findForward("bringback");
return context.addBusinessProcess(nbp);
} catch (Exception e) {
return handleException(context, e);
}
}
use of it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method inizializzaBulkPerModifica.
/**
* inizializzazione per modifica
* PreCondition:
* La richiesta di inizializzazione di un ImpegnoPGiroBulk per modifica
* e' stata generata
* PostCondition:
* Vengono recuperati la scadenza e il dettaglio di scadenza associati all'impegno.
* Viene recuperata l'associazione fra l'impegno e l'accertamento
* Viene recuperato l'accertamento associato all'impegno e la relativa scadenza e dettaglio scadenza
*
* @param aUC lo <code>UserContext</code> che ha generato la richiesta
* @param bulk <code>OggettoBulk</code> l'impegno su partita di giro da inizializzare per la modifica
*
* @return imp_pgiro l'impegno su partita di giro inizializzato per la modifica
*/
public OggettoBulk inizializzaBulkPerModifica(UserContext aUC, OggettoBulk bulk) throws ComponentException {
try {
if (bulk instanceof V_obbligazione_im_mandatoBulk) {
V_obbligazione_im_mandatoBulk v_obbligazione = (V_obbligazione_im_mandatoBulk) bulk;
bulk = (OggettoBulk) getHome(aUC, ImpegnoPGiroBulk.class).findByPrimaryKey(new ImpegnoPGiroBulk(v_obbligazione.getCd_cds(), v_obbligazione.getEsercizio(), v_obbligazione.getEsercizio_originale(), v_obbligazione.getPg_obbligazione()));
if (bulk == null)
throw new ApplicationException("L'impegno e' stato cancellato");
}
bulk = super.inizializzaBulkPerModifica(aUC, bulk);
ImpegnoPGiroBulk imp_pgiro = (ImpegnoPGiroBulk) bulk;
AccertamentoPGiroBulk accert_pgiro = null;
imp_pgiro.setCd_terzo_iniziale(imp_pgiro.getCd_terzo());
imp_pgiro.setIm_iniziale_obbligazione(imp_pgiro.getIm_obbligazione());
// query per recuperare la scadenza dell'obbligazione
// impegnoPgiro.getObbligazione_scadenzarioColl().add( scadenza );
Obbligazione_scadenzarioHome obblig_scadHome = (Obbligazione_scadenzarioHome) getHome(aUC, Obbligazione_scadenzarioBulk.class);
SQLBuilder sql = obblig_scadHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, imp_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
List result = obblig_scadHome.fetchAll(sql);
Obbligazione_scadenzarioBulk obblig_scad = (Obbligazione_scadenzarioBulk) result.get(0);
imp_pgiro.setDt_scadenza(obblig_scad.getDt_scadenza());
imp_pgiro.getObbligazione_scadenzarioColl().add(obblig_scad);
obblig_scad.setObbligazione(imp_pgiro);
// carico l'eventuale doc.amministrativo legato alla scadenza
V_doc_passivo_obbligazioneBulk docPassivo = obblig_scadHome.findDoc_passivo(obblig_scad);
if (docPassivo != null) {
obblig_scad.setEsercizio_doc_passivo(docPassivo.getEsercizio());
obblig_scad.setPg_doc_passivo(docPassivo.getPg_documento_amm());
imp_pgiro.setEsercizio_doc_passivo(docPassivo.getEsercizio());
imp_pgiro.setPg_doc_passivo(docPassivo.getPg_documento_amm());
imp_pgiro.setCd_tipo_documento_amm(docPassivo.getCd_tipo_documento_amm());
}
// carico l'eventuale mandato associato
Mandato_rigaBulk mandato = obblig_scadHome.findMandato(obblig_scad);
if (mandato != null) {
imp_pgiro.setEsercizio_mandato(mandato.getEsercizio());
imp_pgiro.setPg_mandato(mandato.getPg_mandato());
}
// query per recuperare scad_voce dell'obbligazione
// scadenza.getObbligazione_scad_voceColl().add( scad_voce );
Obbligazione_scad_voceHome obblig_scad_voceHome = (Obbligazione_scad_voceHome) getHome(aUC, Obbligazione_scad_voceBulk.class);
sql = obblig_scad_voceHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, imp_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
result = obblig_scad_voceHome.fetchAll(sql);
Obbligazione_scad_voceBulk obblig_scad_voce = (Obbligazione_scad_voceBulk) result.get(0);
obblig_scad.getObbligazione_scad_voceColl().add(obblig_scad_voce);
obblig_scad_voce.setObbligazione_scadenzario(obblig_scad);
// query associazione
// impegnoPgiro.setAssociazione( associazione );
// associazione.setObbligazione ( impegnoPgiro);
Ass_obb_acr_pgiroHome associazioneHome = (Ass_obb_acr_pgiroHome) getHome(aUC, Ass_obb_acr_pgiroBulk.class);
sql = associazioneHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_ori_obbligazione", sql.EQUALS, imp_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
result = associazioneHome.fetchAll(sql);
if (result.size() > 0) {
Ass_obb_acr_pgiroBulk associazione = (Ass_obb_acr_pgiroBulk) result.get(0);
imp_pgiro.setAssociazione(associazione);
associazione.setImpegno(imp_pgiro);
// query per recuperare l'accertamentoPgiro
// associazione.setAccertamento( accertamentoPgiro);
// accertamentoPgiro.setAssociazione( associazione )
AccertamentoPGiroHome accert_pgiroHome = (AccertamentoPGiroHome) getHome(aUC, AccertamentoPGiroBulk.class);
sql = accert_pgiroHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, associazione.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, associazione.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, associazione.getEsercizio_ori_accertamento());
sql.addClause("AND", "pg_accertamento", sql.EQUALS, associazione.getPg_accertamento());
result = accert_pgiroHome.fetchAll(sql);
accert_pgiro = (AccertamentoPGiroBulk) result.get(0);
accert_pgiro.setAssociazione(associazione);
associazione.setAccertamento(accert_pgiro);
if (accert_pgiro.getCapitolo() != null) {
Elemento_voceBulk ev = (Elemento_voceBulk) getHome(aUC, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(accert_pgiro.getCapitolo().getCd_voce(), accert_pgiro.getCapitolo().getEsercizio(), accert_pgiro.getCapitolo().getTi_appartenenza(), accert_pgiro.getCapitolo().getTi_gestione()));
imp_pgiro.setElemento_voceContr(ev);
}
// query per recuperare la scadenza dell'accertamento
// accertamentoPgiro.getAccertamento_scadenzarioColl().add( scadenza );
Accertamento_scadenzarioHome accert_scadHome = (Accertamento_scadenzarioHome) getHome(aUC, Accertamento_scadenzarioBulk.class);
sql = accert_scadHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, accert_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, accert_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, accert_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_accertamento", sql.EQUALS, accert_pgiro.getPg_accertamento());
result = accert_scadHome.fetchAll(sql);
Accertamento_scadenzarioBulk accert_scad = (Accertamento_scadenzarioBulk) result.get(0);
accert_pgiro.setDt_scadenza(accert_scad.getDt_scadenza_incasso());
accert_pgiro.getAccertamento_scadenzarioColl().add(accert_scad);
accert_scad.setAccertamento(accert_pgiro);
// carico l'eventuale doc.amministrativo legato alla scadenza
V_doc_attivo_accertamentoBulk docAttivo = accert_scadHome.findDoc_attivo(accert_scad);
if (docAttivo != null) {
accert_scad.setEsercizio_doc_attivo(docAttivo.getEsercizio());
accert_scad.setPg_doc_attivo(docAttivo.getPg_documento_amm());
}
// query per recuperare scad_voce dell'accertamento
// scadenza.getAccertamento_scad_voceColl().add( scad_voce );
Accertamento_scad_voceHome accert_scad_voceHome = (Accertamento_scad_voceHome) getHome(aUC, Accertamento_scad_voceBulk.class);
sql = accert_scad_voceHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, accert_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, accert_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, accert_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_accertamento", sql.EQUALS, accert_pgiro.getPg_accertamento());
result = accert_scad_voceHome.fetchAll(sql);
Accertamento_scad_voceBulk accert_scad_voce = (Accertamento_scad_voceBulk) result.get(0);
accert_scad.getAccertamento_scad_voceColl().add(accert_scad_voce);
accert_scad_voce.setAccertamento_scadenzario(accert_scad);
}
// query per recuperare cd_uo_ente dell'impegno
Unita_organizzativa_enteHome uo_enteHome = (Unita_organizzativa_enteHome) getHome(aUC, Unita_organizzativa_enteBulk.class);
sql = uo_enteHome.createSQLBuilder();
result = uo_enteHome.fetchAll(sql);
Unita_organizzativa_enteBulk uo_ente = (Unita_organizzativa_enteBulk) result.get(0);
imp_pgiro.setCd_uo_ente(uo_ente.getCd_unita_organizzativa());
if (accert_pgiro != null) {
accert_pgiro.setCd_uo_ente(uo_ente.getCd_unita_organizzativa());
if ((accert_pgiro.getDt_cancellazione() == null && imp_pgiro.getDt_cancellazione() != null) || (accert_pgiro.getDt_cancellazione() != null && imp_pgiro.getDt_cancellazione() == null)) {
accert_pgiro.setFl_isTronco(true);
imp_pgiro.setFl_isTronco(true);
}
}
return imp_pgiro;
} catch (Exception e) {
throw handleException(bulk, e);
}
}
use of it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class ReversaleComponent method docGenerico_creaDocumentoGenericoRiga.
/**
* creazione riga di documento di entrata x incasso IVA da fatture estere
* PreCondition:
* E' stata generata la richiesta di creazione di una riga di documento amministrativo di entrata
* a partire da una reversale di incasso IVA x fattura estera
* PostCondition:
* Un riga di documento amministrativo viene creata.
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param documento <code>Documento_genericoBulk</code> il documento generico
* @param scadenza <code>Accertamento_scadenzarioBulk</code> la scadenza dell'accertamento
* @param importo L'importo della reversale di regolarizzazione
* @param mRiga Mandato_rigaBulk da cui dedurre le modalita di pagamento
* @return riga <code>Documento_generico_rigaBulk</code> la riga del documento generico creata
*/
public Documento_generico_rigaBulk docGenerico_creaDocumentoGenericoRiga(UserContext userContext, Documento_genericoBulk documento, Accertamento_scadenzarioBulk scadenza, BigDecimal importo, Mandato_rigaBulk mRiga) throws ComponentException {
try {
Documento_generico_rigaBulk riga = docGenerico_creaDocumentoGenericoRiga(userContext, documento, scadenza, importo);
// terzo uo
SQLBuilder sql = getHome(userContext, TerzoBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_unita_organizzativa", SQLBuilder.EQUALS, documento.getCd_unita_organizzativa());
sql.addClause("AND", "dt_canc", SQLBuilder.ISNULL, null);
List result = getHome(userContext, TerzoBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non e' stata codificata in anagrafica"));
TerzoBulk terzo_uo = (TerzoBulk) result.get(0);
riga.setCd_terzo_uo_cds(terzo_uo.getCd_terzo());
riga.setTerzo_uo_cds(terzo_uo);
// modalità pagamento
sql = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
sql.addClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
sql.addTableToHeader("RIF_MODALITA_PAGAMENTO");
sql.addSQLJoin("RIF_MODALITA_PAGAMENTO.CD_MODALITA_PAG", "MODALITA_PAGAMENTO.CD_MODALITA_PAG");
sql.addSQLClause("AND", "TI_PAGAMENTO", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
result = getHome(userContext, Modalita_pagamentoBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha modalità di pagamento associate"));
Modalita_pagamentoBulk mp = (Modalita_pagamentoBulk) result.get(0);
riga.setCd_modalita_pag_uo_cds(mp.getCd_modalita_pag());
riga.setModalita_pagamento_uo_cds(new Rif_modalita_pagamentoBulk(mp.getCd_modalita_pag()));
sql = getHome(userContext, BancaBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
sql.addClause("AND", "ti_pagamento", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
sql.addClause("AND", "fl_cancellato", SQLBuilder.EQUALS, Boolean.FALSE);
sql.addSQLClause("AND", "CODICE_IBAN", SQLBuilder.ISNOTNULL, null);
sql.addSQLClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
try {
if (!Utility.createParametriCnrComponentSession().getParametriCnr(userContext, CNRUserContext.getEsercizio(userContext)).getFl_tesoreria_unica().booleanValue())
sql.addSQLClause("AND", "BANCA.FL_CC_CDS", SQLBuilder.EQUALS, "Y");
else {
Configurazione_cnrBulk config = new Configurazione_cnrBulk("CONTO_CORRENTE_SPECIALE", "ENTE", "*", new Integer(0));
it.cnr.contab.config00.bulk.Configurazione_cnrHome home = (it.cnr.contab.config00.bulk.Configurazione_cnrHome) getHome(userContext, config);
List configurazioni = home.find(config);
if ((configurazioni != null) && (configurazioni.size() == 1)) {
Configurazione_cnrBulk configBanca = (Configurazione_cnrBulk) configurazioni.get(0);
sql.addSQLClause("AND", "BANCA.ABI", SQLBuilder.EQUALS, configBanca.getVal01());
sql.addSQLClause("AND", "BANCA.CAB", SQLBuilder.EQUALS, configBanca.getVal02());
sql.addSQLClause("AND", "BANCA.NUMERO_CONTO", SQLBuilder.CONTAINS, configBanca.getVal03());
}
}
} catch (Exception e) {
throw handleException(e);
}
result = getHome(userContext, BancaBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha coordinate bancarie associate"));
BancaBulk banca = (BancaBulk) result.get(0);
riga.setPg_banca_uo_cds(banca.getPg_banca());
riga.setBanca_uo_cds(banca);
return riga;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class ReversaleAutomaticaComponent method creaReversaleAutomaticaDaDocAttivi.
private OggettoBulk creaReversaleAutomaticaDaDocAttivi(UserContext userContext, ReversaleAutomaticaWizardBulk wizard, Collection<V_doc_attivo_accertamento_wizardBulk> docAttiviColl) throws ComponentException {
try {
Map<Integer, Map<Optional<String>, Map<Optional<Long>, List<V_doc_attivo_accertamento_wizardBulk>>>> mapTerzo = docAttiviColl.stream().collect(Collectors.groupingBy(V_doc_attivo_accertamento_wizardBulk::getCd_terzo, Collectors.groupingBy(p -> Optional.ofNullable(p.getCd_modalita_pag()), Collectors.groupingBy(q -> Optional.ofNullable(q.getPg_banca())))));
mapTerzo.keySet().stream().forEach(aCdTerzo -> {
mapTerzo.get(aCdTerzo).keySet().forEach(aCdModalitaPag -> {
mapTerzo.get(aCdTerzo).get(aCdModalitaPag).keySet().forEach(aPgBanca -> {
try {
List docAttiviCompetenzaColl = new ArrayList();
List docAttiviResiduiColl = new ArrayList();
mapTerzo.get(aCdTerzo).get(aCdModalitaPag).get(aPgBanca).forEach(docTerzo -> {
try {
Accertamento_scadenzarioBulk as = (Accertamento_scadenzarioBulk) getHome(userContext, Accertamento_scadenzarioBulk.class).findAndLock(new Accertamento_scadenzarioBulk(docTerzo.getCd_cds(), docTerzo.getEsercizio(), docTerzo.getEsercizio_ori_accertamento(), docTerzo.getPg_accertamento(), docTerzo.getPg_accertamento_scadenzario()));
if (as.getIm_scadenza().compareTo(docTerzo.getIm_scadenza()) != 0 || as.getIm_associato_doc_contabile().compareTo(docTerzo.getIm_associato_doc_contabile()) != 0)
throw new ApplicationException("Operazione non possibile! E' stata utilizzata da un altro utente la scadenza nr." + docTerzo.getPg_accertamento_scadenzario() + " dell'accertamento " + docTerzo.getEsercizio_ori_accertamento() + "/" + docTerzo.getPg_accertamento());
if (docTerzo.isCompetenza() || wizard.isFlGeneraReversaleUnica())
docAttiviCompetenzaColl.add(docTerzo);
else
docAttiviResiduiColl.add(docTerzo);
} catch (Exception e) {
throw new ApplicationRuntimeException(e);
}
});
ReversaleBulk reversaleCompetenza, reversaleResiduo;
if (!docAttiviCompetenzaColl.isEmpty()) {
reversaleCompetenza = creaReversaleAutomatica(userContext, wizard, MandatoBulk.TIPO_COMPETENZA);
reversaleCompetenza.setReversale_terzo(creaReversaleTerzo(reversaleCompetenza, cercaTerzo(userContext, aCdTerzo), wizard.getReversale_terzo().getTipoBollo()));
reversaleCompetenza = aggiungiDocAttivi(userContext, reversaleCompetenza, docAttiviCompetenzaColl);
reversaleCompetenza.refreshImporto();
verificaReversale(userContext, reversaleCompetenza, Boolean.TRUE);
super.creaConBulk(userContext, reversaleCompetenza);
aggiornaStatoFattura(userContext, reversaleCompetenza, INSERIMENTO_REVERSALE_ACTION);
wizard.getReversaliColl().add(reversaleCompetenza);
}
if (!docAttiviResiduiColl.isEmpty()) {
reversaleResiduo = creaReversaleAutomatica(userContext, wizard, MandatoBulk.TIPO_RESIDUO);
reversaleResiduo.setReversale_terzo(creaReversaleTerzo(reversaleResiduo, cercaTerzo(userContext, aCdTerzo), wizard.getReversale_terzo().getTipoBollo()));
reversaleResiduo = aggiungiDocAttivi(userContext, reversaleResiduo, docAttiviResiduiColl);
reversaleResiduo.refreshImporto();
verificaReversale(userContext, reversaleResiduo, Boolean.TRUE);
super.creaConBulk(userContext, reversaleResiduo);
aggiornaStatoFattura(userContext, reversaleResiduo, INSERIMENTO_REVERSALE_ACTION);
wizard.getReversaliColl().add(reversaleResiduo);
}
} catch (Exception e) {
throw new DetailedRuntimeException(e);
}
});
});
});
return wizard;
} catch (Exception e) {
throw handleException(e);
}
}
Aggregations