From 8e3761fb6d427feba025fa99a9ff55c4329d4ddc Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 5 May 2025 16:15:31 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D1=8B=D1=87=D0=B8=D1=81=D0=BB=D0=B5=D0=BD?= =?utf8?q?=D0=B8=D0=B5=20=D0=B4=D0=BE=D0=BB=D0=B8=20=D0=BD=D0=B5=D0=B4?= =?utf8?q?=D0=B5=D0=BB=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D0=B8=D0=B4?= =?utf8?q?=D0=B0=20=D1=82=D0=BE=D0=B2=D0=B0=D1=80=D0=B0=20=D0=BF=D0=BE=20?= =?utf8?q?=D1=81=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../AutoPlannogrammaController.php | 62 +++++++++++++++++-- .../auto-plannogramma/control-species.php | 43 ++++++++++++- 2 files changed, 98 insertions(+), 7 deletions(-) diff --git a/erp24/controllers/AutoPlannogrammaController.php b/erp24/controllers/AutoPlannogrammaController.php index 4b95f02a..bf1d674a 100644 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@ -233,8 +233,10 @@ class AutoPlannogrammaController extends BaseController $monthsList[$key] = $key; } - $result = []; + $monthResult = []; $totals = []; + $weeksData = []; + $weeksShareResult = []; if ($model->load(Yii::$app->request->post()) && $model->validate()) { $filters = []; @@ -244,8 +246,8 @@ class AutoPlannogrammaController extends BaseController list($m, $y) = explode('-', $model->month); - $dateFrom = sprintf('%04d-%02d-01', $y, $m); - $dateTo = date('Y-m-t', strtotime($dateFrom)); + $dateFrom = date("Y-m-d 00:00:00", strtotime(sprintf('%04d-%02d-01', $y, $m))); + $dateTo = date("Y-m-t 23:59:59", strtotime($dateFrom)); $service = new AutoPlannogrammaService(); @@ -259,18 +261,68 @@ class AutoPlannogrammaController extends BaseController ); } - $result = $service->getMonthSpeciesShareOrWriteOffDate( + $monthResult = $service->getMonthSpeciesShareOrWriteOffDate( $dateFrom, $dateTo, $filters, null, $model->type ); + $speciesMonthTotals = []; + foreach ($monthResult as $monthRow) { + $speciesMonthTotals[$monthRow['store_id']] + [$monthRow['category']] + [$monthRow['subcategory']] + [$monthRow['species']] = $monthRow['total_sum'] ; + } + + + foreach (range(1, 5) as $ind) { + $weekStart = date("Y-m-d 00:00:00", strtotime("+" . (($ind - 1) * 7) . ' days', strtotime($dateFrom))); + $weekEnd = date("Y-m-d 23:59:59", strtotime("+" . ($ind * 7 - 1) . ' days', strtotime($dateFrom))); + if ($weekEnd > $dateTo) { + $weekEnd = $dateTo; + } + if ($weekStart > $dateTo) { + continue; + } + $weekResult = $service->getMonthSpeciesShareOrWriteOffDate( + $weekStart, + $weekEnd, + $filters, + null, + $model->type + ); + $weeksData[$ind] = $weekResult; + if (!$weekResult) { + continue; + } + $weeksShareResult[$ind] = []; + foreach ($weekResult as $weekRow) { + $monthSum = $speciesMonthTotals + [$weekRow['store_id']] + [$weekRow['category']] + [$weekRow['subcategory']] + [$weekRow['species']] ?? null; + + if ($monthSum) { + $weeksShareResult[$ind] + [$weekRow['category']] + [$weekRow['subcategory']] + [$weekRow['species']] = $weekRow['total_sum'] / $monthSum; + } + + } + + } + } return $this->render('control-species', [ 'model' => $model, - 'result' => $result, + 'result' => $monthResult, + 'weeksData' => $weeksData, + 'weeksShareResult' => $weeksShareResult, 'totals' => $totals, 'storeList' => $storeList, 'monthsList' => $monthsList, diff --git a/erp24/views/auto-plannogramma/control-species.php b/erp24/views/auto-plannogramma/control-species.php index 7df8a61a..f3c2b4dd 100644 --- a/erp24/views/auto-plannogramma/control-species.php +++ b/erp24/views/auto-plannogramma/control-species.php @@ -13,6 +13,8 @@ use yii_app\records\Products1c; /* @var $monthsList array */ /* @var $result array */ /* @var $totals array */ +/* @var $weeksData array */ +/* @var $weeksShareResult array */ ?> @@ -88,6 +90,43 @@ use yii_app\records\Products1c; - - + +

Результаты по неделям

+ $weekRows): ?> +

Неделя

+ +

Нет данных за эту неделю.

+ + + + + + + + + + + + + + + + + + + + + + +
КатегорияПодкатегорияВид товараСуммаДоля недели
formatter->asDecimal($row['total_sum'], 2) ?> + formatter->asPercent( + $weeksShareResult[$weekNum][$row['category']][$row['subcategory']][$row['species']], + 2 + ) + : '-' ?> +
+ + + -- 2.39.5