Sistemare val premio nell'importazione dei listini di apulia e aggiunta possibilità di importare la percentuale del premio

This commit is contained in:
2024-04-10 17:48:57 +02:00
parent 051f3b5ce5
commit 64d077df8b
2 changed files with 31 additions and 7 deletions

View File

@@ -0,0 +1,23 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240410173200 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("IMPORT_LISTINI ACQUISTO", "APULIA_CARREFOUR", "SET_PERC_PREMIO", null, "inserisce sul listino al percentuale del premio prensente nella setup solo se viene importato il prezzo lordo e quindi riscontriamo nella tabella del prezzo netto un prezzo diverso", false, "SI_NO", false, false, false, false, false, null, false);
createSetup("IMPORT_LISTINI ACQUISTO", "APULIA_CARREFOUR", "PERC_PREMIO", null, null, false, null, false, false, false, false, false, null, false);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -126,7 +126,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
+ " apulia.unt_mis_acq AS unt_mis_acq,"
+ " apulia.qta_cnf AS qta_cnf,"
+ " apulia.colli_x_pedane AS colli_x_pedane,"
+ " CASE WHEN lisa.cod_art_for IS NULL THEN apulia.prz_ven_sugg ELSE NULL END AS prz_ven_sug,"
+ " CASE WHEN lisa.cod_art_for IS NULL THEN apulia.prz_base_prop ELSE NULL END AS prz_ven_sug,"
+ " CASE WHEN lisa.cod_art_for IS NULL AND apulia.cod_art_for is not null THEN 'I' "
+ "WHEN lisa.cod_art_for IS NOT NULL AND apulia.cod_art_for is null THEN 'D' "
+ "ELSE 'U' END AS tipo_variazione, "
@@ -138,12 +138,11 @@ public class ImportListiniAcquistoApuliaCarrefourService {
+ " apulia.cod_aliq, "
+ " apulia.prz_base_prop, "
+ " apulia.perc_premio as prec_promo,"
+ " apulia.val_premio as val_promo "
+ " ISNULL(apulia.val_premio, 0) as val_promo "
+ "FROM (SELECT DISTINCT mtb_lisa_apulia_succ.cod_alis, "
+ " mtb_lisa_apulia_succ.data_prz_acq,"
+ " mtb_lisa_apulia_succ.cod_art_for AS cod_art_for,"
+ " mtb_lisa_apulia_succ.prz_acq AS prz_acq, "
+ " CONVERT(numeric(20,5), ISNULL(mtb_lisa_apulia_succ.prz_acq, 0) ) AS val_promo,"
+ " mtb_lisa_apulia_succ.descrizione,"
+ " mtb_lisa_apulia_succ.barcode,"
+ " mtb_lisa_apulia_succ.descrizione_divisione_forn,"
@@ -238,7 +237,6 @@ public class ImportListiniAcquistoApuliaCarrefourService {
" mtb_lisa_apulia_succ.data_prz_acq AS data_iniz,\n" +
" mtb_lisa_apulia_succ.cod_art_for AS cod_art_for,\n" +
" mtb_lisa_apulia_succ.prz_acq AS prz_acq,\n" +
" CONVERT(NUMERIC(20, 5), ISNULL(mtb_lisa_apulia_succ.prz_acq, 0)) AS val_promo,\n" +
" mtb_lisa_apulia_succ.descrizione AS descr_art_forn,\n" +
" mtb_lisa_apulia_succ.barcode AS cod_barre,\n" +
" mtb_lisa_apulia_succ.unt_mis_acq,\n" +
@@ -249,7 +247,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
" mtb_lisa_apulia_succ.cod_aliq,\n" +
" mtb_lisa_apulia_succ.prz_base_prop as prz_vend_sug,\n" +
" mtb_lisa_apulia_succ.perc_premio as perc_promo,\n" +
" mtb_lisa_apulia_succ.val_premio as val_promo\n" +
" IsNull(mtb_lisa_apulia_succ.val_premio, 0) as val_promo\n" +
"FROM mtb_lisa_apulia_succ\n" +
"WHERE mtb_lisa_apulia_succ.data_prz_acq > " + UtilityDB.valueDateToString(dataImport, CommonConstants.DATE_FORMAT_YMD) + "\n" +
" AND mtb_lisa_apulia_succ.cod_alis NOT IN (SELECT value_string AS cod_alis\n" +
@@ -260,7 +258,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
" '|'))";
List<MtbLisaData> mtbLisaData = new ResultSetMapper()
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT);
.mapQuerySetToList(conn, sql, MtbLisaData.class, OperationType.INSERT_OR_UPDATE);
if (mtbLisaData != null) {
Stream.of(mtbLisaData)
.forEach(
@@ -337,6 +335,9 @@ public class ImportListiniAcquistoApuliaCarrefourService {
for (Map.Entry<AtbListData, List<MtbLisaData>> listino : listini) {
AtbListData atbListData = listino.getKey();
if ( UtilityLocalDate.isAfterToday(UtilityLocalDate.localDateTimeFromDate(atbListData.getDataIniz())))
atbListData.setOperation(OperationType.INSERT_OR_UPDATE);
atbListData.setMtbLisaData(listino.getValue());
entityProcessor.processEntity(atbListData, multiDBTransactionManager);
try{
@@ -562,7 +563,7 @@ public class ImportListiniAcquistoApuliaCarrefourService {
String columnPrzAcq = "CAST(REPLACE(tabp.prz_acq, ',', '.') AS NUMERIC(20, 5)) ";
String columnValPremio = "CAST(0 AS NUMERIC)";
if (!importPrezzoNetto)
columnValPremio = "case when premi.cod_art_for IS not null then [COLUMN_PRZ_ACQ] - premi.prz_acq_netto ELSE 0 END ";
columnValPremio = "case when premi.cod_art_for IS not null AND premi.prz_acq_netto <> 0 then [COLUMN_PRZ_ACQ] - premi.prz_acq_netto ELSE 0 END ";
sql =
"INSERT INTO mtb_lisa_apulia_succ\n" +