revisione calcolo totali per ordni web e documenti
(cherry picked from commit a7c3163d84)
This commit is contained in:
@@ -985,86 +985,71 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
return totImposta;
|
return totImposta;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void calcPesoColli(DtbDocOrdR row, BigDecimal qta, DatiTrasportoDTO datiTrasp, boolean prendiNeiTotali) throws Exception {
|
private static void calcPesoColli(DtbDocOrdR row, BigDecimal qta, DatiTrasportoDTO datiTrasp, boolean prendiNeiTotali) {
|
||||||
BigDecimal rapConv = row.getRapConv();
|
BigDecimal taraKgArt = BigDecimal.ZERO;
|
||||||
BigDecimal pesoLordoRow = row.getPesoLordo();
|
|
||||||
BigDecimal qtaCnf = row.getQtaCnf();
|
|
||||||
BigDecimal qtaDoc = qta;
|
|
||||||
|
|
||||||
BigDecimal pesoKgTot = UtilityBigDecimal.isNull(datiTrasp.getPesoKg(), BigDecimal.ZERO);
|
|
||||||
BigDecimal colliTot = UtilityBigDecimal.isNull(datiTrasp.getColli(), BigDecimal.ZERO);
|
|
||||||
BigDecimal sfusoTot = UtilityBigDecimal.isNull(datiTrasp.getSfuso(), BigDecimal.ZERO);
|
|
||||||
BigDecimal pesoNettoKgTot = UtilityBigDecimal.isNull(datiTrasp.getPesoNetto(), BigDecimal.ZERO);
|
|
||||||
|
|
||||||
BigDecimal pesoKg = UtilityBigDecimal.isNull(row.getMtbAart().getPesoKg(), BigDecimal.ZERO);
|
|
||||||
BigDecimal taraKg = BigDecimal.ZERO;
|
|
||||||
if (!row.getMtbAart().getQtaCnf().equals(BigDecimal.ZERO) && !UtilityBigDecimal.isNullOrZero(row.getMtbAart().getTaraKg())) {
|
if (!row.getMtbAart().getQtaCnf().equals(BigDecimal.ZERO) && !UtilityBigDecimal.isNullOrZero(row.getMtbAart().getTaraKg())) {
|
||||||
taraKg = row.getMtbAart().getTaraKg().divide(row.getMtbAart().getQtaCnf(), 5, RoundingMode.HALF_UP);
|
taraKgArt = row.getMtbAart().getTaraKg().divide(row.getMtbAart().getQtaCnf(), 5, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
|
BigDecimal taraKgRow = BigDecimal.ZERO;
|
||||||
/*CALCOLO PESO*/
|
BigDecimal rapConv = row.getRapConv();
|
||||||
BigDecimal taraKgTot = BigDecimal.ZERO;
|
|
||||||
BigDecimal pesoLordo = BigDecimal.ZERO;
|
|
||||||
qta = qta.multiply(rapConv);
|
qta = qta.multiply(rapConv);
|
||||||
if (taraKg.compareTo(BigDecimal.ZERO) > 0)
|
if (taraKgArt.compareTo(BigDecimal.ZERO) > 0)
|
||||||
taraKgTot = qta.multiply(taraKg).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
taraKgRow = qta.multiply(taraKgArt).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||||
|
|
||||||
if (!prendiNeiTotali) {
|
BigDecimal pesoNettoKg = (qta.multiply(UtilityBigDecimal.isNull(row.getMtbAart().getPesoKg(), BigDecimal.ZERO))).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||||
pesoKgTot = pesoKgTot.add(taraKgTot).add(qta.multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
|
||||||
}
|
|
||||||
/*CALCOLO PESO LORDO SU RIGHE*/
|
/*CALCOLO PESO LORDO SU RIGHE*/
|
||||||
pesoLordo = pesoLordo.add(pesoKg).add(taraKg);
|
BigDecimal pesoLordoRow = pesoNettoKg.add(taraKgRow);
|
||||||
pesoLordo = pesoLordo.multiply(qta).multiply(rapConv).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
if (row.getPesoLordo().compareTo(BigDecimal.ZERO) == 0 && pesoLordoRow.compareTo(BigDecimal.ZERO) > 0)
|
||||||
if (pesoLordoRow.compareTo(BigDecimal.ZERO) == 0 && pesoLordo.compareTo(BigDecimal.ZERO) > 0)
|
row.setPesoLordo(pesoLordoRow);
|
||||||
row.setPesoLordo(pesoLordo);
|
else
|
||||||
|
pesoLordoRow = row.getPesoLordo();
|
||||||
|
|
||||||
|
datiTrasp.setPesoLordoKg(UtilityBigDecimal.isNull(datiTrasp.getPesoLordoKg(), BigDecimal.ZERO).add(pesoLordoRow));
|
||||||
|
|
||||||
/*CALCOLO NUMERO COLLI*/
|
/*CALCOLO NUMERO COLLI*/
|
||||||
|
BigDecimal qtaCnf = row.getQtaCnf();
|
||||||
BigDecimal colliRiga, sfusoRiga, qtaCnfInt;
|
BigDecimal colliRiga, sfusoRiga, qtaCnfInt;
|
||||||
|
if (prendiNeiTotali) {
|
||||||
pesoNettoKgTot = pesoNettoKgTot.add(qta.multiply(rapConv).multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
datiTrasp.setPesoNettoKg(UtilityBigDecimal.isNull(datiTrasp.getPesoNettoKg(), BigDecimal.ZERO).add(pesoNettoKg));
|
||||||
if (qtaCnf.compareTo(BigDecimal.ZERO) == 0) {
|
if (qtaCnf.compareTo(BigDecimal.ZERO) == 0) {
|
||||||
colliRiga = BigDecimal.ZERO;
|
colliRiga = BigDecimal.ZERO;
|
||||||
sfusoRiga = BigDecimal.ZERO;
|
|
||||||
} else {
|
|
||||||
qtaCnfInt = qtaCnf.setScale(0, RoundingMode.DOWN);
|
|
||||||
if (qtaCnf.subtract(qtaCnfInt).compareTo(BigDecimal.ZERO) > 0) {
|
|
||||||
colliRiga = IntegerUtility.round(qtaDoc.divide(qtaCnf, RoundingMode.HALF_UP), 0);
|
|
||||||
colliRiga = colliRiga.setScale(0, RoundingMode.DOWN);
|
|
||||||
sfusoRiga = BigDecimal.ZERO;
|
sfusoRiga = BigDecimal.ZERO;
|
||||||
} else {
|
} else {
|
||||||
colliRiga = qtaDoc.divide(qtaCnf, RoundingMode.HALF_UP);
|
qtaCnfInt = qtaCnf.setScale(0, RoundingMode.DOWN);
|
||||||
colliRiga = colliRiga.setScale(0, RoundingMode.DOWN);
|
if (qtaCnf.subtract(qtaCnfInt).compareTo(BigDecimal.ZERO) > 0) {
|
||||||
sfusoRiga = new BigDecimal(qtaDoc.doubleValue() % qtaCnf.doubleValue());
|
colliRiga = IntegerUtility.round(qta.divide(qtaCnf, RoundingMode.HALF_UP), 0);
|
||||||
sfusoRiga = IntegerUtility.round(sfusoRiga, 0);
|
colliRiga = colliRiga.setScale(0, RoundingMode.DOWN);
|
||||||
|
sfusoRiga = BigDecimal.ZERO;
|
||||||
|
} else {
|
||||||
|
colliRiga = qta.divide(qtaCnf, RoundingMode.HALF_UP);
|
||||||
|
colliRiga = colliRiga.setScale(0, RoundingMode.DOWN);
|
||||||
|
sfusoRiga = new BigDecimal(qtaCnfInt.doubleValue() % qtaCnf.doubleValue());
|
||||||
|
sfusoRiga = IntegerUtility.round(sfusoRiga, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Integer totPedana = datiTrasp.getPedane() == null ? 0 : datiTrasp.getPedane();
|
||||||
|
BigDecimal colliPedana = row.getColliPedana();
|
||||||
|
String tipoPedana = row.getCodTcolUl();
|
||||||
|
if (!UtilityString.isNullOrEmpty(tipoPedana) && !UtilityBigDecimal.isNullOrZero(colliPedana)) {
|
||||||
|
Integer pedana = colliRiga.divide(colliPedana, RoundingMode.HALF_UP).intValue();
|
||||||
|
totPedana = totPedana + pedana;
|
||||||
|
}
|
||||||
|
datiTrasp.setPedane(totPedana);
|
||||||
|
|
||||||
|
datiTrasp.setColli(UtilityBigDecimal.isNull(datiTrasp.getColli(), BigDecimal.ZERO).add(colliRiga));
|
||||||
|
datiTrasp.setSfuso(UtilityBigDecimal.isNull(datiTrasp.getSfuso(), BigDecimal.ZERO).add(sfusoRiga));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Integer totPedana = datiTrasp.getPedane() == null ? 0 : datiTrasp.getPedane();
|
|
||||||
BigDecimal colliPedana = row.getColliPedana();
|
|
||||||
String tipoPedana = row.getCodTcolUl();
|
|
||||||
if (!UtilityString.isNullOrEmpty(tipoPedana) && !UtilityBigDecimal.isNullOrZero(colliPedana)) {
|
|
||||||
Integer pedana = colliRiga.divide(colliPedana, RoundingMode.HALF_UP).intValue();
|
|
||||||
totPedana = totPedana + pedana;
|
|
||||||
}
|
|
||||||
datiTrasp.setPedane(totPedana);
|
|
||||||
|
|
||||||
colliTot = colliTot.add(colliRiga);
|
|
||||||
sfusoTot = sfusoTot.add(sfusoRiga);
|
|
||||||
|
|
||||||
datiTrasp.setPesoKg(pesoKgTot);
|
|
||||||
datiTrasp.setColli(colliTot);
|
|
||||||
datiTrasp.setSfuso(sfusoTot);
|
|
||||||
datiTrasp.setPesoNetto(pesoNettoKgTot);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setNumColliPeso(EntityBase testata, boolean calcColli, DatiTrasportoDTO
|
public static void setNumColliPeso(DtbDocOrdT testata, boolean calcColli, DatiTrasportoDTO
|
||||||
datiTrasp, List<MtbColt> colli, List<MtbColt> colliFromDB) throws Exception {
|
datiTrasp, List<MtbColt> colli, List<MtbColt> colliFromDB) throws Exception {
|
||||||
String peso = null, numColli = null;
|
String peso = null, numColli = null;
|
||||||
BigDecimal pesoKgTot = datiTrasp.getPesoKg();
|
BigDecimal pesoKgTot = datiTrasp.getPesoLordoKg();
|
||||||
BigDecimal colliTot = datiTrasp.getColli();
|
BigDecimal colliTot = datiTrasp.getColli();
|
||||||
BigDecimal sfusoTot = datiTrasp.getSfuso();
|
BigDecimal sfusoTot = datiTrasp.getSfuso();
|
||||||
BigDecimal pesoNettoKgTot = datiTrasp.getPesoNetto();
|
BigDecimal pesoNettoKgTot = datiTrasp.getPesoNettoKg();
|
||||||
Integer totPedane = datiTrasp.getPedane();
|
Integer totPedane = datiTrasp.getPedane();
|
||||||
if (pesoKgTot == null) {
|
if (pesoKgTot == null) {
|
||||||
pesoKgTot = BigDecimal.ZERO;
|
pesoKgTot = BigDecimal.ZERO;
|
||||||
@@ -1127,20 +1112,15 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
calcColli = true;
|
calcColli = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String[] fields = new String[]{"numColli"};
|
testata.setNumColli(numColli);
|
||||||
DroolsUtil.completeEntity(testata, fields, numColli);
|
if (UtilityString.isNullOrEmpty(testata.getPeso()))
|
||||||
|
testata.setPeso(peso);
|
||||||
|
|
||||||
if (testata instanceof DtbDoct) {
|
if (testata instanceof DtbDoct ) {
|
||||||
if (((DtbDoct) testata).getPesoNettoKg() == null)
|
if (((DtbDoct) testata).getPesoNettoKg() == null)
|
||||||
((DtbDoct) testata).setPesoNettoKg(pesoNettoKgTot);
|
((DtbDoct) testata).setPesoNettoKg(pesoNettoKgTot);
|
||||||
if (((DtbDoct) testata).getPeso() == null)
|
if (((DtbDoct) testata).getPostiPallet() == null)
|
||||||
((DtbDoct) testata).setPeso(peso);
|
((DtbDoct) testata).setPostiPallet(datiTrasp.getPedane());
|
||||||
} else {
|
|
||||||
DroolsUtil.completeEntity(testata, new String[]{"peso"}, peso);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (testata instanceof DtbDoct && ((DtbDoct) testata).getPostiPallet() == null) {
|
|
||||||
((DtbDoct) testata).setPostiPallet(datiTrasp.getPedane());
|
|
||||||
} else if (testata instanceof DtbOrdt && ((DtbOrdt) testata).getPostiPallet() == null) {
|
} else if (testata instanceof DtbOrdt && ((DtbOrdt) testata).getPostiPallet() == null) {
|
||||||
((DtbOrdt) testata).setPostiPallet(datiTrasp.getPedane());
|
((DtbOrdt) testata).setPostiPallet(datiTrasp.getPedane());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,47 +3,54 @@ package it.integry.ems.rules.completing.dto;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
public class DatiTrasportoDTO {
|
public class DatiTrasportoDTO {
|
||||||
private BigDecimal pesoKg, colli, sfuso, pesoNetto;
|
private BigDecimal pesoLordoKg;
|
||||||
|
private BigDecimal colli;
|
||||||
|
private BigDecimal sfuso;
|
||||||
|
private BigDecimal pesoNettoKg;
|
||||||
private Integer pedane;
|
private Integer pedane;
|
||||||
|
|
||||||
public BigDecimal getPesoKg() {
|
public BigDecimal getPesoLordoKg() {
|
||||||
return pesoKg;
|
return pesoLordoKg;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPesoKg(BigDecimal pesoKg) {
|
public DatiTrasportoDTO setPesoLordoKg(BigDecimal pesoLordoKg) {
|
||||||
this.pesoKg = pesoKg;
|
this.pesoLordoKg = pesoLordoKg;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getColli() {
|
public BigDecimal getColli() {
|
||||||
return colli;
|
return colli;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColli(BigDecimal colli) {
|
public DatiTrasportoDTO setColli(BigDecimal colli) {
|
||||||
this.colli = colli;
|
this.colli = colli;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getSfuso() {
|
public BigDecimal getSfuso() {
|
||||||
return sfuso;
|
return sfuso;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSfuso(BigDecimal sfuso) {
|
public DatiTrasportoDTO setSfuso(BigDecimal sfuso) {
|
||||||
this.sfuso = sfuso;
|
this.sfuso = sfuso;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPesoNettoKg() {
|
||||||
|
return pesoNettoKg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DatiTrasportoDTO setPesoNettoKg(BigDecimal pesoNettoKg) {
|
||||||
|
this.pesoNettoKg = pesoNettoKg;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPedane() {
|
public Integer getPedane() {
|
||||||
return pedane;
|
return pedane;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPedane(Integer pedane) {
|
public DatiTrasportoDTO setPedane(Integer pedane) {
|
||||||
this.pedane = pedane;
|
this.pedane = pedane;
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getPesoNetto() {
|
|
||||||
return pesoNetto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DatiTrasportoDTO setPesoNetto(BigDecimal pesoNetto) {
|
|
||||||
this.pesoNetto = pesoNetto;
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -969,6 +969,7 @@ public class WdtbDoct extends DtbBaseDocT {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<WdtbDocr> getRows() {
|
public List<WdtbDocr> getRows() {
|
||||||
return getWdtbDocr();
|
return getWdtbDocr();
|
||||||
|
|||||||
Reference in New Issue
Block a user