From c6ee4364a2653eefd9ee73d26c8267c206ab9123 Mon Sep 17 00:00:00 2001 From: MarcoE Date: Wed, 25 Sep 2024 11:31:12 +0200 Subject: [PATCH] [Ordify] Inserito calcolo provigione in esportazione ordini --- .../model/Migration_20240925105952.java | 31 +++++++++++++++ .../Import/service/OrdiniImportService.java | 26 +------------ .../order/ordify/service/OrdifyService.java | 39 ++++++++++++------- 3 files changed, 56 insertions(+), 40 deletions(-) create mode 100644 ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240925105952.java diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240925105952.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240925105952.java new file mode 100644 index 0000000000..57f020c8cd --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240925105952.java @@ -0,0 +1,31 @@ +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_20240925105952 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + String value = null; + + if (isCustomer(IntegryCustomer.SaporiVeri)){ + value = "0.2"; + } + + createSetup("ORDIFY", "SETUP", "PERC_PROVVIGIONE", value, +"Percentuale di provvigione da applicare per ogni punto percentuale non applicato", 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/Import/service/OrdiniImportService.java b/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java index 46ffa4a300..9ba2103c72 100644 --- a/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java +++ b/ems-engine/src/main/java/it/integry/ems/order/Import/service/OrdiniImportService.java @@ -247,31 +247,7 @@ public class OrdiniImportService { } List dtbOrdtList = new ArrayList<>(dtbOrdtMap.values()); - - List entityBases = new ArrayList<>(); - - boolean isDeadLock; - - do { - try { - entityBases = entityProcessor.processEntityList(dtbOrdtList, multiDBTransactionManager, true); - UtilityEntity.throwEntitiesException(entityBases); - } catch (Exception e) { - if (e instanceof EntityException) { - if (((EntityException) e).getSqlErrorCode() != null) { - if (((EntityException) e).getSqlErrorCode() == 1205) { - //deadlock - isDeadLock = true; - continue; - } - } - } - - throw new Exception(e); - } - - isDeadLock = false; - } while (isDeadLock); + List entityBases = entityProcessor.processEntityList(dtbOrdtList, multiDBTransactionManager, true); String emailDestination = setup.get("EMAIL_FOR_LOG"); if (!UtilityString.isNullOrEmpty(emailDestination)) { diff --git a/ems-engine/src/main/java/it/integry/ems/order/ordify/service/OrdifyService.java b/ems-engine/src/main/java/it/integry/ems/order/ordify/service/OrdifyService.java index 7515dee991..9cf0cae9dc 100644 --- a/ems-engine/src/main/java/it/integry/ems/order/ordify/service/OrdifyService.java +++ b/ems-engine/src/main/java/it/integry/ems/order/ordify/service/OrdifyService.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.*; import static it.integry.ems.order.dto.UserGroupENUM.*; @@ -176,22 +177,30 @@ public class OrdifyService { throw new Exception("Codice articolo " + orderRow.getCodMart() + " inesistente. Ordine del cliente: " + ragSoc); } - WdtbOrdr wdtbOrdr = new WdtbOrdr(); + BigDecimal sconto = orderRow.getSconto5().add(orderRow.getSconto6()); + BigDecimal percProv = setupGest.getSetupBigDecimal("ORDIFY", "SETUP", "PERC_PROVVIGIONE"); + BigDecimal maxSconto = setupGest.getSetupBigDecimal("ORDIFY", "SETUP", "MAX_SCONTO"); + + BigDecimal prov = percProv == null || percProv.equals(BigDecimal.ZERO) ? null : maxSconto.subtract(sconto).multiply(percProv); + + WdtbOrdr wdtbOrdr = new WdtbOrdr() + .setCodMart(orderRow.getCodMart()) + .setUntOrd(orderRow.getUntOrd()) + .setQtaOrd(orderRow.getQtaOrd()) + .setSconto5(orderRow.getSconto5()) + .setSconto6(orderRow.getSconto6()) + .setSconto7(orderRow.getSconto7()) + .setSconto8(orderRow.getSconto8()) + .setPercProv(prov) + .setImportoRiga(orderRow.getImporto()) + .setValUnt(orderRow.getValUnt()) + .setNote(orderRow.getNote()) + .setQtaOmg(orderRow.getQtaOmg()) + .setQtaReso(orderRow.getQtaReso()) + .setCodPromo(orderRow.getCodPromo()) + .setDataCons(dataCons); + wdtbOrdr.setOperation(OperationType.INSERT); - wdtbOrdr.setCodMart(orderRow.getCodMart()); - wdtbOrdr.setUntOrd(orderRow.getUntOrd()); - wdtbOrdr.setQtaOrd(orderRow.getQtaOrd()); - wdtbOrdr.setSconto5(orderRow.getSconto5()); - wdtbOrdr.setSconto6(orderRow.getSconto6()); - wdtbOrdr.setSconto7(orderRow.getSconto7()); - wdtbOrdr.setSconto8(orderRow.getSconto8()); - wdtbOrdr.setImportoRiga(orderRow.getImporto()); - wdtbOrdr.setValUnt(orderRow.getValUnt()); - wdtbOrdr.setNote(orderRow.getNote()); - wdtbOrdr.setQtaOmg(orderRow.getQtaOmg()); - wdtbOrdr.setQtaReso(orderRow.getQtaReso()); - wdtbOrdr.setCodPromo(orderRow.getCodPromo()); - wdtbOrdr.setDataCons(dataCons); orderRowList.add(wdtbOrdr); }