Finish Hotfix-95
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-01-13 14:08:17 +01:00
2 changed files with 34 additions and 13 deletions

View File

@@ -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

View File

@@ -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;
}
}