From: Alexander Smirnov Date: Fri, 17 Jan 2025 07:46:24 +0000 (+0300) Subject: [ERP-272] подсчёт процентов на лету X-Git-Tag: 1.7~66^2~1 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=849df208f64f99d79459eab20f4e0c97166e6f1b;p=erp24_rep%2Fyii-erp24%2F.git [ERP-272] подсчёт процентов на лету --- 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',