Fix recalc posizione viaggi ed aggiunto controllo ord L già creato in saveProductionPlan
This commit is contained in:
@@ -863,7 +863,7 @@ public class SalesRules extends QueryRules {
|
||||
entity.getDataFine(),
|
||||
entity.getCodVlis(),
|
||||
entity.getCodMart(),
|
||||
entity.getVersione()==null?0:entity.getVersione()
|
||||
entity.getVersione() == null ? 0 : entity.getVersione()
|
||||
);
|
||||
|
||||
HashMap<String, Object> datiPromo = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
|
||||
@@ -1175,11 +1175,29 @@ public class SalesRules extends QueryRules {
|
||||
return;
|
||||
}
|
||||
|
||||
int indexOfLastPosizione = viaggiGiorno.indexOf(viaggiGiorno.stream()
|
||||
.filter(viaggio -> !viaggio.getIdViaggio().equalsIgnoreCase(vtbViaggi.getIdViaggio()) && Objects.equals(viaggio.getPosizione(), vtbViaggi.getPosizione())).findFirst().orElse(null));
|
||||
VtbViaggi lastDataViaggio = viaggiGiorno.stream()
|
||||
.filter(viaggio -> viaggio.getIdViaggio().equalsIgnoreCase(vtbViaggi.getIdViaggio()))
|
||||
.findFirst().orElse(null);
|
||||
|
||||
if (indexOfLastPosizione != -1) {
|
||||
viaggiGiorno.add(indexOfLastPosizione, vtbViaggi);
|
||||
if (lastDataViaggio != null) {
|
||||
viaggiGiorno.remove(lastDataViaggio);
|
||||
}
|
||||
|
||||
int indexOfViaggioConNuovaPos = viaggiGiorno.indexOf(viaggiGiorno.stream()
|
||||
.filter(viaggio -> viaggio.getPosizione().equals(vtbViaggi.getPosizione())).findFirst().orElse(null));
|
||||
|
||||
if (indexOfViaggioConNuovaPos != -1) {
|
||||
if (lastDataViaggio != null && vtbViaggi.getPosizione() > lastDataViaggio.getPosizione()) {
|
||||
indexOfViaggioConNuovaPos += 1;
|
||||
}
|
||||
|
||||
viaggiGiorno.add(indexOfViaggioConNuovaPos, vtbViaggi);
|
||||
} else {
|
||||
viaggiGiorno.add(vtbViaggi);
|
||||
|
||||
viaggiGiorno = Stream.of(viaggiGiorno)
|
||||
.sortBy(VtbViaggi::getPosizione)
|
||||
.toList();
|
||||
}
|
||||
|
||||
Stream.of(viaggiGiorno)
|
||||
|
||||
@@ -302,6 +302,27 @@ public class ProductionPlanService {
|
||||
}
|
||||
|
||||
ordLavDTO.setPartite(saveProductionPlanDTO.getPartite());
|
||||
|
||||
sql = Query.format(
|
||||
"SELECT num_ord, qta_prod\n" +
|
||||
"FROM dtb_ordt\n" +
|
||||
"WHERE cod_jcom = %s\n" +
|
||||
" AND cod_prod = %s",
|
||||
saveProductionPlanDTO.getCodJcom(),
|
||||
saveProductionPlanDTO.getCodProd()
|
||||
);
|
||||
|
||||
if (numOrdL == null || numOrdL == 0) {
|
||||
HashMap<String, Object> ordData = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
if (ordData != null) {
|
||||
numOrdL = UtilityHashMap.getValueIfExists(ordData, "num_ord");
|
||||
|
||||
qtaProd = (qtaProd != null ? qtaProd : BigDecimal.ZERO)
|
||||
.add(UtilityHashMap.getValueIfExists(ordData, "qta_prod"));
|
||||
}
|
||||
}
|
||||
|
||||
if (numOrdL == null || numOrdL == 0) {
|
||||
operation = OperationType.INSERT;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user