use of it.cnr.contab.inventario01.bulk 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.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.
the class SaldoComponent method checkDispPianoEconomicoProgetto.
/**
* Metodo che verifica la congruenza delle disponibilità sul piano economico del progetto
*
* @param userContext
* @param moduloCosti
* @param isFromChangeStato indica che la modifica è stata richiesta in fase di cambio stato progetto
* @throws ComponentException
*/
public void checkDispPianoEconomicoProgetto(UserContext userContext, Pdg_modulo_costiBulk moduloCosti, boolean isFromChangeStato) throws ComponentException {
try {
it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession configSession = (it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class);
BigDecimal annoFrom = configSession.getIm01(userContext, new Integer(0), null, Configurazione_cnrBulk.PK_GESTIONE_PROGETTI, Configurazione_cnrBulk.SK_PROGETTO_PIANO_ECONOMICO);
if (Optional.ofNullable(annoFrom).map(BigDecimal::intValue).filter(el -> el.compareTo(moduloCosti.getEsercizio()) <= 0).isPresent()) {
Progetto_piano_economicoHome ppeHome = (Progetto_piano_economicoHome) getHome(userContext, Progetto_piano_economicoBulk.class);
List<Progetto_piano_economicoBulk> pianoEconomicoList = (List<Progetto_piano_economicoBulk>) ppeHome.findProgettoPianoEconomicoList(moduloCosti.getPg_progetto());
List<Pdg_modulo_speseBulk> speseList = (List<Pdg_modulo_speseBulk>) moduloCosti.getDettagliSpese();
pianoEconomicoList.stream().filter(e -> e.getFl_ctrl_disp() && (e.getEsercizio_piano().equals(0) || e.getEsercizio_piano().equals(moduloCosti.getEsercizio()))).forEach(e -> {
try {
Progetto_piano_economicoBulk bulk = null;
Progetto_piano_economicoBulk bulkToFind = new Progetto_piano_economicoBulk();
bulkToFind.setVoce_piano_economico(e.getVoce_piano_economico());
bulkToFind.setPg_progetto(e.getPg_progetto());
bulkToFind.setEsercizio_piano(e.getEsercizio_piano());
try {
bulk = (Progetto_piano_economicoBulk) getHome(userContext, Progetto_piano_economicoBulk.class).findAndLock(bulkToFind);
} catch (ObjectNotFoundException ex) {
}
if (bulk != null && bulk.getFl_ctrl_disp()) {
V_saldi_piano_econom_progettoBulk saldo = ((V_saldi_piano_econom_progettoHome) getHome(userContext, V_saldi_piano_econom_progettoBulk.class)).cercaSaldoPianoEconomico(bulk, "S");
BigDecimal dispResiduaFin = saldo.getDispResiduaFinanziamento();
if (!isFromChangeStato)
dispResiduaFin = dispResiduaFin.subtract(speseList.stream().filter(x -> Optional.ofNullable(x.getVoce_piano_economico()).isPresent()).filter(x -> x.getVoce_piano_economico().equalsByPrimaryKey(e.getVoce_piano_economico())).map(el -> Utility.nvl(el.getIm_spese_gest_decentrata_est())).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)));
if (dispResiduaFin.compareTo(BigDecimal.ZERO) < 0)
throw new ApplicationException("Impossibile effettuare l'operazione !\n" + "L'importo indicato in previsione per le fonti decentrate esterne supera di " + new it.cnr.contab.util.EuroFormat().format(dispResiduaFin.abs()) + " l'importo finanziato indicato sul piano economico " + e.getCd_voce_piano() + " del progetto " + (e.getEsercizio_piano().equals(0) ? "" : "per l'esercizio " + e.getEsercizio_piano()) + ".");
if (isFromChangeStato && Optional.ofNullable(moduloCosti).flatMap(el -> Optional.ofNullable(el.getPdg_modulo())).flatMap(el -> Optional.ofNullable(el.getProgetto())).flatMap(el -> Optional.ofNullable(el.getOtherField())).flatMap(el -> Optional.ofNullable(el.getTipoFinanziamento())).map(TipoFinanziamentoBulk::getFlAllPrevFin).orElse(Boolean.TRUE) && dispResiduaFin.compareTo(BigDecimal.ZERO) != 0) {
Voce_piano_economico_prgBulk vocePianoEconomico = (Voce_piano_economico_prgBulk) ((Voce_piano_economico_prgHome) getHome(userContext, Voce_piano_economico_prgBulk.class)).findByPrimaryKey(e.getVoce_piano_economico());
if (Optional.ofNullable(vocePianoEconomico).map(Voce_piano_economico_prgBulk::getFlAllPrevFin).orElse(Boolean.TRUE))
throw new ApplicationException("Impossibile effettuare l'operazione !\n" + "L'importo totale indicato in previsione per le fonti decentrate esterne non corrisponde " + " all'importo finanziato indicato sul piano economico " + e.getCd_voce_piano() + " del progetto " + (e.getEsercizio_piano().equals(0) ? "" : "per l'esercizio " + e.getEsercizio_piano()) + "(diff: " + new it.cnr.contab.util.EuroFormat().format(dispResiduaFin) + ").");
}
BigDecimal dispResiduaCofin = saldo.getDispResiduaCofinanziamento();
if (!isFromChangeStato)
dispResiduaCofin = dispResiduaCofin.subtract(speseList.stream().filter(x -> Optional.ofNullable(x.getVoce_piano_economico()).isPresent()).filter(x -> x.getVoce_piano_economico().equalsByPrimaryKey(e.getVoce_piano_economico())).map(el -> Utility.nvl(el.getIm_spese_gest_decentrata_int())).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)));
if (dispResiduaCofin.compareTo(BigDecimal.ZERO) < 0)
throw new ApplicationException("Impossibile effettuare l'operazione !\n" + "L'importo indicato in previsione per le fonti decentrate interne supera di " + new it.cnr.contab.util.EuroFormat().format(dispResiduaCofin.abs()) + " l'importo cofinanziato indicato sul piano economico " + e.getCd_voce_piano() + " del progetto " + (e.getEsercizio_piano().equals(0) ? "" : "per l'esercizio " + e.getEsercizio_piano()) + ".");
}
} catch (Exception ex) {
throw new RuntimeException(ex);
}
});
}
} catch (Exception e) {
if (e instanceof RuntimeException)
throw handleException(e.getCause());
throw handleException(e);
}
}
use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.
the class DocumentoGenericoComponent method inizializzaBulkPerModifica.
// ^^@@
/**
* normale
* PreCondition:
* Viene richiesta una possibile operazione di modifica.
* PostCondition:
* L'OggettoBulk viene aggiornato con tutti gli oggetti collegati e preparato per una operazione di modifica.
*/
// ^^@@
public OggettoBulk inizializzaBulkPerModifica(UserContext userContext, OggettoBulk bulk) throws ComponentException {
if (bulk == null)
throw new ComponentException("Attenzione: non esiste alcun documento corrispondente ai criteri di ricerca!");
Documento_genericoBulk generico = (Documento_genericoBulk) bulk;
if (generico.getEsercizio() == null)
throw new it.cnr.jada.comp.ApplicationException("L'esercizio del documento non è valorizzato! Impossibile proseguire.");
if (generico.getEsercizio().intValue() > it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext).intValue())
throw new it.cnr.jada.comp.ApplicationException("Il documento deve appartenere o all'esercizio di scrivania o ad esercizi precedenti per essere aperto in modifica!");
generico = (Documento_genericoBulk) super.inizializzaBulkPerModifica(userContext, generico);
try {
lockBulk(userContext, generico);
// setDt_termine_creazione_docamm(userContext, generico);
} catch (Throwable t) {
throw handleException(t);
}
try {
// imposta il tipo di documento
if (generico.getCd_tipo_documento_amm() == null && generico.getTipo_documento().getCd_tipo_documento_amm() != null)
generico.setCd_tipo_documento_amm(generico.getTipo_documento().getCd_tipo_documento_amm());
// generico.setCd_tipo_documento_amm(generico.getTipo_documento().getCd_tipo_documento_amm());
// it.cnr.jada.bulk.BulkHome homeTD= getHome(userContext, Tipo_documento_ammBulk.class);
// it.cnr.jada.persistency.sql.SQLBuilder sqlTD= homeTD.createSQLBuilder();
// sqlTD.addClause("AND", "cd_tipo_documento_amm", sqlTD.EQUALS, generico.getCd_tipo_documento_amm());
// it.cnr.jada.persistency.Broker brokerTD= homeTD.createBroker(sqlTD);
// generico.setTipo_documento((Tipo_documento_ammBulk) brokerTD.fetch(Tipo_documento_ammBulk.class));
// brokerTD.close();
// }
// generico =(Documento_genericoBulk) super.inizializzaBulkPerModifica(userContext, generico);
it.cnr.jada.bulk.BulkHome home = getHome(userContext, Documento_generico_rigaBulk.class);
it.cnr.jada.persistency.sql.SQLBuilder sql = home.createSQLBuilder();
sql.addClause("AND", "pg_documento_generico", SQLBuilder.EQUALS, generico.getPg_documento_generico());
sql.addClause("AND", "cd_cds", SQLBuilder.EQUALS, generico.getCd_cds());
sql.addClause("AND", "esercizio", SQLBuilder.EQUALS, generico.getEsercizio());
sql.addClause("AND", "cd_unita_organizzativa", SQLBuilder.EQUALS, generico.getCd_unita_organizzativa());
sql.addClause("AND", "cd_tipo_documento_amm", SQLBuilder.EQUALS, generico.getCd_tipo_documento_amm());
getHomeCache(userContext).fetchAll(userContext);
generico.setDocumento_generico_dettColl(new it.cnr.jada.bulk.BulkList(home.fetchAll(sql)));
// to be chkd
generico.setTi_entrate_spese(generico.getTipo_documento().getTi_entrata_spesa().charAt(0));
// 03/03/04 - BORRIELLO
// Corretto Errore interno: questa operazione deve essere fatta DOPO aver impostato il
// <code>Ti_entrate_spese</code>, altrimenti la dt_termine_creazione_docamm NON viene impostata e,
// in fase di salvataggio, genera un errore di NullPointerException.
setDt_termine_creazione_docamm(userContext, generico);
try {
generico.setDataInizioObbligoRegistroUnico(Utility.createConfigurazioneCnrComponentSession().getDt01(userContext, new Integer(0), null, "REGISTRO_UNICO_FATPAS", "DATA_INIZIO"));
} catch (Exception e) {
throw handleException(generico, e);
}
if (!generico.getCd_uo_origine().equals(generico.getCd_unita_organizzativa()))
generico.setFlagEnte(true);
if (!generico.isGenericoAttivo())
generico.setPassivo_ente(generico.isFlagEnte());
else
generico.setPassivo_ente(true);
if (!generico.getCd_uo_origine().equals(generico.getCd_unita_organizzativa()))
impostaDatiEnteNelDocumento(userContext, generico, null);
else {
Unita_organizzativa_enteBulk uoEnte = getUOEnte(userContext);
if (generico.getCd_unita_organizzativa().equalsIgnoreCase(uoEnte.getCd_unita_organizzativa()))
impostaDatiEnteNelDocumento(userContext, generico, uoEnte);
}
if (generico.getValuta().getCd_divisa().equals(getEuro(userContext).getCd_divisa()))
generico.setDefaultValuta(true);
if (!generico.isGenericoAttivo())
rebuildObbligazioni(userContext, generico);
if (generico.isGenericoAttivo()) {
rebuildAccertamenti(userContext, generico);
generico.setTerzo_uo_cds(generico.getDocumento_generico_dettColl().get(0).getTerzo_uo_cds());
}
for (java.util.Iterator i = generico.getDocumento_generico_dettColl().iterator(); i.hasNext(); ) initializeKeysAndOptionsInto(userContext, (OggettoBulk) i.next());
int dettagliRiportati = 0;
generico.setHa_beniColl(ha_beniColl(userContext, generico));
for (java.util.Iterator i = generico.getDocumento_generico_dettColl().iterator(); i.hasNext(); ) {
OggettoBulk rigabulk = (OggettoBulk) i.next();
Documento_generico_rigaBulk riga = (Documento_generico_rigaBulk) rigabulk;
if (generico.getTi_entrate_spese() == Documento_genericoBulk.SPESE && riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().getObbligazione() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce().getFl_inv_beni_patr().booleanValue()) {
riga.setInventariato(true);
riga.setInventariato(ha_beniColl(userContext, riga).booleanValue());
} else {
if (riga.getAccertamento_scadenziario() != null && riga.getAccertamento_scadenziario().getAccertamento() != null && riga.getAccertamento_scadenziario().getAccertamento().getCd_elemento_voce() != null) {
Elemento_voceHome Home = (Elemento_voceHome) getHome(userContext, Elemento_voceBulk.class);
Elemento_voceBulk elem_voce = (Elemento_voceBulk) Home.findByPrimaryKey(new Elemento_voceBulk(riga.getAccertamento_scadenziario().getAccertamento().getCd_elemento_voce(), riga.getAccertamento_scadenziario().getAccertamento().getEsercizio(), riga.getAccertamento_scadenziario().getAccertamento().getTi_appartenenza(), riga.getAccertamento_scadenziario().getAccertamento().getTi_gestione()));
if (elem_voce.getFl_inv_beni_patr().booleanValue())
riga.setInventariato(true);
riga.setInventariato(ha_beniColl(userContext, riga).booleanValue());
}
}
if (generico.isPassivo_ente())
riga.setIm_riga_iniziale(riga.getIm_imponibile());
if (generico.getTi_entrate_spese() == Documento_genericoBulk.ENTRATE) {
riga.setModalita_pagamento_uo_cds(findModalitaSelezionate(userContext, riga));
riga.setTermini_pagamento_uo_cds(findTerminiSelezionati(userContext, riga));
riga.setModalita_uo_cds(findModalita(userContext, riga));
riga.setBanca_uo_cds(findBancaSelezionata(userContext, riga));
initializeKeysAndOptionsInto(userContext, riga);
} else {
riga.setModalita_pagamento(findModalitaSelezionate(userContext, riga));
riga.setTermini_pagamento(findTerminiSelezionati(userContext, riga));
riga.setModalita(findModalita(userContext, riga));
riga.setBanca(findBancaSelezionata(userContext, riga));
initializeKeysAndOptionsInto(userContext, riga);
}
if (riga.checkIfRiportata()) {
riga.setRiportata(riga.RIPORTATO);
generico.setRiportata(generico.PARZIALMENTE_RIPORTATO);
dettagliRiportati++;
}
}
generico.setRiportata(getStatoRiporto(userContext, generico));
/**
* Gennaro Borriello - (02/11/2004 15.04.39)
* Aggiunta gestione dell Stato Riportato all'esercizio di scrivania.
*/
generico.setRiportataInScrivania(getStatoRiportoInScrivania(userContext, generico));
/**
* Gennaro Borriello - (08/11/2004 13.35.27)
* Aggiunta proprietà <code>esercizioInScrivania</code>, che verrà utilizzata
* per la gestione di isRiportataInScrivania(), in alcuni casi.
*/
generico.setEsercizioInScrivania(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
} catch (it.cnr.jada.persistency.PersistencyException e) {
throw handleException(generico, e);
} catch (it.cnr.jada.persistency.IntrospectionException e) {
throw handleException(generico, e);
}
caricaScrittura(userContext, generico);
return generico;
}
use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDCaricoBuonoAction method doCreaGruppiDoc.
public Forward doCreaGruppiDoc(ActionContext context) throws EJBException, SQLException, PersistencyException, ComponentException, RemoteException {
Buono_carico_scarico_dettBulk nuovoRigoInventario;
Inventario_beniBulk bene = new Inventario_beniBulk();
Inventario_beniBulk nuovoBene;
int gruppi = 0;
String cd_pubblicazioni = null;
boolean isPubblicazione = false;
CRUDCaricoInventarioBP bp = (CRUDCaricoInventarioBP) getBusinessProcess(context);
Buono_carico_scaricoBulk buono_cs = (Buono_carico_scaricoBulk) ((CRUDCaricoInventarioBP) getBusinessProcess(context)).getModel();
Documento_generico_rigaBulk riga = (Documento_generico_rigaBulk) bp.getDettagliDocumento().getModel();
PrimaryKeyHashtable h = buono_cs.getDettagliRigheDocHash();
BulkList listaInventari = new BulkList();
java.math.BigDecimal valore_unitario = new java.math.BigDecimal(0);
try {
// Non è stata indicata la riga di riferimento
if (riga == null) {
throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare una riga");
}
// Non è stato indicato il numero di gruppi
if (getGroups() == null) {
throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere nullo");
} else {
try {
gruppi = Integer.parseInt(getGroups());
bp.setIsNumGruppiErrato(false);
} catch (NumberFormatException e) {
bp.setIsNumGruppiErrato(true);
return handleException(context, new it.cnr.jada.bulk.FillException("Errore di formattazione sul campo N. Gruppi", e));
}
}
// Il numero di gruppi è minore di 0.
if (gruppi < 0) {
throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere negativo");
}
// Il numero di gruppi è uguale a 0.
if (gruppi == 0) {
throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere zero");
}
// Valida i gruppi
validaCreaGruppiDoc(buono_cs, riga);
} catch (Throwable t) {
return handleException(context, t);
}
for (int i = 0; i < gruppi; i++) {
nuovoRigoInventario = new Buono_carico_scarico_dettBulk();
nuovoBene = new Inventario_beniBulk();
nuovoRigoInventario.setToBeCreated();
nuovoBene.setToBeCreated();
if (gruppi == 1) {
nuovoRigoInventario.setQuantita(new Long(1));
bp.setIsQuantitaEnabled(false);
} else {
bp.setIsQuantitaEnabled(true);
}
//
nuovoRigoInventario.setValore_unitario(riga.getIm_riga().divide(new BigDecimal(gruppi), 2, BigDecimal.ROUND_HALF_UP));
nuovoBene.setDs_bene(riga.getDs_riga());
nuovoBene.setValore_iniziale(nuovoRigoInventario.getValore_unitario().divide(new BigDecimal(gruppi), 2, BigDecimal.ROUND_HALF_UP));
nuovoBene.setTi_commerciale_istituzionale(riga.getDocumento_generico().getTi_istituz_commerc());
nuovoBene.setUbicazione(new Ubicazione_beneBulk());
nuovoBene.setAssegnatario(new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
nuovoBene.setCd_cds(buono_cs.getCds_scrivania());
nuovoBene.setCd_unita_organizzativa(buono_cs.getUo_scrivania());
nuovoBene.setCategoria_Bene(new Categoria_gruppo_inventBulk());
if ((riga.getDocumento_generico().getTi_entrate_spese() == Documento_genericoBulk.SPESE) && riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().getObbligazione() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce() != null) {
nuovoBene.getCategoria_Bene().setNodoPadre(new Categoria_gruppo_inventBulk());
if (((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class)).findCategoria_gruppo_voceforvoce(context.getUserContext(), riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce()) != null)
nuovoRigoInventario.setCat_voce(((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class)).findCategoria_gruppo_voceforvoce(context.getUserContext(), riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce()));
else
throw new it.cnr.jada.comp.ApplicationException("Non esiste nessuna Categoria inventariale associata al capitolo.");
}
nuovoBene.setInventario(buono_cs.getInventario());
nuovoBene.setPg_inventario(buono_cs.getPg_inventario());
nuovoBene.setFl_totalmente_scaricato(Boolean.FALSE);
nuovoBene.setImponibile_ammortamento(nuovoRigoInventario.getValore_unitario());
if (cd_pubblicazioni != null)
nuovoBene.setPubblicazione(isPubblicazione);
nuovoRigoInventario.setBuono_cs(buono_cs);
nuovoRigoInventario.setBene(bene);
nuovoRigoInventario.CalcolaTotaleBene();
nuovoRigoInventario.setBene(nuovoBene);
nuovoRigoInventario.setProgressivo(bp.incrementaProgressivo_beni().intValue());
listaInventari.add(nuovoRigoInventario);
}
h.remove(riga);
h.put(riga, listaInventari);
buono_cs.getDettagliRigheDocHash().put(riga, listaInventari);
return context.findDefaultForward();
}
use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDCaricoInventarioBP method initializeModelForInsert.
public OggettoBulk initializeModelForInsert(ActionContext context, OggettoBulk bulk) throws BusinessProcessException {
Buono_carico_scaricoBulk testata = (Buono_carico_scaricoBulk) bulk;
testata.setTi_documento(Buono_carico_scaricoBulk.CARICO);
bulk = super.initializeModelForInsert(context, testata);
return bulk;
}
Aggregations