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);
|
.filter(x -> Objects.equals(x.getIdRiga(), idRiga)).findFirst().orElse(null);
|
||||||
|
|
||||||
if (dtbDocr != null &&
|
if (dtbDocr != null &&
|
||||||
(Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getQta(), dtbDocr.getQta()), dtbDocr.getQta()) &&
|
(Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getQta(), row.getQta()), row.getQta()) &&
|
||||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getNumCnf(), dtbDocr.getNumCnf()), dtbDocr.getNumCnf()) &&
|
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getNumCnf(), row.getNumCnf()), row.getNumCnf()) &&
|
||||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoLordo(), dtbDocr.getPesoLordo()), dtbDocr.getPesoLordo()) &&
|
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoLordo(), row.getPesoLordo()), row.getPesoLordo()) &&
|
||||||
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoNetto(), dtbDocr.getPesoNetto()), dtbDocr.getPesoNetto()))) {
|
Objects.equals(UtilityBigDecimal.isNull(dtbDocr.getPesoNetto(), ((DtbDocr) row).getPesoNetto()), ((DtbDocr) row).getPesoNetto()))) {
|
||||||
return false;
|
return false;
|
||||||
} else if (dtbDocr == null && row.getOperation() == OperationType.SELECT_OBJECT)
|
} else if (dtbDocr == null && row.getOperation() == OperationType.SELECT_OBJECT)
|
||||||
return false;
|
return false;
|
||||||
@@ -534,23 +534,23 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String calcColli = "N";
|
boolean calcColli = false;
|
||||||
if (testata instanceof WdtbDoct || testata instanceof WdtbOrdt) {
|
if (testata instanceof WdtbDoct || testata instanceof WdtbOrdt) {
|
||||||
calcColli = "N";
|
calcColli = false;
|
||||||
} else if (isOrdine) {
|
} else if (isOrdine) {
|
||||||
calcColli = "S";
|
calcColli = true;
|
||||||
} else {
|
} else {
|
||||||
String whereCondTestata = testata.getEntityHolder().getWherePK(testata);
|
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;
|
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);
|
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,
|
/*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
|
* 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
|
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 )*/
|
* valorizzata impostava automaticamente a S il flag CALC_COLLI )*/
|
||||||
if ((colli == null || colli.isEmpty()) && colliFromDB.isEmpty()) {
|
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
|
CALCOLO NUM_COLLI e PESO
|
||||||
**************************/
|
**************************/
|
||||||
if ("S".equals(calcColli) && codMart != null && prendiNeiTotali) {
|
if (calcColli && codMart != null) {
|
||||||
if (!changeQta) changeQta = checkQtaChange(testata, row);
|
if (!changeQta) changeQta = checkQtaChange(testata, row);
|
||||||
calcPesoColli(row, qta, datiTrasp);
|
calcPesoColli(row, qta, datiTrasp, prendiNeiTotali);
|
||||||
}
|
}
|
||||||
//Assegna costo
|
//Assegna costo
|
||||||
if (row instanceof DtbDocr && (((DtbDocr) row).getCostoUnt() == null || ((DtbDocr) row).getCostoUnt().compareTo(BigDecimal.ZERO) == 0)) {
|
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);
|
((DtbDocr) row).setCostoUnt(costo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (row instanceof DtbDocr) {
|
if (row instanceof DtbDocr) {
|
||||||
DtbDocr dtbDocr = (DtbDocr) row;
|
DtbDocr dtbDocr = (DtbDocr) row;
|
||||||
|
|
||||||
@@ -986,7 +985,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
return totImposta;
|
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 rapConv = row.getRapConv();
|
||||||
BigDecimal pesoLordoRow = row.getPesoLordo();
|
BigDecimal pesoLordoRow = row.getPesoLordo();
|
||||||
BigDecimal qtaCnf = row.getQtaCnf();
|
BigDecimal qtaCnf = row.getQtaCnf();
|
||||||
@@ -1005,11 +1004,13 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
/*CALCOLO PESO*/
|
/*CALCOLO PESO*/
|
||||||
BigDecimal taraKgTot = BigDecimal.ZERO;
|
BigDecimal taraKgTot = BigDecimal.ZERO;
|
||||||
BigDecimal pesoLordo = BigDecimal.ZERO;
|
BigDecimal pesoLordo = BigDecimal.ZERO;
|
||||||
|
qta = qta.multiply(rapConv);
|
||||||
if (taraKg.compareTo(BigDecimal.ZERO) > 0)
|
if (taraKg.compareTo(BigDecimal.ZERO) > 0)
|
||||||
taraKgTot = qta.multiply(rapConv).multiply(taraKg).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
taraKgTot = qta.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);
|
|
||||||
|
|
||||||
|
if (!prendiNeiTotali) {
|
||||||
|
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);
|
pesoLordo = pesoLordo.add(pesoKg).add(taraKg);
|
||||||
pesoLordo = pesoLordo.multiply(qta).multiply(rapConv).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
pesoLordo = pesoLordo.multiply(qta).multiply(rapConv).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||||
@@ -1018,6 +1019,8 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
|
|
||||||
/*CALCOLO NUMERO COLLI*/
|
/*CALCOLO NUMERO COLLI*/
|
||||||
BigDecimal colliRiga, sfusoRiga, qtaCnfInt;
|
BigDecimal colliRiga, sfusoRiga, qtaCnfInt;
|
||||||
|
|
||||||
|
pesoNettoKgTot = pesoNettoKgTot.add(qta.multiply(rapConv).multiply(pesoKg)).setScale(EmsRestConstants.cifreDecMax, RoundingMode.HALF_UP);
|
||||||
if (qtaCnf.compareTo(BigDecimal.ZERO) == 0) {
|
if (qtaCnf.compareTo(BigDecimal.ZERO) == 0) {
|
||||||
colliRiga = BigDecimal.ZERO;
|
colliRiga = BigDecimal.ZERO;
|
||||||
sfusoRiga = BigDecimal.ZERO;
|
sfusoRiga = BigDecimal.ZERO;
|
||||||
@@ -1047,13 +1050,14 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
|
|
||||||
colliTot = colliTot.add(colliRiga);
|
colliTot = colliTot.add(colliRiga);
|
||||||
sfusoTot = sfusoTot.add(sfusoRiga);
|
sfusoTot = sfusoTot.add(sfusoRiga);
|
||||||
|
|
||||||
datiTrasp.setPesoKg(pesoKgTot);
|
datiTrasp.setPesoKg(pesoKgTot);
|
||||||
datiTrasp.setColli(colliTot);
|
datiTrasp.setColli(colliTot);
|
||||||
datiTrasp.setSfuso(sfusoTot);
|
datiTrasp.setSfuso(sfusoTot);
|
||||||
datiTrasp.setPesoNetto(pesoNettoKgTot);
|
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 {
|
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.getPesoKg();
|
||||||
@@ -1078,10 +1082,10 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
colli = ((DtbDoct) testata).getMtbColt();
|
colli = ((DtbDoct) testata).getMtbColt();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("S".equals(calcColli)) {
|
if (calcColli) {
|
||||||
if (pesoKgTot.compareTo(BigDecimal.ZERO) > 0) {
|
if (pesoKgTot.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
pesoKgTot = IntegerUtility.round(pesoKgTot, 2);
|
pesoKgTot = IntegerUtility.round(pesoKgTot, 2);
|
||||||
peso = "KG " + pesoKgTot.toString();
|
peso = "KG. " + pesoKgTot.toString();
|
||||||
}
|
}
|
||||||
numColli = colliTot.toString();
|
numColli = colliTot.toString();
|
||||||
if (sfusoTot.compareTo(BigDecimal.ZERO) > 0)
|
if (sfusoTot.compareTo(BigDecimal.ZERO) > 0)
|
||||||
@@ -1119,14 +1123,19 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
|||||||
}
|
}
|
||||||
peso = null;
|
peso = null;
|
||||||
} else {
|
} else {
|
||||||
calcColli = "S";
|
calcColli = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String[] fields = new String[]{"peso", "numColli"};
|
String[] fields = new String[]{"numColli"};
|
||||||
DroolsUtil.completeEntity(testata, fields, peso, numColli);
|
DroolsUtil.completeEntity(testata, fields, numColli);
|
||||||
|
|
||||||
if (testata instanceof DtbDoct) {
|
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) {
|
if (testata instanceof DtbDoct && ((DtbDoct) testata).getPostiPallet() == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user