diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240704104816.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240704104816.java new file mode 100644 index 0000000000..9d29c64d86 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240704104816.java @@ -0,0 +1,24 @@ +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.MigrationModelInterface; + +public class Migration_20240704104816 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + String value = null; + if (isCustomer(IntegryCustomer.RossoGargano)) + value = "C1050|C1055"; + createSetup("PVM", "PIAN_ACC_ROSSG", "COD_ATIP_SOCIO", value, "Tipologia fornitore di materie prime Socio dell'azienda", false, null, false, false, false, false, false, null, true, null); + } + + @Override + public void down() throws Exception { + + } + +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems_model/business_logic/ProductionBusinessLogic.java b/ems-core/src/main/java/it/integry/ems_model/business_logic/ProductionBusinessLogic.java index b965e527aa..4f89d2c2ba 100644 --- a/ems-core/src/main/java/it/integry/ems_model/business_logic/ProductionBusinessLogic.java +++ b/ems-core/src/main/java/it/integry/ems_model/business_logic/ProductionBusinessLogic.java @@ -1110,9 +1110,16 @@ public class ProductionBusinessLogic { if (checkDepTerzista && isTerzista) { sql = - " SELECT IsNull(cod_mdep, '') as cod_mdep " + " " - + "FROM mtb_depo " - + "WHERE cod_anag = " + UtilityDB.valueToString(codAnag); + "SELECT cod_mdep\n" + + "FROM ( SELECT ISNULL(cod_mdep, '') AS cod_mdep, cod_vdes \n" + + " FROM mtb_depo\n" + + " WHERE cod_anag = "+ UtilityDB.valueToString(codAnag)+"\n" + + " AND (ISNULL(cod_vdes,'') = ISNULL("+ UtilityDB.valueToString(codVdes)+",''))\n" + + " UNION ALL\n" + + " SELECT ISNULL(cod_mdep, '') AS cod_mdep, cod_vdes \n" + + " FROM mtb_depo\n" + + " WHERE cod_anag = "+ UtilityDB.valueToString(codAnag)+" and cod_vdes is NULL ) depos \n" + + " ORDER BY cod_vdes desc "; codMdep = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); } diff --git a/ems-core/src/main/java/it/integry/ems_model/db/ResultSetMapper.java b/ems-core/src/main/java/it/integry/ems_model/db/ResultSetMapper.java index 8a5f7b8d04..9ec60f8413 100644 --- a/ems-core/src/main/java/it/integry/ems_model/db/ResultSetMapper.java +++ b/ems-core/src/main/java/it/integry/ems_model/db/ResultSetMapper.java @@ -41,7 +41,7 @@ public class ResultSetMapper { int columns = md.getColumnCount(); List> list = new ArrayList>(); while (rs.next()) { - HashMap row = new HashMap(columns); + HashMap row = new HashMap<>(columns); for (int i = 1; i <= columns; ++i) { row.put(md.getColumnName(i), rs.getObject(i)); } diff --git a/ems-engine/src/main/java/it/integry/ems/production/dto/CaricoProdottoFinitoDTO.java b/ems-engine/src/main/java/it/integry/ems/production/dto/CaricoProdottoFinitoDTO.java index e9d39516c1..0ec1d06a15 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/dto/CaricoProdottoFinitoDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/production/dto/CaricoProdottoFinitoDTO.java @@ -14,6 +14,7 @@ public class CaricoProdottoFinitoDTO { private String codMdep; private String posizione; private String codJfas; + private String codVdes; private String preparatoDa; private int numEtich; private BigDecimal qtaCnf; @@ -185,4 +186,13 @@ public class CaricoProdottoFinitoDTO { this.accodaAdEsistenti = accodaAdEsistenti; return this; } + + public String getCodVdes() { + return codVdes; + } + + public CaricoProdottoFinitoDTO setCodVdes(String codVdes) { + this.codVdes = codVdes; + return this; + } } diff --git a/ems-engine/src/main/java/it/integry/ems/production/dto/PvmAuthorizationDTO.java b/ems-engine/src/main/java/it/integry/ems/production/dto/PvmAuthorizationDTO.java index 75c0feb4a6..72fa38d232 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/dto/PvmAuthorizationDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/production/dto/PvmAuthorizationDTO.java @@ -5,15 +5,14 @@ import it.integry.ems_model.annotation.SqlField; public class PvmAuthorizationDTO { @SqlField("authorization_name") private String authorizationName; - @SqlField("display_only") - private String displayOnly; + @SqlField("editable") + private String editable; @SqlField("enabled") private String enabled; @SqlField("visible") private String visible; - public String getAuthorizationName() { return authorizationName; } @@ -23,12 +22,12 @@ public class PvmAuthorizationDTO { return this; } - public String getDisplayOnly() { - return displayOnly; + public String getEditable() { + return editable; } - public PvmAuthorizationDTO setDisplayOnly(String displayOnly) { - this.displayOnly = displayOnly; + public PvmAuthorizationDTO setEditable(String editable) { + this.editable = editable; return this; } diff --git a/ems-engine/src/main/java/it/integry/ems/production/dto/ortofrutta/AccettazioneOrtoFruttaDTO.java b/ems-engine/src/main/java/it/integry/ems/production/dto/ortofrutta/AccettazioneOrtoFruttaDTO.java index 5ef6bd7689..b03586402e 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/dto/ortofrutta/AccettazioneOrtoFruttaDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/production/dto/ortofrutta/AccettazioneOrtoFruttaDTO.java @@ -28,27 +28,23 @@ public class AccettazioneOrtoFruttaDTO { private BigDecimal qtaCol; private BigDecimal numCnf; private BigDecimal qtaCnf; - private String codAnagProduttore; private String ragSocProduttore; private String partIvaProduttore; - private String codFiscProduttore; - private String sedeProduttore; - private String cittaProduttore; - private String capProduttore; - private String codAnagDepo; - private String codMdepProd; - private String ragSocDepo; - private String partIvaDepo; - private String codFiscDepo; - private String sedeDepo; - private String cittaDepo; - private String capDepo; + private Object varieta; + private String ragSocOp; + private String partIvaOp; + private String ragSocCoop; + private String partIvaCoop; private Integer numDocProvv; private String serDocProvv; private LocalDate dataDocProvv; private String targa; private String targaRim; private String codVvet; + private String codVdes; + private String codAnag; + private String codMdep; + private String codMdepProd; private BigDecimal prezzoContratto; private BigDecimal NumericTextBox; private BigDecimal prezzoFinale; @@ -69,8 +65,6 @@ public class AccettazioneOrtoFruttaDTO { private Integer numDoc; private String codDtip; private BigDecimal valUnt; - private boolean flagCaricoVerificato = false; - private AccettazioneOrtoFruttaDTO original; @@ -119,6 +113,24 @@ public class AccettazioneOrtoFruttaDTO { return this; } + public LocalDateTime getOraInizPrep() { + return oraInizPrep; + } + + public AccettazioneOrtoFruttaDTO setOraInizPrep(LocalDateTime oraInizPrep) { + this.oraInizPrep = oraInizPrep; + return this; + } + + public String getIdPesata() { + return idPesata; + } + + public AccettazioneOrtoFruttaDTO setIdPesata(String idPesata) { + this.idPesata = idPesata; + return this; + } + public LocalDateTime getDataVers() { return dataVers; } @@ -128,6 +140,15 @@ public class AccettazioneOrtoFruttaDTO { return this; } + public LocalDateTime getDataIns() { + return dataIns; + } + + public AccettazioneOrtoFruttaDTO setDataIns(LocalDateTime dataIns) { + this.dataIns = dataIns; + return this; + } + public LocalDate getDataOrd() { return dataOrd; } @@ -173,6 +194,15 @@ public class AccettazioneOrtoFruttaDTO { return this; } + public String getCodJfas() { + return codJfas; + } + + public AccettazioneOrtoFruttaDTO setCodJfas(String codJfas) { + this.codJfas = codJfas; + return this; + } + public String getDescrizione() { return descrizione; } @@ -227,15 +257,6 @@ public class AccettazioneOrtoFruttaDTO { return this; } - public String getCodAnagProduttore() { - return codAnagProduttore; - } - - public AccettazioneOrtoFruttaDTO setCodAnagProduttore(String codAnagProduttore) { - this.codAnagProduttore = codAnagProduttore; - return this; - } - public String getRagSocProduttore() { return ragSocProduttore; } @@ -254,111 +275,48 @@ public class AccettazioneOrtoFruttaDTO { return this; } - public String getCodFiscProduttore() { - return codFiscProduttore; + public Object getVarieta() { + return varieta; } - public AccettazioneOrtoFruttaDTO setCodFiscProduttore(String codFiscProduttore) { - this.codFiscProduttore = codFiscProduttore; + public AccettazioneOrtoFruttaDTO setVarieta(Object varieta) { + this.varieta = varieta; return this; } - public String getSedeProduttore() { - return sedeProduttore; + public String getRagSocOp() { + return ragSocOp; } - public AccettazioneOrtoFruttaDTO setSedeProduttore(String sedeProduttore) { - this.sedeProduttore = sedeProduttore; + public AccettazioneOrtoFruttaDTO setRagSocOp(String ragSocOp) { + this.ragSocOp = ragSocOp; return this; } - public String getCittaProduttore() { - return cittaProduttore; + public String getPartIvaOp() { + return partIvaOp; } - public AccettazioneOrtoFruttaDTO setCittaProduttore(String cittaProduttore) { - this.cittaProduttore = cittaProduttore; + public AccettazioneOrtoFruttaDTO setPartIvaOp(String partIvaOp) { + this.partIvaOp = partIvaOp; return this; } - public String getCapProduttore() { - return capProduttore; + public String getRagSocCoop() { + return ragSocCoop; } - public AccettazioneOrtoFruttaDTO setCapProduttore(String capProduttore) { - this.capProduttore = capProduttore; + public AccettazioneOrtoFruttaDTO setRagSocCoop(String ragSocCoop) { + this.ragSocCoop = ragSocCoop; return this; } - public String getCodAnagDepo() { - return codAnagDepo; + public String getPartIvaCoop() { + return partIvaCoop; } - public AccettazioneOrtoFruttaDTO setCodAnagDepo(String codAnagDepo) { - this.codAnagDepo = codAnagDepo; - return this; - } - - public String getCodMdepProd() { - return codMdepProd; - } - - public AccettazioneOrtoFruttaDTO setCodMdepProd(String codMdepProd) { - this.codMdepProd = codMdepProd; - return this; - } - - public String getRagSocDepo() { - return ragSocDepo; - } - - public AccettazioneOrtoFruttaDTO setRagSocDepo(String ragSocDepo) { - this.ragSocDepo = ragSocDepo; - return this; - } - - public String getPartIvaDepo() { - return partIvaDepo; - } - - public AccettazioneOrtoFruttaDTO setPartIvaDepo(String partIvaDepo) { - this.partIvaDepo = partIvaDepo; - return this; - } - - public String getCodFiscDepo() { - return codFiscDepo; - } - - public AccettazioneOrtoFruttaDTO setCodFiscDepo(String codFiscDepo) { - this.codFiscDepo = codFiscDepo; - return this; - } - - public String getSedeDepo() { - return sedeDepo; - } - - public AccettazioneOrtoFruttaDTO setSedeDepo(String sedeDepo) { - this.sedeDepo = sedeDepo; - return this; - } - - public String getCittaDepo() { - return cittaDepo; - } - - public AccettazioneOrtoFruttaDTO setCittaDepo(String cittaDepo) { - this.cittaDepo = cittaDepo; - return this; - } - - public String getCapDepo() { - return capDepo; - } - - public AccettazioneOrtoFruttaDTO setCapDepo(String capDepo) { - this.capDepo = capDepo; + public AccettazioneOrtoFruttaDTO setPartIvaCoop(String partIvaCoop) { + this.partIvaCoop = partIvaCoop; return this; } @@ -371,6 +329,15 @@ public class AccettazioneOrtoFruttaDTO { return this; } + public String getSerDocProvv() { + return serDocProvv; + } + + public AccettazioneOrtoFruttaDTO setSerDocProvv(String serDocProvv) { + this.serDocProvv = serDocProvv; + return this; + } + public LocalDate getDataDocProvv() { return dataDocProvv; } @@ -407,6 +374,42 @@ public class AccettazioneOrtoFruttaDTO { return this; } + public String getCodVdes() { + return codVdes; + } + + public AccettazioneOrtoFruttaDTO setCodVdes(String codVdes) { + this.codVdes = codVdes; + return this; + } + + public String getCodAnag() { + return codAnag; + } + + public AccettazioneOrtoFruttaDTO setCodAnag(String codAnag) { + this.codAnag = codAnag; + return this; + } + + public String getCodMdep() { + return codMdep; + } + + public AccettazioneOrtoFruttaDTO setCodMdep(String codMdep) { + this.codMdep = codMdep; + return this; + } + + public String getCodMdepProd() { + return codMdepProd; + } + + public AccettazioneOrtoFruttaDTO setCodMdepProd(String codMdepProd) { + this.codMdepProd = codMdepProd; + return this; + } + public BigDecimal getPrezzoContratto() { return prezzoContratto; } @@ -542,7 +545,6 @@ public class AccettazioneOrtoFruttaDTO { return this; } - public String getCodDtipProvv() { return codDtipProvv; } @@ -588,60 +590,6 @@ public class AccettazioneOrtoFruttaDTO { return this; } - public String getCodJfas() { - return codJfas; - } - - public AccettazioneOrtoFruttaDTO setCodJfas(String codJfas) { - this.codJfas = codJfas; - return this; - } - - public String getSerDocProvv() { - return serDocProvv; - } - - public AccettazioneOrtoFruttaDTO setSerDocProvv(String serDocProvv) { - this.serDocProvv = serDocProvv; - return this; - } - - public LocalDateTime getOraInizPrep() { - return oraInizPrep; - } - - public AccettazioneOrtoFruttaDTO setOraInizPrep(LocalDateTime oraInizPrep) { - this.oraInizPrep = oraInizPrep; - return this; - } - - public String getIdPesata() { - return idPesata; - } - - public AccettazioneOrtoFruttaDTO setIdPesata(String idPesata) { - this.idPesata = idPesata; - return this; - } - - public LocalDateTime getDataIns() { - return dataIns; - } - - public AccettazioneOrtoFruttaDTO setDataIns(LocalDateTime dataIns) { - this.dataIns = dataIns; - return this; - } - - public boolean getFlagCaricoVerificato() { - return flagCaricoVerificato; - } - - public AccettazioneOrtoFruttaDTO setFlagCaricoVerificato(boolean flagCaricoVerificato) { - this.flagCaricoVerificato = flagCaricoVerificato; - return this; - } - public AccettazioneOrtoFruttaDTO getOriginal() { return original; } @@ -650,4 +598,25 @@ public class AccettazioneOrtoFruttaDTO { this.original = original; return this; } + + public boolean isCertificatoEdited() { + if (this.original == null ) + return false; + + return ! this.original.getCodAnag().equalsIgnoreCase(this.codAnag) + || ! this.original.getCodDtip().equalsIgnoreCase(this.codDtip); + + } + + public boolean isDDTEdited() { + if (this.original == null ) + return false; + + return ! this.original.getCodAnag().equalsIgnoreCase(this.codAnag) + || ! this.original.getCodDtipProvv().equalsIgnoreCase(this.codDtipProvv) + || ! (this.original.getNumDocProvv().equals(this.numDocProvv)) + || ! this.original.getSerDocProvv().equalsIgnoreCase(this.serDocProvv) + || ! (this.original.getDataDocProvv().isEqual(this.dataDocProvv)); + + } } diff --git a/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java b/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java index a7f6acec63..1b54ea733c 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java +++ b/ems-engine/src/main/java/it/integry/ems/production/service/MesProductionServiceV2.java @@ -971,6 +971,7 @@ public class MesProductionServiceV2 { .setSegno(1) .setCodMdep(UtilityString.isNull(dto.getCodMdep(), ordineLav.getCodMdep())) .setCodJfas(UtilityString.isNull(dto.getCodJfas(), ordineLav.getCodJfas())) + .setCodVdes(UtilityString.isNull(dto.getCodVdes(), ordineLav.getCodVdes())) .setCodAnag(ordineLav.getCodAnag()) .setPosizione(dto.getCodJfas()) .setDataOrd(dto.getDataOrd()) diff --git a/ems-engine/src/main/java/it/integry/ems/production/service/OrtoFruttaProductionService.java b/ems-engine/src/main/java/it/integry/ems/production/service/OrtoFruttaProductionService.java index 31bcb30558..105788eac0 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/service/OrtoFruttaProductionService.java +++ b/ems-engine/src/main/java/it/integry/ems/production/service/OrtoFruttaProductionService.java @@ -30,6 +30,7 @@ import org.springframework.stereotype.Service; import java.io.IOException; import java.math.BigDecimal; +import java.math.RoundingMode; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -104,7 +105,7 @@ public class OrtoFruttaProductionService { "FROM mtb_colt\n" + "WHERE data_doc_provv = " + UtilityDB.valueDateToString(UtilityLocalDate.localDateToDate(dto.getDataDocProvv()), CommonConstants.DATE_FORMAT_YMD) + "\n" + " AND num_doc_provv = " + UtilityDB.valueToString(dto.getNumDocProvv()) + "\n" + - " AND cod_anag = " + UtilityDB.valueToString(dto.getCodAnagProduttore()) + "\n" + + " AND cod_anag = " + UtilityDB.valueToString(dto.getCodAnag()) + "\n" + "AND cod_dtip_provv = " + UtilityDB.valueToString(dto.getCodDtipProvv()) + "\n" + "and ser_doc_provv = " + UtilityDB.valueToString(dto.getSerDocProvv()) + "\n"; MtbColt mtbcolt = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColt.class); @@ -154,12 +155,24 @@ public class OrtoFruttaProductionService { "SER_DOC_CAR"); + if (dto.getOriginal() != null && dto.isCertificatoEdited()) { + DtbDoct oldDoc = new DtbDoct(); + oldDoc + .setCodAnag(dto.getOriginal().getCodAnag()) + .setCodDtip(dto.getOriginal().getCodDtip()) + .setDataDoc(UtilityLocalDate.localDateToDate(dto.getOriginal().getDataDoc())) + .setSerDoc(serDocLavCar) + .setNumDoc(dto.getOriginal().getNumDoc()) + .setOperation(OperationType.DELETE); + entityProcessor.processEntity(oldDoc, true, multiDBTransactionManager); + } + DtbDoct docLav = new DtbDoct(); docLav .setCodDtip(UtilityString.isNull(dto.getCodDtip(), codDtipLavCar)) .setDataDoc(UtilityLocalDate.localDateToDate(dto.getDataDoc())) .setNumDoc(dto.getNumDoc()) - .setCodAnag(dto.getCodAnagProduttore()) + .setCodAnag(dto.getCodAnag()) .setSerDoc(serDocLavCar) .setTarga(dto.getTarga()) .setCodMdep(dto.getCodMdepProd()) @@ -272,7 +285,7 @@ public class OrtoFruttaProductionService { " AND stb_gest_setup.key_section = 'POSIZIONE_DEFAULT_ARTICOLO'\n"; String posizioneDef = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), queryPos); MtbDepoPosizioni posizione = new MtbDepoPosizioni(); - posizione.setCodMdep(dto.getCodMdepProd()) + posizione.setCodMdep(collo.getCodMdep()) .setPosizione(posizioneDef) .setOperation(OperationType.SELECT_OBJECT); entityProcessor.processEntity(posizione, multiDBTransactionManager); @@ -314,7 +327,7 @@ public class OrtoFruttaProductionService { //alla creazione della bolla (DDT) creare documento di acquisto e scarico di materiale alla pianta if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol()) && !UtilityBigDecimal.isNullOrZero(dto.getPrezzoFinale())) { - DtbOrdr ordAcq = getOrdineAcquistoCollegato(dto.getGestione(), UtilityLocalDate.localDateToDate(dto.getDataOrd()), dto.getNumOrd()); + DtbOrdt ordAcq = getOrdineAcquistoCollegato(dto.getGestione(), UtilityLocalDate.localDateToDate(dto.getDataOrd()), dto.getNumOrd()); DtbDoct ddt = generaDdtAcq(dto, ordAcq, activityId); DtbDoct slav = generaScaricoLav(dto, ordAcq, activityId); } @@ -322,7 +335,7 @@ public class OrtoFruttaProductionService { return collo; } - private DtbOrdr getOrdineAcquistoCollegato(String gestione, Date dataOrd, Integer numOrd) throws Exception { + private DtbOrdt getOrdineAcquistoCollegato(String gestione, Date dataOrd, Integer numOrd) throws Exception { String sql = "WITH ordrLav AS (SELECT dtb_ordr.data_ord,\n" + " dtb_ordr.gestione,\n" + " dtb_ordr.num_ord,\n" + @@ -337,7 +350,7 @@ public class OrtoFruttaProductionService { " WHERE dtb_ordr.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + "\n" + " AND dtb_ordr.num_ord = " + UtilityDB.valueToString(numOrd) + "\n" + " AND dtb_ordr.gestione = " + UtilityDB.valueToString(gestione) + ")\n" + - "SELECT dtb_ordr.*\n" + + "SELECT dtb_ordt.cod_vdes,dtb_ordr.*\n" + "FROM dtb_ordr\n" + " INNER JOIN dtb_ordt ON dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" + " dtb_ordt.gestione = dtb_ordr.gestione AND\n" + @@ -345,11 +358,19 @@ public class OrtoFruttaProductionService { " INNER JOIN ordrLav ON dtb_ordr.gestione = 'A' AND dtb_ordr.cod_mart = ordrLav.cod_mart AND\n" + " ordrLav.partita_mag = dtb_ordr.partita_mag AND dtb_ordt.cod_anag = ordrLav.cod_anag\n" + "WHERE dtb_ordt.gestione = 'A'"; - - return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class); + DtbOrdr row = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class); + DtbOrdt head = new DtbOrdt(); + head + .setGestione(row.getGestione()) + .setDataOrd(row.getDataOrd()) + .setNumOrd(row.getNumOrd()) + .setOperation(OperationType.SELECT_OBJECT); + entityProcessor.processEntity(head, true, multiDBTransactionManager); + head.getDtbOrdr().add(row); + return head; } - private DtbDoct generaScaricoLav(AccettazioneOrtoFruttaDTO dto, DtbOrdr ordAcq, String activityId) throws Exception { + private DtbDoct generaScaricoLav(AccettazioneOrtoFruttaDTO dto, DtbOrdt ordAcq, String activityId) throws Exception { Date dataOrd = UtilityLocalDate.localDateToDate(dto.getDataOrd()); String codDtip = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "CRUSCOTTO_PRODUZIONE", @@ -362,18 +383,27 @@ public class OrtoFruttaProductionService { String sql = "SELECT riga_ord from dtb_ordr where gestione = " + UtilityDB.valueToString(dto.getGestione()) + " " + " and data_ord =" + UtilityDB.valueToString(dataOrd) + " " + "AND num_ord = " + UtilityDB.valueToString(dto.getNumOrd()) + " " + - "AND cod_mart = " + UtilityDB.valueToString(ordAcq.getCodMart()) + " " + - "AND partita_mag = " + UtilityDB.valueToString(ordAcq.getPartitaMag()); + "AND cod_mart = " + UtilityDB.valueToString(ordAcq.getDtbOrdr().get(0).getCodMart()) + " " + + "AND partita_mag = " + UtilityDB.valueToString(ordAcq.getDtbOrdr().get(0).getPartitaMag()); Integer rigaOrd = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql); - DtbDoct ddt = new DtbDoct(); - ddt.setOperation(OperationType.INSERT); - ddt + sql = Query.format("SELECT * from dtb_doct where cod_anag = %s AND cod_dtip = %s and activity_id = %s ", dto.getCodAnag(), codDtip, activityId); + PreparedStatement ps = multiDBTransactionManager.getPrimaryConnection().prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); + DtbDoct slav = UtilityDB.executePreparedStatementDTOOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), ps, DtbDoct.class); + + if (slav != null) { + slav.setOperation(OperationType.DELETE); + entityProcessor.processEntity(slav, true, multiDBTransactionManager); + } + + slav = new DtbDoct(); + slav.setOperation(OperationType.INSERT); + slav .setActivityId(activityId) .setCodDtip(codDtip) .setDataDoc(UtilityLocalDate.localDateToDate(dto.getDataDocProvv())) .setNumDoc(dto.getNumDocProvv()) - .setCodAnag(dto.getCodAnagProduttore()) + .setCodAnag(dto.getCodAnag()) .setSerDoc(serDoc) .setDataOrd(dataOrd) .setNumOrd(dto.getNumOrd()) @@ -385,8 +415,8 @@ public class OrtoFruttaProductionService { DtbDocr row = new DtbDocr(); row - .setCodMart(ordAcq.getCodMart()) - .setPartitaMag(ordAcq.getPartitaMag()) + .setCodMart(ordAcq.getDtbOrdr().get(0).getCodMart()) + .setPartitaMag(ordAcq.getDtbOrdr().get(0).getPartitaMag()) .setDataOrd(UtilityLocalDate.localDateToDate(dto.getDataOrd())) .setNumOrd(dto.getNumOrd()) .setRigaOrd(rigaOrd) @@ -394,22 +424,35 @@ public class OrtoFruttaProductionService { .setValUnt(dto.getPrezzoFinale()) .setOperation(OperationType.INSERT); - ddt.getDtbDocr().add(row); - entityProcessor.processEntity(ddt, true, multiDBTransactionManager); - UtilityEntity.throwEntityException(ddt); - return ddt; + slav.getDtbDocr().add(row); + entityProcessor.processEntity(slav, true, multiDBTransactionManager); + UtilityEntity.throwEntityException(slav); + return slav; } - private DtbDoct generaDdtAcq(AccettazioneOrtoFruttaDTO dto, DtbOrdr ordAcq, String activityId) throws Exception { + private DtbDoct generaDdtAcq(AccettazioneOrtoFruttaDTO dto, DtbOrdt ordAcq, String activityId) throws Exception { DtbDoct ddt; + + if (dto.getOriginal() != null && dto.isDDTEdited()) { + DtbDoct oldDoc = new DtbDoct(); + oldDoc + .setCodAnag(dto.getOriginal().getCodAnag()) + .setCodDtip(dto.getOriginal().getCodDtipProvv()) + .setDataDoc(UtilityLocalDate.localDateToDate(dto.getOriginal().getDataDocProvv())) + .setSerDoc(dto.getOriginal().getSerDocProvv()) + .setNumDoc(dto.getOriginal().getNumDocProvv()) + .setOperation(OperationType.DELETE); + entityProcessor.processEntity(oldDoc, true, multiDBTransactionManager); + } + String sql = Query.format("SELECT * from dtb_doct where data_doc = %s and num_doc = %s AND ser_doc = %s and cod_anag = %s AND cod_dtip = %s and activity_id = %s ", - dto.getDataDocProvv(), dto.getNumDocProvv(), dto.getSerDocProvv(), dto.getCodAnagProduttore(), dto.getCodDtipProvv(), activityId); + dto.getDataDocProvv(), dto.getNumDocProvv(), dto.getSerDocProvv(), dto.getCodAnag(), dto.getCodDtipProvv(), activityId); PreparedStatement ps = multiDBTransactionManager.getPrimaryConnection().prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); - ddt = UtilityDB.executePreparedStatementDTOOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(),ps,DtbDoct.class); + ddt = UtilityDB.executePreparedStatementDTOOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(), ps, DtbDoct.class); - if (ddt != null){ + if (ddt != null) { DtbDocr rowsDocLav = new DtbDocr(); rowsDocLav.deleteAllEntities(multiDBTransactionManager.getPrimaryConnection(), ddt); ddt.setOperation(OperationType.UPDATE); @@ -423,27 +466,34 @@ public class OrtoFruttaProductionService { .setCodDtip(dto.getCodDtipProvv()) .setDataDoc(UtilityLocalDate.localDateToDate(dto.getDataDocProvv())) .setNumDoc(dto.getNumDocProvv()) - .setCodAnag(dto.getCodAnagProduttore()) + .setCodAnag(dto.getCodAnag()) + .setCodVdes(ordAcq.getCodVdes()) .setSerDoc(dto.getSerDocProvv()) .setDataOrd(ordAcq.getDataOrd()) .setNumOrd(ordAcq.getNumOrd()) .setCodMdep(ordAcq.getCodMdep()) + .setPesoNettoKg(dto.getPesoNettoCamion()) + .setAnnotazioni(String.format("CERT N. %d", dto.getNumDoc())) + ; DtbDocr rowPlus = new DtbDocr(); rowPlus - .setCodMart(ordAcq.getCodMart()) - .setPartitaMag(ordAcq.getPartitaMag()) + .setCodMart(ordAcq.getDtbOrdr().get(0).getCodMart()) + .setPartitaMag(ordAcq.getDtbOrdr().get(0).getPartitaMag()) .setDataOrd(ordAcq.getDataOrd()) .setNumOrd(ordAcq.getNumOrd()) - .setRigaOrd(ordAcq.getRigaOrd()) + .setRigaOrd(ordAcq.getDtbOrdr().get(0).getRigaOrd()) .setQtaDoc(dto.getQtaCol()) + .setNumCnf(dto.getNumCnf()) + .setQtaCnf(dto.getQtaCol().divide(dto.getNumCnf(), 3, RoundingMode.HALF_UP)) + .setPesoLordo(dto.getPesoLordoPedane()) .setValUnt(dto.getPrezzoFinale()) .setSconto8(dto.getTassoRiduzione()) .setOperation(OperationType.INSERT); if (!UtilityBigDecimal.isNullOrZero(dto.getTassoRiduzione())) - rowPlus.setNote("SCARTO: "+dto.getTassoRiduzione()+"%"); + rowPlus.setNote("SCARTO: " + dto.getTassoRiduzione() + "%"); ddt.getDtbDocr().add(rowPlus); entityProcessor.processEntity(ddt, true, multiDBTransactionManager); UtilityEntity.throwEntityException(ddt); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java index cea619d4ef..95b67fba46 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/pvmRetail/service/PvmService.java @@ -3769,7 +3769,7 @@ public class PvmService { public List getAuthorizations(String section) throws Exception { String username = requestDataDTO.getUsername(); - String sql = "SELECT dw_colname AS authorization_name, display_only, enabled, visible\n" + + String sql = "SELECT dw_colname AS authorization_name, display_only as editable, enabled, visible\n" + "FROM stb_edit_limit\n" + "WHERE gest_name = 'PVM'\n" + " AND dw_name = "+UtilityDB.valueToString(section)+"\n" +