Merge branch 'develop' into feature/MRP_RimossoCodMdep

This commit is contained in:
2024-05-23 12:23:59 +02:00
28 changed files with 242 additions and 282 deletions

View File

@@ -0,0 +1,32 @@
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;
public class Migration_20240521122024 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (!isCustomer(IntegryCustomer.Smetar)) {
return;
}
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "ARTICOLO_RIFERIMENTO_INS_KIT", "TOTALE_NETTO", "Indicare il cod_vart_rif subito prima il quale verrà inserito il kit manutenzione", false, null, false, false, false, false, false, null, false, null);
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "ARTICOLO_RIFERIMENTO_KIT", "KIT_MULTIPLI", "Indicare il cod_vart_rif con cui il kit verrà inserito nell'offerta", false, null, false, false, false, false, false, null, false, null);
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "ATTIVO", "N", "Se impoststo S viene visualizzato un testo in menù modalità scheda che se cliccato permette di visualizzare eventuali articoli che prevedono quantità multipla con la relativa quantità da aggiungere all'offerta come kit manutenzione", false, null, false, false, false, false, false, null, false, null);
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "PARAGRAFO_RIGHE", "COMPUTO MATERIALI", "Inserire il nome del cod_vart_rif con cui verranno inseriti gli articoli nel kit", false, null, false, false, false, false, false, null, false, null);
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "PARAGRAFO_SUBTOTALE", "SUBTOTALE", "Paragrafo subtotale modulo kit manutenzione", false, null, false, false, false, false, false, null, false, null);
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "PARAGRAFO_TITOLO", "DESCRIZIONE MODULO", "Indicare il paragrafo titolo che verrà inserito nell'offerta", false, null, false, false, false, false, false, null, false, null);
createSetup("w_pprevt_rc", "GESTISCI_QTA_MULTIPLA", "PARAGRAFO_TITOLO_DESCRIZIONE", "Elenco articoli per compensazione articoli multipli", "Descrizione paragrafo titolo", false, null, false, false, false, false, false, null, false, null);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,28 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.types.ApplicationName;
public class Migration_20240521124415 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isTextiles()) {
executeStatement("ALTER TABLE ttb_line ADD num_min_art_col tinyint DEFAULT 0;",
"UPDATE ttb_line SET num_min_art_col = 0;",
"ALTER TABLE ttb_line ALTER COLUMN num_min_art_col tinyint NOT NULL;");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -0,0 +1,28 @@
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;
public class Migration_20240522173844 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetupQuery("SI_NO", "SI_NO", "SELECT 'S' UNION ALL SELECT 'N'", false);
createSetup("ORDIKIDS", "SETUP", "NOME_NEGOZIO_REQUIRED", null, null, false, "SI_NO", false, false, false, false, false, null, false, "SELECT 'S' UNION ALL SELECT 'N'");
if (isCustomer(IntegryCustomer.FolliesGroup)) {
updateSetupValue("ORDIKIDS", "SETUP", "NOME_NEGOZIO_REQUIRED", "S");
}
}
@Override
public void down() throws Exception {
}
}

View File

@@ -116,7 +116,7 @@ public class AtbOfft extends EntityBase {
@SqlField(value = "stato_offerta", nullable = false, defaultObjectValue = "0")
private StatoOfferta statoOfferta;
@SqlField(value = "flag_chiudi_a_scad", nullable = false, defaultObjectValue = "true")
@SqlField(value = "flag_chiudi_a_scad", nullable = false, defaultObjectValue = "1")
private Boolean flagChiudiAScad;
@EntityChild

View File

@@ -44,7 +44,7 @@ public class CtbContIntercodePaghe extends EntityBase {
@SqlField(value = "cod_ccon_cp", maxLength = 6, nullable = true)
String codCconCp;
@SqlField(value = "flag_escludi", nullable = false, defaultObjectValue = "false")
@SqlField(value = "flag_escludi", nullable = false, defaultObjectValue = "0")
Boolean flagEscludi;
@MapToTable(value = "is_costo_cc")

View File

@@ -59,7 +59,7 @@ public class DtbDocuLog extends EntityBase {
@SqlField(value = "user_name", maxLength = 40, nullable = false)
private String userName;
@SqlField(value = "flag_errore", nullable = false, defaultObjectValue = "false")
@SqlField(value = "flag_errore", nullable = false, defaultObjectValue = "0")
private Boolean flagErrore;
public DtbDocuLog() {

View File

@@ -89,7 +89,7 @@ public class DtbOrdrPianProd extends EntityBase {
@SqlField(value = "cod_tcol", maxLength = 5)
private String codTcol;
@SqlField(value = "flag_modificato", defaultObjectValue = "false")
@SqlField(value = "flag_modificato", defaultObjectValue = "0")
private Boolean flagModificato;
@SqlField(value = "colli_pedana")

View File

@@ -99,7 +99,7 @@ public class GtbSpes extends EntityBase {
@SqlField(value = "cod_nc_intracee", maxLength = 20, nullable = true)
private String codNcIntracee;
@SqlField(value = "flag_ripartisci_intra", nullable = false, defaultObjectValue = "false")
@SqlField(value = "flag_ripartisci_intra", nullable = false, defaultObjectValue = "0")
Boolean flagRipartisciIntra;
public GtbSpes() {

View File

@@ -283,7 +283,7 @@ public class MtbAart extends EntityBase {
private String mtbAartEqui_descrizione;
@SqlField(value = "flag_arr_prz_vend_iva", nullable = false, defaultObjectValue = "true")
@SqlField(value = "flag_arr_prz_vend_iva", nullable = false, defaultObjectValue = "1")
private Boolean flagArrPrzVendIva;
@SqlField(value = "classificazione_abc", maxLength = 1, nullable = true)

View File

@@ -114,7 +114,7 @@ public class MtbDepo extends EntityBase {
@SqlField(value = "id_depo_sian")
private Integer idDepoSian;
@SqlField(value = "chk_giacenza_neg", nullable = false, defaultObjectValue = "false")
@SqlField(value = "chk_giacenza_neg", nullable = false, defaultObjectValue = "0")
private Boolean chkGiacenzaNeg;
@EntityChild

View File

@@ -118,11 +118,11 @@ public class MtbLisv extends EntityBase {
@SqlField(value = "val_promo", defaultObjectValue = "0")
private BigDecimal valPromo;
@SqlField(value = "add_ric_spese", defaultObjectValue = "false", nullable = false)
@SqlField(value = "add_ric_spese", defaultObjectValue = "0", nullable = false)
private Boolean addRicSpese;
@SqlField(value = "add_val_spese", defaultObjectValue = "false", nullable = false)
@SqlField(value = "add_val_spese", defaultObjectValue = "0", nullable = false)
private Boolean addValSpese;
@SqlField(value = "add_sco_spese", defaultObjectValue = "false", nullable = false)
@SqlField(value = "add_sco_spese", defaultObjectValue = "0", nullable = false)
private Boolean addScoSpese;
public String getCodMart() {

View File

@@ -36,10 +36,10 @@ public class MtbSgrp extends EntityBase {
@SqlField(value = "ordinamento", nullable = false)
private Integer ordinamento;
@SqlField(value = "chk_giacenza_neg", nullable = false, defaultObjectValue = "false")
@SqlField(value = "chk_giacenza_neg", nullable = false, defaultObjectValue = "0")
private Boolean chkGiacenzaNeg;
@SqlField(value = "flag_reso", nullable = false, defaultObjectValue = "true")
@SqlField(value = "flag_reso", nullable = false, defaultObjectValue = "1")
private Boolean flagReso;
@EntityChild

View File

@@ -35,7 +35,7 @@ public class StbFilterDf extends EntityBase {
@SqlField(value = "object_value", maxLength = 255, nullable = false)
private String objectValue;
@SqlField(value = "object_visible", maxLength = 255, nullable = false, defaultObjectValue = "true")
@SqlField(value = "object_visible", maxLength = 255, nullable = false, defaultObjectValue = "1")
private Boolean objectVisible;
public StbFilterDf() {

View File

@@ -55,7 +55,7 @@ public class StbGestSetup extends EntityBase {
@SqlField(value = "flag_setup_depo", maxLength = 1, nullable = false)
private String flagSetupDepo;
@SqlField(value = "flag_multi_value", nullable = false, defaultObjectValue = "false")
@SqlField(value = "flag_multi_value", nullable = false, defaultObjectValue = "0")
private Boolean flagMultiValue;
@SqlField(value = "flag_setup_user_web", maxLength = 1, nullable = false)

View File

@@ -90,6 +90,8 @@ public class TtbLine extends EntityBase {
private BigDecimal percRetrocessione;
@SqlField(value = "moltiplicatore_prezzo_base")
private BigDecimal moltiplicatorePrezzoBase;
@SqlField(value = "num_min_art_col", defaultObjectValue = "0", nullable = false)
private short numMinArtCol;
@EntityChild
private List<TtbLinePeriod> ttbLinePeriod;
@@ -386,10 +388,6 @@ public class TtbLine extends EntityBase {
this.percRetrocessione = percRetrocessione;
}
public BigDecimal getMoltiplicatorePrezzoBase() {
return moltiplicatorePrezzoBase;
}
public String getFlagAttivaCambioMerce() {
return flagAttivaCambioMerce;
}
@@ -399,10 +397,23 @@ public class TtbLine extends EntityBase {
return this;
}
public BigDecimal getMoltiplicatorePrezzoBase() {
return moltiplicatorePrezzoBase;
}
public void setMoltiplicatorePrezzoBase(BigDecimal moltiplicatorePrezzoBase) {
this.moltiplicatorePrezzoBase = moltiplicatorePrezzoBase;
}
public short getNumMinArtCol() {
return numMinArtCol;
}
public TtbLine setNumMinArtCol(short numMinArtCol) {
this.numMinArtCol = numMinArtCol;
return this;
}
public List<TtbLinePeriod> getTtbLinePeriod() {
return ttbLinePeriod;
}

View File

@@ -100,10 +100,10 @@ public class VtbList extends EntityBase {
private String flagECommerce;
@ImportFromParent
@SqlField(value = "flag_add_sfrido", maxLength = 1, nullable = false, defaultObjectValue = "true")
@SqlField(value = "flag_add_sfrido", maxLength = 1, nullable = false, defaultObjectValue = "1")
private Boolean flagAddSfrido;
@SqlField(value = "flag_add_trasp", maxLength = 1, nullable = false, defaultObjectValue = "true")
@SqlField(value = "flag_add_trasp", maxLength = 1, nullable = false, defaultObjectValue = "1")
private Boolean flagAddTrasp;
@JsonProperty("versione_rif")

View File

@@ -47,8 +47,8 @@ public class VtbRangeRicarico extends EntityBase {
@SqlField(value = "flag_multiplo", maxLength = 1, nullable = true)
String flagMultiplo;
@SqlField(value = "flag_attivo", nullable = false, defaultObjectValue = "true")
BooleanExpression flagAttivo;
@SqlField(value = "flag_attivo", nullable = false, defaultObjectValue = "1")
Boolean flagAttivo;
public String getCodMgrp() {
return codMgrp;
@@ -114,11 +114,11 @@ public class VtbRangeRicarico extends EntityBase {
this.flagMultiplo = flagMultiplo;
}
public BooleanExpression getFlagAttivo() {
public Boolean getFlagAttivo() {
return flagAttivo;
}
public VtbRangeRicarico setFlagAttivo(BooleanExpression flagAttivo) {
public VtbRangeRicarico setFlagAttivo(Boolean flagAttivo) {
this.flagAttivo = flagAttivo;
return this;
}

View File

@@ -1,7 +1,7 @@
package it.integry.ems_model.utility;
import it.integry.ems.Import.dto.ImportRequestDTO;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.codec.binary.Base64;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFCellUtil;
import org.apache.poi.openxml4j.opc.OPCPackage;
@@ -9,13 +9,8 @@ import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.*;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Required;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.nio.file.Files;
import java.io.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Iterator;
@@ -124,29 +119,11 @@ public class UtilityExcel {
}
public static Iterator<Row> readXlsxFile(Map<String, String> setup, ImportRequestDTO requestDTO) throws Exception {
public static Iterator<Row> readXlsxFile(ImportRequestDTO requestDTO) throws Exception {
OPCPackage pkg;
String path = setup.get("PATH_FILE");
String fileName = setup.get("FILE_FILTER");
InputStream stream = new ByteArrayInputStream(Base64.decodeBase64(requestDTO.getRawContentB64()));
if (UtilityString.isNullOrEmpty(path))
path = requestDTO.getPathFile();
if (UtilityString.isNullOrEmpty(fileName))
fileName = requestDTO.getFileName();
if (!FilenameUtils.getExtension(fileName).equalsIgnoreCase("xlsx"))
throw new Exception("Formato file non supportato");
if (!path.endsWith("\\") || !path.endsWith("/"))
path = path + File.separator;
File file = new File(path + fileName);
if (!file.exists()) {
throw new Exception(String.format("Impossibile aprire il file %s.", path + fileName));
}
pkg = OPCPackage.open(file);
pkg = OPCPackage.open(stream);
XSSFWorkbook workbook = new XSSFWorkbook(pkg);
XSSFSheet sheet = workbook.getSheetAt(0);
pkg.close();

View File

@@ -418,7 +418,7 @@ public class ContabilImportService {
List<EntityBase> listEntityBase = new ArrayList<>();
Map<String, String> setup = setupGest.getImportSetupSection(multiDBTransactionManager.getPrimaryConnection(), type, format);
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(setup, requestDTO);
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(requestDTO);
//Ignoro le prime tre righe di intestazione
for (int i = 0; i < 3; i++) {
if (rowIterator.hasNext()) {

View File

@@ -181,8 +181,9 @@ public class DocCostiTrasporto {
}
}
/*Se si tratta di STEF è necessario verificare se il cliente è tra quelli gestiti a PALLET ed in tal caso il tipo calcolo andrà calcolato nuovamente,
purtroppo STEF non ci fornisce nel file per ogni cliente ce tipo di costo è stato associato*/
/*Se si tratta di STEF è necessario verificare se il cliente è tra quelli gestiti a PALLET ed in tal caso il tipo calcolo andrà cambiato,
purtroppo STEF non fornisce nel file per ogni cliente che tipo di costo è stato associato.
Siamo costretti a fare il controllo qui perchè nel file non abbiamo il codice cliente e solo in questo punto viene identificato*/
if (format.equalsIgnoreCase(STEF)){
if (codAnag != null && elencoClientiTipoCalcPallet != null && elencoClientiTipoCalcPallet.indexOf(codAnag) >= 0){
tipoCalc = "PEDANE";

View File

@@ -22,8 +22,6 @@ public class DocumentiProdDaFabbDTO {
private String matricola;
private String generaScarico;
public String getGestione() {
return gestione;
}
@@ -87,11 +85,4 @@ public class DocumentiProdDaFabbDTO {
return this;
}
public String getGeneraScarico() {
return generaScarico;
}
public void setGeneraScarico(String generaScarico) {
this.generaScarico = generaScarico;
}
}

View File

@@ -886,7 +886,7 @@ public class DocumentiAcquistoImportService {
throw new Exception("File con data antecedente alla data prevista per l'importazione");
}
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(setup, requestDTO);
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(requestDTO);
List<RifOrdApuliaDTO> rifOrdApuliaList = new ArrayList<>();
while (rowIterator.hasNext()) {

View File

@@ -12,8 +12,6 @@ import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityDate;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@@ -29,7 +27,6 @@ import java.util.List;
@Service
@Scope(value = "request")
public class DocumentiProdDaFabb {
private final Logger logger = LogManager.getLogger();
@Autowired
private SetupGest setupGest;
@Autowired
@@ -54,7 +51,6 @@ public class DocumentiProdDaFabb {
String codDtipScarGiroc = setupGest.getImportSetup(connect, type, format, "COD_DTIP_SCAR_GIROC");
if (ordini.size() != 0) {
generaScarico = ordini.get(0).getGeneraScarico();
chiudiCommessa = ordini.get(0).getChiudiCommessa();
codJcom = ordini.get(0).getCodJcom();
}
@@ -65,74 +61,26 @@ public class DocumentiProdDaFabb {
MtbPartitaMag lottoProd = null;
Integer index = 0;
query = "select righeOrd.cod_mart, " +
" righeOrd.partita_mag, " +
" righeOrd.data_ord, " +
" righeOrd.num_ord, " +
" righeOrd.riga_ord, " +
" righeOrd.cod_mdep, " +
" righeOrd.cod_anag, " +
" righeOrd.unt_ord, " +
" righeOrd.qta_ord * (" + qtaProd.toString() + " / ordRoot.qta_prod) , " +
" righeOrd.rap_conv, " +
" ordRoot.unt_mis_prod, " +
" ordRoot.rap_conv_prod, " +
" ordRoot.cod_prod, " +
" ordRoot.partita_mag_prod " +
" from (SELECT case when CHARINDEX('_', dtb_ordt.item_id) = 0 THEN item_id ELSE substring(dtb_ordt.item_id, 1, CHARINDEX('_', dtb_ordt.item_id) -1) end item_root, " +
" dtb_ordr.cod_mart, " +
" dtb_ordr.partita_mag, " +
" dtb_ordr.cod_jcom, " +
" dtb_ordr.data_ord, " +
" dtb_ordr.num_ord, " +
" dtb_ordr.riga_ord, " +
" dtb_ordt.cod_mdep, " +
" dtb_ordt.cod_anag, " +
" dtb_ordr.unt_ord, " +
" dtb_ordr.qta_ord, " +
" dtb_ordr.rap_conv, " +
" dtb_ordr.system_note " +
" FROM dtb_ordt, " +
" dtb_ordr " +
" WHERE dtb_ordt.gestione = 'L' AND " +
" dtb_ordt.gestione = dtb_ordr.gestione AND " +
" dtb_ordt.data_ord = dtb_ordr.data_ord AND " +
" dtb_ordt.num_ord = dtb_ordr.num_ord)righeOrd INNER JOIN (select item_id , " +
" cod_prod, " +
" unt_mis_prod, " +
" rap_conv_prod, " +
" qta_prod, " +
" partita_mag as partita_mag_prod " +
" from dtb_ordt " +
" where dtb_ordt.gestione = " + UtilityDB.valueToString(riga.getGestione()) + " AND " +
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(riga.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
" dtb_ordt.num_ord = " + UtilityDB.valueToString(riga.getNumOrd()) + ")ordRoot ON righeOrd.item_root = ordRoot.item_id " +
" LEFT OUTER JOIN ((select case when CHARINDEX('_', dtb_ordt.item_id) = 0 THEN item_id ELSE substring(dtb_ordt.item_id, 1, CHARINDEX('_', dtb_ordt.item_id) -1) end item_root, " +
" cod_prod " +
" from dtb_ordt " +
" where gestione = 'L' and " +
" cod_jcom = " + UtilityDB.valueToString(codJcom) + "))ordSL ON righeOrd.item_root = ordSL.item_root and " +
" righeOrd.cod_mart = ordSL.cod_prod " +
" WHERE ordSL.cod_prod IS NULL AND " +
" ISNULL(righeOrd.system_note,'') <> 'NO_GEN_SCARICHI'";
query = "select dtb_ordt.cod_mdep, " +
" dtb_ordt.cod_anag, " +
" dtb_ordt.unt_mis_prod, " +
" dtb_ordt.rap_conv_prod, " +
" dtb_ordt.cod_prod, " +
" dtb_ordt.partita_mag " +
" from dtb_ordt " +
" where dtb_ordt.gestione = " + UtilityDB.valueToString(riga.getGestione()) + " AND " +
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(riga.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
" dtb_ordt.num_ord = " + UtilityDB.valueToString(riga.getNumOrd());
PreparedStatement info = connect.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet res = info.executeQuery();
while (res.next()) {
String codMart = res.getString(1);
String partitaMag = res.getString(2);
Date dataOrd = res.getDate(3);
Integer numOrd = res.getInt(4);
Integer rigaOrd = res.getInt(5);
String codMdep = res.getString(6);
String codAnag = res.getString(7);
String untDoc = res.getString(8);
BigDecimal qtaDoc = res.getBigDecimal(9);
BigDecimal rapConv = res.getBigDecimal(10);
String untMisProd = res.getString(11);
BigDecimal rapConvProd = res.getBigDecimal(12);
String codProd = res.getString(13);
String partitaMagProd = res.getString(14);
String codMdep = res.getString(1);
String codAnag = res.getString(2);
String untMisProd = res.getString(3);
BigDecimal rapConvProd = res.getBigDecimal(4);
String codProd = res.getString(5);
String partitaMagProd = res.getString(6);
index++;
@@ -238,21 +186,6 @@ public class DocumentiProdDaFabb {
}
}
// Creazione riga documento di scarico
if (generaScarico.compareTo("S") == 0){
DtbDocr docRScar = new DtbDocr();
docRScar.setCodMart(codMart);
docRScar.setPartitaMag(partitaMag);
docRScar.setUntDoc(untDoc);
docRScar.setQtaDoc(qtaDoc);
docRScar.setRapConv(rapConv);
docRScar.setCodJcom(codJcom);
docRScar.setDataOrd(dataOrd);
docRScar.setNumOrd(numOrd);
docRScar.setRigaOrd(rigaOrd);
docScar.getDtbDocr().add(docRScar);
}
}
res.close();
info.close();

View File

@@ -30,6 +30,8 @@ public class ArticoliDTO implements Serializable {
private BigDecimal prezzo_base;
@SqlField
private BigDecimal val_scatto;
@SqlField
private short num_min_art_col;
private List<ColoriDTO> colori = new ArrayList<ColoriDTO>();
@@ -141,4 +143,13 @@ public class ArticoliDTO implements Serializable {
public void setVal_scatto(BigDecimal val_scatto) {
this.val_scatto = val_scatto;
}
public short getNum_min_art_col() {
return num_min_art_col;
}
public ArticoliDTO setNum_min_art_col(short num_min_art_col) {
this.num_min_art_col = num_min_art_col;
return this;
}
}

View File

@@ -41,6 +41,8 @@ public class UtenteDTO implements Serializable {
private String nomeAzienda;
@SqlField
private String recTelObbligatorio;
@SqlField
private String nomeNegozioRequired;
public UtenteDTO(String user_name, String full_name, String user_code,
String cod_vlis_newclie, String cod_anag_newclie, BigDecimal sc1, BigDecimal sc2, String cod_paga) {
@@ -186,4 +188,12 @@ public class UtenteDTO implements Serializable {
this.recTelObbligatorio = recTelObbligatorio;
return this;
}
}
public String getNomeNegozioRequired() {
return nomeNegozioRequired;
}
public void setNomeNegozioRequired(String nomeNegozioRequired) {
this.nomeNegozioRequired = nomeNegozioRequired;
}
}

View File

@@ -28,6 +28,7 @@ import it.integry.ems_model.entity.WtbFavoriteArt;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import org.apache.commons.io.IOUtils;
import org.apache.logging.log4j.LogManager;
@@ -46,6 +47,7 @@ import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Scope("request")
@@ -69,7 +71,7 @@ public class OrdikidsService {
private EntityProcessor entityProcessor;
public LoginDTO login(String md5Agente) throws Exception {
String sql, flag_bloccoPagaClie, flag_bloccoPagaNewClie, flag_bloccoListino, flag_bloccoMenuListini, elencoListini, condListini, flag_moltip, flag_vendAsso;
String sql, flag_bloccoPagaClie, flag_bloccoPagaNewClie, flag_nomeNegozioRequired, flag_bloccoListino, flag_bloccoMenuListini, elencoListini, condListini, flag_moltip, flag_vendAsso;
PreparedStatement ps;
Map<String, String> DatiAgente = getCond_vvwClientiAgenti(md5Agente);
@@ -110,28 +112,14 @@ public class OrdikidsService {
}
rs.close();
flag_bloccoPagaClie = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "BLOCCO_PAGA_CLIE");
if (flag_bloccoPagaClie.compareTo("") == 0) {
flag_bloccoPagaClie = "N";
}
utente.setBloccoPagaClie(flag_bloccoPagaClie);
HashMap<String, String> setupSection = setupGest.getSetupSection(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP");
flag_bloccoPagaNewClie = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "BLOCCO_PAGA_NEWCLIE");
if (flag_bloccoPagaNewClie.compareTo("") == 0) {
flag_bloccoPagaNewClie = "N";
}
utente.setBloccoPagaNewClie(flag_bloccoPagaNewClie);
flag_moltip = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "MOLTIP_BARCODEMODE");
if (flag_moltip.compareTo("") == 0) {
flag_moltip = "S";
}
utente.setMoltipl_barcodemode(flag_moltip);
flag_vendAsso = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "VEND_ASSO_OBBLIGATORIO");
utente.setVend_asso_obbligatorio(flag_vendAsso);
utente.setRecTelObbligatorio(setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "REC_TEL_OBBLIGATORIO"));
utente.setBloccoPagaClie(UtilityHashMap.getValueIfExists(setupSection, "BLOCCO_PAGA_CLIE", "N"));
utente.setBloccoPagaNewClie(UtilityHashMap.getValueIfExists(setupSection, "BLOCCO_PAGA_NEWCLIE", "N"));
utente.setNomeNegozioRequired(UtilityHashMap.getValueIfExists(setupSection, "NOME_NEGOZIO_REQUIRED", "N"));
utente.setMoltipl_barcodemode(UtilityHashMap.getValueIfExists(setupSection, "MOLTIP_BARCODEMODE", "S"));
utente.setVend_asso_obbligatorio(UtilityHashMap.getValueIfExists(setupSection, "VEND_ASSO_OBBLIGATORIO"));
utente.setRecTelObbligatorio(UtilityHashMap.getValueIfExists(setupSection, "REC_TEL_OBBLIGATORIO"));
sql = "SELECT gtb_paga.cod_paga,\n" +
" gtb_paga.descrizione,\n" +
@@ -150,38 +138,43 @@ public class OrdikidsService {
List<ElencoListiniDTO> ElencoListiniMenu = new ArrayList<>();
flag_bloccoMenuListini = "S"; //Inizializzazione con il blocco del menu
flag_bloccoListino = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "BLOCCO_LISTINO");
if (flag_bloccoListino.compareTo("") == 0 || flag_bloccoListino.compareTo("S") == 0) {
flag_bloccoListino = setupSection.get("BLOCCO_LISTINO");
if (flag_bloccoListino.equalsIgnoreCase("") || flag_bloccoListino.equalsIgnoreCase("S")) {
//S acquisisce il listino Esclusivamente dalle categorie di sconto, il menu è bloccato
flag_bloccoMenuListini = "S";
ElencoListiniMenu.add(0, new ElencoListiniDTO("", "IN FUNZIONE DELLA LINEA"));
} else {
if (flag_bloccoListino.compareTo("N") == 0) {
if (flag_bloccoListino.equalsIgnoreCase("N")) {
//N consente di scegliere o il calcolo in base alle categorie di sconto o
// un listino diverso se presenti in ELENCO_LISTINI
// il menu è attivo
flag_bloccoMenuListini = flag_bloccoListino;
ElencoListiniMenu.add(0, new ElencoListiniDTO("", "IN FUNZIONE DELLA LINEA"));
} else if (flag_bloccoListino.compareTo("L") == 0) {
} else if (flag_bloccoListino.equalsIgnoreCase("L")) {
//se L consente di scegliere solo uno dei listini presenti in ELENCO_LISTINI
// il menu è attivo
flag_bloccoMenuListini = "N";
}
List<ElencoListiniDTO> ElencoListini;
elencoListini = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "ELENCO_LISTINI");
if (elencoListini.compareTo("") != 0) {
condListini = "'" + elencoListini.replaceAll(",", "', '") + "' ";
elencoListini = setupSection.get("ELENCO_LISTINI");
if (!elencoListini.equalsIgnoreCase("")) {
condListini = "'" + elencoListini.replaceAll(",", "', '") + "' ";
sql = "SELECT cod_vlis, descrizione FROM vtb_list WHERE cod_vlis IN ( " + condListini + " ) ";
ps = multiDBTransactionManager.prepareStatement(sql);
ElencoListini = new ResultSetMapper()
.mapResultSetToList(ps.executeQuery(), ElencoListiniDTO.class);
if (ElencoListini == null) ElencoListini = new ArrayList<ElencoListiniDTO>();
if (ElencoListini == null) {
ElencoListini = new ArrayList<ElencoListiniDTO>();
}
ps.close();
ElencoListiniMenu.addAll(ElencoListini);
}
}
utente.setBloccoListino(flag_bloccoMenuListini);
sql = "SELECT top 1 Convert(varchar(10), dateupd , 121) as dateupd "
@@ -220,7 +213,7 @@ public class OrdikidsService {
ps.close();
List<CategorieClienteDTO> categorie;
String flag_invioCategorie = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "INVIO_CATEGORIE_SCONTO");
String flag_invioCategorie = setupSection.get("INVIO_CATEGORIE_SCONTO");
// if("S".equals(flag_invioCategorie)){
sql = "SELECT DISTINCT vvw_clienti_agenti.cod_sco_cli, vtb_sccl.descrizione, "
@@ -247,7 +240,7 @@ public class OrdikidsService {
}
List<ModuloPvmDTO> moduliPvm = new ArrayList<>();
String jsonModuliPvm = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "MODULI_PVM");
String jsonModuliPvm = setupSection.get("MODULI_PVM");
if (jsonModuliPvm != null && jsonModuliPvm.length() > 0) {
try {
ObjectMapper mapper = new ObjectMapper();
@@ -394,9 +387,6 @@ public class OrdikidsService {
private List<ArticoliDTO> getListArticoli(String codVage, String tableName) throws Exception {
boolean overProduction = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "ORDIKIDS", "SETUP", "VEND_OVER_PRODUCTION");
List<ArticoliDTO> articoli = null;
PreparedStatement ps, psArt;
String sql =
"SELECT ttb_style.cod_style, " +
" mtb_aart.descrizione, " +
@@ -406,9 +396,11 @@ public class OrdikidsService {
" 'N' AS chiedi_disp, " +
" mtb_aart.cod_sco_art, " +
" ttb_style.prezzo_base, " +
" ttb_style.val_scatto " +
" ttb_style.val_scatto, " +
" ttb_line.num_min_art_col " +
"FROM tvvw_agen_line INNER JOIN ttb_style ON tvvw_agen_line.cod_line = ttb_style.cod_line and ttb_style.anno_stag = tvvw_agen_line.anno_stag " +
" INNER JOIN mtb_aart ON ttb_style.cod_style = mtb_aart.cod_mart " +
" INNER JOIN ttb_line ON ttb_style.cod_line = ttb_line.cod_line " +
"WHERE tvvw_agen_line.cod_vage =" + UtilityDB.valueToString(codVage) + " AND " +
" CONVERT(VARCHAR, GETDATE(), 111) BETWEEN tvvw_agen_line.data_iniz_ord AND tvvw_agen_line.data_fine_ord AND " +
" tvvw_agen_line.data_iniz_ord >= tvvw_agen_line.first_data_iniz_ord AND " +
@@ -435,39 +427,37 @@ public class OrdikidsService {
" CASE WHEN qta_ord_prod > 0 THEN 'S' ELSE 'N'END AS chiedi_disp, " +
" art.cod_sco_art, " +
" art.prezzo_base, " +
" art.val_scatto " +
" art.val_scatto, " +
" art.num_min_art_col " +
" FROM art left outer join ordP on art.cod_style = ordP.cod_mart ";
}
ps = multiDBTransactionManager.prepareStatement(sql);
articoli = new ResultSetMapper()
.mapResultSetToList(ps.executeQuery(), ArticoliDTO.class);
List<ArticoliDTO> articoli = new ResultSetMapper()
.mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ArticoliDTO.class);
if (articoli == null) articoli = new ArrayList<>();
ps.close();
sql = "SELECT ttb_style.cod_style, mtb_aart.descrizione, ttb_style.des_estera, " +
" ttb_style.flag_asso, 'S' chiedi_disp, " +
" mtb_aart.cod_sco_art, ttb_style.prezzo_base, ttb_style.val_scatto " +
" mtb_aart.cod_sco_art, ttb_style.prezzo_base, ttb_style.val_scatto, " +
" ttb_line.num_min_art_col " +
"FROM tvvw_agen_line INNER JOIN ttb_style ON tvvw_agen_line.cod_line = ttb_style.cod_line and tvvw_agen_line.anno_stag = ttb_style.anno_stag " +
" INNER JOIN mtb_aart ON ttb_style.cod_style = mtb_aart.cod_mart " +
" INNER JOIN ttb_line ON ttb_style.cod_line = ttb_line.cod_line " +
" INNER JOIN (Select cod_style " +
" from dbo.ftx_getDisponibilitaArticoli( CONVERT(varchar, GETDATE(), 111), null, null, null, null, null, null)tab " +
" from dbo.ftx_getDisponibilitaArticoli( CAST(GETDATE() as DATE), null, null, null, null, null, null)tab " +
" Where tab.qta_disp > 0 " +
" Group by cod_style ) disponib ON ttb_style.cod_style = disponib.cod_style " +
" WHERE tvvw_agen_line.cod_vage =" + UtilityDB.valueToString(codVage) + " AND " +
" CONVERT(VARCHAR, GETDATE(), 111) BETWEEN tvvw_agen_line.data_iniz_riord AND tvvw_agen_line.data_fine_riord AND " +
" CAST(GETDATE() as DATE) BETWEEN tvvw_agen_line.data_iniz_riord AND tvvw_agen_line.data_fine_riord AND " +
" tvvw_agen_line.data_iniz_riord >= tvvw_agen_line.first_data_iniz_riord AND " +
" ttb_style.flag_listino = 'S' ";
psArt = multiDBTransactionManager.prepareStatement(sql);
List<ArticoliDTO> articoliPronto = new ResultSetMapper()
.mapResultSetToList(psArt.executeQuery(), ArticoliDTO.class);
.mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ArticoliDTO.class);
if (articoliPronto == null) articoliPronto = new ArrayList<>();
articoli.addAll(articoliPronto);
psArt.close();
//CREAZIONE TABELLA TEMPORANEA CHE DOVRA' CONTENERE TUTTE LE ISTANZE DELLA CLASSE ArticoliDTO
if (!UtilityString.isNullOrEmpty(tableName)) {
@@ -479,7 +469,8 @@ public class OrdikidsService {
+ " chiedi_disp varchar(1),"
+ " cod_sco_art varchar(5),"
+ " prezzo_base decimal(20, 5), "
+ " val_scatto decimal(20, 5)) ";
+ " val_scatto decimal(20, 5), "
+ " num_min_art_col tinyint) ";
PreparedStatement info = multiDBTransactionManager.prepareStatement(sql);
info.executeUpdate();
@@ -505,52 +496,37 @@ public class OrdikidsService {
List<CodBarreDTO> codBarre = null;
List<ArticoliDTO> articoli = null;
Map<String, String> DatiAgente = new HashMap<String, String>();
DatiAgente = getCond_vvwClientiAgenti(md5User);
Map<String, String> DatiAgente = getCond_vvwClientiAgenti(md5User);
if (DatiAgente.size() > 0) {
PreparedStatement ps;
String sql;
String codVage = DatiAgente.get("cod_vage");
//ACQUISIZIONE ELENCO ARTICOLI
String tableName = UtilityDB.defTmpTabName("t1_");
articoli = this.getListArticoli(codVage, tableName);
articoli = this.getListArticoli(codVage);
List<String> articoliCodStyles = new ArrayList<String>();
for (ArticoliDTO articoliDTO : articoli) {
articoliCodStyles.add(articoliDTO.getCod_style());
}
List<String> articoliCodStyles = articoli.stream().map(x -> x.getCod_style()).collect(Collectors.toList());
String articoliInVector = "'" + Joiner.on("','").skipNulls().join(articoliCodStyles) + "'";
sql = "SELECT ttb_style_colori.cod_col, ttb_style_colori.descrizione, ttb_style_colori.cod_style, "
String sql = "SELECT ttb_style_colori.cod_col, ttb_style_colori.descrizione, ttb_style_colori.cod_style, "
+ "CASE WHEN ttb_style_colori.cod_col = ttb_style.cod_col_camp THEN 'S' ELSE 'N' end as flag_campione "
+ "FROM ttb_style_colori "
+ "left outer join ttb_style ON ttb_style.cod_style = ttb_style_colori.cod_style "
+ "WHERE ttb_style_colori.flag_attivo = 'S' AND ttb_style_colori.cod_style IN(" + articoliInVector + ")";
ps = multiDBTransactionManager.prepareStatement(sql);
List<ColoriDTO> coloriFull = new ResultSetMapper()
.mapResultSetToList(ps.executeQuery(), ColoriDTO.class);
if (coloriFull == null) coloriFull = new ArrayList<ColoriDTO>();
ps.close();
.mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ColoriDTO.class);
if (coloriFull == null) coloriFull = new ArrayList<>();
sql = "SELECT cod_tagl, num_scatto, costo, cod_style, pos FROM ttb_style_taglie WHERE flag_attivo = 'S' AND cod_style IN(" + articoliInVector + ") ORDER BY cod_style, pos";
ps = multiDBTransactionManager.prepareStatement(sql);
List<TaglieDTO> taglieFull = new ResultSetMapper()
.mapResultSetToList(ps.executeQuery(), TaglieDTO.class);
if (taglieFull == null) taglieFull = new ArrayList<TaglieDTO>();
ps.close();
.mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, TaglieDTO.class);
if (taglieFull == null) taglieFull = new ArrayList<>();
for (ArticoliDTO articoloDTO : articoli) {
List<ColoriDTO> coloriOLDStyle = new ArrayList<ColoriDTO>();
for (ColoriDTO colore : coloriFull) {
if (colore.getCodStyle().equalsIgnoreCase(articoloDTO.getCod_style())) coloriOLDStyle.add(colore);
}
List<ColoriDTO> coloriOLDStyle =
coloriFull.stream().filter(x -> x.getCodStyle().equalsIgnoreCase(articoloDTO.getCod_style())).collect(Collectors.toList());
articoloDTO.setColori(coloriOLDStyle);
@@ -573,22 +549,7 @@ public class OrdikidsService {
+ " mtb_lisv.cod_mart = ttb_lisv_taglie.cod_style AND "
+ " ttb_lisv_taglie.cod_style + ttb_lisv_taglie.cod_tagl IN(" + codStyleTaglInVector + ")";
List<ListiniTaglieDTO> listiniFull = new ArrayList<ListiniTaglieDTO>();
ps = multiDBTransactionManager.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
ListiniTaglieDTO dto = new ListiniTaglieDTO();
dto.setCod_vlis(rs.getString("cod_vlis"));
dto.setPrz_vend(rs.getBigDecimal("prz_vend"));
dto.setRicarica(rs.getBigDecimal("ricarica"));
dto.setCodStyleTagl(rs.getString("style_tagl"));
listiniFull.add(dto);
}
rs.close();
ps.close();
List<ListiniTaglieDTO> listiniFull = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, ListiniTaglieDTO.class);
for (TaglieDTO tagliaDTO : articoloDTO.getTaglie()) {
List<ListiniTaglieDTO> listiniOLDStyle = new ArrayList<ListiniTaglieDTO>();
@@ -608,23 +569,22 @@ public class OrdikidsService {
sql = "SELECT isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) as cod_style, "
+ " null as cod_asso,"
+ " cod_barre "
+ " FROM " + tableName + " as TabArt, ttb_bar_code, mtb_aart "
+ " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) = TabArt.cod_style AND "
+ " FROM ttb_bar_code, mtb_aart "
+ " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart)IN (" + articoliInVector + ") AND "
+ " mtb_aart.cod_mart = ttb_bar_code.cod_style"
+ " UNION "
+ " SELECT isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) as cod_style, "
+ " ttb_style_ass.cod_asso, "
+ " ttb_style_ass.cod_barre "
+ " FROM " + tableName + " as TabArt, ttb_style_ass, mtb_aart "
+ " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) = TabArt.cod_style AND "
+ " FROM ttb_style_ass, mtb_aart "
+ " WHERE isNull(mtb_aart.cod_mart_stat, mtb_aart.cod_mart) IN (" + articoliInVector + ") AND "
+ " mtb_aart.cod_mart = ttb_style_ass.cod_style "
+ "ORDER BY 1, 2";
ps = multiDBTransactionManager.prepareStatement(sql);
codBarre = new ResultSetMapper().mapResultSetToList(ps.executeQuery(), CodBarreDTO.class);
if (codBarre == null) codBarre = new ArrayList<CodBarreDTO>();
ps.close();
codBarre = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CodBarreDTO.class);
if (codBarre == null) codBarre = new ArrayList<>();
}
if (articoli == null) {
@@ -632,7 +592,7 @@ public class OrdikidsService {
}
if (codBarre == null) {
codBarre = new ArrayList<CodBarreDTO>();
codBarre = new ArrayList<>();
}
return new ArticoliCodbarreDTO(articoli, codBarre);

View File

@@ -48,7 +48,7 @@ public class ImportGrigliaAcquistoService {
Connection conn = multiDBTransactionManager.getPrimaryConnection();
Map<String, String> setup = setupGest.getImportSetupSection(conn, type, format);
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(setup, requestDTO);
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(requestDTO);
List<AtbGriglieArt> atbGriglieArtList = new ArrayList<>();

View File

@@ -694,36 +694,17 @@ public class ImportListiniVenditaService {
public List<EntityBase> importListinoCarelli(String type, String format, ImportRequestDTO requestDTO, List<AnomalieDTO> anomalie, boolean headless) throws Exception {
List<EntityBase> entityList = null;
Date dataInizio = null, dataFine = null, localDate = new Date(), currentDataInizio = null, currentDataFine;
boolean areDatesEqual = true;
boolean areDatesEqual = true, isVolantino = format.equalsIgnoreCase(ListiniVenditaImporter.Format.VOLANTINI.toString());
List<MtbLisvData> listMtbLisvData = new ArrayList<>();
Map<String, String> setup = setupGest.getImportSetupSection(multiDBTransactionManager.getPrimaryConnection(), type, format);
boolean isVolantino = format.equalsIgnoreCase(ListiniVenditaImporter.Format.VOLANTINI.toString());
String path = setup.get("PATH_FILE");
String fileName = requestDTO.getFileName();
if (UtilityString.isNullOrEmpty(fileName))
fileName = setup.get("FILE_FILTER");
if (!path.endsWith("\\") || !path.endsWith("/")) {
path = path + File.separator;
}
List<MtbLisvData> listMtbLisvData = new ArrayList<>();
FileInputStream file = new FileInputStream(path + fileName);
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
// Ignora la prima riga (header)
Iterator<Row> rowIterator = sheet.iterator();
if (rowIterator.hasNext()) {
rowIterator.next();
}
// Verifica se il foglio di lavoro è vuoto
if (!rowIterator.hasNext()) {
throw new Exception("Il file è vuoto.");
}
Iterator<Row> rowIterator = UtilityExcel.readXlsxFile(requestDTO);
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
@@ -737,7 +718,7 @@ public class ImportListiniVenditaService {
String articolo = fillString(UtilityExcel.getCellAsString(row, 1), 9);
if (articolo.isEmpty())
throw new Exception("Il codice articolo è vuoto.");
throw new Exception(String.format("Il codice articolo è vuoto. (Riga: %s)", row.getRowNum() + 1));
String dataInizioString = dataInizioFine(true, row);
@@ -750,7 +731,7 @@ public class ImportListiniVenditaService {
// Verifica che dataInizio sia maggiore di localDate
if (currentDataInizio.compareTo(localDate) <= 0) {
throw new Exception("La data di inizio è precedente o uguale alla data corrente.");
throw new Exception(String.format("La data di inizio è precedente o uguale alla data corrente. (Riga: %s)", row.getRowNum() + 1));
}
// Controlla se la data di inizio è diversa dalla prima data
@@ -762,7 +743,7 @@ public class ImportListiniVenditaService {
dataInizio = currentDataInizio;
}else{
throw new Exception("La data inizio è vuota");
throw new Exception(String.format("La data inizio è vuota. (Riga: %s)", row.getRowNum() + 1));
}
if (!dataFineString.isEmpty()){
@@ -770,7 +751,7 @@ public class ImportListiniVenditaService {
// Verifica che dataFine sia maggiore di dataInizio
if (currentDataFine.compareTo(currentDataInizio) < 0) {
throw new Exception("La data fine è precedente alla data di inizio.");
throw new Exception(String.format("La data fine è precedente alla data di inizio. (Riga: %s)", row.getRowNum() + 1));
}
// Controlla se la data di inizio è diversa dalla prima data
@@ -782,7 +763,7 @@ public class ImportListiniVenditaService {
dataFine = currentDataFine;
}else{
throw new Exception("La data fine è vuota");
throw new Exception(String.format("La data fine è vuota. (Riga: %s)", row.getRowNum() + 1));
}
int maxGiorni = Integer.parseInt(setupGest.getSetup(
@@ -794,14 +775,14 @@ public class ImportListiniVenditaService {
if(maxGiorni != 0){
int count = UtilityDate.DaysAfter(dataInizio, dataFine);
if(count > maxGiorni){
throw new Exception("Differenza tra data inizio e data fine maggiore di: " + maxGiorni);
throw new Exception(String.format("Differenza tra data inizio e data fine maggiore di: %s (Riga: %s)", maxGiorni, row.getRowNum() + 1));
}
}
BigDecimal prezzo = getPrezzoAsBigDecimal(row.getCell(4));
if (prezzo.compareTo(BigDecimal.ZERO) == 0) {
throw new Exception("Il prezzo è uguale a zero.");
throw new Exception(String.format("Il prezzo è uguale a zero. (Riga: %s)", row.getRowNum() + 1));
}
MtbLisvData riga = new MtbLisvData();
@@ -831,8 +812,6 @@ public class ImportListiniVenditaService {
listMtbLisvData.add(riga);
}
file.close();
// Verifica che tutte le date siano uguali
if(isVolantino && !areDatesEqual) {
throw new Exception("Le date non sono tutte uguali.");
@@ -892,7 +871,6 @@ public class ImportListiniVenditaService {
throw e;
}
return entityList;
}