diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240506152142.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240506152142.java new file mode 100644 index 0000000000..173f700c35 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240506152142.java @@ -0,0 +1,27 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomerDB; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240506152142 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + if (!isCustomerDb( + IntegryCustomerDB.Gramm_Gramm)){ + return; + } + + createSetup("IMPORT_ORDINI", "EURITMO", "SET_DATA_CONS_CLIE_C2339", "N", "Se impostato a S allora la data di consegna non viene calcolata, ma presa quella del cliente", false, null, false, false, false, false, false, null, false, null); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniEDIimportService.java b/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniEDIimportService.java index 4b88c97c00..7f5583d5c4 100644 --- a/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniEDIimportService.java +++ b/ems-engine/src/main/java/it/integry/ems/order/service/OrdiniEDIimportService.java @@ -331,13 +331,22 @@ public class OrdiniEDIimportService { Date dataInizTrasp = dataOrd; if ( flagDataCons ) { - String ggCons = UtilityHashMap.getValueIfExists(setup, "GG_CONS_"+codAnag); - sql = "SELECT dbo.RelativeWorkDate(" + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + "," + ggCons + ") "; - Date dataConsNew = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql); - if (dataConsNew != null) { - if (UtilityDate.DaysAfter(dataOrd, dataConsNew) > 0) { - dataInizTrasp = dataConsNew; + // Se il cliente setDataConsClieCustom = true allora vuol dire che la data di consengna deve essere quella del cliente, piuttosto che quella calcolata + boolean setDataConsClieCustom = UtilityHashMap.getValueIfExists(setup, "SET_DATA_CONS_CLIE_" + clienti.get(0), "N").equalsIgnoreCase("S"); + if (setDataConsClieCustom){ + if (UtilityDate.DaysAfter(dataOrd, dataConsClie) > 0) { + dataInizTrasp = dataConsClie; + } + } else { + String ggCons = UtilityHashMap.getValueIfExists(setup, "GG_CONS_"+codAnag); + sql = "SELECT dbo.RelativeWorkDate(" + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + "," + ggCons + ") "; + Date dataConsNew = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql); + + if (dataConsNew != null) { + if (UtilityDate.DaysAfter(dataOrd, dataConsNew) > 0) { + dataInizTrasp = dataConsNew; + } } } }