From: marina Date: Tue, 6 May 2025 11:17:37 +0000 (+0300) Subject: ERP-413 Обработка ОС Планограмма (месяц) X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=0ae729aba8491e0726e3e6d6a1554dc7ba1545c9;p=erp24_rep%2Fyii-erp24%2F.git ERP-413 Обработка ОС Планограмма (месяц) --- 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,