]> gitweb.erp-flowers.ru Git - yii-erp24/.git/commitdiff
add 1000 bonus per 5000 sale
authorAlexander Smirnov <fredeom@mail.ru>
Sun, 28 Apr 2024 10:47:48 +0000 (13:47 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Sun, 28 Apr 2024 10:47:48 +0000 (13:47 +0300)
erp24/scripts/tasks/task_31_for_5000_give_1000.php [new file with mode: 0644]

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 (file)
index 0000000..aca579b
--- /dev/null
@@ -0,0 +1,138 @@
+<?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();
+}