From e78c660ab60a7a54c2c4fa7222e59c243a3de2f4 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Tue, 3 Sep 2024 19:46:33 +0300 Subject: [PATCH] =?utf8?q?[ERP-140]=20=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= =?utf8?q?=D0=BE=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/services/MotivationService.php | 44 +++++----------------------- 1 file changed, 7 insertions(+), 37 deletions(-) diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index 1906133a..ffe487ad 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -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); } } } -- 2.39.5