From aa4e81a0453f7b5199a02db956c4f74b88269057 Mon Sep 17 00:00:00 2001 From: AnthonyS Date: Fri, 23 Feb 2024 09:39:56 +0100 Subject: [PATCH] Correzioni varie in listini vendita --- .../classes/ContoEconomicoProdotto.class.php | 4 +- .../sql/list-articoli-listino_interna.sql | 2 +- .../classes/ListiniVendita.class.php | 7 ++- .../listini_vendita/sql/get-costi.sql | 23 +++++++- .../listini_vendita/ts/ListiniVendita.ts | 13 +++-- .../listini_vendita/ts/TabCostiProd.ts | 56 +++++++++++++------ 6 files changed, 77 insertions(+), 28 deletions(-) diff --git a/public_html/gest-lib/conto_economico_prodotto/classes/ContoEconomicoProdotto.class.php b/public_html/gest-lib/conto_economico_prodotto/classes/ContoEconomicoProdotto.class.php index b4bd3ab41..f28457d26 100644 --- a/public_html/gest-lib/conto_economico_prodotto/classes/ContoEconomicoProdotto.class.php +++ b/public_html/gest-lib/conto_economico_prodotto/classes/ContoEconomicoProdotto.class.php @@ -46,9 +46,9 @@ class ContoEconomicoProdotto { return $gestSetup->section("VERIFICA_AGGIORNAMENTO_PREZZI")->keySection("USA_COSTO_MERC")->asBoolean()->defaultValue(false)->get(); } - private static function getTipoRagguppamento() { + public static function getTipoRagguppamento() { $GestSetup = new \GestSetup; - return $GestSetup->keySection("TIPO_RAGGRUPPAMENTO")->defaultValue("T")->get(); + return $GestSetup->section("CONTO_ECONOMICO_PRODOTTO")->keySection("TIPO_RAGGRUPPAMENTO")->defaultValue("T")->get(); } public static function get_contattiListino($codVlis) { diff --git a/public_html/gest-lib/conto_economico_prodotto/sql/list-articoli-listino_interna.sql b/public_html/gest-lib/conto_economico_prodotto/sql/list-articoli-listino_interna.sql index 915377cc9..7c8043398 100644 --- a/public_html/gest-lib/conto_economico_prodotto/sql/list-articoli-listino_interna.sql +++ b/public_html/gest-lib/conto_economico_prodotto/sql/list-articoli-listino_interna.sql @@ -62,7 +62,7 @@ SELECT listino.cod_mart + '-' + listino.cod_vlis + '-' + CAST(listino.versione A CAST(listino.descrizione_html AS VARCHAR(MAX)) AS descrizione_html, listino.note, CASE WHEN listino.system_note IS NULL THEN 'N' ELSE 'S' END AS has_storico, - (SELECT SUM(IIF(vlp.perc_fat <> 0, vlp.perc_fat, + (SELECT SUM(IIF(vlp.perc_fat_04 <> 0, vlp.perc_fat_04, (vlp.valore_fisso / IIF(vlp.fatturato_bdg <> 0, vlp.fatturato_bdg, 1)) * 100)) AS premio FROM vtb_list_premi vlp WHERE listino.data_iniz BETWEEN vlp.da_data_fat AND vlp.a_data_fat diff --git a/public_html/gest-lib/listini_vendita/classes/ListiniVendita.class.php b/public_html/gest-lib/listini_vendita/classes/ListiniVendita.class.php index 9ae012052..a2eddb73b 100644 --- a/public_html/gest-lib/listini_vendita/classes/ListiniVendita.class.php +++ b/public_html/gest-lib/listini_vendita/classes/ListiniVendita.class.php @@ -97,7 +97,8 @@ class ListiniVendita { $query ->setDateVar("dataValidita", array_get($data, "dataValidita", time())) - ->setVar("codVlis", $codVlis); + ->setVar("codVlis", $codVlis) + ->setVar("tipoRagg", ContoEconomicoProdotto::getTipoRagguppamento()); $ret = $query->toRet()->execute(); @@ -285,8 +286,8 @@ class ListiniVendita { ->setDate("daDataFat", array_get($premio, "da_data_fat")) ->setDate("aDataFat", array_get($premio, "a_data_fat")) ->set("descrizione", array_get($premio, "descrizione")) - ->set("aImportoFat", array_get($premio, "a_importo_fat")) - ->set("percFat", array_get($premio, "percFat")) + ->set("aImportoFat04", array_get($premio, "a_importo_fat_04")) + ->set("percFat04", array_get($premio, "perc_fat_04")) ->set("valoreFisso", array_get($premio, "valore_fisso")) ->set("fatturatoBdg", array_get($premio, "fatturato_bdg")); diff --git a/public_html/gest-lib/listini_vendita/sql/get-costi.sql b/public_html/gest-lib/listini_vendita/sql/get-costi.sql index bc8281fee..03694aa5b 100644 --- a/public_html/gest-lib/listini_vendita/sql/get-costi.sql +++ b/public_html/gest-lib/listini_vendita/sql/get-costi.sql @@ -10,9 +10,30 @@ SELECT list.cod_vlis AS cod_anag, confezionamento, ISNULL(lavorazione, 0) + ISNULL(confezionamento, 0) AS costo, list.ricarico, - list.magg_prz_vend + list.magg_prz_vend, + CASE '[tipoRagg]' + WHEN 'T' THEN ISNULL(mtb_aart.cod_mtip, '') + WHEN 'G' THEN mtb_aart.cod_mgrp + ELSE '' END AS cod_mtip, + CASE '[tipoRagg]' + WHEN 'T' THEN ISNULL(mtb_tipi.descrizione, '') + WHEN 'G' THEN mtb_grup.descrizione + ELSE '' END AS descr_tipi, + CASE '[tipoRagg]' + WHEN 'T' THEN ISNULL(mtb_aart.cod_mstp, '') + WHEN 'G' THEN mtb_aart.cod_mgrp + ELSE '' END AS cod_mstp, + CASE '[tipoRagg]' + WHEN 'T' THEN ISNULL(mtb_stip.descrizione, '') + WHEN 'G' THEN mtb_sgrp.descrizione + ELSE '' END AS descr_stipi FROM getListinoVendita('[dataValidita]', '[codVlis]', NULL) list INNER JOIN mtb_aart ON list.cod_mart = mtb_aart.cod_mart + INNER JOIN mtb_grup ON mtb_aart.cod_mgrp = mtb_grup.cod_mgrp + INNER JOIN mtb_sgrp ON mtb_aart.cod_mgrp = mtb_sgrp.cod_mgrp AND mtb_aart.cod_msgr = mtb_sgrp.cod_msgr + LEFT OUTER JOIN mtb_tipi ON mtb_aart.cod_mtip = mtb_tipi.cod_mtip + LEFT OUTER JOIN mtb_stip ON mtb_aart.cod_mtip = mtb_stip.cod_mtip AND + mtb_aart.cod_mstp = mtb_stip.cod_mstp CROSS APPLY (SELECT SUM([lavorazione]) AS lavorazione, SUM([confezionamento]) AS confezionamento FROM (SELECT * FROM RossoGargano.dbo.f_ExplodeDistMultiLev_costi(list.cod_mart, list.rap_conv, 1)) p diff --git a/public_html/gest-lib/listini_vendita/ts/ListiniVendita.ts b/public_html/gest-lib/listini_vendita/ts/ListiniVendita.ts index a053f793d..5ca6a0dd9 100644 --- a/public_html/gest-lib/listini_vendita/ts/ListiniVendita.ts +++ b/public_html/gest-lib/listini_vendita/ts/ListiniVendita.ts @@ -263,7 +263,7 @@ export default class ListiniVendita extends TabsViewModule { editable: true, toolbar: ["create"], dataBound: (e: kendo.ui.GridDataBoundEvent) => { - $(".k-grid-add") + e.sender.element.find(".k-grid-add") .addClass("disabled") .off("click") .on("click", async () => { @@ -392,7 +392,7 @@ export default class ListiniVendita extends TabsViewModule { }, save: async (e) => { const listino = e.model as ArticoloListino; - let recalcPrzVend = !!e.values?.ricarico; + const recalcPrzVend = !!e.values?.ricarico; if (e.values?.unt_mis_ven) { const oldTipoUm = listino.listaMisure.find(misura => misura.untMis === listino.unt_mis_ven).tipoUm; @@ -400,11 +400,11 @@ export default class ListiniVendita extends TabsViewModule { if (oldTipoUm === "UP" && newTipoUm === "UI") { listino.set("costo", listino.costo * listino.qta_cnf); + listino.set("prz_vend", listino.prz_vend * listino.qta_cnf); } else { listino.set("costo", listino.costo / listino.qta_cnf); + listino.set("prz_vend", listino.prz_vend / listino.qta_cnf); } - - recalcPrzVend = true; } if (recalcPrzVend) { @@ -641,7 +641,10 @@ export default class ListiniVendita extends TabsViewModule { id: "f201b006-8aba-4bc7-801b-98723aeb604d", field: "articolo", title: "Articolo", - type: "string" + type: "string", + attributes: { + class: "!k-text-left" + }, }, { id: "1328ebd9-8316-4c1c-8a04-f34cfe010fcd", diff --git a/public_html/gest-lib/listini_vendita/ts/TabCostiProd.ts b/public_html/gest-lib/listini_vendita/ts/TabCostiProd.ts index 8c3cdbf4f..61c7167e9 100644 --- a/public_html/gest-lib/listini_vendita/ts/TabCostiProd.ts +++ b/public_html/gest-lib/listini_vendita/ts/TabCostiProd.ts @@ -1,7 +1,6 @@ import {TabImpl} from "@js/modules/TabsViewModule.js"; import ListiniVendita from "@gest-lib/listini_vendita/ts/ListiniVendita.js"; import {numberStyle} from "@js/utils.js"; -import {calcPrzVend} from "@js/api/pvm.js"; export class Costo extends kendo.data.Model.define({ id: "id", @@ -19,6 +18,10 @@ export class Costo extends kendo.data.Model.define({ costo: {type: "number"}, ricarico: {type: "number"}, magg_prz_vend: {type: "number"}, + cod_mtip: {type: "string"}, + descr_tipi: {type: "string"}, + cod_mstp: {type: "string"}, + descr_stipi: {type: "string"}, } }) { cod_anag: string; @@ -33,6 +36,10 @@ export class Costo extends kendo.data.Model.define({ costo: number; ricarico: number; magg_prz_vend: number; + cod_mtip: string + descr_tipi: string + cod_mstp: string + descr_stipi: string } export default class TabCostiProd extends TabImpl { @@ -93,17 +100,17 @@ export default class TabCostiProd extends TabImpl { await this.dataSourceCosti.sync(); - const przVend = await calcPrzVend({ - codVlis: costo.cod_anag, - codMart: costo.cod_mart, - przBase: costo.costo, - ricarico: costo.ricarico, - maggPrzVend: costo.magg_prz_vend - }); - - costo.set("prz_vend", przVend); - - await this.dataSourceCosti.sync(); + // const przVend = await calcPrzVend({ + // codVlis: costo.cod_anag, + // codMart: costo.cod_mart, + // przBase: costo.costo, + // ricarico: costo.ricarico, + // maggPrzVend: costo.magg_prz_vend + // }); + // + // costo.set("prz_vend", przVend); + // + // await this.dataSourceCosti.sync(); } }, remove: async (e: kendo.ui.GridRemoveEvent) => { @@ -138,6 +145,14 @@ export default class TabCostiProd extends TabImpl { super(module); this.columnsCosti = _kendo.setDefaultCellOptions([ + { + id: "36ef7095-8fa3-4baf-aa16-54b644cfa4d9", + field: "descr_stipi", + title: "Categoria", + type: "string", + hidden: true, + groupHeaderTemplate: (data) => data.value + }, { id: "49c164e4-3717-4f93-9f85-ac325e1a484e", field: "cod_mart", @@ -206,10 +221,10 @@ export default class TabCostiProd extends TabImpl { update: async (options) => { try { options.success(await this.module.updateArticoloListino({ - models: [{ - ...options.data.models[0], + models: options.data.models.map(model => ({ + ...model, data_iniz: this.module.dataVariazioni.value() || options.data.data_iniz - }] + })) } as any)); await this.module.refreshVariazioni(); @@ -227,7 +242,11 @@ export default class TabCostiProd extends TabImpl { }, sort: [ { - field: "descrizione", + field: "cod_mtip", + dir: "asc" + }, + { + field: "cod_mstp", dir: "asc" }, { @@ -235,6 +254,11 @@ export default class TabCostiProd extends TabImpl { dir: "asc" } ], + group: [ + { + field: "descr_stipi" + } + ], serverPaging: false, serverFiltering: false, serverSorting: false,