Merge branch 'master' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -612,7 +612,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
if (qta.compareTo(BigDecimal.ZERO) != 0) {
|
||||
boolean ventilazione = false;
|
||||
if ( row instanceof DtbDocr) ventilazione = ((DtbDocr) row).getVentilazione();
|
||||
addCastellettoIva(flagIvaInclusa?impRigaIva:importoRiga, codAliq, ventilazione, castelletto);
|
||||
addCastellettoIva(flagIvaInclusa?impRigaIva:importoRiga, codAliq, ventilazione, castelletto, flagIvaInclusa);
|
||||
}
|
||||
|
||||
/**************************
|
||||
@@ -736,7 +736,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
setNumColliPeso(testata, calcColli, datiTrasp, colli, colliFromDB);
|
||||
|
||||
//CALCOLO TOTALI E CASTELLETTO IVA
|
||||
calcTotImponib(testata, conn, flagIvaInclusa, castelletto, cifreDec);
|
||||
calcTotImponib(testata, conn, castelletto, cifreDec);
|
||||
|
||||
//Prima di calcolare l'acconto estrerre l'elenco delle bolle agganciate alla fatture differita
|
||||
if (testata instanceof DtbDoct && ((DtbDoct) testata).getDtbTipi().getTipoEmissioneEnum() == TipoEmissione.DIFFERITA) {
|
||||
@@ -823,7 +823,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
}
|
||||
totSpese = totSpese.add(importoRiga);
|
||||
if (addCastelletto) {
|
||||
addCastellettoIva(importoRiga, codAliq, ventilazione, castelletto);
|
||||
addCastellettoIva(importoRiga, codAliq, ventilazione, castelletto, flagIvaInclusa);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -831,7 +831,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
return totSpese;
|
||||
}
|
||||
|
||||
private static void calcTotImponib(DtbDocOrdT testata, Connection conn, boolean flagIvaInclusa,
|
||||
private static void calcTotImponib(DtbDocOrdT testata, Connection conn,
|
||||
List<CtbMovi> castellettoIva, Integer cifreDec) throws Exception {
|
||||
BigDecimal totImponib = BigDecimal.ZERO;
|
||||
BigDecimal totImposta = BigDecimal.ZERO;
|
||||
@@ -849,17 +849,23 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
Boolean ventilazioneIva = iva.getVentilazione();
|
||||
BigDecimal totImpostaAliq;
|
||||
if (!UtilityString.isNullOrEmpty(codAliq)) {
|
||||
String sql = "SELECT tipo_iva, flag_marca_da_bollo, perc_aliq, flag_iva_acq_merci FROM gtb_aliq WHERE cod_aliq = " + UtilityDB.valueToString(codAliq);
|
||||
String sql = "SELECT tipo_iva, " +
|
||||
"flag_marca_da_bollo, " +
|
||||
"perc_aliq, " +
|
||||
"flag_iva_acq_merci " +
|
||||
"FROM gtb_aliq " +
|
||||
"WHERE cod_aliq = " + UtilityDB.valueToString(codAliq);
|
||||
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
String tipoIva = (String) dati.get("tipo_iva");
|
||||
String flagAddMarcaBollo = (String) dati.get("flag_marca_da_bollo");
|
||||
BigDecimal percAliq = (BigDecimal) dati.get("perc_aliq");
|
||||
boolean flagIvaAcqMerci = UtilityHashMap.<String>getValueIfExists(dati, "flag_iva_acq_merci").equalsIgnoreCase("S");
|
||||
|
||||
if (flagIvaInclusa) {
|
||||
if (iva.getFlagIvaInclusa()) {
|
||||
BigDecimal totImpScorporo = IntegerUtility.round(CommonRules.scorporoIva(conn, totImponibAliq, codAliq), 2);
|
||||
totImpostaAliq = totImponibAliq.subtract(totImpScorporo);
|
||||
totImponibAliq = totImponibAliq.subtract(totImpostaAliq);
|
||||
iva.setFlagIvaInclusa(false);
|
||||
} else {
|
||||
totImpostaAliq = calcImposta(conn, totImponibAliq, percAliq, tipoIva, cifreDec);
|
||||
}
|
||||
@@ -890,8 +896,12 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
testata.setTotImponib(totImponib).setTotIva(totImposta);
|
||||
}
|
||||
|
||||
private static void addCastellettoIva(BigDecimal importoRiga, String codAliq, Boolean ventilazione, List<CtbMovi> castelletto) {
|
||||
java.util.Optional<CtbMovi> first = castelletto.stream().filter(x -> UtilityString.equalsIgnoreCase(x.getCodAliq(), codAliq) && x.getVentilazione() == ventilazione).findFirst();
|
||||
private static void addCastellettoIva(BigDecimal importoRiga, String codAliq, Boolean ventilazione, List<CtbMovi> castelletto, Boolean flagIvaInclusa) {
|
||||
java.util.Optional<CtbMovi> first =
|
||||
castelletto.stream()
|
||||
.filter(x -> UtilityString.equalsIgnoreCase(x.getCodAliq(), codAliq) && x.getVentilazione() == ventilazione &&
|
||||
x.getFlagIvaInclusa() == flagIvaInclusa)
|
||||
.findFirst();
|
||||
CtbMovi ctbMovi;
|
||||
if (first.isPresent()) {
|
||||
ctbMovi = first.get();
|
||||
@@ -901,7 +911,8 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
ctbMovi = new CtbMovi()
|
||||
.setCodAliq(codAliq)
|
||||
.setVentilazione(ventilazione)
|
||||
.setImponibile(importoRiga);
|
||||
.setImponibile(importoRiga)
|
||||
.setFlagIvaInclusa(flagIvaInclusa);
|
||||
}
|
||||
castelletto.add(ctbMovi);
|
||||
}
|
||||
@@ -1291,7 +1302,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
|
||||
maxRigaSpesa = addAltreSpese(connection, testata, castelletto, speseCalc, maxRigaSpesa, whereCondExcSpese, cifreDec, ventilazione, flagPrzIva);
|
||||
if ( maxRigaSpesa > 0)
|
||||
calcTotImponib(testata, connection, flagPrzIva, castelletto, cifreDec);
|
||||
calcTotImponib(testata, connection, castelletto, cifreDec);
|
||||
}
|
||||
|
||||
//Imposta di bollo
|
||||
@@ -1310,7 +1321,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
if (totDoc.compareTo(BigDecimal.ZERO) != 0) {
|
||||
maxRigaSpesa = addImpostaBollo(connection, testata, castelletto, speseCalc, maxRigaSpesa, whereCondExcSpese, totDoc, ventilazione);
|
||||
if (maxRigaSpesa > 0)
|
||||
calcTotImponib(testata, connection, flagPrzIva, castelletto, cifreDec);
|
||||
calcTotImponib(testata, connection, castelletto, cifreDec);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1365,7 +1376,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
dtbDocs.setRiga(maxRigaSpesa);
|
||||
dtbDocs.setOperation(OperationType.INSERT);
|
||||
if (castelletto != null) {
|
||||
addCastellettoIva(dtbDocs.getImporto(), dtbDocs.getCodAliq(), ventilazione, castelletto);
|
||||
addCastellettoIva(dtbDocs.getImporto(), dtbDocs.getCodAliq(), ventilazione, castelletto, false);
|
||||
}
|
||||
speseCalc.add(dtbDocs);
|
||||
|
||||
@@ -1504,7 +1515,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
maxRigaSpesa = setDtbDocs(testata, castelletto, spesa, BigDecimal.ZERO, importo, speseCalc, maxRigaSpesa, ventilazione);
|
||||
}
|
||||
}
|
||||
calcTotImponib(testata, connection, flagPrzIva, castelletto, cifreDec);
|
||||
calcTotImponib(testata, connection, castelletto, cifreDec);
|
||||
}
|
||||
/*
|
||||
calcolo spese sul totale del documento
|
||||
|
||||
@@ -69,6 +69,7 @@ public class CtbMovi extends EntityBase {
|
||||
|
||||
private String flagMarcaDaBollo;
|
||||
private String tipoIva;
|
||||
private Boolean flagIvaInclusa;
|
||||
|
||||
public CtbMovi() {
|
||||
super(logger);
|
||||
@@ -217,4 +218,13 @@ public class CtbMovi extends EntityBase {
|
||||
this.tipoIva = tipoIva;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Boolean getFlagIvaInclusa() {
|
||||
return flagIvaInclusa;
|
||||
}
|
||||
|
||||
public CtbMovi setFlagIvaInclusa(Boolean flagIvaInclusa) {
|
||||
this.flagIvaInclusa = flagIvaInclusa;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user