From: Alexander Smirnov Date: Thu, 8 Aug 2024 08:39:34 +0000 (+0300) Subject: Рефакторинг X-Git-Tag: 1.4~44^2~1 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=57726d715d6d2891bdec12e6eaaf438d278a9b23;p=erp24_rep%2Fyii-erp24%2F.git Рефакторинг --- diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index 544348ea..4510c792 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -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();