]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
расчет первого этапа
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 22 May 2025 15:36:22 +0000 (18:36 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 22 May 2025 15:36:22 +0000 (18:36 +0300)
erp24/controllers/AutoPlannogrammaController.php
erp24/controllers/CategoryPlanController.php

index 48ecc5eb2200874b7143deefed8236aa4753ce00..bee0c8519d4ce5ae29b4a98fe13d4942216acb3f 100644 (file)
@@ -660,6 +660,73 @@ class AutoPlannogrammaController extends BaseController
         ]);
     }
 
+    public function action81()
+    {
+        $request = Yii::$app->request;
+
+        $filters = [
+            'category' => $request->get('category'),
+            'subcategory' => $request->get('subcategory') ?? null,
+            'species' => $request->get('species') ?? null,
+            'store_id' => $request->get('store_id') ?? [],
+            'year' => $request->get('year'),
+            'month' => $request->get('month'),
+            'type' => $request->get('type'),
+        ];
+
+        $dataProvider = new ArrayDataProvider([
+            'allModels' => [],
+            'pagination' => ['pageSize' => 100],
+        ]);
+
+
+        // Обработка даты на год и месяц
+        if (!empty($filters['year']) && !empty($filters['month'])) {
+            $filters['plan_date'] = $filters['year'] . '-' . str_pad($filters['month'], 2, '0', STR_PAD_LEFT) . '-01';
+            //var_dump($filters); die();
+            $service = new AutoPlannogrammaService();
+            $data = $service->calculateSpeciesForecastForProductsWithoutHistory($filters['plan_date'], $filters);
+
+            $result = StorePlanService::calculateHistoricalShare(
+                $filters['store_id'],
+                $filters['month'],
+                $filters['year'],
+                $filters['category'],
+                $filters['subcategory'],
+                $filters['species']
+            );
+            // var_dump($result); die();
+
+            $productSalesShare = StorePlanService::calculateProductSalesShare(
+                $filters['store_id'],
+                $filters['month'],
+                $result['with_history']
+            );
+
+
+            var_dump( $productSalesShare); die();
+            $flatData = array_filter($data, 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,
+                'pagination' => ['pageSize' => 100],
+            ]);
+        }
+        return $this->render('8', [
+            'dataProvider' => $dataProvider,
+            'filters' => $filters,
+        ]);
+    }
 
     public function action9()
     {
index d5989dc777df280d2078499a79d80f0804fd3c0b..9a368a5f9bc456cd3eded97e22ab02f456f034f6 100644 (file)
@@ -347,7 +347,7 @@ class CategoryPlanController extends Controller {
                         $subcategory,
                         $species
                     );
-
+                   // var_dump($result); die();
                     $weightedResults = StorePlanService::calculateWeightedSalesForProductsWithoutHistory(
                         $storeId,
                         $selectedMonth,