Aggiornamento per invio variazioni

This commit is contained in:
2025-05-15 17:26:52 +02:00
parent 56cea98c92
commit ccad444ef6
5 changed files with 64 additions and 25 deletions

View File

@@ -254,7 +254,9 @@ public class PackagesRules extends QueryRules {
String flagQtaCnfFissa = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
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;
} else {
cifreDec = 0;

View File

@@ -8,6 +8,7 @@ import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -34,6 +35,20 @@ public class UtilityDate {
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) {
Calendar cal = Calendar.getInstance();

View File

@@ -7,7 +7,6 @@ public class VariazioniPvInputDTO {
private Date dataValidita;
private String codVlis;
private String whereCondArt;
private String whereCondLisv;
private String whereCondDoc;
private String inviaIngredienti;
@@ -16,6 +15,7 @@ public class VariazioniPvInputDTO {
private String inviaDisattivazioni;
private String userName;
private String oraInvioPrec;
private String giornoVariazione;
private List<VariazioniDettaglioDTO> variazioni;
public Date getDataValidita() {
@@ -44,6 +44,15 @@ public class VariazioniPvInputDTO {
return this;
}
public String getGiornoVariazione() {
return giornoVariazione;
}
public VariazioniPvInputDTO setGiornoVariazione(String giornoVariazione) {
this.giornoVariazione = giornoVariazione;
return this;
}
public String getWhereCondArt() {
return whereCondArt;
}
@@ -134,28 +143,6 @@ public class VariazioniPvInputDTO {
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.ServiceRestResponse;
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.service.VariazioniPvService;
import it.integry.ems.retail.ReportVariazioni.xml.*;
@@ -83,8 +84,14 @@ public class VariazioniPvExportServices {
if (variazioniPvDTO != null && UtilityString.isNullOrEmpty(variazioniPvDTO.getFileXml())) {
boolean existJson = (variazioniPvDTO.getVariazioni() != null && !variazioniPvDTO.getVariazioni().isEmpty());
if (variazioniPvDTO.getDataValidita() == null) {
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) {
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);