|
|
|
|
@@ -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;
|
|
|
|
|
|