diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250113100955.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250113100955.java
new file mode 100644
index 0000000000..df42fde3f1
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250113100955.java
@@ -0,0 +1,24 @@
+package it.integry.ems.migration.model;
+
+import it.integry.ems.migration._base.BaseMigration;
+import it.integry.ems.migration._base.MigrationModelInterface;
+
+public class Migration_20250113100955 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ createSetupQuery("COD_VLIS", "COD_VLIS", "SELECT COD_VLIS FROM VTB_LIST WHERE FLAG_ATTIVO = 'S'");
+ createSetup("DTB_DOCT", "FATTURA_PEDANE", "LISTINO", null,
+"codice listino da assegnare al documento di consegna\resto delle pedane", false, "COD_VLIS", false, false,
+false, false, false, null, false, "SELECT COD_VLIS FROM VTB_LIST WHERE FLAG_ATTIVO = 'S'");
+ }
+
+ @Override
+ public void down() throws Exception {
+
+ }
+
+}
diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250113112138.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250113112138.java
new file mode 100644
index 0000000000..417de58ca0
--- /dev/null
+++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250113112138.java
@@ -0,0 +1,81 @@
+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;
+import it.integry.ems.rules.businessLogic.enums.TipoEmissione;
+import it.integry.ems_model.entity.DtbTipi;
+import it.integry.ems_model.types.OperationType;
+
+public class Migration_20250113112138 extends BaseMigration implements MigrationModelInterface {
+
+ @Override
+ public void up() throws Exception {
+ if (isHistoryDB())
+ return;
+
+ if (!isCustomer(IntegryCustomer.RossoGargano)) return;
+
+ DtbTipi dtbTipi = new DtbTipi()
+ .setCodDtip("DDTP+")
+ .setDescrizione("Documento di consegna Pedane")
+ .setSegnoQtaScar(1)
+ .setSegnoValScar(1)
+ .setSegnoQtaCar(0)
+ .setSegnoValCar(0)
+ .setTipoEmissione(TipoEmissione.DIRETTA)
+ .setTipoNumeraz(DtbTipi.TipoNumerazione.AUTOMATICA)
+ .setCodIreg("DDT")
+ .setNumIreg(1)
+ .setSerie("P")
+ .setTipoAnag("C")
+ .setPrevistaFat("S")
+ .setGestione("V")
+ .setAggiornaList("N")
+ .setFlagContAnalit("S")
+ .setFlagAnalisiCostiCom("S")
+ .setFlagGiornaleMag("S")
+ .setFlagPrzIva("N")
+ .setFlagVisualPrz("S")
+ .setFlagInclStat("S")
+ .setFlagDocTd("N")
+ .setFlagCalcPesoIntra("N");
+ dtbTipi.setOperation(OperationType.INSERT);
+ dtbTipi.manageWithParentConnection(advancedDataSource.getConnection());
+
+ dtbTipi = new DtbTipi()
+ .setCodDtip("DDTP-")
+ .setDescrizione("Documento di reso Pedane")
+ .setSegnoQtaScar(-1)
+ .setSegnoValScar(-1)
+ .setSegnoQtaCar(0)
+ .setSegnoValCar(0)
+ .setTipoEmissione(TipoEmissione.DIRETTA)
+ .setTipoNumeraz(DtbTipi.TipoNumerazione.AUTOMATICA)
+ .setCodIreg("DDT")
+ .setNumIreg(1)
+ .setSerie("P")
+ .setTipoAnag("C")
+ .setPrevistaFat("S")
+ .setGestione("V")
+ .setAggiornaList("N")
+ .setFlagContAnalit("S")
+ .setFlagAnalisiCostiCom("S")
+ .setFlagGiornaleMag("S")
+ .setFlagPrzIva("N")
+ .setFlagVisualPrz("S")
+ .setFlagInclStat("S")
+ .setFlagDocTd("N")
+ .setFlagCalcPesoIntra("N");
+ dtbTipi.setOperation(OperationType.INSERT);
+ dtbTipi.manageWithParentConnection(advancedDataSource.getConnection());
+
+ updateSetupValue("DTB_DOCT", "FATTURA_PEDANE", "TIPO_DOC_CONS", "DDTP+");
+ updateSetupValue("DTB_DOCT", "FATTURA_PEDANE", "TIPO_DOC_RESI", "DDTP-");
+
+ }
+
+ @Override
+ public void down() throws Exception {
+ }
+}
\ No newline at end of file
diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java b/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java
index df6b317d3e..5967330d46 100644
--- a/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java
+++ b/ems-core/src/main/java/it/integry/ems_model/entity/DtbTipi.java
@@ -99,7 +99,7 @@ public class DtbTipi extends EntityBase {
@SqlField(value = "prevista_fat", maxLength = 1, nullable = false)
private String previstaFat;
- @SqlField(value = "aggiorna_list", maxLength = 1, nullable = false)
+ @SqlField(value = "aggiorna_list", maxLength = 1, nullable = false, defaultObjectValue = "N")
private String aggiornaList;
@SqlField(value = "flag_cont_analit", maxLength = 1, nullable = false)
@@ -230,154 +230,186 @@ public class DtbTipi extends EntityBase {
return codDtip;
}
- public void setCodDtip(String codDtip) {
+ public DtbTipi setCodDtip(String codDtip) {
this.codDtip = codDtip;
+ return this;
}
public String getDescrizione() {
return descrizione;
}
- public void setDescrizione(String descrizione) {
+ public DtbTipi setDescrizione(String descrizione) {
this.descrizione = descrizione;
+ return this;
}
public String getGestione() {
return gestione;
}
- public void setGestione(String gestione) {
+ public DtbTipi setGestione(String gestione) {
this.gestione = gestione;
+ return this;
}
public String getTipoAnag() {
return tipoAnag;
}
- public void setTipoAnag(String tipoAnag) {
+ public DtbTipi setTipoAnag(String tipoAnag) {
this.tipoAnag = tipoAnag;
+ return this;
}
public String getModStamp() {
return modStamp;
}
- public void setModStamp(String modStamp) {
+ public DtbTipi setModStamp(String modStamp) {
this.modStamp = modStamp;
+ return this;
}
public String getDesSuMod() {
return desSuMod;
}
-
- public void setDesSuMod(String desSuMod) {
+ public DtbTipi setDesSuMod(String desSuMod) {
this.desSuMod = desSuMod;
+ return this;
}
public String getDareAvere() {
return dareAvere;
}
- public void setDareAvere(String dareAvere) {
+ public DtbTipi setDareAvere(String dareAvere) {
this.dareAvere = dareAvere;
+ return this;
}
public Integer getNumIreg() {
return numIreg;
}
- public void setNumIreg(Integer numIreg) {
+ public DtbTipi setNumIreg(Integer numIreg) {
this.numIreg = numIreg;
+ return this;
}
public String getTipoNumeraz() {
return tipoNumeraz;
}
- public void setTipoNumeraz(String tipoNumeraz) {
+ public DtbTipi setTipoNumeraz(String tipoNumeraz) {
this.tipoNumeraz = tipoNumeraz;
+ return this;
+ }
+
+ public DtbTipi setTipoNumeraz(TipoNumerazione tipoNumerazione ) {
+ this.tipoNumeraz = tipoNumerazione.toString();
+ return this;
+ }
+
+ @JsonIgnore
+ public TipoNumerazione getTipoNumerazEnum() {
+ return UtilityString.isNullOrEmpty(tipoNumeraz) ? null : TipoNumerazione.fromValue(getTipoNumeraz());
}
public String getTipoRiep() {
return tipoRiep;
}
- public void setTipoRiep(String tipoRiep) {
+ public DtbTipi setTipoRiep(String tipoRiep) {
this.tipoRiep = tipoRiep;
+ return this;
}
public String getCausaleTrasp() {
return causaleTrasp;
}
- public void setCausaleTrasp(String causaleTrasp) {
+ public DtbTipi setCausaleTrasp(String causaleTrasp) {
this.causaleTrasp = causaleTrasp;
+ return this;
}
public String getCodCcau() {
return codCcau;
}
- public void setCodCcau(String codCcau) {
+ public DtbTipi setCodCcau(String codCcau) {
this.codCcau = codCcau;
+ return this;
}
public String getCodCcauAnt() {
return codCcauAnt;
}
- public void setCodCcauAnt(String codCcauAnt) {
+ public DtbTipi setCodCcauAnt(String codCcauAnt) {
this.codCcauAnt = codCcauAnt;
+ return this;
}
public String getCodCconAnt() {
return codCconAnt;
}
- public void setCodCconAnt(String codCconAnt) {
+ public DtbTipi setCodCconAnt(String codCconAnt) {
this.codCconAnt = codCconAnt;
+ return this;
}
public String getCodCconCassa() {
return codCconCassa;
}
- public void setCodCconCassa(String codCconCassa) {
+ public DtbTipi setCodCconCassa(String codCconCassa) {
this.codCconCassa = codCconCassa;
+ return this;
}
public String getCodIreg() {
return codIreg;
}
- public void setCodIreg(String codIreg) {
+ public DtbTipi setCodIreg(String codIreg) {
this.codIreg = codIreg;
+ return this;
}
public String getContropDefault() {
return contropDefault;
}
- public void setContropDefault(String contropDefault) {
+ public DtbTipi setContropDefault(String contropDefault) {
this.contropDefault = contropDefault;
+ return this;
}
public String getAspettoBeni() {
return aspettoBeni;
}
- public void setAspettoBeni(String aspettoBeni) {
+ public DtbTipi setAspettoBeni(String aspettoBeni) {
this.aspettoBeni = aspettoBeni;
+ return this;
}
public String getTipoEmissione() {
return tipoEmissione;
}
- public void setTipoEmissione(String tipoEmissione) {
+ public DtbTipi setTipoEmissione(String tipoEmissione) {
this.tipoEmissione = tipoEmissione;
+ return this;
}
+ public DtbTipi setTipoEmissione(TipoEmissione tipoEmissione ) {
+ this.tipoEmissione = tipoEmissione.toString();
+ return this;
+ }
@JsonIgnore
public TipoEmissione getTipoEmissioneEnum() {
@@ -388,279 +420,306 @@ public class DtbTipi extends EntityBase {
return segnoQtaCar;
}
- public void setSegnoQtaCar(Integer segnoQtaCar) {
+ public DtbTipi setSegnoQtaCar(Integer segnoQtaCar) {
this.segnoQtaCar = segnoQtaCar;
+ return this;
}
public Integer getSegnoValCar() {
return segnoValCar;
}
- public void setSegnoValCar(Integer segnoValCar) {
+ public DtbTipi setSegnoValCar(Integer segnoValCar) {
this.segnoValCar = segnoValCar;
+ return this;
}
public Integer getSegnoQtaScar() {
return segnoQtaScar;
}
- public void setSegnoQtaScar(Integer segnoQtaScar) {
+ public DtbTipi setSegnoQtaScar(Integer segnoQtaScar) {
this.segnoQtaScar = segnoQtaScar;
+ return this;
}
public Integer getSegnoValScar() {
return segnoValScar;
}
- public void setSegnoValScar(Integer segnoValScar) {
+ public DtbTipi setSegnoValScar(Integer segnoValScar) {
this.segnoValScar = segnoValScar;
+ return this;
}
public String getPrevistaFat() {
return previstaFat;
}
- public void setPrevistaFat(String previstaFat) {
+ public DtbTipi setPrevistaFat(String previstaFat) {
this.previstaFat = previstaFat;
+ return this;
}
public String getAggiornaList() {
return aggiornaList;
}
- public void setAggiornaList(String aggiornaList) {
+ public DtbTipi setAggiornaList(String aggiornaList) {
this.aggiornaList = aggiornaList;
+ return this;
}
public String getFlagContAnalit() {
return flagContAnalit;
}
- public void setFlagContAnalit(String flagContAnalit) {
+ public DtbTipi setFlagContAnalit(String flagContAnalit) {
this.flagContAnalit = flagContAnalit;
+ return this;
}
public String getFlagAnalisiCostiCom() {
return flagAnalisiCostiCom;
}
- public void setFlagAnalisiCostiCom(String flagAnalisiCostiCom) {
+ public DtbTipi setFlagAnalisiCostiCom(String flagAnalisiCostiCom) {
this.flagAnalisiCostiCom = flagAnalisiCostiCom;
+ return this;
}
public String getFlagGiornaleMag() {
return flagGiornaleMag;
}
- public void setFlagGiornaleMag(String flagGiornaleMag) {
+ public DtbTipi setFlagGiornaleMag(String flagGiornaleMag) {
this.flagGiornaleMag = flagGiornaleMag;
+ return this;
}
public String getFlagPrzIva() {
return flagPrzIva;
}
- public void setFlagPrzIva(String flagPrzIva) {
+ public DtbTipi setFlagPrzIva(String flagPrzIva) {
this.flagPrzIva = flagPrzIva;
+ return this;
}
public String getFlagVisualPrz() {
return flagVisualPrz;
}
- public void setFlagVisualPrz(String flagVisualPrz) {
+ public DtbTipi setFlagVisualPrz(String flagVisualPrz) {
this.flagVisualPrz = flagVisualPrz;
+ return this;
}
public String getFlagInclStat() {
return flagInclStat;
}
- public void setFlagInclStat(String flagInclStat) {
+ public DtbTipi setFlagInclStat(String flagInclStat) {
this.flagInclStat = flagInclStat;
+ return this;
}
public String getFlagTipoReso() {
return flagTipoReso;
}
- public void setFlagTipoReso(String flagTipoReso) {
+ public DtbTipi setFlagTipoReso(String flagTipoReso) {
this.flagTipoReso = flagTipoReso;
+ return this;
}
public String getFlagSfrido() {
return flagSfrido;
}
- public void setFlagSfrido(String flagSfrido) {
+ public DtbTipi setFlagSfrido(String flagSfrido) {
this.flagSfrido = flagSfrido;
+ return this;
}
public String getFlagDocTd() {
return flagDocTd;
}
- public void setFlagDocTd(String flagDocTd) {
+ public DtbTipi setFlagDocTd(String flagDocTd) {
this.flagDocTd = flagDocTd;
+ return this;
}
public String getFlagCosto() {
return flagCosto;
}
- public void setFlagCosto(String flagCosto) {
+ public DtbTipi setFlagCosto(String flagCosto) {
this.flagCosto = flagCosto;
+ return this;
}
public String getFlagChkArtNeg() {
return flagChkArtNeg;
}
- public void setFlagChkArtNeg(String flagChkArtNeg) {
+ public DtbTipi setFlagChkArtNeg(String flagChkArtNeg) {
this.flagChkArtNeg = flagChkArtNeg;
+ return this;
}
- /*public AccontoDa getFlagAcconto() {
- return flagAcconto;
- }
-
- public void setFlagAcconto(AccontoDa flagAcconto) {
- this.flagAcconto = flagAcconto;
- }*/
public String getFlagAcconto() {
return flagAcconto;
}
- public void setFlagAcconto(String flagAcconto) {
+ public DtbTipi setFlagAcconto(String flagAcconto) {
this.flagAcconto = flagAcconto;
+ return this;
}
public String getFlagAttivo() {
return flagAttivo;
}
- public void setFlagAttivo(String flagAttivo) {
+ public DtbTipi setFlagAttivo(String flagAttivo) {
this.flagAttivo = flagAttivo;
+ return this;
}
public String getSerie() {
return serie;
}
- public void setSerie(String serie) {
+ public DtbTipi setSerie(String serie) {
this.serie = serie;
+ return this;
}
public String getFlagSerDepo() {
return flagSerDepo;
}
- public void setFlagSerDepo(String flagSerDepo) {
+ public DtbTipi setFlagSerDepo(String flagSerDepo) {
this.flagSerDepo = flagSerDepo;
+ return this;
}
public Integer getGgUtili() {
return ggUtili;
}
- public void setGgUtili(Integer ggUtili) {
+ public DtbTipi setGgUtili(Integer ggUtili) {
this.ggUtili = ggUtili;
+ return this;
}
public String getDesSuModEstero() {
return desSuModEstero;
}
- public void setDesSuModEstero(String desSuModEstero) {
+ public DtbTipi setDesSuModEstero(String desSuModEstero) {
this.desSuModEstero = desSuModEstero;
+ return this;
}
public String getFlagTrasf() {
return flagTrasf;
}
- public void setFlagTrasf(String flagTrasf) {
+ public DtbTipi setFlagTrasf(String flagTrasf) {
this.flagTrasf = flagTrasf;
+ return this;
}
public Integer getNumCopie() {
return numCopie;
}
- public void setNumCopie(Integer numCopie) {
+ public DtbTipi setNumCopie(Integer numCopie) {
this.numCopie = numCopie;
+ return this;
}
public String getFlagCheckPeso() {
return flagCheckPeso;
}
- public void setFlagCheckPeso(String flagCheckPeso) {
+ public DtbTipi setFlagCheckPeso(String flagCheckPeso) {
this.flagCheckPeso = flagCheckPeso;
+ return this;
}
public String getOggettoMail() {
return oggettoMail;
}
- public void setOggettoMail(String oggettoMail) {
+ public DtbTipi setOggettoMail(String oggettoMail) {
this.oggettoMail = oggettoMail;
+ return this;
}
public String getTestoMail() {
return testoMail;
}
- public void setTestoMail(String testoMail) {
+ public DtbTipi setTestoMail(String testoMail) {
this.testoMail = testoMail;
+ return this;
}
public String getCodCcauDocAp() {
return codCcauDocAp;
}
- public void setCodCcauDocAp(String codCcauDocAp) {
+ public DtbTipi setCodCcauDocAp(String codCcauDocAp) {
this.codCcauDocAp = codCcauDocAp;
+ return this;
}
public String getCodCconDocAp() {
return codCconDocAp;
}
- public void setCodCconDocAp(String codCconDocAp) {
+ public DtbTipi setCodCconDocAp(String codCconDocAp) {
this.codCconDocAp = codCconDocAp;
+ return this;
}
public String getFlagSendSdi() {
return flagSendSdi;
}
- public void setFlagSendSdi(String flagSendSdi) {
+ public DtbTipi setFlagSendSdi(String flagSendSdi) {
this.flagSendSdi = flagSendSdi;
+ return this;
}
public String getFlagContoVendita() {
return flagContoVendita;
}
- public void setFlagContoVendita(String flagContoVendita) {
+ public DtbTipi setFlagContoVendita(String flagContoVendita) {
this.flagContoVendita = flagContoVendita;
+ return this;
}
public Boolean getFlagGestioneSpeciale() {
return flagGestioneSpeciale;
}
- public void setFlagGestioneSpeciale(Boolean flagGestioneSpeciale) {
+ public DtbTipi setFlagGestioneSpeciale(Boolean flagGestioneSpeciale) {
this.flagGestioneSpeciale = flagGestioneSpeciale;
+ return this;
}
public Boolean getFlagArchiviaPdf() {
return flagArchiviaPdf;
}
- public void setFlagArchiviaPdf(Boolean flagArchiviaPdf) {
+ public DtbTipi setFlagArchiviaPdf(Boolean flagArchiviaPdf) {
this.flagArchiviaPdf = flagArchiviaPdf;
+ return this;
}
public String getPathBanner() {
@@ -792,4 +851,26 @@ public class DtbTipi extends EntityBase {
return null;
}
}
+
+ public enum TipoNumerazione {
+ AUTOMATICA("AUTOMATICA"),
+ MANUALE("MANUALE"),
+ PROPOSTA("PROPOSTA");
+
+ private String text;
+
+ TipoNumerazione(String text) {
+ this.text = text;
+ }
+
+ public static TipoNumerazione fromValue(String text) {
+ for (TipoNumerazione tipoNumerazione : TipoNumerazione.values()) {
+ if (tipoNumerazione.text.equalsIgnoreCase(text)) {
+ return tipoNumerazione;
+ }
+ }
+ return null;
+ }
+ }
+
}
diff --git a/ems-core/src/main/resources/rules/documenti.drl b/ems-core/src/main/resources/rules/documenti.drl
index 68a28d1829..e60d910888 100644
--- a/ems-core/src/main/resources/rules/documenti.drl
+++ b/ems-core/src/main/resources/rules/documenti.drl
@@ -502,6 +502,23 @@ then
modify ( $dTip ) { setFlagGiornaleMag("N") }
end
+
+//TIPI DOCUMENTO
+rule "completeSegnoDoc"
+no-loop
+when
+ eval(completeRulesEnabled)
+ $dTip : DtbTipi(operation == OperationType.INSERT)
+then
+ modify ( $dTip ) {
+ setSegnoQtaCar($dTip.getSegnoQtaCar()==null && $dTip.getSegnoQtaScar() !=0?0:$dTip.getSegnoQtaCar()),
+ setSegnoValCar($dTip.getSegnoValCar()==null && $dTip.getSegnoValScar() !=0?0:$dTip.getSegnoValCar()),
+ setSegnoQtaScar($dTip.getSegnoQtaScar()==null && $dTip.getSegnoQtaCar() !=0?0:$dTip.getSegnoQtaScar()),
+ setSegnoValScar($dTip.getSegnoValScar()==null && $dTip.getSegnoValCar() !=0?0:$dTip.getSegnoValScar())
+ }
+end
+
+
rule "completeAggioraListDtbTipi"
when
eval(completeRulesEnabled)
diff --git a/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java b/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java
index 461c700e08..ffdd74b9ff 100644
--- a/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java
+++ b/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java
@@ -25,6 +25,8 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
+import static java.util.stream.Collectors.groupingBy;
+
@Service
@Scope("request")
public class DocumentiDirettiService {
@@ -175,7 +177,7 @@ public class DocumentiDirettiService {
//
Map> ulToTransf = artsToTransfer.stream()
.filter(ul -> ul.getCodMdep().equalsIgnoreCase(codMdep))
- .collect(Collectors.groupingBy(MvwSitArtUdcDetInventarioDTO::getArticoloPartita));
+ .collect(groupingBy(MvwSitArtUdcDetInventarioDTO::getArticoloPartita));
//
//
@@ -237,6 +239,7 @@ public class DocumentiDirettiService {
}
String idAttivita = null;
+ List dtbDocrPedOld = Collections.emptyList();
DtbDoct dtbDoctPedOld = null;
if (!isInsert) {
sql = Query.format("SELECT activity_id FROM dtb_doct WHERE cod_anag = %s AND cod_dtip = %s AND data_doc = %s AND ser_doc = %s AND num_doc = %s",
@@ -249,15 +252,23 @@ public class DocumentiDirettiService {
idAttivita = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
if (!UtilityString.isNullOrEmpty(idAttivita)) {
- sql = Query.format("SELECT cod_anag, cod_dtip, data_doc, ser_doc, num_doc FROM dtb_doct WHERE activity_id = %s AND NOT(cod_anag = %s AND cod_dtip = %s AND data_doc = %s AND ser_doc = %s AND num_doc = %s)",
+ sql = Query.format(
+ "SELECT cod_anag,\n" +
+ " cod_dtip,\n" +
+ " data_doc,\n" +
+ " ser_doc,\n" +
+ " num_doc,\n" +
+ " id_riga\n" +
+ "FROM dtb_docr\n" +
+ "WHERE activity_id_row = %s\n" +
+ " AND NOT (cod_anag = %s AND cod_dtip = %s AND data_doc = %s AND ser_doc = %s AND num_doc = %s)",
idAttivita,
codAnag,
codDtip,
dataDoc,
serDoc,
numDoc);
-
- dtbDoctPedOld = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
+ dtbDocrPedOld = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDocr.class);
}
}
@@ -282,19 +293,25 @@ public class DocumentiDirettiService {
) {
final String gestName = "DTB_DOCT";
final String section = "FATTURA_PEDANE";
- final String keySectionTipoDoc = "TIPO_DOC_RESI";
+ final String keySectionTipoDoc = "TIPO_DOC_CONS";
+ final String keySectionListino = "COD_VLIS";
HashMap setupSection = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), gestName, section);
- String codDtipPed = setupSection.get(keySectionTipoDoc);
- if (UtilityString.isNullOrEmpty(codDtipPed))
- throw new Exception(String.format("Tipo Documento per la creazione della fattura delle pedane non configurato %s -> %s -> %s", gestName, section, keySectionTipoDoc));
+ String codDtipPedCons = setupSection.get(keySectionTipoDoc);
+ if (UtilityString.isNullOrEmpty(codDtipPedCons))
+ throw new Exception(String.format("Tipo Documento per la creazione delle bolle di consegna delle pedane non configurato %s -> %s -> %s", gestName, section, keySectionTipoDoc));
+
+ final String keySectionTipoDocResi = "TIPO_DOC_RESI";
+
+ String codDtipPedResi = setupSection.get(keySectionTipoDocResi);
+ if (UtilityString.isNullOrEmpty(codDtipPedResi))
+ throw new Exception(String.format("Tipo Documento per la creazione delle di reso delle pedane non configurato %s -> %s -> %s", gestName, section, keySectionTipoDocResi));
if (UtilityString.isNullOrEmpty(idAttivita)) {
final String sectionVendita = "VENDITA";
final String keySectionTipoAttivita = "TIPO_ATTIVITA";
String activityTypeId = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), gestName, sectionVendita, keySectionTipoAttivita);
-// setupSection.get(keySectionTipoAttivita);
if (UtilityString.isNullOrEmpty(activityTypeId))
throw new Exception(String.format("Tipo attività non configurato %s -> %s -> %s", gestName, sectionVendita, keySectionTipoAttivita));
@@ -304,57 +321,104 @@ public class DocumentiDirettiService {
dtbDoct.setActivityId(idAttivita);
}
- String codAnagPed;
+ String codAnagPed, listino = null;
if (fatturaVettore) {
if (UtilityString.isNullOrEmpty(dtbDoct.getCodFornTrasp()))
throw new Exception("Codice fornitore del trasporto non presente sul documento");
codAnagPed = dtbDoct.getCodFornTrasp();
+ sql = Query.format("SELECT cod_vlis FROM vtb_clie WHERE cod_anag = %s", codAnagPed);
+ listino = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
+ if (UtilityString.isNullOrEmpty(listino)) {
+ listino = setupSection.get(keySectionListino);
+ if (UtilityString.isNullOrEmpty(listino))
+ throw new Exception(String.format("Listino per la creazione delle bolle di consegna delle pedane non configurato %s -> %s -> %s", gestName, section, keySectionListino));
+ }
} else {
codAnagPed = dtbDoct.getCodAnag();
+ listino = dtbDoct.getListino();
+ }
+ if (dtbDocrPedOld != null && !dtbDocrPedOld.isEmpty()) {
+ Map> collect = dtbDocrPedOld.stream()
+ .collect(groupingBy(x ->
+ new DtbDoct()
+ .setCodAnag(x.getCodAnag())
+ .setCodDtip(x.getCodDtip())
+ .setDataDoc(x.getDataDoc())
+ .setSerDoc(x.getSerDoc())
+ .setNumDoc(x.getNumDoc())));
+
+ for (Map.Entry> entry : collect.entrySet()) {
+ DtbDoct bolla = entry.getKey();
+ entry.getValue().stream().forEach(x->x.setOperation(OperationType.DELETE));
+ bolla.setDtbDocr(entry.getValue());
+ bolla.setOperation(OperationType.UPDATE);
+ dtbDoctPedOld = bolla;
+ }
}
- HashMap oldPkDoc = new HashMap<>();
- Integer numDocPed = null;
- Date dataDocPed = null;
- String serDocPed = null;
- if (dtbDoctPedOld != null) {
- dataDocPed = dtbDoctPedOld.getDataDoc();
- oldPkDoc = new HashMap<>();
- oldPkDoc.put("codDtip", dtbDoctPedOld.getCodDtip());
- oldPkDoc.put("codAnag", dtbDoctPedOld.getCodAnag());
- oldPkDoc.put("dataDoc", dtbDoctPedOld.getDataDoc());
- oldPkDoc.put("serDoc", dtbDoctPedOld.getSerDoc());
- oldPkDoc.put("numDoc", dtbDoctPedOld.getNumDoc());
- }
+// HashMap oldPkDoc = new HashMap<>();
+// Integer numDocPed = null;
+// Date dataDocPed = null;
+// String serDocPed = null;
+// DtbDoct dtbDoctPedOld;
+// if (dtbDocrPedOld != null && !dtbDocrPedOld.isEmpty()) {
+// dataDocPed = dtbDocrPedOld.get(0).getDataDoc();
+// oldPkDoc = new HashMap<>();
+// oldPkDoc.put("codDtip", dtbDocrPedOld.get(0).getCodDtip());
+// oldPkDoc.put("codAnag", dtbDocrPedOld.get(0).getCodAnag());
+// oldPkDoc.put("dataDoc", dtbDocrPedOld.get(0).getDataDoc());
+// oldPkDoc.put("serDoc", dtbDocrPedOld.get(0).getSerDoc());
+// oldPkDoc.put("numDoc", dtbDocrPedOld.get(0).getNumDoc());
+// }
List imballi = dtbDoct.getDtbDocImb().stream().filter(x -> x.getTipoReso() != 2).collect(Collectors.toList());
- Map> gruppoImballi = imballi.stream().collect(Collectors.groupingBy(x -> x.getNumImbCons() > x.getNumImbResi()));
+ Map> gruppoImballi = imballi.stream().collect(groupingBy(x -> x.getNumImbCons() > x.getNumImbResi()));
for (Map.Entry> item : gruppoImballi.entrySet()) {
+ String codDtipPed;
if (item.getKey())
- codDtipPed = dtbDoct.getCodDtip();
+ codDtipPed = codDtipPedCons;
+ else
+ codDtipPed = codDtipPedResi;
- if (dtbDoctPedOld != null && !codDtipPed.equalsIgnoreCase(dtbDoctPedOld.getCodDtip())) {
- serDocPed = DocumentRules.getSerDoc(multiDBTransactionManager.getPrimaryConnection(), codDtipPed, dtbDoct.getCodMdep(), dataDocPed);
- numDocPed = 0;
+ DtbDoct dtbDoctPed = null;
+ if (dtbDoctPedOld != null) {
+ if (dtbDoctPedOld.getCodAnag().equalsIgnoreCase(codAnagPed) &&
+ dtbDoctPedOld.getCodDtip().equalsIgnoreCase(codDtipPed) &&
+ dtbDoctPedOld.getDataDoc().equals(dtbDoct.getDataDoc())) {
+ dtbDoctPed = dtbDoctPedOld;
+ } else {
+ entityList.add(dtbDoctPed);
+ }
}
- DtbDoct dtbDoctPed =
- new DtbDoct()
- .setCodDtip(codDtipPed)
- .setCodAnag(codAnagPed)
- .setDataDoc(dataDocPed == null ? dtbDoct.getDataDoc() : dataDocPed)
- .setSerDoc(serDocPed)
- .setNumDoc(numDocPed)
- .setCodMdep(dtbDoct.getCodMdep())
- .setActivityId(idAttivita)
- .setListino(dtbDoct.getListino());
- if (!oldPkDoc.isEmpty()) {
- dtbDoctPed.setOldPk(oldPkDoc);
+ if ( dtbDoctPed == null) {
+ sql = Query.format(
+ "SELECT cod_anag, cod_dtip, data_doc, ser_doc, num_doc\n" +
+ "FROM dtb_doct\n" +
+ "WHERE cod_dtip = %s \n" +
+ " AND cod_anag = %s \n" +
+ " AND data_doc = %s",
+ codDtipPed,
+ codAnagPed,
+ dtbDoct.getDataDoc());
+
+ dtbDoctPed = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
+
+ }
+ if ( dtbDoctPed == null) {
+ dtbDoctPed =
+ new DtbDoct()
+ .setCodDtip(codDtipPed)
+ .setCodAnag(codAnagPed)
+ .setDataDoc(dtbDoct.getDataDoc())
+ .setCodMdep(dtbDoct.getCodMdep())
+ .setListino(listino);
+ dtbDoctPed.setOperation(OperationType.INSERT);
+ } else {
+ dtbDoctPed.setOperation(OperationType.UPDATE);
}
- dtbDoctPed.setOperation(OperationType.DELETE_THEN_INSERT);
entityList.add(dtbDoctPed);
-
for (DtbDocImb docImb : item.getValue()) {
String codTcol = docImb.getCodTcol();
int qta = docImb.getNumImbCons() - docImb.getNumImbResi();
@@ -376,43 +440,44 @@ public class DocumentiDirettiService {
DtbDocr dtbDocr = new DtbDocr()
.setCodMart(codMart)
- .setQtaDoc(new BigDecimal(qta).abs());
+ .setQtaDoc(new BigDecimal(qta).abs())
+ .setActivityIdRow(idAttivita);
dtbDocr.setOperation(OperationType.INSERT);
dtbDoctPed.getDtbDocr().add(dtbDocr);
- String descrizione = descrizioneTipoCollo + ": ";
- if (docImb.getNumImbCons() > 0) {
- descrizione +=
- String.format("CARICATE/I %s", docImb.getNumImbCons());
- }
- if (docImb.getNumImbResi() > 0) {
- if (descrizione != null && descrizione.length() > 0)
- descrizione += ", ";
- descrizione +=
- String.format("RESE/I %s", docImb.getNumImbResi());
- }
- dtbDocr = new DtbDocr()
- .setDescrizione(UtilityString.left(descrizione, 40))
- .setDescrizioneEstesa(descrizione);
- dtbDocr.setOperation(OperationType.INSERT);
- dtbDoctPed.getDtbDocr().add(dtbDocr);
+// String descrizione = descrizioneTipoCollo + ": ";
+// if (docImb.getNumImbCons() > 0) {
+// descrizione +=
+// String.format("CARICATE/I %s", docImb.getNumImbCons());
+// }
+// if (docImb.getNumImbResi() > 0) {
+// if (descrizione != null && descrizione.length() > 0)
+// descrizione += ", ";
+// descrizione +=
+// String.format("RESE/I %s", docImb.getNumImbResi());
+// }
+// dtbDocr = new DtbDocr()
+// .setDescrizione(UtilityString.left(descrizione, 40))
+// .setDescrizioneEstesa(descrizione);
+// dtbDocr.setOperation(OperationType.INSERT);
+// dtbDoctPed.getDtbDocr().add(dtbDocr);
}
if (!imballi.isEmpty()) {
String descrizione =
- String.format("NS. RIF. %S DEL %S N. %S/%S",
+ String.format("NS. BOLLA DI CONSEGNA %S DEL %S N. %S/%S",
dtbDoct.getCodDtip(),
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dtbDoct.getDataDoc()),
dtbDoct.getSerDoc(),
dtbDoct.getNumDoc());
DtbDocr dtbDocr = new DtbDocr()
.setDescrizione(UtilityString.left(descrizione, 40))
- .setDescrizioneEstesa(descrizione);
+ .setDescrizioneEstesa(descrizione)
+ .setActivityIdRow(idAttivita);
dtbDocr.setOperation(OperationType.INSERT);
dtbDoctPed.getDtbDocr().add(dtbDocr);
}
}
} else if (dtbDoctPedOld != null) {
- dtbDoctPedOld.setOperation(OperationType.DELETE);
entityList.add(dtbDoctPedOld);
}
}