]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-140] рефактор
authorAlexander Smirnov <fredeom@mail.ru>
Tue, 3 Sep 2024 16:46:33 +0000 (19:46 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Tue, 3 Sep 2024 16:46:33 +0000 (19:46 +0300)
erp24/services/MotivationService.php

index 1906133a6a3f086c4103e55b0f8f583f2ec8c3c5..ffe487adcb44ec027362561811e522f529b6d06e 100644 (file)
@@ -1286,48 +1286,18 @@ class MotivationService
 
         $motivations = Motivation::find()->where(['year' => $year, 'month' => $month])->indexBy('store_id')->all();
 
-        $motivationValueGroupFact = MotivationValueGroup::find()->where(['alias' => 'fact'])->one();
-        $motivationCostsItemServices = MotivationCostsItem::find()->where(['name' => 'Услуги по сборке'])->one();
-        $motivationCostsItemServicesDelivery = MotivationCostsItem::find()->where(['name' => 'Услуги по доставке'])->one();
-        /** @var $motivationCostsItemServices MotivationCostsItem */
-        /** @var $motivationCostsItemServicesDelivery MotivationCostsItem */
-
         $storeIds = ArrayHelper::getColumn(CityStore::find()->where(['visible' => '1'])->all(), 'id');
         foreach ($storeIds as $store_id) {
             if (isset($motivations[$store_id])) {
-                $correction = self::getMotivationValue($motivations[$store_id]->id, 8, $motivationCostsItemServices->code);
-
-                $motivationValueService = MotivationValue::find()->where(['motivation_id' => $motivations[$store_id]->id,
-                    'motivation_group_id' => $motivationValueGroupFact->id, 'value_id' => $motivationCostsItemServices->code])->one();
-                if (!$motivationValueService) {
-                    $motivationValueService = new MotivationValue;
-                    $motivationValueService->motivation_id = $motivations[$store_id]->id;
-                    $motivationValueService->motivation_group_id = $motivationValueGroupFact->id;
-                    $motivationValueService->value_id = $motivationCostsItemServices->code;
-                    $motivationValueService->value_type = $motivationCostsItemServices->data_type;
-                }
-                $motivationValueService->value_float = ($salesProduct[$store_id]['total'] ?? 0) + $correction;
-                $motivationValueService->save();
-                if ($motivationValueService->getErrors()) {
-                    throw new \Exception(Json::encode($motivationValueService->getErrors()));
-                }
+                $correction = self::getMotivationValue($motivations[$store_id]->id, 8, self::CODE_ASSEMBLY_SERVICES);
 
-                $correction = self::getMotivationValue($motivations[$store_id]->id, 8, $motivationCostsItemServicesDelivery->code);
+                self::saveOrUpdateMotivationValue($motivations[$store_id]->id, "fact",
+                    self::CODE_ASSEMBLY_SERVICES, "float", ($salesProduct[$store_id]['total'] ?? 0) + $correction);
 
-                $motivationValueServiceDelivery = MotivationValue::find()->where(['motivation_id' => $motivations[$store_id]->id,
-                    'motivation_group_id' => $motivationValueGroupFact->id, 'value_id' => $motivationCostsItemServicesDelivery->code])->one();
-                if (!$motivationValueServiceDelivery) {
-                    $motivationValueServiceDelivery = new MotivationValue;
-                    $motivationValueServiceDelivery->motivation_id = $motivations[$store_id]->id;
-                    $motivationValueServiceDelivery->motivation_group_id = $motivationValueGroupFact->id;
-                    $motivationValueServiceDelivery->value_id = $motivationCostsItemServicesDelivery->code;
-                    $motivationValueServiceDelivery->value_type = $motivationCostsItemServicesDelivery->data_type;
-                }
-                $motivationValueServiceDelivery->value_float = ($salesProductDelivery[$store_id]['total'] ?? 0) + $correction;
-                $motivationValueServiceDelivery->save();
-                if ($motivationValueServiceDelivery->getErrors()) {
-                    throw new \Exception(Json::encode($motivationValueServiceDelivery->getErrors()));
-                }
+                $correctionDelivery = self::getMotivationValue($motivations[$store_id]->id, 8, self::CODE_DELIVERY_SERVICES);
+
+                self::saveOrUpdateMotivationValue($motivations[$store_id]->id, "fact",
+                    self::CODE_DELIVERY_SERVICES, "float", ($salesProductDelivery[$store_id]['total'] ?? 0) + $correctionDelivery);
             }
         }
     }