Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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,7 +84,13 @@ public class VariazioniPvExportServices {
|
||||
if (variazioniPvDTO != null && UtilityString.isNullOrEmpty(variazioniPvDTO.getFileXml())) {
|
||||
boolean existJson = (variazioniPvDTO.getVariazioni() != null && !variazioniPvDTO.getVariazioni().isEmpty());
|
||||
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) {
|
||||
variazioniPvDTO.setTipoReportEnum(VariazioniReportType.VARIAZIONI);
|
||||
|
||||
@@ -408,58 +408,58 @@ public class PvmAccettazioneService {
|
||||
righeDoc.add(riga);
|
||||
}
|
||||
|
||||
List<MtbColr> righeCollo =
|
||||
Stream.of(mtbColr)
|
||||
.filter(x ->
|
||||
UtilityString.equalsIgnoreCase(x.getCodMart(), articolo.getCodMart()) &&
|
||||
x.getPartitaMag() != null).toList();
|
||||
if (!UtilityString.isNullOrEmpty(articolo.getLotti())) {
|
||||
List<String> lottiCollo = Arrays.asList(articolo.getLotti().split("|"));
|
||||
righeCollo =
|
||||
Stream.of(mtbColr)
|
||||
.filter(x -> lottiCollo.contains(x.getPartitaMag())).toList();
|
||||
}
|
||||
// List<MtbColr> righeCollo =
|
||||
// Stream.of(mtbColr)
|
||||
// .filter(x ->
|
||||
// UtilityString.equalsIgnoreCase(x.getCodMart(), articolo.getCodMart()) &&
|
||||
// x.getPartitaMag() != null).toList();
|
||||
// if (!UtilityString.isNullOrEmpty(articolo.getLotti())) {
|
||||
// List<String> lottiCollo = Arrays.asList(articolo.getLotti().split("|"));
|
||||
// righeCollo =
|
||||
// Stream.of(mtbColr)
|
||||
// .filter(x -> lottiCollo.contains(x.getPartitaMag())).toList();
|
||||
// }
|
||||
|
||||
List<WdtbDocr> righeNew = new ArrayList<>();
|
||||
// righeDoc = Stream.of(righeDoc).filter(x->x.getPartitaMag() == null).toList();
|
||||
for (AccettazioneRigaDocDTO riga : righeDoc) {
|
||||
do {
|
||||
if (righeCollo != null && !righeCollo.isEmpty()) {
|
||||
righeCollo = Stream.of(righeCollo)
|
||||
.filter(x -> UtilityBigDecimal.greaterThan(x.getQtaCol(), BigDecimal.ZERO)).toList();
|
||||
for (MtbColr rigaCollo : righeCollo) {
|
||||
BigDecimal qtaDoc;
|
||||
String partitaMag;
|
||||
Integer idRiga = null;
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), rigaCollo.getQtaCol())) {
|
||||
qtaDoc = rigaCollo.getQtaCol();
|
||||
partitaMag = rigaCollo.getPartitaMag();
|
||||
idRiga = riga.getIdRiga();
|
||||
riga.setQtaDoc(riga.getQtaDoc().subtract(rigaCollo.getQtaCol()));
|
||||
rigaCollo.setQtaCol(BigDecimal.ZERO);
|
||||
} else {
|
||||
qtaDoc = riga.getQtaDoc();
|
||||
partitaMag = rigaCollo.getPartitaMag();
|
||||
rigaCollo.setQtaCol(rigaCollo.getQtaCol().subtract(riga.getQtaDoc()));
|
||||
riga.setQtaDoc(BigDecimal.ZERO);
|
||||
}
|
||||
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
|
||||
if (UtilityBigDecimal.isNullOrZero(riga.getQtaDoc())) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), BigDecimal.ZERO)) {
|
||||
righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt()));
|
||||
riga.setQtaDoc(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
} else {
|
||||
// if (righeCollo != null && !righeCollo.isEmpty()) {
|
||||
// righeCollo = Stream.of(righeCollo)
|
||||
// .filter(x -> UtilityBigDecimal.greaterThan(x.getQtaCol(), BigDecimal.ZERO)).toList();
|
||||
// for (MtbColr rigaCollo : righeCollo) {
|
||||
// BigDecimal qtaDoc;
|
||||
// String partitaMag;
|
||||
// Integer idRiga = null;
|
||||
//
|
||||
// if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), rigaCollo.getQtaCol())) {
|
||||
// qtaDoc = rigaCollo.getQtaCol();
|
||||
// partitaMag = rigaCollo.getPartitaMag();
|
||||
// idRiga = riga.getIdRiga();
|
||||
// riga.setQtaDoc(riga.getQtaDoc().subtract(rigaCollo.getQtaCol()));
|
||||
// rigaCollo.setQtaCol(BigDecimal.ZERO);
|
||||
// } else {
|
||||
// qtaDoc = riga.getQtaDoc();
|
||||
// partitaMag = rigaCollo.getPartitaMag();
|
||||
// rigaCollo.setQtaCol(rigaCollo.getQtaCol().subtract(riga.getQtaDoc()));
|
||||
// riga.setQtaDoc(BigDecimal.ZERO);
|
||||
// }
|
||||
// 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
|
||||
// if (UtilityBigDecimal.isNullOrZero(riga.getQtaDoc())) {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (UtilityBigDecimal.greaterThan(riga.getQtaDoc(), BigDecimal.ZERO)) {
|
||||
// righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt()));
|
||||
// riga.setQtaDoc(BigDecimal.ZERO);
|
||||
// }
|
||||
//
|
||||
// } else {
|
||||
righeNew.add(insertRowBolla(articolo, riga.getIdRiga(), null, riga.getQtaDoc(), riga.getValUnt()));
|
||||
riga.setQtaDoc(BigDecimal.ZERO);
|
||||
}
|
||||
// }
|
||||
} while (riga.getQtaDoc().doubleValue() > 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user