From 849df208f64f99d79459eab20f4e0c97166e6f1b Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 17 Jan 2025 10:46:24 +0300 Subject: [PATCH] =?utf8?q?[ERP-272]=20=D0=BF=D0=BE=D0=B4=D1=81=D1=87=D1=91?= =?utf8?q?=D1=82=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D0=BD=D1=82=D0=BE=D0=B2?= =?utf8?q?=20=D0=BD=D0=B0=20=D0=BB=D0=B5=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/views/sales-write-offs-plan/index.php | 10 ++--- erp24/web/js/sales-write-offs-plan/index.js | 41 +++++++++++++++++++++ 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/erp24/views/sales-write-offs-plan/index.php b/erp24/views/sales-write-offs-plan/index.php index d06647d5..aecdec0c 100644 --- a/erp24/views/sales-write-offs-plan/index.php +++ b/erp24/views/sales-write-offs-plan/index.php @@ -90,31 +90,31 @@ function colorScheme2($p) { true, 'style' => 'background: lightgray;']) ?> - + % 'number', 'min' => 0, 'onchange' => 'editField(this);']) ?> - + % 'number', 'min' => 0, 'onchange' => 'editField(this);']) ?> - + % 'number', 'min' => 0, 'onchange' => 'editField(this);']) ?> - + % 'number', 'min' => 0, 'onchange' => 'editField(this);']) ?> - + % diff --git a/erp24/web/js/sales-write-offs-plan/index.js b/erp24/web/js/sales-write-offs-plan/index.js index 3296989c..c2015936 100644 --- a/erp24/web/js/sales-write-offs-plan/index.js +++ b/erp24/web/js/sales-write-offs-plan/index.js @@ -7,6 +7,21 @@ function isNumeric(value) { return /^-?\d+\.?\d*$/.test(value); } +function colorScheme1(p) { + p = Math.round(100 * p); + if (p <= 90) { return 'red'; } + if (p < 99) { return '#aaaa00'; } + return 'green'; +} + +function colorScheme2(p) { + p = Math.round(100 * p, 1); + if (p > 10) { return 'red'; } + if (p > 9) { return '#aaaa00'; } + return 'green'; +} + + function editField(zis) { const tr = zis.parentNode.parentNode; const store_id = tr.querySelector("[name=store_id]").value; @@ -34,6 +49,32 @@ function editField(zis) { }); if (succ) { total_sales_plan.value = +offline_sales_plan.value + (+online_sales_shop_plan.value) + (+online_sales_marketplace_plan.value); + //////////////////////////////////////////////// + const p1 = document.querySelector('.p1'); + const p1Value = total_sales_fact.value > 0 ? total_sales_plan.value / total_sales_fact.value : 0; + p1.innerHTML = new Intl.NumberFormat().format(Number((p1Value * 100).toFixed(0))); + p1.style.color = colorScheme1(p1Value); + + const p2 = document.querySelector('.p2'); + const p2Value = total_sales_plan.value > 0 ? write_offs_plan.value / total_sales_plan.value : 0; + p2.innerHTML = new Intl.NumberFormat().format(Number((p2Value * 100).toFixed(1))); + p2.style.color = colorScheme2(p2Value); + + const p3 = document.querySelector('.p3'); + const p3Value = total_sales_fact.value > 0 ? offline_sales_plan.value / total_sales_fact.value : 0; + p3.innerHTML = new Intl.NumberFormat().format(Number((p3Value * 100).toFixed(0))); + p3.style.color = colorScheme1(p3Value); + + const p4 = document.querySelector('.p4'); + const p4Value = total_sales_fact.value > 0 ? online_sales_shop_plan.value / total_sales_fact.value : 0; + p4.innerHTML = new Intl.NumberFormat().format(Number((p4Value * 100).toFixed(0))); + p4.style.color = colorScheme1(p4Value); + + const p5 = document.querySelector('.p5'); + const p5Value = total_sales_fact.value > 0 ? online_sales_marketplace_plan.value / total_sales_fact.value : 0; + p5.innerHTML = new Intl.NumberFormat().format(Number((p5Value * 100).toFixed(0))); + p5.style.color = colorScheme1(p5Value); + //////////////////////////////////////////////// $.ajax({ method: "POST", url: '/sales-write-offs-plan/save-fields', -- 2.39.5