From 0ae729aba8491e0726e3e6d6a1554dc7ba1545c9 Mon Sep 17 00:00:00 2001 From: marina Date: Tue, 6 May 2025 14:17:37 +0300 Subject: [PATCH] =?utf8?q?ERP-413=20=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?utf8?q?=D1=82=D0=BA=D0=B0=20=D0=9E=D0=A1=20=D0=9F=D0=BB=D0=B0=D0=BD?= =?utf8?q?=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D0=B0=20(=D0=BC=D0=B5=D1=81?= =?utf8?q?=D1=8F=D1=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../AutoPlannogrammaController.php | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/erp24/controllers/AutoPlannogrammaController.php b/erp24/controllers/AutoPlannogrammaController.php index e0a23811..0f5d6dee 100644 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@ -218,33 +218,53 @@ class AutoPlannogrammaController extends BaseController 'plan_date' => $request->get('plan_date'), 'type' => $request->get('type'), ]; - +//var_dump($filters);die(); $dataProvider = new ArrayDataProvider([ 'allModels' => [], 'pagination' => ['pageSize' => 100], ]); - if (!empty($filters['plan_date'])) { $service = new AutoPlannogrammaService(); $data = $service->getMonthCategoryShareOrWriteOff($filters['plan_date'], $filters); + $flatData = []; foreach ($data as $storeId => $categories) { foreach ($categories as $row) { $flatData[] = [ - 'store_id' => CityStore::findOne($storeId)->name ?? null, - 'category' => $row['category'], - 'total_sum' => $row['total_sum'], - 'share_of_total' => $row['share_of_total'], + 'store_id' => (string)$storeId, // фильтрация по ID, а не имени + 'store_name' => CityStore::findOne($storeId)->name ?? null, + 'category' => $row['category'] ?? null, + 'subcategory' => $row['subcategory'] ?? null, + 'product_name' => $row['product_name'] ?? null, + 'plan_date' => $filters['plan_date'], // или $row['plan_date'], если есть + 'type' => $row['type'] ?? null, + 'total_sum' => $row['total_sum'] ?? null, + 'share_of_total' => $row['share_of_total'] ?? null, ]; } } + + $flatData = array_filter($flatData, function ($row) use ($filters) { + foreach ($filters as $key => $value) { + if (empty($value)) continue; + if (!isset($row[$key])) continue; + + if (stripos((string)$row[$key], (string)$value) === false) { + return false; + } + } + return true; + }); + + $dataProvider = new ArrayDataProvider([ - 'allModels' => $flatData, + 'allModels' => array_values($flatData), 'pagination' => ['pageSize' => 100], ]); } + return $this->render('1', [ 'dataProvider' => $dataProvider, 'filters' => $filters, -- 2.39.5