--- /dev/null
+<?php
+
+/* @var $time integer */
+
+use yii_app\records\Sales;
+use yii_app\records\SchedulerTaskLog;
+use yii_app\records\Users;
+use yii_app\records\UsersBonus;
+use yii_app\services\LogService;
+
+ini_set('max_execution_time', (string)(60 * 60 * 1)); // 1 час
+ini_set('display_errors', 'on');
+ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ALL);
+
+echo "time_" . $time . "_time ";
+$taskNum = 31;
+$dateTask = date('Y-m-d H:i:s');
+$dateTaskStart = null;
+$dateTaskStop = null;
+$log = '';
+$error = '';
+$infoError = '';
+$infoText = '';
+$description = '';
+$result = 0;
+
+$enable = true;
+$start = false;
+$force = false;
+
+$minuetTimeInTask = date('i', $time);
+$fullTimeInTask = date('Y-m-d H:i:s', $time);
+
+try {
+ if (
+ (
+ ((int)date('i', $time) % 5) == 0
+ || $force
+ )
+ && $enable
+ ) {
+
+
+
+ $dateTaskStart = date('Y-m-d H:i:s');
+ $info = ' ================ test Task 0' . $taskNum . ' start ================';
+ echo $info;
+ $log .= $info;
+ $log .= $time;
+ // все флористы и администраторы
+
+ $infoText .= ' test ';
+
+ //////////////////////////////////////////////
+ $sales = Sales::find()->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();
+}