use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession 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.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.
the class CRUDScaricoBuonoAction method doAddToCRUDMain_DettagliFattura_RigheInventarioDaFattura.
/**
* Gestisce l'aggiunta di un nuovo bene nel Buono di Scarico generato da Fattura Attiva.
* L'utente sta creando un Buono di Scarico partendo dalla creazione di una Fattura Attiva.
* Prima di tutto, il metodo controlla che sia stata selezionata una riga dalla finestra
* dei dettagli della Fattura; in seguito, costruisce un iteratore sui beni che hanno i requisiti
* per essere associati ad una riga di fattura e scaricati, (metodo BuonoScaricoComponent.cercaBeniAssociabili).
* Infine viene proposta all'utente una finestra di ricerca guidata sui beni disponibili.
*
* @param context il <code>ActionContext</code> che contiene le informazioni relative alla richiesta
*
* @return forward <code>Forward</code>
*/
public Forward doAddToCRUDMain_DettagliFattura_RigheInventarioDaFattura(ActionContext context) {
try {
fillModel(context);
CRUDScaricoInventarioBP bp_scarico = (CRUDScaricoInventarioBP) getBusinessProcess(context);
if (bp_scarico.getModel() != null && ((Buono_carico_scaricoBulk) bp_scarico.getModel()).getData_registrazione() == null)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare la data scarico"));
List fatture = bp_scarico.getDettagliFattura().getSelectedModels(context);
Fattura_attiva_rigaIBulk riga_fattura = null;
Nota_di_credito_rigaBulk nota = null;
if (fatture.size() == 0 || bp_scarico.getDettagliFattura().getModel() == null)
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura");
else if (fatture.size() > 1)
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura per volta");
if (bp_scarico.getDettagliFattura().getModel().getClass().equals(Fattura_attiva_rigaIBulk.class))
riga_fattura = (Fattura_attiva_rigaIBulk) bp_scarico.getDettagliFattura().getModel();
else
nota = (Nota_di_credito_rigaBulk) bp_scarico.getDettagliFattura().getModel();
/* Nessuna riga di Fattura selezionata */
if (riga_fattura == null && nota == null) {
throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura");
}
it.cnr.jada.util.RemoteIterator ri = null;
if (riga_fattura != null) {
ri = ((BuonoCaricoScaricoComponentSession) bp_scarico.createComponentSession()).cercaBeniAssociabili(context.getUserContext(), (Buono_carico_scaricoBulk) bp_scarico.getModel(), riga_fattura, null);
} else {
ri = ((BuonoCaricoScaricoComponentSession) bp_scarico.createComponentSession()).cercaBeniAssociabili(context.getUserContext(), (Buono_carico_scaricoBulk) bp_scarico.getModel(), nota, null);
}
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context, ri);
int count = ri.countElements();
/* Non ci sono beni disponibili ad essere associati */
if (count == 0) {
bp_scarico.setMessage("Nessun Bene associabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
} else {
// SelezionatoreListaBP slbp = select(context,ri,it.cnr.jada.bulk.BulkInfo.getBulkInfo(Inventario_beniBulk.class),null,"doSelezionaBeniScaricati",null,bp_scarico);
// slbp.setMultiSelection(true);
/* Crea BP di ricerca guidata */
RicercaLiberaBP rlbp = (RicercaLiberaBP) context.createBusinessProcess("RicercaLibera");
rlbp.setCanPerformSearchWithoutClauses(false);
// rlbp.setSearchProvider(bp_scarico.getBeneSearchProvider(context));
it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession inventario_component = (it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession) bp_scarico.createComponentSession("CNRINVENTARIO00_EJB_Inventario_beniComponentSession", Inventario_beniBulk.class);
Inventario_beniBulk model_for_search = (Inventario_beniBulk) inventario_component.inizializzaBulkPerInserimento(context.getUserContext(), new Inventario_beniBulk());
rlbp.setFreeSearchSet("freeSearchWithoutProgressivoSet");
rlbp.setPrototype(model_for_search);
// rlbp.setMultiSelection(true);
rlbp.setShowSearchResult(false);
context.addHookForward("searchResult", this, "doBringBackAddBeni");
context.addHookForward("filter", this, "doBringBackAddBeni");
return context.addBusinessProcess(rlbp);
}
return context.findDefaultForward();
} catch (Throwable e) {
return handleException(context, e);
}
}
use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.
the class CRUDCaricoScaricoInventarioBP method initializeModelForEdit.
public OggettoBulk initializeModelForEdit(ActionContext context, OggettoBulk bulk) throws BusinessProcessException {
try {
BuonoCaricoScaricoComponentSession session = (BuonoCaricoScaricoComponentSession) createComponentSession("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", BuonoCaricoScaricoComponentSession.class);
setAmministratore(UtenteBulk.isAmministratoreInventario(context.getUserContext()));
} catch (ComponentException e1) {
throw handleException(e1);
} catch (RemoteException e1) {
throw handleException(e1);
}
bulk = super.initializeModelForEdit(context, bulk);
return bulk;
}
use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.
the class CRUDScaricoInventarioBP method selectBeniAssociatiDocbyClause.
private it.cnr.jada.util.RemoteIterator selectBeniAssociatiDocbyClause(ActionContext context) throws BusinessProcessException {
try {
it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController) getRigheInventarioDaDocumento()).getFilter();
it.cnr.jada.UserContext userContext = context.getUserContext();
Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk) getModel();
Class bulkClass = Inventario_beniBulk.class;
return ((BuonoCaricoScaricoComponentSession) createComponentSession()).selectBeniAssociatiByClause(userContext, buonoS, getDettagliDocumento().getModel(), bulkClass, clauses);
} catch (it.cnr.jada.comp.ComponentException e) {
throw handleException(e);
} catch (java.rmi.RemoteException e) {
throw handleException(e);
}
}
use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.
the class CRUDScaricoInventarioBP method selectDettagliScaricobyClause.
/**
* Cerca tutti i beni del Buono di Scarico.
* E' stata generata la richiesta di visualizzare i beni del Buono di Scarico.
* Invoca il metodo <code>BuonoScaricoComponent.selectBeniAssociatiByClause</code>
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta.
*
* @return <code>RemoteIterator</code> l'Iteratore sui beni.
*/
private it.cnr.jada.util.RemoteIterator selectDettagliScaricobyClause(ActionContext context) throws BusinessProcessException {
try {
it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController) getRigheInventarioDaFattura()).getFilter();
it.cnr.jada.UserContext userContext = context.getUserContext();
Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk) getModel();
Fattura_attiva_rigaIBulk rigaFattura = (Fattura_attiva_rigaIBulk) getDettagliFattura().getModel();
Class bulkClass = Inventario_beniBulk.class;
return ((BuonoCaricoScaricoComponentSession) createComponentSession()).selectBeniAssociatiByClause(userContext, buonoS, rigaFattura, bulkClass, clauses);
} catch (it.cnr.jada.comp.ComponentException e) {
throw handleException(e);
} catch (java.rmi.RemoteException e) {
throw handleException(e);
}
}
Aggregations