Skip to content

Commit

Permalink
Varie
Browse files Browse the repository at this point in the history
  • Loading branch information
gifracr committed Oct 25, 2017
1 parent 34f6700 commit 3303401
Show file tree
Hide file tree
Showing 7 changed files with 160 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*/
package it.cnr.contab.ordmag.magazzino.bulk;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.bulk.BulkCollection;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.util.action.CRUDBP;
Expand Down Expand Up @@ -258,4 +259,10 @@ public int addToRighe( BollaScaricoRigaMagBulk nuovoRigo )
public List getChildren() {
return getRighe();
}
public BulkCollection[] getBulkLists() {

return new it.cnr.jada.bulk.BulkCollection[] {
righe
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

import java.io.Serializable;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk;
import it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioHome;
import it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk;
import it.cnr.contab.ordmag.anag00.TipoMovimentoMagAzBulk;
import it.cnr.contab.ordmag.anag00.TipoMovimentoMagAzHome;
import it.cnr.contab.ordmag.anag00.TipoMovimentoMagBulk;
Expand All @@ -20,9 +22,14 @@
import it.cnr.contab.ordmag.ordini.bulk.EvasioneOrdineRigaBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqConsegnaBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqRigaBulk;
import it.cnr.contab.ordmag.ordini.dto.ImportoOrdine;
import it.cnr.contab.ordmag.ordini.dto.ParametriCalcoloImportoOrdine;
import it.cnr.contab.ordmag.ordini.ejb.OrdineAcqComponentSession;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.util.Utility;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.comp.ICRUDMgr;
Expand Down Expand Up @@ -66,7 +73,12 @@ public List<MovimentiMagBulk> caricoDaOrdine(UserContext userContext, EvasioneOr
movimentoMag.setMagazzino(evasioneOrdine.getNumerazioneMag().getMagazzino());
movimentoMag.setOrdineAcqConsegna(consegna);
movimentoMag.setUnitaOperativaOrd(consegna.getUnitaOperativaOrd());
movimentoMag.setPrezzoUnitario(consegna.getOrdineAcqRiga().getPrezzoUnitario());

try {
movimentoMag.setPrezzoUnitario(recuperoPrezzoUnitario(userContext, consegna));
} catch (RemoteException e) {
throw new ComponentException(e);
}
movimentoMag.setQuantita(evasioneOrdineRiga.getQuantitaEvasa());
movimentoMag.setSconto1(consegna.getOrdineAcqRiga().getSconto1());
movimentoMag.setSconto2(consegna.getOrdineAcqRiga().getSconto2());
Expand Down Expand Up @@ -238,4 +250,53 @@ public List<BollaScaricoMagBulk> generaBollaScarico(UserContext userContext, Lis
}
return null;
}
private BigDecimal recuperoPrezzoUnitario(UserContext userContext, OrdineAcqConsegnaBulk cons) throws RemoteException, ComponentException{
OrdineAcqComponentSession ordineComponent = (OrdineAcqComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRORDMAG00_EJB_OrdineAcqComponentSession", OrdineAcqComponentSession.class);
ParametriCalcoloImportoOrdine parametri = new ParametriCalcoloImportoOrdine();
OrdineAcqRigaBulk riga = cons.getOrdineAcqRiga();
OrdineAcqBulk ordine = riga.getOrdineAcq();
parametri.setCambio(ordine.getCambio());
parametri.setDivisa(ordine.getDivisa());
parametri.setDivisaRisultato(getEuro(userContext));
parametri.setPercProrata(ordine.getPercProrata());
parametri.setCoefacq(riga.getCoefConv());
parametri.setPrezzo(riga.getPrezzoUnitario());
parametri.setSconto1(riga.getSconto1());
parametri.setSconto2(riga.getSconto2());
parametri.setSconto3(riga.getSconto3());
parametri.setVoceIva(riga.getVoceIva());
parametri.setQtaOrd(cons.getQuantita());
parametri.setArrAliIva(cons.getArrAliIva());
ImportoOrdine importo = ordineComponent.calcoloImportoOrdinePerMagazzino(userContext,parametri);
return importo.getImponibile().add(Utility.nvl(importo.getImportoIvaInd()).add(Utility.nvl(importo.getArrAliIva())));
}

private DivisaBulk getEuro(UserContext userContext) throws ComponentException {

String cd_euro = null;
try {
cd_euro = ((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)).getVal01(userContext, new Integer(0), "*", "CD_DIVISA", "EURO");
if (cd_euro == null)
throw new it.cnr.jada.comp.ApplicationException("Impossibile caricare la valuta di default! Prima di poter inserire un ordine, immettere tale valore.");
} catch (javax.ejb.EJBException e) {
handleException(e);
} catch (java.rmi.RemoteException e) {
handleException(e);
}

DivisaBulk valuta = null;

try {
java.util.List divise = getHome(userContext, DivisaBulk.class).find(new it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk(cd_euro));
if (divise == null || divise.isEmpty())
throw new it.cnr.jada.comp.ApplicationException("Impossibile caricare la valuta di default! Prima di poter inserire un ordine, immettere tale valore.");
valuta = (DivisaBulk)divise.get(0);
if (valuta == null)
throw new it.cnr.jada.comp.ApplicationException("Impossibile caricare la valuta di default! Prima di poter inserire un ordine, immettere tale valore.");
} catch (it.cnr.jada.persistency.PersistencyException e) {
handleException(e);
}
return valuta;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -1331,7 +1331,7 @@ public ImportoOrdine calcoloImportoOrdine(ParametriCalcoloImportoOrdine parametr

public ImportoOrdine calcoloImportoOrdinePerMagazzino(ParametriCalcoloImportoOrdine parametri) throws ApplicationException{
BigDecimal imponibile = calcoloImponibile(parametri);
BigDecimal imponibileUnitario = imponibile.divide(parametri.getQtaOrd());
imponibile = imponibile.divide(parametri.getQtaOrd());
BigDecimal arrotondamento = parametri.getArrAliIva().divide(parametri.getQtaOrd());
BigDecimal arrAliIva = arrotondamento;

Expand All @@ -1341,10 +1341,14 @@ public ImportoOrdine calcoloImportoOrdinePerMagazzino(ParametriCalcoloImportoOrd
} else {
voceIva = parametri.getVoceIva();
}
BigDecimal importoIva = Utility.round2Decimali((Utility.divide(imponibile, Utility.CENTO)).multiply(voceIva.getPercentuale()));
BigDecimal ivaNonDetraibile = Utility.round2Decimali(importoIva.multiply((Utility.CENTO.subtract(voceIva.getPercentuale_detraibilita()))));

BigDecimal importoIva = (Utility.divide(imponibile, Utility.CENTO)).multiply(voceIva.getPercentuale());
BigDecimal ivaNonDetraibile = importoIva.multiply((Utility.CENTO.subtract(voceIva.getPercentuale_detraibilita())));

BigDecimal ivaPerCalcoloProrata = importoIva.subtract(ivaNonDetraibile);
BigDecimal ivaDetraibile = Utility.round2Decimali(ivaPerCalcoloProrata.multiply(Utility.nvl(parametri.getPercProrata())));

BigDecimal ivaDetraibile = ivaPerCalcoloProrata.multiply(Utility.nvl(parametri.getPercProrata()));

ivaNonDetraibile = ivaNonDetraibile.add((ivaPerCalcoloProrata.subtract(ivaDetraibile)));

if (ivaDetraibile.compareTo(BigDecimal.ZERO) == 0 || ivaNonDetraibile.compareTo(BigDecimal.ZERO) > 0){
Expand All @@ -1354,11 +1358,11 @@ public ImportoOrdine calcoloImportoOrdinePerMagazzino(ParametriCalcoloImportoOrd
}
importoIva = importoIva.add(ivaDetraibile);
ImportoOrdine importoOrdine = new ImportoOrdine();
importoOrdine.setImponibile(Utility.round2Decimali(imponibile));
importoOrdine.setImportoIva(Utility.round2Decimali(importoIva));
importoOrdine.setImportoIvaInd(Utility.round2Decimali(ivaNonDetraibile));
importoOrdine.setImportoIvaDetraibile(Utility.round2Decimali(ivaDetraibile));
importoOrdine.setArrAliIva(BigDecimal.ZERO);
importoOrdine.setImponibile(Utility.round6Decimali(imponibile));
importoOrdine.setImportoIva(Utility.round6Decimali(importoIva));
importoOrdine.setImportoIvaInd(Utility.round6Decimali(ivaNonDetraibile));
importoOrdine.setImportoIvaDetraibile(Utility.round6Decimali(ivaDetraibile));
importoOrdine.setArrAliIva(arrAliIva);
return importoOrdine;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
package it.cnr.contab.ordmag.ordini.ejb;

import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.List;

import javax.ejb.EJBException;
import javax.ejb.Remote;

import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqConsegnaBulk;
import it.cnr.contab.ordmag.ordini.dto.ImportoOrdine;
import it.cnr.contab.ordmag.ordini.dto.ParametriCalcoloImportoOrdine;
import it.cnr.contab.ordmag.richieste.bulk.RichiestaUopBulk;
import it.cnr.contab.util.Utility;
import it.cnr.jada.UserContext;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
Expand All @@ -29,4 +32,6 @@ public interface OrdineAcqComponentSession extends it.cnr.jada.ejb.CRUDComponent
public OrdineAcqBulk cancellaOrdine(it.cnr.jada.UserContext userContext, OrdineAcqBulk ordine) throws RemoteException,ComponentException, PersistencyException;
public Unita_organizzativaBulk recuperoUoPerImpegno(it.cnr.jada.UserContext userContext, OrdineAcqConsegnaBulk consegna) throws RemoteException,ComponentException, PersistencyException;
OrdineAcqBulk contabilizzaConsegneSelezionate(it.cnr.jada.UserContext param0,OrdineAcqBulk param1,java.util.Collection param2,it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk param3) throws it.cnr.jada.comp.ComponentException,java.rmi.RemoteException;
public ImportoOrdine calcoloImportoOrdine(UserContext userContext,ParametriCalcoloImportoOrdine parametri) throws RemoteException,ComponentException;
public ImportoOrdine calcoloImportoOrdinePerMagazzino(UserContext userContext,ParametriCalcoloImportoOrdine parametri) throws RemoteException,ComponentException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqConsegnaBulk;
import it.cnr.contab.ordmag.ordini.comp.OrdineAcqComponent;
import it.cnr.contab.ordmag.ordini.dto.ImportoOrdine;
import it.cnr.contab.ordmag.ordini.dto.ParametriCalcoloImportoOrdine;
import it.cnr.contab.ordmag.richieste.bulk.RichiestaUopBulk;
import it.cnr.jada.UserContext;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.PersistencyException;
@Stateless(name="CNRORDMAG00_EJB_OrdineAcqComponentSession")
Expand Down Expand Up @@ -223,4 +226,34 @@ public OrdineAcqBulk contabilizzaConsegneSelezionate(it.cnr.jada.UserContext par
throw uncaughtError(param0,componentObj,e);
}
}
public ImportoOrdine calcoloImportoOrdine(UserContext userContext, ParametriCalcoloImportoOrdine parametri) throws RemoteException,ComponentException{
pre_component_invocation(userContext,componentObj);
try {
ImportoOrdine result = ((OrdineAcqComponent)componentObj).calcoloImportoOrdine(parametri);
component_invocation_succes(userContext,componentObj);
return result;
} catch(it.cnr.jada.comp.ComponentException e) {
component_invocation_failure(userContext,componentObj);
throw e;
} catch(RuntimeException e) {
throw uncaughtRuntimeException(userContext,componentObj,e);
} catch(Error e) {
throw uncaughtError(userContext,componentObj,e);
}
}
public ImportoOrdine calcoloImportoOrdinePerMagazzino(UserContext userContext, ParametriCalcoloImportoOrdine parametri) throws RemoteException,ComponentException{
pre_component_invocation(userContext,componentObj);
try {
ImportoOrdine result = ((OrdineAcqComponent)componentObj).calcoloImportoOrdinePerMagazzino(parametri);
component_invocation_succes(userContext,componentObj);
return result;
} catch(it.cnr.jada.comp.ComponentException e) {
component_invocation_failure(userContext,componentObj);
throw e;
} catch(RuntimeException e) {
throw uncaughtRuntimeException(userContext,componentObj,e);
} catch(Error e) {
throw uncaughtError(userContext,componentObj,e);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqBulk;
import it.cnr.contab.ordmag.ordini.bulk.OrdineAcqConsegnaBulk;
import it.cnr.contab.ordmag.ordini.dto.ImportoOrdine;
import it.cnr.contab.ordmag.ordini.dto.ParametriCalcoloImportoOrdine;
import it.cnr.contab.ordmag.richieste.bulk.RichiestaUopBulk;
import it.cnr.jada.UserContext;
import it.cnr.jada.comp.ComponentException;
Expand Down Expand Up @@ -226,4 +228,38 @@ public OrdineAcqBulk contabilizzaConsegneSelezionate(it.cnr.jada.UserContext par
}
}
}
public ImportoOrdine calcoloImportoOrdine(UserContext userContext, ParametriCalcoloImportoOrdine parametri) throws RemoteException,ComponentException{
try {
return (ImportoOrdine)invoke("calcoloImportoOrdine",new Object[] {
userContext,
parametri });
} catch(java.rmi.RemoteException e) {
throw e;
} catch(java.lang.reflect.InvocationTargetException e) {
try {
throw e.getTargetException();
} catch(it.cnr.jada.comp.ComponentException ex) {
throw ex;
} catch(Throwable ex) {
throw new java.rmi.RemoteException("Uncaugth exception",ex);
}
}
}
public ImportoOrdine calcoloImportoOrdinePerMagazzino(UserContext userContext, ParametriCalcoloImportoOrdine parametri) throws RemoteException,ComponentException{
try {
return (ImportoOrdine)invoke("calcoloImportoOrdinePerMagazzino",new Object[] {
userContext,
parametri });
} catch(java.rmi.RemoteException e) {
throw e;
} catch(java.lang.reflect.InvocationTargetException e) {
try {
throw e.getTargetException();
} catch(it.cnr.jada.comp.ComponentException ex) {
throw ex;
} catch(Throwable ex) {
throw new java.rmi.RemoteException("Uncaugth exception",ex);
}
}
}
}
4 changes: 4 additions & 0 deletions sigla-ejb/src/main/java/it/cnr/contab/util/Utility.java
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ public static BigDecimal round2Decimali(BigDecimal importo) {
return round(importo,2);
}

public static BigDecimal round6Decimali(BigDecimal importo) {
return round(importo,6);
}

public static BigDecimal roundIntero(BigDecimal importo) {
return round(importo,0);
}
Expand Down

0 comments on commit 3303401

Please sign in to comment.