Finish FixListiniVend

This commit is contained in:
2024-02-23 09:40:31 +01:00
6 changed files with 77 additions and 28 deletions

View File

@@ -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) {

View File

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

View File

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

View File

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

View File

@@ -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",

View File

@@ -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<ListiniVendita> {
@@ -93,17 +100,17 @@ export default class TabCostiProd extends TabImpl<ListiniVendita> {
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<ListiniVendita> {
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<ListiniVendita> {
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<ListiniVendita> {
},
sort: [
{
field: "descrizione",
field: "cod_mtip",
dir: "asc"
},
{
field: "cod_mstp",
dir: "asc"
},
{
@@ -235,6 +254,11 @@ export default class TabCostiProd extends TabImpl<ListiniVendita> {
dir: "asc"
}
],
group: [
{
field: "descr_stipi"
}
],
serverPaging: false,
serverFiltering: false,
serverSorting: false,