modifiche per rossogargano

This commit is contained in:
2025-01-13 12:25:22 +01:00
parent 067c88ae08
commit e3dc1eaba6
5 changed files with 392 additions and 124 deletions

View File

@@ -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 {
}
}

View File

@@ -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 {
}
}

View File

@@ -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;
}
}
}

View File

@@ -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)

View File

@@ -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 {
//<editor-fold desc="Raggruppo le quantità da trasferire per deposito/articolo/partita">
Map<ArticoloPartitaDTO, List<MvwSitArtUdcDetInventarioDTO>> ulToTransf = artsToTransfer.stream()
.filter(ul -> ul.getCodMdep().equalsIgnoreCase(codMdep))
.collect(Collectors.groupingBy(MvwSitArtUdcDetInventarioDTO::getArticoloPartita));
.collect(groupingBy(MvwSitArtUdcDetInventarioDTO::getArticoloPartita));
//</editor-fold>
//<editor-fold desc="per ogni coppia di articolo / partita sommo le quantità e aggiungo al documento">
@@ -237,6 +239,7 @@ public class DocumentiDirettiService {
}
String idAttivita = null;
List<DtbDocr> 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<String, String> 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<DtbDoct, List<DtbDocr>> 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<DtbDoct, List<DtbDocr>> 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<String, Object> 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<String, Object> 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<DtbDocImb> imballi = dtbDoct.getDtbDocImb().stream().filter(x -> x.getTipoReso() != 2).collect(Collectors.toList());
Map<Boolean, List<DtbDocImb>> gruppoImballi = imballi.stream().collect(Collectors.groupingBy(x -> x.getNumImbCons() > x.getNumImbResi()));
Map<Boolean, List<DtbDocImb>> gruppoImballi = imballi.stream().collect(groupingBy(x -> x.getNumImbCons() > x.getNumImbResi()));
for (Map.Entry<Boolean, List<DtbDocImb>> 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);
}
}