From: Alexander Smirnov Date: Sun, 28 Apr 2024 10:47:48 +0000 (+0300) Subject: add 1000 bonus per 5000 sale X-Git-Tag: 1.1~76^2~2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=1b76d4e59fc00844f26e53717d9b8bacb4c29ff9;p=erp24_rep%2Fyii-erp24%2F.git add 1000 bonus per 5000 sale --- diff --git a/erp24/scripts/tasks/task_31_for_5000_give_1000.php b/erp24/scripts/tasks/task_31_for_5000_give_1000.php new file mode 100644 index 00000000..aca579bd --- /dev/null +++ b/erp24/scripts/tasks/task_31_for_5000_give_1000.php @@ -0,0 +1,138 @@ +where(['>', 'date', '2024-04-30 00:00:00'])->andWhere(['<=', 'date', '2024-05-02 23:59:59']) + ->andWhere(['operation' => 'Продажа'])->andWhere(['>=', 'summ', '5000'])->orderBy(['date' => SORT_ASC])->all(); + $returns = Sales::find()->where(['>', 'date', '2024-04-30 00:00:00'])->andWhere(['<=', 'date', '2024-05-02 23:59:59']) + ->andWhere(['operation' => 'Возврат'])->all(); + + $returnCheckIds = []; + foreach ($returns as $return) { + $returnCheckIds[] = $return->id; + } + + foreach ($sales as $sale) { + /** @var $sale Sales */ + $userBonus = UsersBonus::find()->where(['check_id' => $sale->id])->one(); + if (!$userBonus && !in_array($sale->id, $returnCheckIds)) { + $userBonus = new UsersBonus; + $userBonus->date = date('Y-m-d H:i:s'); + $userBonus->tip = 'plus'; + $userBonus->tip_sale = '1000per5000'; + $userBonus->phone = "" . $sale->phone; + $userBonus->name = "Майские праздники. 1000р за 5000р покупки."; + $userBonus->store_id = $sale->store_id; + $userBonus->site_id = 1; + $userBonus->referal_id = 0; + $userBonus->admin_id = 0; + $userBonus->price = $sale->summ; + $userBonus->price_skidka = 0; + $userBonus->bonus = 1000; + $userBonus->store_id_1c = $sale->store_id_1c; + $userBonus->seller_id_1c = $sale->seller_id; + $userBonus->date_start = date('Y-m-d 08:00:00', strtotime('+0 day', strtotime($userBonus->date))); + $userBonus->date_end = date('Y-m-d H:i:s', strtotime('+365 day', strtotime($userBonus->date_start))); + $userBonus->save(); + if ($userBonus->getErrors()) { + var_dump($userBonus->getErrors()); + } + } else if ($userBonus && in_array($sale->id, $returnCheckIds)) { + $userBonus->delete(); + } + } + + ////////////////////////////////////////////// + + + $info = ' ================ test Task 0' . $taskNum . ' stop ================'; + echo $info; + $log .= $info; + $dateTaskStop = date('Y-m-d H:i:s'); + } else { + $info = ' Task 0' . $taskNum . ' skip '; + echo $info; + $log .= $info; + } +} catch (Exception $e) { + $error = 'Exception: ' . $e->getMessage() . ' >>> ' . $e->getLine(); +} + + + +if (empty($schedulerTaskLog)) { + $schedulerTaskLog = new SchedulerTaskLog(); + $schedulerTaskLog->setTaskNum($taskNum) + ->setName('Task 0' . $taskNum) + ->setDate($dateTask) + ->setDateStart($dateTaskStart) + ->setDateStop($dateTaskStop) + ->setDescription($description) + ->setError($error) + ->setInfo($infoText) + ->setLog($log) + ; +} else { + $schedulerTaskLog->setDateStop($dateTaskStop) + ->setDescription($description) + ->setError($error) + ->setInfo($infoText) + ->setLog($log) + ; +} +$validate = $schedulerTaskLog->validate(); +if ($validate) { + $schedulerTaskLog->save(); +}