From fed7f43ec2d34ccac22ca431597b79a44a130248 Mon Sep 17 00:00:00 2001 From: vladfo Date: Fri, 11 Oct 2024 14:36:37 +0300 Subject: [PATCH] =?utf8?q?=D0=A3=D0=BD=D0=B8=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD?= =?utf8?q?=D1=8B=D0=B5=20=D1=82=D0=BE=D0=B2=D0=B0=D1=80=D1=8B=20=D0=B8=20?= =?utf8?q?=D0=B2=20=D0=B0=D0=BB=D1=84=D0=B0=D0=B2=D0=B8=D1=82=D0=BD=D0=BE?= =?utf8?q?=D0=BC=20=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../actions/motivation/TestSelfCostAction.php | 31 ++++++++++++++++++- erp24/views/motivation/test-self-cost.php | 28 +++++++++++++++-- 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/erp24/actions/motivation/TestSelfCostAction.php b/erp24/actions/motivation/TestSelfCostAction.php index 4f8eaa17..f88f4421 100644 --- a/erp24/actions/motivation/TestSelfCostAction.php +++ b/erp24/actions/motivation/TestSelfCostAction.php @@ -41,6 +41,7 @@ class TestSelfCostAction extends Action $data = []; $totalSum = 0.0; $totalProductsSum = 0.0; + $uniqueProductsData = []; if ($startDate && $endDate && $storeId) { $totalSum = MotivationService::getSelfCostSumByStore($startDate, $endDate, $storeId); @@ -51,14 +52,42 @@ class TestSelfCostAction extends Action // Вычисляем сумму всех товаров foreach ($data as $item) { - $totalProductsSum += $item['price']*$item['quantity']; + $totalProductsSum += $item['price'] * $item['quantity']; } + + // Группируем товары по ID и суммируем количества + $groupedProducts = []; + foreach ($data as $item) { + $productId = $item['product_id']; + if (!isset($groupedProducts[$productId])) { + $groupedProducts[$productId] = [ + 'product_id' => $productId, + 'product_name' => $item['product_name'], + 'price' => $item['price'], + 'quantity' => $item['quantity'], + ]; + } else { + $groupedProducts[$productId]['quantity'] += $item['quantity']; + } + } + + // Преобразуем сгруппированный массив в массив значений и сортируем по имени + $uniqueProductsData = array_values($groupedProducts); + usort($uniqueProductsData, function ($a, $b) { + return strcmp($a['product_name'], $b['product_name']); + }); } + // Сортируем первую таблицу по имени продукта + usort($data, function ($a, $b) { + return strcmp($a['product_name'], $b['product_name']); + }); + return $this->controller->render('test-self-cost', [ 'storeList' => $storeList, 'model' => $model, 'data' => $data, + 'uniqueProductsData' => $uniqueProductsData, 'totalSum' => $totalSum, 'totalProductsSum' => $totalProductsSum, ]); diff --git a/erp24/views/motivation/test-self-cost.php b/erp24/views/motivation/test-self-cost.php index 39883d26..0ba5d0d8 100644 --- a/erp24/views/motivation/test-self-cost.php +++ b/erp24/views/motivation/test-self-cost.php @@ -7,6 +7,7 @@ use kartik\select2\Select2; /* @var $storeList array */ /* @var $model \yii\base\DynamicModel */ /* @var $data array */ +/* @var $uniqueProductsData array */ /* @var $totalSum float */ /* @var $totalProductsSum float */ @@ -39,7 +40,7 @@ $this->title = 'Себестоимость товаров по магазина -

Результаты

+

Результаты (Полные данные)

@@ -54,8 +55,7 @@ $this->title = 'Себестоимость товаров по магазина - + @@ -67,5 +67,27 @@ $this->title = 'Себестоимость товаров по магазина
-

Общая стоимость:

Сумма всех товаров:

+ +

Результаты (Уникальные товары)

+ + + + + + + + + + + + + + + + + + + +
ID товараНазваниеЦенаОбщее кол-во
\ No newline at end of file -- 2.39.5