use of it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDNotaDiCreditoAttivaBP method replaceObject.
/**
* Insert the method's description here.
* Creation date: (09/07/2001 14:55:11)
*
* @return it.cnr.jada.util.action.SimpleDetailCRUDController
*/
public Object replaceObject(Object obj) {
if (getModel() != null && obj != null) {
Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) obj;
Nota_di_creditoBulk ndc = (Nota_di_creditoBulk) getModel();
if (ndc.getFattura_passiva_obbligazioniHash() != null) {
Obbligazione_scadenzarioBulk obbl = ndc.getFattura_passiva_obbligazioniHash().getKey(riga.getObbligazione_scadenziario());
if (obbl != null)
riga.setObbligazione_scadenziario(obbl);
return riga;
}
}
return obj;
}
use of it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDFatturaPassivaBP method sdoppiaDettaglioInAutomatico.
public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
try {
it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
FatturaPassivaComponentSession session = (FatturaPassivaComponentSession) createComponentSession();
Fattura_passivaBulk documento = (Fattura_passivaBulk) getModel();
Fattura_passiva_rigaIBulk dettaglioSelezionato = (Fattura_passiva_rigaIBulk) getDettaglio().getModel();
Obbligazione_scadenzarioBulk scadenzaNuova = null;
if (dettaglioSelezionato == null)
return;
if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(documento.STATO_PAGATO))
setMessage("Non è possibile sdoppiare righe in un documento pagato.");
if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getSaldo()) != -1) {
setMessage("Il nuovo importo della riga da sdoppiare deve essere positivo ed inferiore " + "al saldo originario.");
return;
}
Obbligazione_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getObbligazione_scadenziario();
BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia().add(dettaglioSelezionato.getIm_diponibile_nc().subtract(dettaglioSelezionato.getSaldo()));
BigDecimal newImportoRigaNuova = dettaglioSelezionato.getSaldo().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
BigDecimal newPrezzoRigaVecchia = newImportoRigaVecchia.divide(documento.getCambio(), 2, BigDecimal.ROUND_HALF_UP).divide(dettaglioSelezionato.getQuantita().multiply(dettaglioSelezionato.getVoce_iva().getPercentuale().divide(new BigDecimal(100)).add(new java.math.BigDecimal(1))), 2, BigDecimal.ROUND_HALF_UP);
BigDecimal newPrezzoRigaNuova = dettaglioSelezionato.getPrezzo_unitario().subtract(newPrezzoRigaVecchia);
BigDecimal oldImportoIvaVecchia = BigDecimal.ZERO;
BigDecimal tot_imp = BigDecimal.ZERO;
if (dettaglioSelezionato.getVoce_iva().getFl_autofattura() || documento.quadraturaInDeroga()) {
oldImportoIvaVecchia = dettaglioSelezionato.getIm_iva();
tot_imp = newPrezzoRigaVecchia.multiply(documento.getCambio()).multiply(dettaglioSelezionato.getQuantita()).setScale(2, BigDecimal.ROUND_HALF_UP);
} else
tot_imp = dettaglioSelezionato.getIm_riga_sdoppia();
if (dettaglioSelezionato.getObbligazione_scadenziario() != null) {
scadenzaNuova = (Obbligazione_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(dettaglioSelezionato.getSaldo().subtract(oldImportoIvaVecchia)).add(tot_imp));
// ricarico obbligazione e recupero i riferimenti alle scadenze
ObbligazioneBulk obbligazione = (ObbligazioneBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getObbligazione());
if (!obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
throw new ValidationException("Errore nello sdoppiamento della scadenza dell'impegno.");
scadenzaVecchia = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
scadenzaNuova = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
}
// creo la nuova riga di dettaglio e la associo al documento
Fattura_passiva_rigaIBulk nuovoDettaglio = new Fattura_passiva_rigaIBulk();
getDettaglio().addDetail(nuovoDettaglio);
nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
nuovoDettaglio.setQuantita(dettaglioSelezionato.getQuantita());
nuovoDettaglio.setPrezzo_unitario(newPrezzoRigaNuova);
nuovoDettaglio.calcolaCampiDiRiga();
// setto im_diponibile prime per la verifica e dopo
nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
if (nuovoDettaglio.getIm_diponibile_nc().compareTo(newImportoRigaNuova) != 0) {
nuovoDettaglio.setIm_iva(nuovoDettaglio.getIm_iva().add(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_diponibile_nc())));
nuovoDettaglio.setIm_totale_divisa(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_iva()));
nuovoDettaglio.setFl_iva_forzata(Boolean.TRUE);
nuovoDettaglio.calcolaCampiDiRiga();
}
nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
// Aggiorno la vecchia riga di dettaglio ed in particolare l'importo
// della riga da sdoppiare
// del doc amministrativo
BigDecimal oldImpTotaleDivisa = dettaglioSelezionato.getIm_totale_divisa();
dettaglioSelezionato.setPrezzo_unitario(newPrezzoRigaVecchia);
dettaglioSelezionato.calcolaCampiDiRiga();
// setto im_diponibile prime per la verifica e dopo
dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
if (dettaglioSelezionato.getIm_diponibile_nc().compareTo(newImportoRigaVecchia) != 0) {
dettaglioSelezionato.setIm_iva(dettaglioSelezionato.getIm_iva().add(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_diponibile_nc())));
dettaglioSelezionato.setIm_totale_divisa(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_iva()));
dettaglioSelezionato.setFl_iva_forzata(Boolean.TRUE);
dettaglioSelezionato.calcolaCampiDiRiga();
}
dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
dettaglioSelezionato.setToBeUpdated();
if (scadenzaVecchia != null) {
for (Iterator i = documento.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();
if (riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().equalsByPrimaryKey(scadenzaVecchia)) {
riga.setObbligazione_scadenziario(scadenzaVecchia);
documento.addToDefferredSaldi(scadenzaVecchia.getObbligazione(), scadenzaVecchia.getObbligazione().getSaldiInfo());
}
}
}
if (scadenzaNuova != null) {
BulkList selectedModels = new BulkList();
selectedModels.add(nuovoDettaglio);
documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
documento.addToFattura_passiva_obbligazioniHash(scadenzaNuova, nuovoDettaglio);
documento.addToDefferredSaldi(scadenzaNuova.getObbligazione(), scadenzaNuova.getObbligazione().getSaldiInfo());
// Sdoppia associazione inventario in automatico
if (nuovoDettaglio.isInventariato()) {
// r.p. Prendo il progressivo dalla fattura_passivaBulk
// perchè viene aggiornato
BuonoCaricoScaricoComponentSession r = (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class);
Ass_inv_bene_fatturaBulk newAss = r.sdoppiaAssociazioneFor(context.getUserContext(), (Fattura_passiva_rigaBulk) dettaglioSelezionato, (Fattura_passiva_rigaBulk) nuovoDettaglio);
documento.addToAssociazioniInventarioHash(newAss, nuovoDettaglio);
}
}
documento = (Fattura_passivaBulk) session.rebuildDocumento(context.getUserContext(), documento);
getObbligazioniController().getSelection().clear();
getObbligazioniController().setModelIndex(context, -1);
getObbligazioniController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getObbligazioniController().getDetails(), dettaglioSelezionato));
documento.setDetailDoubled(true);
setModel(context, documento);
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDNotaDiCreditoAttivaAction method basicDoModificaScadenzaObbligazioneInAutomatico.
/**
* Richiede all'obbligazione di modificare in automatico la sua scadenza (quella
* selezionata) portando la stessa ad importo pari alla sommatoria degli importi
* di riga dei dettagli associati. Aggiorna la mappa dei saldi per le variazioni
* subite dall'obbligazione
*
* @param context L'ActionContext della richiesta
* @return Il Forward alla pagina di risposta
*/
private Forward basicDoModificaScadenzaObbligazioneInAutomatico(ActionContext context) {
try {
CRUDNotaDiCreditoAttivaBP bp = (CRUDNotaDiCreditoAttivaBP) getBusinessProcess(context);
Nota_di_credito_attivaBulk notaDiCredito = (Nota_di_credito_attivaBulk) bp.getModel();
Obbligazione_scadenzarioBulk scadenza = (Obbligazione_scadenzarioBulk) bp.getObbligazioniController().getModel();
if (scadenza == null)
throw new it.cnr.jada.comp.ApplicationException("Selezionare l'impegno da modificare in automatico!");
// 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.");
ObbligazioneAbstractComponentSession h = CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
java.math.BigDecimal importoAttuale = notaDiCredito.getImportoTotalePerObbligazioni();
java.math.BigDecimal importoOriginale = (java.math.BigDecimal) notaDiCredito.getFattura_attiva_ass_totaliMap().get(scadenza);
java.math.BigDecimal delta = importoOriginale.subtract(importoAttuale);
if (new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP).compareTo(delta) == 0)
throw new it.cnr.jada.comp.ApplicationException("La modifica in automatico non è disponibile!");
try {
scadenza = (Obbligazione_scadenzarioBulk) h.modificaScadenzaInAutomatico(context.getUserContext(), scadenza, getImportoPerAggiornamentoScadenzaInAutomatico(context, scadenza, notaDiCredito, delta), delta.signum() < 0);
bp.getDefferedUpdateSaldiParentBP().getDefferedUpdateSaldiBulk().addToDefferredSaldi(scadenza.getObbligazione(), scadenza.getObbligazione().getSaldiInfo());
} catch (it.cnr.jada.comp.ComponentException e) {
if (e.getDetail() instanceof it.cnr.contab.doccont00.comp.CheckDisponibilitaCassaFailed)
throw new it.cnr.jada.comp.ApplicationException(e.getDetail().getMessage());
if (e.getDetail() instanceof it.cnr.contab.doccont00.comp.SfondamentoPdGException)
throw new it.cnr.jada.comp.ApplicationException(e.getDetail().getMessage());
throw e;
}
basicDoBringBackOpenObbligazioniWindow(context, scadenza);
notaDiCredito.addToFattura_attiva_ass_totaliMap(scadenza, importoAttuale);
bp.getObbligazioniController().getSelection().clear();
bp.getObbligazioniController().setModelIndex(context, -1);
bp.getObbligazioniController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(bp.getObbligazioniController().getDetails(), scadenza));
bp.setDirty(true);
} catch (Exception e) {
return handleException(context, e);
}
return context.findDefaultForward();
}
use of it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneModificaComponent method inserisciModifiche.
private Obbligazione_modificaBulk inserisciModifiche(UserContext aUC, Obbligazione_modificaBulk bulk) throws it.cnr.jada.comp.ComponentException {
try {
Obbligazione_modificaBulk obbMod = (Obbligazione_modificaBulk) bulk;
ObbligazioneBulk obbligazione = obbMod.getObbligazione();
BigDecimal percentuale = new BigDecimal(100);
BigDecimal totaleScad = new BigDecimal(0);
BigDecimal diffScad = new BigDecimal(0);
Obbligazione_scad_voceBulk osv;
Obbligazione_scadenzarioBulk os;
Obbligazione_scad_voceBulk key = new Obbligazione_scad_voceBulk();
PrimaryKeyHashtable prcImputazioneFinanziariaTable = getOldRipartizioneCdrVoceLinea(aUC, obbligazione);
// verifico che nella nuova Obbligazione alle linee/voci siano stati assegnati gli stessi importi
for (Enumeration e = prcImputazioneFinanziariaTable.keys(); e.hasMoreElements(); ) {
key = (Obbligazione_scad_voceBulk) e.nextElement();
totaleScad = new BigDecimal(0);
for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext(); ) {
os = (Obbligazione_scadenzarioBulk) s.next();
for (Iterator d = os.getObbligazione_scad_voceColl().iterator(); d.hasNext(); ) {
osv = (Obbligazione_scad_voceBulk) d.next();
// totale per Cdr e per scadenza
if (key.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita()) && key.getCd_linea_attivita().equals(osv.getCd_linea_attivita()) && key.getCd_voce().equals(osv.getCd_voce())) {
totaleScad = totaleScad.add(Utility.nvl(osv.getIm_voce()));
}
}
}
if (totaleScad.compareTo((BigDecimal) prcImputazioneFinanziariaTable.get(key)) != 0) {
Obbligazione_mod_voceBulk obbModVoce = new Obbligazione_mod_voceBulk(obbMod.getCd_cds(), obbMod.getEsercizio(), obbMod.getPg_modifica(), key.getTi_appartenenza(), key.getTi_gestione(), key.getCd_voce(), key.getCd_centro_responsabilita(), key.getCd_linea_attivita());
IVoceBilancioBulk voce = null;
if (((Parametri_cnrHome) getHome(aUC, Parametri_cnrBulk.class)).isNuovoPdg(aUC)) {
voce = new Elemento_voceBulk(key.getCd_voce(), obbMod.getEsercizio(), key.getTi_appartenenza(), key.getTi_gestione());
voce = (Elemento_voceBulk) getHome(aUC, Elemento_voceBulk.class).findByPrimaryKey(voce);
} else {
voce = new Voce_fBulk(key.getCd_voce(), obbMod.getEsercizio(), key.getTi_appartenenza(), key.getTi_gestione());
voce = (Voce_fBulk) getHome(aUC, Voce_fBulk.class).findByPrimaryKey(voce);
}
obbModVoce.setVoce(voce);
WorkpackageBulk linea = new WorkpackageBulk(key.getCd_centro_responsabilita(), key.getCd_linea_attivita());
linea = (WorkpackageBulk) getHome(aUC, linea).findByPrimaryKey(linea);
obbModVoce.setLinea_attivita(linea);
obbModVoce.setIm_modifica(totaleScad.subtract((BigDecimal) prcImputazioneFinanziariaTable.get(key)));
obbModVoce.setToBeCreated();
obbMod.addToObbligazione_mod_voceColl(obbModVoce);
}
}
return obbMod;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneResComponent method generaDettagliScadenzaObbligazione.
protected ObbligazioneBulk generaDettagliScadenzaObbligazione(UserContext aUC, ObbligazioneBulk obbligazione, Obbligazione_scadenzarioBulk scadenzario, boolean allineaImputazioneFinanziaria) throws ComponentException {
Obbligazione_scadenzarioBulk os;
// non e' ancora stata selezionata l'imputazione finanziaria
if (obbligazione.getLineeAttivitaSelezionateColl().size() == 0 && obbligazione.getNuoveLineeAttivitaColl().size() == 0)
return obbligazione;
// non sono ancora state inserite le scadenze
if (obbligazione.getObbligazione_scadenzarioColl().size() == 0)
return obbligazione;
if (// una sola scadenza e' stata modificata
scadenzario != null) {
// creo i dettagli della scadenza per le linee attivita da PDG
creaDettagliScadenzaPerLineeAttivitaDaPdG(aUC, obbligazione, scadenzario);
// creo i dettagli della scadenza per le nuove linee attivita
creaDettagliScadenzaPerNuoveLineeAttivita(aUC, obbligazione, scadenzario);
} else // imputazione finanziaria e' stata modificata, quindi rigenero i dettagli per tutte le scadenze
{
// per ogni scadenza aggiorno i suoi dettagli in base alle linee di attività specificate dall'utente
for (Iterator scadIterator = obbligazione.getObbligazione_scadenzarioColl().iterator(); scadIterator.hasNext(); ) {
os = (Obbligazione_scadenzarioBulk) scadIterator.next();
// cancello i dettagli della scadenza per le linee attivita che non esistono piu'
cancellaDettaglioScadenze(aUC, obbligazione, os);
// creo i dettagli della scadenza per le linee attivita da PDG
creaDettagliScadenzaPerLineeAttivitaDaPdG(aUC, obbligazione, os);
// creo i dettagli della scadenza per le nuove linee attivita
creaDettagliScadenzaPerNuoveLineeAttivita(aUC, obbligazione, os);
}
}
if (allineaImputazioneFinanziaria)
obbligazione = calcolaPercentualeImputazioneObbligazione(aUC, obbligazione);
return obbligazione;
}
Aggregations