Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-05-15 18:15:59 +02:00
6 changed files with 109 additions and 70 deletions

View File

@@ -254,7 +254,9 @@ public class PackagesRules extends QueryRules {
String flagQtaCnfFissa = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql); String flagQtaCnfFissa = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
int cifreDec; int cifreDec;
if (flagQtaCnfFissa.equalsIgnoreCase("S")) { if (UtilityString.isNullOrEmpty(flagQtaCnfFissa)) {
throw new Exception(String.format("Articolo %s non trovato", mtbColr.getCodMart()));
}else if (flagQtaCnfFissa.equalsIgnoreCase("S")) {
cifreDec = EmsRestConstants.cifreDecMax; cifreDec = EmsRestConstants.cifreDecMax;
} else { } else {
cifreDec = 0; cifreDec = 0;

View File

@@ -8,6 +8,7 @@ import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.*; import java.time.*;
import java.time.temporal.TemporalAdjusters;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -34,6 +35,20 @@ public class UtilityDate {
return dateAdd(Calendar.DATE, day, data); return dateAdd(Calendar.DATE, day, data);
} }
public static Date prossimoGiornoSettimana(Date dataInizio, int giornoSettimana) {
// Conversione da Date a LocalDate
LocalDate localDate = dataInizio.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// Conversione a DayOfWeek (Java usa 1 = lunedì, 7 = domenica)
DayOfWeek targetDay = DayOfWeek.of(giornoSettimana % 7 + 1);
// Trova la prossima data con quel giorno della settimana
LocalDate prossimaData = localDate.with(TemporalAdjusters.next(targetDay));
// Riconversione da LocalDate a Date
return Date.from(prossimaData.atStartOfDay(ZoneId.systemDefault()).toInstant());
}
public static Date dateAdd(int datepart, int number, Date date) { public static Date dateAdd(int datepart, int number, Date date) {
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();

View File

@@ -7,7 +7,6 @@ public class VariazioniPvInputDTO {
private Date dataValidita; private Date dataValidita;
private String codVlis; private String codVlis;
private String whereCondArt; private String whereCondArt;
private String whereCondLisv; private String whereCondLisv;
private String whereCondDoc; private String whereCondDoc;
private String inviaIngredienti; private String inviaIngredienti;
@@ -16,6 +15,7 @@ public class VariazioniPvInputDTO {
private String inviaDisattivazioni; private String inviaDisattivazioni;
private String userName; private String userName;
private String oraInvioPrec; private String oraInvioPrec;
private String giornoVariazione;
private List<VariazioniDettaglioDTO> variazioni; private List<VariazioniDettaglioDTO> variazioni;
public Date getDataValidita() { public Date getDataValidita() {
@@ -44,6 +44,15 @@ public class VariazioniPvInputDTO {
return this; return this;
} }
public String getGiornoVariazione() {
return giornoVariazione;
}
public VariazioniPvInputDTO setGiornoVariazione(String giornoVariazione) {
this.giornoVariazione = giornoVariazione;
return this;
}
public String getWhereCondArt() { public String getWhereCondArt() {
return whereCondArt; return whereCondArt;
} }
@@ -134,28 +143,6 @@ public class VariazioniPvInputDTO {
return this; return this;
} }
public enum Type {
VARIAZIONI("V"),
PROMOZIONI("P"),
GRIGLIA("G"),
LISTINO("L");
private String text;
Type(String text) {
this.text = text;
}
public static Type fromString(String text) {
for (Type b : Type.values()) {
if (b.text.equalsIgnoreCase(text)) return b;
}
return null;
}
public String getText() {
return this.text;
}
}
} }

View File

@@ -0,0 +1,28 @@
package it.integry.ems.retail.ReportVariazioni.dto;
import java.util.Calendar;
public enum VariazioniReportGiornoSettimana {
LUNEDI(0),
MARTEDI(1),
MERCOLEDI(2),
GIOVEDI(3),
VENERDI(4),
SABATO(5),
DOMENICA(6);
private int value;
VariazioniReportGiornoSettimana(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
public static int fromString(String nome) {
return VariazioniReportGiornoSettimana.valueOf(nome.toUpperCase().trim()).getValue();
}
}

View File

@@ -10,6 +10,7 @@ import it.integry.ems.properties.EmsProperties;
import it.integry.ems.response.EsitoType; import it.integry.ems.response.EsitoType;
import it.integry.ems.response.ServiceRestResponse; import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO; import it.integry.ems.retail.ReportVariazioni.dto.VariazioniPvInputDTO;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniReportGiornoSettimana;
import it.integry.ems.retail.ReportVariazioni.dto.VariazioniReportType; import it.integry.ems.retail.ReportVariazioni.dto.VariazioniReportType;
import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvService; import it.integry.ems.retail.ReportVariazioni.service.VariazioniPvService;
import it.integry.ems.retail.ReportVariazioni.xml.*; import it.integry.ems.retail.ReportVariazioni.xml.*;
@@ -83,7 +84,13 @@ public class VariazioniPvExportServices {
if (variazioniPvDTO != null && UtilityString.isNullOrEmpty(variazioniPvDTO.getFileXml())) { if (variazioniPvDTO != null && UtilityString.isNullOrEmpty(variazioniPvDTO.getFileXml())) {
boolean existJson = (variazioniPvDTO.getVariazioni() != null && !variazioniPvDTO.getVariazioni().isEmpty()); boolean existJson = (variazioniPvDTO.getVariazioni() != null && !variazioniPvDTO.getVariazioni().isEmpty());
if (variazioniPvDTO.getDataValidita() == null) { if (variazioniPvDTO.getDataValidita() == null) {
variazioniPvDTO.setDataValidita( UtilityDate.RelativeDateTime(new Date(), 1)); if (variazioniPvDTO.getGiornoVariazione() != null) {
Date dataValiditaCalc = UtilityDate.prossimoGiornoSettimana(new Date(),
VariazioniReportGiornoSettimana.fromString(variazioniPvDTO.getGiornoVariazione()));
variazioniPvDTO.setDataValidita(dataValiditaCalc);
} else {
variazioniPvDTO.setDataValidita( UtilityDate.RelativeDateTime(new Date(), 1));
}
} }
if (variazioniPvDTO.getTipoReportEnum() == null) { if (variazioniPvDTO.getTipoReportEnum() == null) {
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI); variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);

View File

@@ -408,58 +408,58 @@ public class PvmAccettazioneService {
righeDoc.add(riga); righeDoc.add(riga);
} }
List<MtbColr> righeCollo = // List<MtbColr> righeCollo =
Stream.of(mtbColr) // Stream.of(mtbColr)
.filter(x -> // .filter(x ->
UtilityString.equalsIgnoreCase(x.getCodMart(), articolo.getCodMart()) && // UtilityString.equalsIgnoreCase(x.getCodMart(), articolo.getCodMart()) &&
x.getPartitaMag() != null).toList(); // x.getPartitaMag() != null).toList();
if (!UtilityString.isNullOrEmpty(articolo.getLotti())) { // if (!UtilityString.isNullOrEmpty(articolo.getLotti())) {
List<String> lottiCollo = Arrays.asList(articolo.getLotti().split("|")); // List<String> lottiCollo = Arrays.asList(articolo.getLotti().split("|"));
righeCollo = // righeCollo =
Stream.of(mtbColr) // Stream.of(mtbColr)
.filter(x -> lottiCollo.contains(x.getPartitaMag())).toList(); // .filter(x -> lottiCollo.contains(x.getPartitaMag())).toList();
} // }
List<WdtbDocr> righeNew = new ArrayList<>(); List<WdtbDocr> righeNew = new ArrayList<>();
// righeDoc = Stream.of(righeDoc).filter(x->x.getPartitaMag() == null).toList(); // righeDoc = Stream.of(righeDoc).filter(x->x.getPartitaMag() == null).toList();
for (AccettazioneRigaDocDTO riga : righeDoc) { for (AccettazioneRigaDocDTO riga : righeDoc) {
do { do {
if (righeCollo != null && !righeCollo.isEmpty()) { // if (righeCollo != null && !righeCollo.isEmpty()) {
righeCollo = Stream.of(righeCollo) // righeCollo = Stream.of(righeCollo)
.filter(x -> UtilityBigDecimal.greaterThan(x.getQtaCol(), BigDecimal.ZERO)).toList(); // .filter(x -> UtilityBigDecimal.greaterThan(x.getQtaCol(), BigDecimal.ZERO)).toList();
for (MtbColr rigaCollo : righeCollo) { // for (MtbColr rigaCollo : righeCollo) {
BigDecimal qtaDoc; // BigDecimal qtaDoc;
String partitaMag; // String partitaMag;
Integer idRiga = null; // Integer idRiga = null;
//
if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), rigaCollo.getQtaCol())) { // if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), rigaCollo.getQtaCol())) {
qtaDoc = rigaCollo.getQtaCol(); // qtaDoc = rigaCollo.getQtaCol();
partitaMag = rigaCollo.getPartitaMag(); // partitaMag = rigaCollo.getPartitaMag();
idRiga = riga.getIdRiga(); // idRiga = riga.getIdRiga();
riga.setQtaDoc(riga.getQtaDoc().subtract(rigaCollo.getQtaCol())); // riga.setQtaDoc(riga.getQtaDoc().subtract(rigaCollo.getQtaCol()));
rigaCollo.setQtaCol(BigDecimal.ZERO); // rigaCollo.setQtaCol(BigDecimal.ZERO);
} else { // } else {
qtaDoc = riga.getQtaDoc(); // qtaDoc = riga.getQtaDoc();
partitaMag = rigaCollo.getPartitaMag(); // partitaMag = rigaCollo.getPartitaMag();
rigaCollo.setQtaCol(rigaCollo.getQtaCol().subtract(riga.getQtaDoc())); // rigaCollo.setQtaCol(rigaCollo.getQtaCol().subtract(riga.getQtaDoc()));
riga.setQtaDoc(BigDecimal.ZERO); // riga.setQtaDoc(BigDecimal.ZERO);
} // }
righeNew.add(insertRowBolla(articolo, idRiga, partitaMag, qtaDoc, riga.getValUnt())); // righeNew.add(insertRowBolla(articolo, idRiga, partitaMag, qtaDoc, riga.getValUnt()));
riga.setIdRiga(null); // Dopo la prima lettura id riga viene annullato perchè tutte le righe devono essere nuove // riga.setIdRiga(null); // Dopo la prima lettura id riga viene annullato perchè tutte le righe devono essere nuove
if (UtilityBigDecimal.isNullOrZero(riga.getQtaDoc())) { // if (UtilityBigDecimal.isNullOrZero(riga.getQtaDoc())) {
break; // break;
} // }
} // }
//
if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), BigDecimal.ZERO)) { // if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), BigDecimal.ZERO)) {
righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt())); // righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt()));
riga.setQtaDoc(BigDecimal.ZERO); // riga.setQtaDoc(BigDecimal.ZERO);
} // }
//
} else { // } else {
righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt())); righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt()));
riga.setQtaDoc(BigDecimal.ZERO); riga.setQtaDoc(BigDecimal.ZERO);
} // }
} while (riga.getQtaDoc().doubleValue() > 0); } while (riga.getQtaDoc().doubleValue() > 0);
} }