use of it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk in project sigla-main by consiglionazionaledellericerche.
the class ReversaleComponent method docGenerico_creaDocumentoGenerico.
/**
* creazione documento amm.generico
* PreCondition:
* E' stata generata la richiesta di creazione di un documento generico di entrata a partire
* da una reversale di regolarizzazione o di trasferimento
* PostCondition:
* Un documento amm.generico viene creato
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param reversale <code>ReversaleBulk</code> la reversale
* @param cd_tipo_documento_amm Il codice del tipo di documento amministrativo
* @return documento <code>Documento_genericoBulk</code> il documento generico creato
*/
public Documento_genericoBulk docGenerico_creaDocumentoGenerico(UserContext userContext, ReversaleBulk reversale, String cd_tipo_documento_amm) throws ComponentException {
try {
Documento_genericoBulk documento = new Documento_genericoBulk();
documento.setToBeCreated();
documento.setUser(reversale.getUser());
documento.setTi_entrate_spese(Documento_genericoBulk.ENTRATE);
documento.setEsercizio(reversale.getEsercizio());
documento.setCd_cds(reversale.getCd_cds());
documento.setCd_unita_organizzativa(reversale.getCd_unita_organizzativa());
documento.setCd_cds_origine(reversale.getCd_cds_origine());
documento.setCd_uo_origine(reversale.getCd_uo_origine());
documento.setTipo_documento(new Tipo_documento_ammBulk(cd_tipo_documento_amm));
documento.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
documento.setStato_cofi(Documento_genericoBulk.STATO_CONTABILIZZATO);
documento.setStato_coge(Documento_genericoBulk.NON_REGISTRATO_IN_COGE);
documento.setData_registrazione(reversale.getDt_emissione());
documento.setDt_a_competenza_coge(reversale.getDt_emissione());
documento.setDt_da_competenza_coge(reversale.getDt_emissione());
documento.setDs_documento_generico("DOCUMENTO CREATO IN AUTOMATICO ASSOCIATO A REVERSALE DI " + ((String) reversale.getTipoReversaleKeys().get(reversale.getTi_reversale())).toUpperCase());
documento.setIm_totale(reversale.getIm_reversale());
DivisaBulk divisa = new DivisaBulk(docGenerico_createConfigurazioneCnrComponentSession().getVal01(userContext, new Integer(0), "*", Configurazione_cnrBulk.PK_CD_DIVISA, Configurazione_cnrBulk.SK_EURO));
documento.setValuta(divisa);
documento.setCambio(new BigDecimal(1));
// documento.setFl_modifica_coge(new Boolean( false));
documento.setStato_coan(Documento_genericoBulk.NON_CONTABILIZZATO_IN_COAN);
documento.setStato_pagamento_fondo_eco("N");
documento.setTi_associato_manrev("T");
return documento;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk in project sigla-main by consiglionazionaledellericerche.
the class DocumentoGenericoComponent method docGenerico_creaDocumentoGenerico.
/**
* creazione documento amm.generico per mandato automatico
* PreCondition:
* E' stata generata la richiesta di creazione di un documento generico di spesa di tipo TRASF_S a partire
* da un mandato automatico
* PostCondition:
* Un documento viene creato con un numero di righe pari al numero di impegni selezionati dall'utente di tipo
* uguale al tipo del mandato(competenza o residuo)
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param wizard <code>MandatoAutomaticoWizardBulk</code> il mandato automatico
*
* @return documento <code>Documento_genericoBulk</code> il documento generico di spesa creato
*/
private Documento_genericoBulk docGenerico_creaDocumentoGenerico(UserContext userContext, DocumentoGenericoWizardBulk wizard) throws ComponentException {
try {
Documento_genericoBulk documento = new Documento_genericoBulk();
documento.setToBeCreated();
documento.setUser(wizard.getUser());
documento.setTi_entrate_spese(wizard.getTi_entrate_spese());
documento.setEsercizio(wizard.getEsercizio());
documento.setCd_cds(wizard.getCd_cds());
documento.setCd_unita_organizzativa(wizard.getCd_unita_organizzativa());
documento.setCd_cds_origine(wizard.getCd_cds_origine());
documento.setCd_uo_origine(wizard.getCd_uo_origine());
documento.setTipo_documento(wizard.getTipo_documento());
documento.setTi_istituz_commerc(wizard.getTi_istituz_commerc());
documento.setStato_cofi(Documento_genericoBulk.STATO_CONTABILIZZATO);
if (documento.getTipoDocumentoEnum().isScritturaEconomicaRequired()) {
documento.setStato_coge(Documento_genericoBulk.NON_REGISTRATO_IN_COGE);
documento.setStato_coan(Documento_genericoBulk.NON_CONTABILIZZATO_IN_COAN);
} else {
documento.setStato_coge(Documento_genericoBulk.DA_NON_REGISTRARE_IN_COGE);
documento.setStato_coan(Documento_genericoBulk.DA_NON_REGISTRARE_IN_COAN);
}
documento.setStato_pagamento_fondo_eco(Documento_genericoBulk.NO_FONDO_ECO);
documento.setTi_associato_manrev(Optional.ofNullable(wizard.getTi_associato_manrev()).orElse(Documento_genericoBulk.NON_ASSOCIATO_A_MANDATO));
documento.setData_registrazione(wizard.getData_registrazione());
documento.setDt_scadenza(wizard.getData_registrazione());
documento.setDt_a_competenza_coge(wizard.getDt_a_competenza_coge());
documento.setDt_da_competenza_coge(wizard.getDt_da_competenza_coge());
documento.setDs_documento_generico(wizard.getDs_documento_generico());
DivisaBulk divisa = new DivisaBulk(Utility.createConfigurazioneCnrComponentSession().getVal01(userContext, new Integer(0), "*", Configurazione_cnrBulk.PK_CD_DIVISA, Configurazione_cnrBulk.SK_EURO));
documento.setValuta(divisa);
documento.setCambio(new BigDecimal(1));
return documento;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk in project sigla-main by consiglionazionaledellericerche.
the class MovimentiMagComponent method scaricaMagazzino.
public ScaricoMagazzinoBulk scaricaMagazzino(UserContext userContext, ScaricoMagazzinoBulk scaricoMagazzino) throws ComponentException, PersistencyException {
List<BollaScaricoMagBulk> bolleList = new ArrayList<>();
DivisaBulk divisaDefault = ((DivisaHome) getHome(userContext, DivisaBulk.class)).getDivisaDefault(userContext);
controlloDatiObbligatoriMovimentiMagazzino(userContext, scaricoMagazzino, divisaDefault);
if (scaricoMagazzino.getScaricoMagazzinoRigaColl() == null || scaricoMagazzino.getScaricoMagazzinoRigaColl().isEmpty())
throw new ApplicationException("Errore nello scarico magazzino! Manca l'indicazione dei beni/servizi da movimentare.");
LottoMagHome lottoHome = (LottoMagHome) getHome(userContext, LottoMagBulk.class);
List<MovimentiMagBulk> listaMovimenti = new ArrayList<>();
try {
scaricoMagazzino.getScaricoMagazzinoRigaColl().stream().forEach(scaricoMagazzinoRiga -> {
scaricoMagazzinoRiga.setAnomalia(null);
List<String> errorList = new ArrayList<>();
try {
controlloDatiObbligatoriMovimentiMagazzinoRiga(userContext, scaricoMagazzinoRiga);
} catch (ApplicationException e) {
throw new DetailedRuntimeException(e);
}
try {
// richiamo per ogni riga i lotti e faccio i lock
Map<LottoMagBulk, BigDecimal> mapLotti = new HashMap<LottoMagBulk, BigDecimal>();
if (scaricoMagazzinoRiga.isImputazioneScaricoSuBeneEnable()) {
java.util.Collection<LottoMagBulk> lottiList = findLottiMagazzino(userContext, scaricoMagazzinoRiga);
BigDecimal qtResidua = scaricoMagazzinoRiga.getQtScaricoConvertita();
scaricoMagazzinoRiga.setScaricoMagazzinoRigaLottoColl(new BulkList<ScaricoMagazzinoRigaLottoBulk>());
for (Iterator<LottoMagBulk> iterator = lottiList.iterator(); iterator.hasNext(); ) {
LottoMagBulk lottoMagazzino = iterator.next();
// Aggiorno i lotti sull'oggetto ScaricoMagazzinoRiga
ScaricoMagazzinoRigaLottoBulk rigaLotto = new ScaricoMagazzinoRigaLottoBulk();
rigaLotto.setLottoMagazzino(lottoMagazzino);
rigaLotto.setQtScarico(BigDecimal.ZERO);
scaricoMagazzinoRiga.getScaricoMagazzinoRigaLottoColl().add(rigaLotto);
if (qtResidua.compareTo(BigDecimal.ZERO) > 0) {
LottoMagBulk lottoMagazzinoDB = (LottoMagBulk) lottoHome.findAndLock(lottoMagazzino);
// metto sull'oggetto ScaricoMagazzinoRiga il lotto bloccato
rigaLotto.setLottoMagazzino(lottoMagazzinoDB);
BigDecimal qtScarico = lottoMagazzinoDB.getGiacenza().compareTo(qtResidua) > 0 ? qtResidua : lottoMagazzinoDB.getGiacenza();
qtResidua = qtResidua.subtract(qtScarico);
mapLotti.put(lottoMagazzinoDB, qtScarico);
}
}
} else {
scaricoMagazzinoRiga.getScaricoMagazzinoRigaLottoColl().stream().filter(rigaLotto -> rigaLotto.getQtScarico().compareTo(BigDecimal.ZERO) > 0).forEach(rigaLotto -> {
try {
LottoMagBulk lottoMagazzinoDB = (LottoMagBulk) lottoHome.findAndLock(rigaLotto.getLottoMagazzino());
mapLotti.put(lottoMagazzinoDB, rigaLotto.getQtScaricoConvertita());
// metto sull'oggetto ScaricoMagazzinoRiga il lotto bloccato
rigaLotto.setLottoMagazzino(lottoMagazzinoDB);
} catch (OutdatedResourceException | BusyResourceException | PersistencyException ex) {
throw new DetailedRuntimeException(ex);
}
});
}
// Verifico che i lotti hanno giacenza sufficiente
mapLotti.entrySet().stream().filter(set -> set.getKey().getGiacenza().compareTo(set.getValue()) < 0).forEach(set -> {
errorList.add("Per il lotto " + set.getKey().getEsercizio() + "/" + set.getKey().getCdNumeratoreMag() + "/" + set.getKey().getPgLotto() + " alla data " + new java.text.SimpleDateFormat("dd/MM/yyyy").format(scaricoMagazzino.getDataCompetenza()) + " la giacenza (" + new it.cnr.contab.util.Importo5CifreFormat().format(set.getKey().getGiacenza()) + ") è inferiore alla quantità da scaricare (" + new it.cnr.contab.util.Importo5CifreFormat().format(set.getValue()) + ")");
});
// Verifico che la quantità da scaricare sia pari a quella richiesta
BigDecimal totGiacenzaLotti = mapLotti.entrySet().stream().map(Entry::getValue).reduce(BigDecimal.ZERO, BigDecimal::add);
if (totGiacenzaLotti.compareTo(scaricoMagazzinoRiga.getQtScaricoConvertita()) < 0)
errorList.add("Alla data " + new java.text.SimpleDateFormat("dd/MM/yyyy").format(scaricoMagazzino.getDataCompetenza()) + " la giacenza totale dei lotti (" + new it.cnr.contab.util.Importo5CifreFormat().format(totGiacenzaLotti) + ") è inferiore alla quantità richiesta da scaricare (" + new it.cnr.contab.util.Importo5CifreFormat().format(scaricoMagazzinoRiga.getQtScaricoConvertita()) + ")");
if (errorList.isEmpty()) {
// Effettuo le movimentazioni di magazzino
mapLotti.keySet().stream().forEach(lottoMagazzino -> {
try {
BigDecimal qtScarico = mapLotti.get(lottoMagazzino);
// creo il movimento di carico di magazzino
MovimentiMagBulk movimentoMag = createMovimentoMagazzino(userContext, scaricoMagazzinoRiga.getUnitaOperativaRicevente(), scaricoMagazzino.getMagazzinoAbilitato(), scaricoMagazzino.getTipoMovimentoMag(), scaricoMagazzinoRiga.getBeneServizio(), qtScarico, scaricoMagazzino.getDataCompetenza(), divisaDefault, BigDecimal.ONE, scaricoMagazzinoRiga.getUnitaMisura(), scaricoMagazzinoRiga.getCoefConv());
movimentoMag.setLottoMag(lottoMagazzino);
listaMovimenti.add((MovimentiMagBulk) super.creaConBulk(userContext, movimentoMag));
} catch (ComponentException | PersistencyException ex) {
throw new DetailedRuntimeException(ex);
}
});
} else
scaricoMagazzinoRiga.setAnomalia(errorList.stream().collect(Collectors.joining(", ")));
} catch (OutdatedResourceException | BusyResourceException | PersistencyException | DetailedRuntimeException | ComponentException ex) {
throw new DetailedRuntimeException(ex);
}
});
} catch (DetailedRuntimeException ex) {
throw handleException(ex.getDetail());
}
if (!listaMovimenti.isEmpty())
bolleList = generaBolleScarico(userContext, listaMovimenti);
scaricoMagazzino.setBolleScaricoColl(bolleList);
return scaricoMagazzino;
}
use of it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDFatturaPassivaAction method doSelezionaValuta.
/**
* Viene richiamato nel momento in cui si seleziona una valuta dal combo Valuta nella
* testata della fattura.
* Viene ricercato il cambio valido, vengono ricalcolati i totali e ricalcolato il
* totale in eur
*/
public Forward doSelezionaValuta(ActionContext context) {
try {
CRUDFatturaPassivaBP bp = (CRUDFatturaPassivaBP) getBusinessProcess(context);
Fattura_passivaBulk fattura = (Fattura_passivaBulk) bp.getModel();
DivisaBulk divisa = fattura.getValuta();
it.cnr.jada.bulk.PrimaryKeyHashtable vecchiTotali = new it.cnr.jada.bulk.PrimaryKeyHashtable();
if (fattura instanceof Fattura_passiva_IBulk) {
for (java.util.Iterator i = fattura.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
Fattura_passiva_rigaIBulk dettaglio = (Fattura_passiva_rigaIBulk) i.next();
java.math.BigDecimal vecchioTotale = dettaglio.getIm_imponibile().add(dettaglio.getIm_iva());
vecchioTotale = vecchioTotale.add(dettaglio.getIm_totale_addebiti());
vecchiTotali.put(dettaglio, vecchioTotale);
}
}
fillModel(context);
try {
if (!bp.isSearching()) {
FatturaPassivaComponentSession h = (FatturaPassivaComponentSession) bp.createComponentSession();
fattura = h.cercaCambio(context.getUserContext(), fattura);
basicDoCalcolaTotaleFatturaFornitoreInEur(fattura);
for (java.util.Iterator i = fattura.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
Fattura_passiva_rigaBulk dettaglio = (Fattura_passiva_rigaBulk) i.next();
if (dettaglio instanceof Fattura_passiva_rigaIBulk) {
java.math.BigDecimal vecchioTotale = (java.math.BigDecimal) vecchiTotali.get(dettaglio);
if (vecchioTotale == null)
vecchioTotale = new java.math.BigDecimal(0).setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
basicCalcolaImportoDisponibileNC(context, (Fattura_passiva_rigaIBulk) dettaglio, vecchioTotale);
}
}
bp.setModel(context, fattura);
if (fattura.getObbligazioniHash() != null && !fattura.getObbligazioniHash().isEmpty())
bp.setErrorMessage("Attenzione: si ricorda che modificando il valore del cambio è necessario riportare in quadratura le scadenze delle obbligazioni!");
if (fattura.getAccertamentiHash() != null && !fattura.getAccertamentiHash().isEmpty())
bp.setErrorMessage("Attenzione: si ricorda che modificando il valore del cambio è necessario riportare in quadratura le scadenze degli accertamenti!");
}
return context.findDefaultForward();
} catch (it.cnr.jada.comp.ComponentException e) {
fattura.setValuta(divisa);
throw e;
}
} catch (Throwable t) {
return handleException(context, t);
}
}
use of it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDMissioneBP method setNazioneDivisaCambioItalia.
/**
* Il metodo gestisce la selezione della nazione, divisa e cambio di default
* (Italia, Euro) nel caso l'utente abbia selezionato comune proprio o altro.
* (Tali valori non sono modificabili)
*/
public void setNazioneDivisaCambioItalia(ActionContext context) throws BusinessProcessException {
Missione_tappaBulk tappa = (Missione_tappaBulk) getTappaController().getModel();
/**
*********** selezionato comune estero ******************
*/
if ((tappa.getFl_comune_estero() != null) && (tappa.getFl_comune_estero().booleanValue())) {
tappa.setNazione(new NazioneBulk());
tappa.setDivisa_tappa(new DivisaBulk());
tappa.setCambio_tappa(null);
return;
}
if ((tappa.getNazione() != null) && (tappa.getNazione().getTi_nazione() != null) && (tappa.getNazione().getTi_nazione().equals(NazioneBulk.ITALIA)))
// ITALIA e' gia' stata selezionata
return;
try {
// inizializzo nazione ITALIA
MissioneComponentSession component = (MissioneComponentSession) createComponentSession("CNRMISSIONI00_EJB_MissioneComponentSession", MissioneComponentSession.class);
MissioneBulk missione = (MissioneBulk) getModel();
missione = component.setNazioneDivisaCambioItalia(context.getUserContext(), missione, tappa);
setModel(context, missione);
} catch (Throwable e) {
throw handleException(e);
}
}
Aggregations