]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Рефакторинг
authorAlexander Smirnov <fredeom@mail.ru>
Thu, 8 Aug 2024 08:39:34 +0000 (11:39 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Thu, 8 Aug 2024 08:39:34 +0000 (11:39 +0300)
erp24/services/MotivationService.php

index 544348eaac34822ac1fc2dcf673eff1f2dbae026..4510c792ac7ada26b1b07028ac3ff9a232220e4f 100644 (file)
@@ -336,25 +336,37 @@ class MotivationService
         $monthStart = date("Y-m-d 00:00:00", strtotime($year . '-' . $month . '-1'));
         $monthEnd = date("Y-m-t 23:59:59", strtotime($year . '-' . $month . '-1'));
 
+        // Ищем каталог-гуиды категории services
+        $productsClass = ProductsClass::find()->select(['category_id', 'tip'])
+            ->where(['tip' => 'services'])
+            ->indexBy('category_id')
+            ->asArray()->all();
+
+        // Ищем продуктовые гуиды по каталог-гуидам категории service
+        $products1c = Products1c::find()->select(['id', 'parent_id', 'name'])
+            ->where(['parent_id' => array_keys($productsClass), 'tip' => 'products'])
+            ->indexBy(['id'])
+            ->asArray()->all();
+
+        // Ищем каталог-гуиды категории services_delivery
+        $productsClassDelivery = ProductsClass::find()->select(['category_id', 'tip'])
+            ->where(['tip' => 'services_delivery'])
+            ->indexBy('category_id')
+            ->asArray()->all();
+
+        // Ищем продуктовые гуиды по каталог-гуидам категории service_delivery
+        $products1cDelivery = Products1c::find()->select(['id', 'parent_id', 'name'])
+            ->where(['parent_id' => array_keys($productsClassDelivery), 'tip' => 'products'])
+            ->indexBy(['id'])
+            ->asArray()->all();
+
         foreach (range(1, 5) as $ind) {
             $weekStart = date("Y-m-d 00:00:00", strtotime("+" . (($ind - 1) * 7) . ' days', strtotime($monthStart)));
-            $weekEnd = date("Y-m-d 23:50:50", strtotime("+" . ($ind * 7 - 1) . ' days', strtotime($monthStart)));
+            $weekEnd = date("Y-m-d 23:59:59", strtotime("+" . ($ind * 7 - 1) . ' days', strtotime($monthStart)));
             if ($weekEnd > $monthEnd) {
                 $weekEnd = $monthEnd;
             }
 
-            // Ищем каталог-гуиды категории services
-            $productsClass = ProductsClass::find()->select(['category_id', 'tip'])
-                ->where(['tip' => 'services'])
-                ->indexBy('category_id')
-                ->asArray()->all();
-
-            // Ищем продуктовые гуиды по каталог-гуидам категории service
-            $products1c = Products1c::find()->select(['id', 'parent_id', 'name'])
-                ->where(['parent_id' => array_keys($productsClass), 'tip' => 'products'])
-                ->indexBy(['id'])
-                ->asArray()->all();
-
             // Ищем продажи по продуктовым гуидам по каталог-гуидам категории service
             $sales = Sales::find()->alias('s')
                 ->leftJoin('sales_products p', 'p.check_id = s.id')
@@ -400,23 +412,11 @@ class MotivationService
                 }
             }
 
-            // Ищем каталог-гуиды категории services_delivery
-            $productsClass = ProductsClass::find()->select(['category_id', 'tip'])
-                ->where(['tip' => 'services_delivery'])
-                ->indexBy('category_id')
-                ->asArray()->all();
-
-            // Ищем продуктовые гуиды по каталог-гуидам категории service_delivery
-            $products1c = Products1c::find()->select(['id', 'parent_id', 'name'])
-                ->where(['parent_id' => array_keys($productsClass), 'tip' => 'products'])
-                ->indexBy(['id'])
-                ->asArray()->all();
-
             // Ищем продажи по продуктовым гуидам по каталог-гуидам категории service_delivery
             $sales = Sales::find()->alias('s')
                 ->leftJoin('sales_products p', 'p.check_id = s.id')
                 ->where(['between', 's.date', $weekStart, $weekEnd])
-                ->andWhere(['p.product_id' => array_keys($products1c)])
+                ->andWhere(['p.product_id' => array_keys($products1cDelivery)])
                 ->andWhere(['s.store_id' => $store_id])
                 ->andWhere(['s.operation' => Sales::OPERATION_SALE])
                 ->asArray()->all();