Fix recalc posizione viaggi ed aggiunto controllo ord L già creato in saveProductionPlan
This commit is contained in:
@@ -852,19 +852,19 @@ public class SalesRules extends QueryRules {
|
|||||||
Boolean ret = false;
|
Boolean ret = false;
|
||||||
String query =
|
String query =
|
||||||
Query.format(
|
Query.format(
|
||||||
"SELECT TOP 1 cod_promo, " +
|
"SELECT TOP 1 cod_promo, " +
|
||||||
"data_iniz, " +
|
"data_iniz, " +
|
||||||
"data_fine, " +
|
"data_fine, " +
|
||||||
"versione " +
|
"versione " +
|
||||||
" FROM dbo.getPromozioneVendita( %s, %s, %s , null, %s) " +
|
" FROM dbo.getPromozioneVendita( %s, %s, %s , null, %s) " +
|
||||||
" WHERE tipo_variazione <> 'D' AND" +
|
" WHERE tipo_variazione <> 'D' AND" +
|
||||||
" versione <> %s",
|
" versione <> %s",
|
||||||
entity.getDataIniz(),
|
entity.getDataIniz(),
|
||||||
entity.getDataFine(),
|
entity.getDataFine(),
|
||||||
entity.getCodVlis(),
|
entity.getCodVlis(),
|
||||||
entity.getCodMart(),
|
entity.getCodMart(),
|
||||||
entity.getVersione()==null?0:entity.getVersione()
|
entity.getVersione() == null ? 0 : entity.getVersione()
|
||||||
);
|
);
|
||||||
|
|
||||||
HashMap<String, Object> datiPromo = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
|
HashMap<String, Object> datiPromo = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, query);
|
||||||
if (UtilityHashMap.isPresent(datiPromo)) {
|
if (UtilityHashMap.isPresent(datiPromo)) {
|
||||||
@@ -1175,11 +1175,29 @@ public class SalesRules extends QueryRules {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int indexOfLastPosizione = viaggiGiorno.indexOf(viaggiGiorno.stream()
|
VtbViaggi lastDataViaggio = viaggiGiorno.stream()
|
||||||
.filter(viaggio -> !viaggio.getIdViaggio().equalsIgnoreCase(vtbViaggi.getIdViaggio()) && Objects.equals(viaggio.getPosizione(), vtbViaggi.getPosizione())).findFirst().orElse(null));
|
.filter(viaggio -> viaggio.getIdViaggio().equalsIgnoreCase(vtbViaggi.getIdViaggio()))
|
||||||
|
.findFirst().orElse(null);
|
||||||
|
|
||||||
if (indexOfLastPosizione != -1) {
|
if (lastDataViaggio != null) {
|
||||||
viaggiGiorno.add(indexOfLastPosizione, vtbViaggi);
|
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)
|
Stream.of(viaggiGiorno)
|
||||||
|
|||||||
@@ -302,6 +302,27 @@ public class ProductionPlanService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ordLavDTO.setPartite(saveProductionPlanDTO.getPartite());
|
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) {
|
if (numOrdL == null || numOrdL == 0) {
|
||||||
operation = OperationType.INSERT;
|
operation = OperationType.INSERT;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user