Finish Hotfix-100
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-07-29 15:32:41 +02:00

View File

@@ -5,6 +5,7 @@ import it.integry.ems.document.dto.ArticoloPartitaDTO;
import it.integry.ems.document.dto.CreateULFromDocumentsDTO;
import it.integry.ems.document.dto.ULRowDTO;
import it.integry.ems.document.dto.UlVenditaDTO;
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.menu.dto.StbMenuDTO;
import it.integry.ems.retail.wms.accettazione.service.WMSAccettazioneService;
@@ -19,6 +20,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.exception.DataConverterNotFoundException;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.*;
@@ -30,6 +32,7 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -539,7 +542,7 @@ public class DocumentiDirettiService {
}
List<DtbDocImb> imballi = dtbDoct.getDtbDocImb().stream().filter(x -> x.getOperation() != OperationType.DELETE && x.getTipoReso() != 2).collect(Collectors.toList());
int qtaDoc = 0;
for (DtbDocImb docImb : imballi) {
sql =
Query.format(
@@ -558,9 +561,8 @@ public class DocumentiDirettiService {
String descrizioneArticolo = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
String codDtipPed;
if ((fatturaVettore || fatturaPedaneCliente) && docImb.getNumImbCons() != 0) {
codDtipPed = codDtipPedCons;
String descrizione =
String.format("NS. BOLLA DI CONSEGNA %S DEL %S N. %S/%S",
dtbDoct.getCodDtip(),
@@ -569,70 +571,10 @@ public class DocumentiDirettiService {
dtbDoct.getNumDoc());
descrizioneArticolo = descrizioneArticolo + CommonConstants.A_CAPO + descrizione;
qtaDoc = docImb.getNumImbCons();
} else if (!fatturaVettore && docImb.getNumImbResi() != 0) {
codDtipPed = codDtipPedResi;
qtaDoc = docImb.getNumImbResi();
} else {
codDtipPed = null;
getDtbDoctImballi(dtbDoct, entityList, codDtipPedCons, codAnagPed, codMdep, listino, codMart, docImb.getNumImbCons(), descrizioneArticolo, idAttivita);
}
if (codDtipPed != null) {
DtbDoct dtbDoctPed = (DtbDoct) entityList
.stream()
.filter(x -> x instanceof DtbDoct && ((DtbDoct) x).getCodDtip().equalsIgnoreCase(codDtipPed)).findFirst().orElse(null);
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 \n"
,
codDtipPed,
codAnagPed,
dtbDoct.getDataDoc());
if (UtilityString.isNullOrEmpty(dtbDoct.getIdViaggio()))
sql += " AND id_viaggio IS NULL ";
else
sql += " AND id_viaggio = " + UtilityDB.valueToString(dtbDoct.getIdViaggio());
dtbDoctPed = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
if (dtbDoctPed != null) {
dtbDoctPed.setOperation(OperationType.UPDATE);
entityList.add(dtbDoctPed);
}
} else {
dtbDoctPed.setOperation(OperationType.UPDATE);
}
if (dtbDoctPed == null) {
dtbDoctPed =
new DtbDoct()
.setCodDtip(codDtipPed)
.setCodAnag(codAnagPed)
.setDataDoc(dtbDoct.getDataDoc())
.setCodMdep(codMdep)
.setCodFornTrasp(dtbDoct.getCodFornTrasp())
.setListino(listino)
.setIdViaggio(dtbDoct.getIdViaggio());
dtbDoctPed.setOperation(OperationType.INSERT);
entityList.add(dtbDoctPed);
}
DtbDocr dtbDocr = new DtbDocr()
.setCodMart(codMart)
.setQtaDoc(new BigDecimal(qtaDoc).abs())
.setDescrizioneEstesa(descrizioneArticolo)
.setActivityIdRow(idAttivita);
dtbDocr.setOperation(OperationType.INSERT);
dtbDoctPed.getDtbDocr().add(dtbDocr);
if (!fatturaVettore && docImb.getNumImbResi() != 0) {
getDtbDoctImballi(dtbDoct, entityList, codDtipPedResi, codAnagPed, codMdep, listino, codMart, docImb.getNumImbResi(), descrizioneArticolo, idAttivita);
}
}
}
@@ -643,6 +585,61 @@ public class DocumentiDirettiService {
}
private void getDtbDoctImballi(DtbDoct dtbDoct, List<EntityBase> entityList, String codDtipPed, String codAnagPed, String codMdep, String listino, String codMart, int qtaDoc, String descrizioneArticolo, String idAttivita) throws DataConverterNotFoundException, SQLException, InstantiationException, IllegalAccessException, PrimaryDatabaseNotPresentException, IOException {
String sql;
DtbDoct dtbDoctPed = (DtbDoct) entityList
.stream()
.filter(x -> x instanceof DtbDoct && ((DtbDoct) x).getCodDtip().equalsIgnoreCase(codDtipPed)).findFirst().orElse(null);
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 \n"
,
codDtipPed,
codAnagPed,
dtbDoct.getDataDoc());
if (UtilityString.isNullOrEmpty(dtbDoct.getIdViaggio()))
sql += " AND id_viaggio IS NULL ";
else
sql += " AND id_viaggio = " + UtilityDB.valueToString(dtbDoct.getIdViaggio());
dtbDoctPed = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
if (dtbDoctPed != null) {
dtbDoctPed.setOperation(OperationType.UPDATE);
entityList.add(dtbDoctPed);
}
} else {
dtbDoctPed.setOperation(OperationType.UPDATE);
}
if (dtbDoctPed == null) {
dtbDoctPed =
new DtbDoct()
.setCodDtip(codDtipPed)
.setCodAnag(codAnagPed)
.setDataDoc(dtbDoct.getDataDoc())
.setCodMdep(codMdep)
.setCodFornTrasp(dtbDoct.getCodFornTrasp())
.setListino(listino)
.setIdViaggio(dtbDoct.getIdViaggio());
dtbDoctPed.setOperation(OperationType.INSERT);
entityList.add(dtbDoctPed);
}
DtbDocr dtbDocr = new DtbDocr()
.setCodMart(codMart)
.setQtaDoc(new BigDecimal(qtaDoc).abs())
.setDescrizioneEstesa(descrizioneArticolo)
.setActivityIdRow(idAttivita);
dtbDocr.setOperation(OperationType.INSERT);
dtbDoctPed.getDtbDocr().add(dtbDocr);
}
private StbActivity createStbActivity(String activityTypeId) throws Exception {
String idAttivita = ConfigActivityRules.completeActivityId(multiDBTransactionManager.getPrimaryConnection());