This commit is contained in:
2025-04-23 13:26:30 +02:00
parent dae8d94498
commit ae1e8afa0e
4 changed files with 62 additions and 49 deletions

View File

@@ -5,10 +5,10 @@
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" />
<option name="HOST" value="servertomcat" />
<option name="PORT" value="8000" />
<option name="PORT" value="8001" />
<option name="AUTO_RESTART" value="false" />
<RunnerSettings RunnerId="Debug">
<option name="DEBUG_PORT" value="8000" />
<option name="DEBUG_PORT" value="8001" />
<option name="LOCAL" value="false" />
</RunnerSettings>
<method v="2" />

View File

@@ -1,5 +1,6 @@
package it.integry.ems_model.utility;
import java.util.ArrayList;
import java.util.List;
@@ -9,4 +10,9 @@ public class UtilityList {
return list == null || list.isEmpty();
}
public static <T> List<T> isNull(List<T> listToCheck, ArrayList<T> defaultValue) {
if (listToCheck == null)
return defaultValue;
return listToCheck;
}
}

View File

@@ -79,7 +79,7 @@ public class PhpAppController {
res = ServiceRestResponse.createPositiveResponse();
} catch (Exception e) {
logger.error(e.getMessage());
logger.error(e.getMessage(),e);
res = ServiceRestResponse.createNegativeResponse(e);
res.setErrorMessage(e.getMessage());
}

View File

@@ -15,6 +15,7 @@ import org.apache.logging.log4j.Logger;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -85,14 +86,13 @@ public class OrderVerify {
// METODO CHE CONTROLLA SE GLI ARTICOLI IMPUTATI SONO PRESENTI NELL'ASSORTIMENTO DEL CLIENTE
// ---------------------------------------------------------------------------------------------------------------
public boolean checkAssortimento(Connection conn) throws Exception {
String ls_codVlis, ls_query, ls_dataValidita, ls_codMart, ls_error = "", ls_codVlisRif = "";
String ls_codVlis, ls_query, ls_error = "", ls_codVlisRif = "";
CustomerData lcl_customer = new CustomerData(conn);
String ls_codGriglia;
boolean lcl_return = true;
//VALORIZZAZIONE VARIABILI
ls_codVlis = "";
ls_dataValidita = "";
ls_query = "";
try {
@@ -107,26 +107,26 @@ public class OrderVerify {
" Wdtb_ordt.serie = " + this.serOrd + " AND " +
" Wdtb_ordt.num_ord = " + this.numOrd;
ls_codVlis = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
ls_codVlis = UtilityString.streNull(UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query));
} else {
/* ****** here we know that codAnag != "NUOVO", so there's no need of passedCodVlis parameter *********/
/* ****** passedCodVlis is used only in case codAnag == "NUOVO" and the already existing query don't manage to reach the codVlis from DB */
ls_codVlis = lcl_customer.getCustomerPriceList(this.codAnag, this.codVdes);
if (ls_codVlis.compareTo("") != 0) {
ls_query = "SELECT cod_vlis_rif FROM vtb_list WHERE cod_vlis = " + UtilityDB.valueToString(ls_codVlis);
ls_codVlisRif = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
ls_codVlisRif = UtilityString.streNull(UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query));
}
}
if (ls_codGriglia.compareTo("") != 0) { /* it means: IF the compared strings are NOT identical */
ls_query = "SELECT MAX(data_validita) FROM vtb_griglia WHERE cod_griglia = " + UtilityDB.valueToString(ls_codGriglia);
ls_dataValidita = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
Date dataValidita = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
ls_query = "SELECT wdtb_ordr.cod_mart " +
"FROM wdtb_ordr LEFT OUTER JOIN vtb_griglia_art ON wdtb_ordr.cod_mart = vtb_griglia_art.cod_mart AND " +
"vtb_griglia_art.cod_griglia = " + UtilityDB.valueToString(ls_codGriglia) + " AND " +
"vtb_griglia_art.data_validita = " + UtilityDB.valueToString(ls_dataValidita) + ", " +
"vtb_griglia_art.data_validita = " + UtilityDB.valueToString(dataValidita) + ", " +
" mtb_aart " +
"WHERE wdtb_ordr.cod_mart = mtb_aart.cod_mart AND " +
" Wdtb_ordr.gestione = " + gestione + " AND " +
@@ -166,6 +166,9 @@ public class OrderVerify {
}
List<String> articoli = UtilityDB.executeSimpleQueryOnlyFirstColumn(conn, ls_query);
if (articoli == null){
throw new Exception();
}
for (String codMart : articoli) {
ls_error = UtilityDB.valueToString("Articolo " + codMart + " non in assortimento.");
boolean insertedLog = insertLog(conn, this.gestione, this.dataOrd, this.serOrd, UtilityString.IntegerToString(this.numOrd, "0"),
@@ -201,7 +204,7 @@ public class OrderVerify {
try {
// ACQUISIZIONE ID RIGA DEL LOG
ls_query =
"SELECT max(id_riga) " +
"SELECT ISNULL(max(id_riga),0) " +
" FROM dtb_ord_log_import " +
" WHERE data_import = " + UtilityDB.valueToString(is_dataImport);
ll_idRiga = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
@@ -306,7 +309,9 @@ public class OrderVerify {
" Wdtb_ordt.flag_annulla = 'N'";
List<WdtbOrdr> listaArticoli = UtilityDB.executeSimpleQueryDTO(conn, ls_query, WdtbOrdr.class);
if (listaArticoli == null){
throw new Exception();
}
for (WdtbOrdr wdtbOrdr : listaArticoli) {
// ACQUISIZIONE DATI ARTICOLO
@@ -338,43 +343,45 @@ public class OrderVerify {
ll_rowCond = 0;
for (PromoDTO promoDTO : elencoPromozioni) {
// ACQUISIZIONE DATI CONDIZIONI CONTRATTUALI
ls_codPromo = promoDTO.getCodPromo();
ls_umVend = UtilityString.streNull(promoDTO.getUmVend());
lc_qtaCnf = promoDTO.getQtaCnf().doubleValue();
ll_rowCond++;
if (elencoPromozioni != null){
for (PromoDTO promoDTO : elencoPromozioni) {
// ACQUISIZIONE DATI CONDIZIONI CONTRATTUALI
ls_codPromo = promoDTO.getCodPromo();
ls_umVend = UtilityString.streNull(promoDTO.getUmVend());
lc_qtaCnf = promoDTO.getQtaCnf().doubleValue();
ll_rowCond++;
if (ls_umVend.compareTo("C") == 0 && lc_qtaCnf != 0) {
lc_qtaOrd = lc_qtaOrdArt / lc_qtaCnf;
} else {
lc_qtaOrd = lc_qtaOrdArt;
if (ls_umVend.compareTo("C") == 0 && lc_qtaCnf != 0) {
lc_qtaOrd = lc_qtaOrdArt / lc_qtaCnf;
} else {
lc_qtaOrd = lc_qtaOrdArt;
}
// RICERCA CONDIZIONE CONTRATTUALE TRA QUELLE GIè INSERITE
ls_query = " SELECT COUNT(*) " +
" FROM " + is_tableCondContr +
" WHERE cod_promo = " + UtilityDB.valueToString(ls_codPromo);
ll_ret = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
if (ll_ret != 0) {
// AGGIORNAMENTO QUANTITè TOTALE CONDIZIONE CONTRATTUALE
ll_currentStep = ll_stepUpdateQtaCondContrArt;
ls_query = " UPDATE " + is_tableCondContr +
" SET qta_tot = qta_tot + " + UtilityDB.valueToString(lc_qtaOrd) +
" WHERE cod_promo = " + UtilityDB.valueToString(ls_codPromo);
UtilityDB.executeSimpleUpdate(conn, ls_query);
} else {
// INSERIMENTO NUOVA CONDIZIONE CONTRATTUALE
ll_currentStep = ll_stepInsertQtaCondContrArt;
ls_query = " INSERT INTO " + is_tableCondContr + " (cod_promo, qta_tot)" +
" VALUES (" + UtilityDB.valueToString(ls_codPromo) + "," + UtilityDB.valueToString(lc_qtaOrd) + ")";
UtilityDB.executeStatement(conn, ls_query);
}
// CONCATENAZIONE SCONTI CONTRATTUALI ARTICOLO
ls_elencoCondContr += ls_codPromo + "|";
}
// RICERCA CONDIZIONE CONTRATTUALE TRA QUELLE GIè INSERITE
ls_query = " SELECT COUNT(*) " +
" FROM " + is_tableCondContr +
" WHERE cod_promo = " + UtilityDB.valueToString(ls_codPromo);
ll_ret = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, ls_query);
if (ll_ret != 0) {
// AGGIORNAMENTO QUANTITè TOTALE CONDIZIONE CONTRATTUALE
ll_currentStep = ll_stepUpdateQtaCondContrArt;
ls_query = " UPDATE " + is_tableCondContr +
" SET qta_tot = qta_tot + " + UtilityDB.valueToString(lc_qtaOrd) +
" WHERE cod_promo = " + UtilityDB.valueToString(ls_codPromo);
UtilityDB.executeSimpleUpdate(conn, ls_query);
} else {
// INSERIMENTO NUOVA CONDIZIONE CONTRATTUALE
ll_currentStep = ll_stepInsertQtaCondContrArt;
ls_query = " INSERT INTO " + is_tableCondContr + " (cod_promo, qta_tot)" +
" VALUES (" + UtilityDB.valueToString(ls_codPromo) + "," + UtilityDB.valueToString(lc_qtaOrd) + ")";
UtilityDB.executeStatement(conn, ls_query);
}
// CONCATENAZIONE SCONTI CONTRATTUALI ARTICOLO
ls_elencoCondContr += ls_codPromo + "|";
}
@@ -968,7 +975,7 @@ public class OrderVerify {
List<String> listaArts = UtilityDB.executeSimpleQueryOnlyFirstColumn(conn, ls_query);
for (String ls_codMart : listaArts) {
for (String ls_codMart : UtilityList.isNull(listaArts, new ArrayList<>())) {
ls_error = "Omaggio non applicabile sull'articolo " + ls_codMart;
try {
lcl_return = insertLog(conn, gestione, dataOrd, serOrd, UtilityString.IntegerToString(numOrd, "0"), ls_error, is_errorID);
@@ -1257,7 +1264,7 @@ public class OrderVerify {
List<String> listaPromo = UtilityDB.executeSimpleQueryOnlyFirstColumn(conn,ls_query);
for (String codPromo : listaPromo) {
for (String codPromo : UtilityList.isNull(listaPromo,new ArrayList<>())) {
// ACQUISIZIONE CONDIZIONE CONTRATTUALE E VERIFICA ESISTENZA TRA LE CONDIZIONI CONTRATTUALI
// PRESENTI NELLA TABELLA TEMPORANEA PRECEDENTEMENTE RIEMPITA IN CHECKCONDCONTR
ll_count = 0;