aggiunta maggiorazione prezzo di acquisto su aggiornamento listino di vendita da listino di acquisto

This commit is contained in:
2025-01-16 14:28:40 +01:00
parent d2e59dab09
commit ea9965b91d
2 changed files with 57 additions and 26 deletions

View File

@@ -20,6 +20,7 @@ public class AggiornaLisvDTO {
private String whereCondLisv;
private BigDecimal ricaricoTestataLisv;
private BigDecimal percMaggPrezzo;
private BigDecimal percMaggPrezzoAcquisto;
private Boolean aggArtCommerciali;
private List<MtbLisvData> mtbLisvData;
@@ -140,6 +141,15 @@ public class AggiornaLisvDTO {
return this;
}
public BigDecimal getPercMaggPrezzoAcquisto() {
return percMaggPrezzoAcquisto;
}
public AggiornaLisvDTO setPercMaggPrezzoAcquisto(BigDecimal percMaggPrezzoAcquisto) {
this.percMaggPrezzoAcquisto = percMaggPrezzoAcquisto;
return this;
}
public Boolean getAggArtCommerciali() {
return aggArtCommerciali;
}

View File

@@ -210,32 +210,53 @@ public class ImportListiniVenditaService {
whereCond = " AND lisv.cod_mart is not null";
}
String queryLisa =
"SELECT atb_list_data.cod_promo, "
+ " atb_list_data.note as descr_promo, "
+ " atb_list_data.data_iniz_sell_out, "
+ " atb_list_data.data_fine_sell_out, " + " mtb_lisa.cod_mart, "
+ " round(IsNull(mtb_lisa_data.prz_acq, mtb_lisa.prz_acq)/ mtb_lisa.rap_conv, 5) as prz_acq, "
+ " round(dbo.f_calcPrzNettoAcq( atb_list.cod_alis, atb_list.expression_costo, Isnull(mtb_lisa_data.perc_1,mtb_lisa.perc_1), Isnull(mtb_lisa_data.perc_2, mtb_lisa.perc_2), Isnull(mtb_lisa_data.perc_3, mtb_lisa.perc_3), Isnull(mtb_lisa_data.perc_4, mtb_lisa.perc_4), IsNull(mtb_lisa_promo.perc_promo_1, 0), IsNull(mtb_lisa_promo.perc_promo_2, 0), IsNull(mtb_lisa_promo.perc_promo_3, 0), IsNull(mtb_lisa_promo.perc_promo_4, 0), Isnull(mtb_lisa_data.perc_promo, mtb_lisa.perc_promo), Isnull(mtb_lisa_data.val_promo, mtb_lisa.val_promo), Isnull(mtb_lisa_data.perc_oneri, mtb_lisa.perc_oneri), Isnull(mtb_lisa_data.val_oneri, mtb_lisa.val_oneri), Isnull(mtb_lisa_data.prz_acq, mtb_lisa.prz_acq)) / mtb_lisa.rap_conv, 5) as prz_acq_netto, "
+ " IsNull(mtb_lisa_data.prz_ven_sug, mtb_lisa.prz_ven_sug ) as prz_vend_sugg, "
+ " atb_list_data.cod_alis, "
+ " atb_list_data.versione "
+ " FROM mtb_lisa "
+ " INNER JOIN atb_list ON atb_list.cod_alis = mtb_lisa.cod_alis "
+ " INNER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart "
+ " INNER JOIN mtb_lisa_data ON mtb_lisa.cod_alis = mtb_lisa_data.cod_alis AND "
+ " mtb_lisa.cod_art_for = mtb_lisa_data.cod_art_for AND "
+ " mtb_lisa_data.versione = " + UtilityDB.valueToString(aggiornaLisvDTO.getVersione())
+ " LEFT OUTER JOIN mtb_lisa_promo ON mtb_lisa_data.cod_alis = mtb_lisa_promo.cod_alis AND "
+ " mtb_lisa_data.versione = mtb_lisa_promo.versione AND "
+ " mtb_lisa_data.cod_art_for = mtb_lisa_promo.cod_art_for "
+ " LEFT OUTER JOIN atb_list_data ON mtb_lisa_data.cod_alis = atb_list_data.cod_alis AND "
+ " mtb_lisa_data.versione = atb_list_data.versione "
+ " WHERE ( mtb_lisa_data.tipo_variazione is null or mtb_lisa_data.tipo_variazione <> 'D' ) AND "
+ " mtb_lisa.cod_alis = " + UtilityDB.valueToString(aggiornaLisvDTO.getCodAlis()) + " AND "
+ " ((" + UtilityDB.valueToString(aggiornaLisvDTO.getVersione()) + " <> 0 and mtb_lisa_data.versione is not null) or (" + UtilityDB.valueToString(aggiornaLisvDTO.getVersione()) + " = 0)) and "
+ " mtb_lisa.flag_attivo = 'S' ";
String maggiorazionePrzAcq = "";
if ( !UtilityBigDecimal.isNullOrZero(aggiornaLisvDTO.getPercMaggPrezzoAcquisto()) ){
maggiorazionePrzAcq = " * ( 1 + CAST(" + aggiornaLisvDTO.getPercMaggPrezzoAcquisto() + " as numeric(20,5))/100) ";
}
String queryLisa =
"SELECT atb_list_data.cod_promo,\n" +
" atb_list_data.note AS descr_promo,\n" +
" atb_list_data.data_iniz_sell_out,\n" +
" atb_list_data.data_fine_sell_out,\n" +
" mtb_lisa.cod_mart,\n" +
" ROUND(ISNULL(mtb_lisa_data.prz_acq, mtb_lisa.prz_acq) / mtb_lisa.rap_conv [MAGG_PRZ_ACQ], 5) AS prz_acq,\n" +
" ROUND(dbo.f_calcprznettoacq(atb_list.cod_alis, atb_list.expression_costo,\n" +
" ISNULL(mtb_lisa_data.perc_1, mtb_lisa.perc_1),\n" +
" ISNULL(mtb_lisa_data.perc_2, mtb_lisa.perc_2),\n" +
" ISNULL(mtb_lisa_data.perc_3, mtb_lisa.perc_3),\n" +
" ISNULL(mtb_lisa_data.perc_4, mtb_lisa.perc_4),\n" +
" ISNULL(mtb_lisa_promo.perc_promo_1, 0), ISNULL(mtb_lisa_promo.perc_promo_2, 0),\n" +
" ISNULL(mtb_lisa_promo.perc_promo_3, 0), ISNULL(mtb_lisa_promo.perc_promo_4, 0),\n" +
" ISNULL(mtb_lisa_data.perc_promo, mtb_lisa.perc_promo),\n" +
" ISNULL(mtb_lisa_data.val_promo, mtb_lisa.val_promo),\n" +
" ISNULL(mtb_lisa_data.perc_oneri, mtb_lisa.perc_oneri),\n" +
" ISNULL(mtb_lisa_data.val_oneri, mtb_lisa.val_oneri),\n" +
" ISNULL(mtb_lisa_data.prz_acq, mtb_lisa.prz_acq)) / mtb_lisa.rap_conv [MAGG_PRZ_ACQ], 5) AS prz_acq_netto,\n" +
" ISNULL(mtb_lisa_data.prz_ven_sug, mtb_lisa.prz_ven_sug) AS prz_vend_sugg,\n" +
" atb_list_data.cod_alis,\n" +
" atb_list_data.versione\n" +
"FROM mtb_lisa\n" +
" INNER JOIN atb_list ON atb_list.cod_alis = mtb_lisa.cod_alis\n" +
" INNER JOIN mtb_aart ON mtb_lisa.cod_mart = mtb_aart.cod_mart\n" +
" INNER JOIN mtb_lisa_data ON mtb_lisa.cod_alis = mtb_lisa_data.cod_alis AND\n" +
" mtb_lisa.cod_art_for = mtb_lisa_data.cod_art_for AND " +
" mtb_lisa_data.versione = [VERSIONE]\n" +
" LEFT OUTER JOIN mtb_lisa_promo ON mtb_lisa_data.cod_alis = mtb_lisa_promo.cod_alis AND\n" +
" mtb_lisa_data.versione = mtb_lisa_promo.versione AND\n" +
" mtb_lisa_data.cod_art_for = mtb_lisa_promo.cod_art_for\n" +
" LEFT OUTER JOIN atb_list_data ON mtb_lisa_data.cod_alis = atb_list_data.cod_alis AND\n" +
" mtb_lisa_data.versione = atb_list_data.versione\n" +
"WHERE (mtb_lisa_data.tipo_variazione IS NULL OR mtb_lisa_data.tipo_variazione <> 'D')\n" +
" AND mtb_lisa.cod_alis = [COD_ALIS]\n" +
" AND (([VERSIONE] <> 0 AND mtb_lisa_data.versione IS NOT NULL) OR ([VERSIONE] = 0))\n" +
" AND mtb_lisa.flag_attivo = 'S' ";
queryLisa = queryLisa
.replace("[COD_ALIS]", UtilityDB.valueToString(aggiornaLisvDTO.getCodAlis()))
.replace("[VERSIONE]", UtilityDB.valueToString(aggiornaLisvDTO.getVersione()))
.replace("[MAGG_PRZ_ACQ]", maggiorazionePrzAcq);
String queryLisv =
"SELECT vtb_list.cod_vlis, "
@@ -284,7 +305,7 @@ public class ImportListiniVenditaService {
+ " lisa.cod_mart, "
+ " IsNull(lisv.unt_mis_ven, mtb_aart.unt_mis) as unt_mis_ven, "
+ " IsNull(lisv.rap_conv, 1) as rap_conv, "
+ " lisa.prz_acq_netto * IsNull(lisv.rap_conv, 1) as prz_base, "
+ " lisa.prz_acq_netto * IsNull(lisv.rap_conv, 1) as prz_base, " //TO-DO Mina
+ " case when lisv.cod_mart is null THEN "
+ "CASE " + UtilityDB.valueToString(setup.get("RICARICO_ART_NUOVI"))
+ " WHEN 'T' THEN testata_lisv.ricarico_testata "