diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117142928.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117142928.java new file mode 100644 index 0000000000..4119c91f78 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251117142928.java @@ -0,0 +1,29 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomer; +import it.integry.ems.migration._base.IntegryCustomerDB; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20251117142928 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'"); + createSetup("W_jriep_presenze_dip_disp", "SETUP", "SET_DATA_FINE", "N", +"imposta data fine = fine mese", false, "SI_NO", false, false, +false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'"); + + if (isCustomer(IntegryCustomer.Integry)) + updateSetupValue("W_jriep_presenze_dip_disp", "SETUP", "SET_DATA_FINE", "S"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniVSlim2kService.java b/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniVSlim2kService.java index 5c55b1af9c..4cc4500279 100644 --- a/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniVSlim2kService.java +++ b/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniVSlim2kService.java @@ -34,12 +34,10 @@ public class OrdiniVSlim2kService { public List modificaQtaCnf(MultiDBTransactionManager multiDBTransactionManager, List ordini) throws Exception { List entities = new ArrayList<>(); Map> groupOrdini = ordini.stream() - .collect(Collectors.groupingBy(x -> { - return new DtbOrdt() - .setGestione(x.getGestione()) - .setDataOrd(x.getDataOrd()) - .setNumOrd(x.getNumOrd()); - } + .collect(Collectors.groupingBy(x -> new DtbOrdt() + .setGestione(x.getGestione()) + .setDataOrd(x.getDataOrd()) + .setNumOrd(x.getNumOrd()) )); List> articoli = new ArrayList<>(); @@ -47,12 +45,17 @@ public class OrdiniVSlim2kService { for(DtbOrdt ord : groupOrdini.keySet()) { for (DtbOrdr dtbOrdr : groupOrdini.get(ord)) { + String sql = + Query.format("SELECT * FROM dtb_ordt WHERE gestione = %s AND data_ord = %s AND num_ord = %s", + ord.getGestione(), ord.getDataOrd(), ord.getNumOrd()); + + ord = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdt.class); BigDecimal qtaCnf; Optional> articolo = articoli.stream().filter(x -> ((String) x.get("cod_mart")).equalsIgnoreCase(dtbOrdr.getCodMart())).findFirst(); if (articolo.isPresent()) { qtaCnf = (BigDecimal) articolo.get().get("qta_cnf"); } else { - String sql = Query.format("SELECT cod_mart, qta_cnf FROM mtb_aart WHERE cod_mart = %s", dtbOrdr.getCodMart()); + sql = Query.format("SELECT cod_mart, qta_cnf FROM mtb_aart WHERE cod_mart = %s", dtbOrdr.getCodMart()); HashMap datiArt = UtilityDB.executeSimpleQueryOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), sql); articoli.add(datiArt); qtaCnf = (BigDecimal) datiArt.get("qta_cnf"); @@ -64,13 +67,16 @@ public class OrdiniVSlim2kService { } else { dtbOrdr.setQtaOrd(dtbOrdr.getNumCnf().multiply(qtaCnf)); } + dtbOrdr.setOperation(OperationType.UPDATE); ord.getDtbOrdr().add(dtbOrdr); } - entityProcessor.processEntity(ord, multiDBTransactionManager); + entityProcessor.processEntity(ord, multiDBTransactionManager, false); - Optional> exportOpt = export.stream().filter(x -> ((String) x.get("cod_anag")).equalsIgnoreCase(ord.getCodAnag())).findFirst(); + DtbOrdt finalOrd = ord; + Optional> exportOpt = export.stream() + .filter(x -> ((String) x.get("cod_anag")).equalsIgnoreCase(finalOrd.getCodAnag())).findFirst(); HashMap datiExport; if ( exportOpt.isPresent() ) { datiExport = exportOpt.get();