sistemato calcolo totale peso nel documento
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:
@@ -449,10 +449,10 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
.filter(x -> Objects.equals(x.getIdRiga(), idRiga)).findFirst().orElse(null);
|
||||
|
||||
if (dtbDocr != null &&
|
||||
(Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getQta(), dtbDocr.getQta()), dtbDocr.getQta()) &&
|
||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getNumCnf(), dtbDocr.getNumCnf()), dtbDocr.getNumCnf()) &&
|
||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoLordo(), dtbDocr.getPesoLordo()), dtbDocr.getPesoLordo()) &&
|
||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoNetto(), dtbDocr.getPesoNetto()), dtbDocr.getPesoNetto()))) {
|
||||
(Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getQta(), row.getQta()), row.getQta()) &&
|
||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getNumCnf(), row.getNumCnf()), row.getNumCnf()) &&
|
||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoLordo(), row.getPesoLordo()), row.getPesoLordo()) &&
|
||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoNetto(), ((DtbDocr) row).getPesoNetto()), ((DtbDocr) row).getPesoNetto()))) {
|
||||
return false;
|
||||
} else if (dtbDocr == null && row.getOperation() == OperationType.SELECT_OBJECT)
|
||||
return false;
|
||||
@@ -534,23 +534,23 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
}
|
||||
}
|
||||
|
||||
String calcColli = "N";
|
||||
boolean calcColli = false;
|
||||
if (testata instanceof WdtbDoct || testata instanceof WdtbOrdt) {
|
||||
calcColli = "N";
|
||||
calcColli = false;
|
||||
} else if (isOrdine) {
|
||||
calcColli = "S";
|
||||
calcColli = true;
|
||||
} else {
|
||||
String whereCondTestata = testata.getEntityHolder().getWherePK(testata);
|
||||
String sql = "select mtb_colt.gestione, mtb_colt.data_collo, mtb_colt.ser_collo, mtb_colt.num_collo from mtb_colt where " + whereCondTestata;
|
||||
colliFromDB = new ResultSetMapper().mapQuerySetToList(conn, sql, MtbColt.class);
|
||||
calcColli = setup.getSetup(conn, "DATI_AZIENDA", "DOCU_ORD", "CALC_COLLI");
|
||||
calcColli = setup.getSetupBoolean(conn, "DATI_AZIENDA", "DOCU_ORD", "CALC_COLLI");
|
||||
|
||||
/*20-04-20 (FABIO): commentato la lettura dei colli da MtbColt al momento, ma è una logica che non dovrebbe più essere utilizzata,
|
||||
* ma in tal caso dovremmo valuare delle poche aziende che hanno il flag calc_colli = 'N' se è giusto che calcoli il numero dei colli
|
||||
logistici (alcune aziende pur avendo N gestivano il calcolo come se fosse impostato a S, perchè la vecchia DTBDOCCOLLI non venendo
|
||||
* valorizzata impostava automaticamente a S il flag CALC_COLLI )*/
|
||||
if ((colli == null || colli.isEmpty()) && colliFromDB.isEmpty()) {
|
||||
calcColli = "S";
|
||||
calcColli = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -666,9 +666,9 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
/**************************
|
||||
CALCOLO NUM_COLLI e PESO
|
||||
**************************/
|
||||
if ("S".equals(calcColli) && codMart != null && prendiNeiTotali) {
|
||||
if (calcColli && codMart != null) {
|
||||
if (!changeQta) changeQta = checkQtaChange(testata, row);
|
||||
calcPesoColli(row, qta, datiTrasp);
|
||||
calcPesoColli(row, qta, datiTrasp, prendiNeiTotali);
|
||||
}
|
||||
//Assegna costo
|
||||
if (row instanceof DtbDocr && (((DtbDocr) row).getCostoUnt() == null || ((DtbDocr) row).getCostoUnt().compareTo(BigDecimal.ZERO) == 0)) {
|
||||
@@ -682,7 +682,6 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
((DtbDocr) row).setCostoUnt(costo);
|
||||
}
|
||||
|
||||
|
||||
if (row instanceof DtbDocr) {
|
||||
DtbDocr dtbDocr = (DtbDocr) row;
|
||||
|
||||
@@ -986,7 +985,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
return totImposta;
|
||||
}
|
||||
|
||||
private static void calcPesoColli(DtbDocOrdR row, BigDecimal qta, DatiTrasportoDTO datiTrasp) throws Exception {
|
||||
private static void calcPesoColli(DtbDocOrdR row, BigDecimal qta, DatiTrasportoDTO datiTrasp, boolean prendiNeiTotali) throws Exception {
|
||||
BigDecimal rapConv = row.getRapConv();
|
||||
BigDecimal pesoLordoRow = row.getPesoLordo();
|
||||
BigDecimal qtaCnf = row.getQtaCnf();
|
||||
@@ -1005,11 +1004,13 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
/*CALCOLO PESO*/
|
||||
BigDecimal taraKgTot = BigDecimal.ZERO;
|
||||
BigDecimal pesoLordo = BigDecimal.ZERO;
|
||||
qta = qta.multiply(rapConv);
|
||||
if (taraKg.compareTo(BigDecimal.ZERO) > 0)
|
||||
taraKgTot = qta.multiply(rapConv).multiply(taraKg).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
pesoKgTot = pesoKgTot.add(taraKgTot).add(qta.multiply(rapConv).multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
pesoNettoKgTot = pesoNettoKgTot.add(qta.multiply(rapConv).multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
taraKgTot = qta.multiply(taraKg).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
|
||||
if (!prendiNeiTotali) {
|
||||
pesoKgTot = pesoKgTot.add(taraKgTot).add(qta.multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
}
|
||||
/*CALCOLO PESO LORDO SU RIGHE*/
|
||||
pesoLordo = pesoLordo.add(pesoKg).add(taraKg);
|
||||
pesoLordo = pesoLordo.multiply(qta).multiply(rapConv).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
@@ -1018,6 +1019,8 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
|
||||
/*CALCOLO NUMERO COLLI*/
|
||||
BigDecimal colliRiga, sfusoRiga, qtaCnfInt;
|
||||
|
||||
pesoNettoKgTot = pesoNettoKgTot.add(qta.multiply(rapConv).multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||
if (qtaCnf.compareTo(BigDecimal.ZERO) == 0) {
|
||||
colliRiga = BigDecimal.ZERO;
|
||||
sfusoRiga = BigDecimal.ZERO;
|
||||
@@ -1047,13 +1050,14 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
|
||||
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, String calcColli, DatiTrasportoDTO
|
||||
public static void setNumColliPeso(EntityBase testata, boolean calcColli, DatiTrasportoDTO
|
||||
datiTrasp, List<MtbColt> colli, List<MtbColt> colliFromDB) throws Exception {
|
||||
String peso = null, numColli = null;
|
||||
BigDecimal pesoKgTot = datiTrasp.getPesoKg();
|
||||
@@ -1078,10 +1082,10 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
colli = ((DtbDoct) testata).getMtbColt();
|
||||
}
|
||||
|
||||
if ("S".equals(calcColli)) {
|
||||
if (calcColli) {
|
||||
if (pesoKgTot.compareTo(BigDecimal.ZERO) > 0) {
|
||||
pesoKgTot = IntegerUtility.round(pesoKgTot, 2);
|
||||
peso = "KG " + pesoKgTot.toString();
|
||||
peso = "KG. " + pesoKgTot.toString();
|
||||
}
|
||||
numColli = colliTot.toString();
|
||||
if (sfusoTot.compareTo(BigDecimal.ZERO) > 0)
|
||||
@@ -1119,14 +1123,19 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
}
|
||||
peso = null;
|
||||
} else {
|
||||
calcColli = "S";
|
||||
calcColli = true;
|
||||
}
|
||||
}
|
||||
String[] fields = new String[]{"peso", "numColli"};
|
||||
DroolsUtil.completeEntity(testata, fields, peso, numColli);
|
||||
String[] fields = new String[]{"numColli"};
|
||||
DroolsUtil.completeEntity(testata, fields, numColli);
|
||||
|
||||
if (testata instanceof DtbDoct) {
|
||||
((DtbDoct) testata).setPesoNettoKg(pesoNettoKgTot);
|
||||
if (((DtbDoct) testata).getPesoNettoKg() == null)
|
||||
((DtbDoct) testata).setPesoNettoKg(pesoNettoKgTot);
|
||||
if (((DtbDoct) testata).getPeso() == null)
|
||||
((DtbDoct) testata).setPeso(peso);
|
||||
} else {
|
||||
DroolsUtil.completeEntity(testata, new String[]{"peso"}, peso);
|
||||
}
|
||||
|
||||
if (testata instanceof DtbDoct && ((DtbDoct) testata).getPostiPallet() == null) {
|
||||
|
||||
Reference in New Issue
Block a user