Search in sources :

Example 1 with Accertamento_scadenzarioBulk

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);
    }
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException) Accertamento_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk) AccertamentoBulk(it.cnr.contab.doccont00.core.bulk.AccertamentoBulk) BulkList(it.cnr.jada.bulk.BulkList) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) ComponentException(it.cnr.jada.comp.ComponentException) DocumentoGenericoComponentSession(it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession)

Example 2 with Accertamento_scadenzarioBulk

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);
    }
}
Also used : IDocumentoAmministrativoBP(it.cnr.contab.docamm00.bp.IDocumentoAmministrativoBP) CRUDNotaDiDebitoAttivaBP(it.cnr.contab.docamm00.bp.CRUDNotaDiDebitoAttivaBP) HookForward(it.cnr.jada.action.HookForward) CRUDVirtualAccertamentoBP(it.cnr.contab.doccont00.bp.CRUDVirtualAccertamentoBP)

Example 3 with Accertamento_scadenzarioBulk

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);
    }
}
Also used : Ass_obb_acr_pgiroHome(it.cnr.contab.doccont00.core.bulk.Ass_obb_acr_pgiroHome) AccertamentoPGiroHome(it.cnr.contab.doccont00.core.bulk.AccertamentoPGiroHome) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Obbligazione_scadenzarioHome(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioHome) V_doc_attivo_accertamentoBulk(it.cnr.contab.doccont00.core.bulk.V_doc_attivo_accertamentoBulk) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) Accertamento_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk) Obbligazione_scad_voceHome(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceHome) V_obbligazione_im_mandatoBulk(it.cnr.contab.doccont00.core.bulk.V_obbligazione_im_mandatoBulk) Mandato_rigaBulk(it.cnr.contab.doccont00.core.bulk.Mandato_rigaBulk) Ass_obb_acr_pgiroBulk(it.cnr.contab.doccont00.core.bulk.Ass_obb_acr_pgiroBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException) ImpegnoPGiroBulk(it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk) Accertamento_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scad_voceBulk) V_doc_passivo_obbligazioneBulk(it.cnr.contab.doccont00.core.bulk.V_doc_passivo_obbligazioneBulk) Accertamento_scadenzarioHome(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioHome) ApplicationException(it.cnr.jada.comp.ApplicationException) Unita_organizzativa_enteHome(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteHome) List(java.util.List) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) AccertamentoPGiroBulk(it.cnr.contab.doccont00.core.bulk.AccertamentoPGiroBulk) Accertamento_scad_voceHome(it.cnr.contab.doccont00.core.bulk.Accertamento_scad_voceHome)

Example 4 with Accertamento_scadenzarioBulk

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);
    }
}
Also used : Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) ParseException(java.text.ParseException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) SQLException(java.sql.SQLException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) BulkList(it.cnr.jada.bulk.BulkList) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk)

Example 5 with Accertamento_scadenzarioBulk

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);
    }
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Utility(it.cnr.contab.util.Utility) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) BigDecimal(java.math.BigDecimal) ObbligazioneWizard(it.cnr.contab.doccont00.core.ObbligazioneWizard) Modalita_pagamentoBulk(it.cnr.contab.anagraf00.core.bulk.Modalita_pagamentoBulk) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) FindClause(it.cnr.jada.persistency.sql.FindClause) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) V_anagrafico_terzoBulk(it.cnr.contab.anagraf00.core.bulk.V_anagrafico_terzoBulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Documento_genericoBulk(it.cnr.contab.docamm00.docs.bulk.Documento_genericoBulk) AccertamentoWizard(it.cnr.contab.doccont00.core.AccertamentoWizard) Tipo_bolloHome(it.cnr.contab.doccont00.tabrif.bulk.Tipo_bolloHome) Collectors(java.util.stream.Collectors) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) Tipo_bolloBulk(it.cnr.contab.doccont00.tabrif.bulk.Tipo_bolloBulk) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationException(it.cnr.jada.comp.ApplicationException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException)

Aggregations

Accertamento_scadenzarioBulk (it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk)47 ApplicationException (it.cnr.jada.comp.ApplicationException)33 ComponentException (it.cnr.jada.comp.ComponentException)28 BigDecimal (java.math.BigDecimal)27 PersistencyException (it.cnr.jada.persistency.PersistencyException)25 RemoteException (java.rmi.RemoteException)24 Iterator (java.util.Iterator)23 AccertamentoBulk (it.cnr.contab.doccont00.core.bulk.AccertamentoBulk)21 ValidationException (it.cnr.jada.bulk.ValidationException)20 Accertamento_scad_voceBulk (it.cnr.contab.doccont00.core.bulk.Accertamento_scad_voceBulk)19 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)19 EJBException (javax.ejb.EJBException)19 BulkList (it.cnr.jada.bulk.BulkList)16 java.util (java.util)16 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)15 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)15 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)11 AccertamentoAbstractComponentSession (it.cnr.contab.doccont00.ejb.AccertamentoAbstractComponentSession)11 Elemento_voceBulk (it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk)10 it.cnr.contab.config00.sto.bulk (it.cnr.contab.config00.sto.bulk)10