]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Изменния в файлах задач
authorvladfo <fvv2011@gmail.com>
Wed, 2 Oct 2024 06:54:58 +0000 (09:54 +0300)
committervladfo <fvv2011@gmail.com>
Wed, 2 Oct 2024 06:54:58 +0000 (09:54 +0300)
erp24/scripts/tasks/task_32_create_request_for_1c_buh.php [deleted file]
erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php
erp24/scripts/tasks/task_34_create_request_for_1c_buh.php [new file with mode: 0644]

diff --git a/erp24/scripts/tasks/task_32_create_request_for_1c_buh.php b/erp24/scripts/tasks/task_32_create_request_for_1c_buh.php
deleted file mode 100644 (file)
index f9254fd..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<?php
-
-/**
- * @var $time integer
- */
-
-use yii\helpers\Json;
-use yii_app\records\Admin;
-use yii_app\records\AdminGroup;
-use yii_app\records\ApiCronBuh;
-use yii_app\records\Firms;
-use yii_app\records\Motivation;
-use yii_app\records\SchedulerTaskLog;
-
-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 "time2_" . $time . "_time2 ";
-$taskNum = 32;
-$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 (
-        (
-            (
-                date('H:i', $time) == "06:00" ||
-                date('H:i', $time) == "18:00"
-            )
-            || $force
-        )
-        && $enable
-    ) {
-
-        $dateTaskStart = date('Y-m-d H:i:s');
-        $info = ' ================ test Task ' . $taskNum . ' start ================';
-        echo $info;
-        $log .= $info;
-        $log .= $time;
-
-        $schedulerTaskLog = new SchedulerTaskLog();
-        $schedulerTaskLog->setTaskNum($taskNum)
-            ->setName('Task ' . $taskNum)
-            ->setDate($dateTask)
-            ->setDateStart($dateTaskStart)
-        ;
-        $validate = $schedulerTaskLog->validate();
-        if ($validate) {
-            $schedulerTaskLog->save();
-        }
-
-        $weekRange = Motivation::getWeekRangeForDate();
-
-        if ((date('d') % 7 == 0 || date('t') == date('d'))) {
-            foreach (Firms::getInn() as $key => $firm) {
-                for ($week = Motivation::getWeek(); $week >= 1; $week--) {
-                    sleep(1);
-                    $day = $week * 7;
-                    $month = date('m');
-                    $year = date('Y');
-
-                    if ($week == 5) {
-                        $day = ($week - 1) * 7 + 1;
-                    }
-
-                    $date = strtotime("{$day}-{$month}-{$year}");
-
-                    $weekRange = Motivation::getWeekRangeForDate($date);
-                    createApiCron($key, $weekRange);
-                }
-            }
-        } else {
-            foreach (Firms::getInn() as $key => $firm) {
-                createApiCron($key, $weekRange);
-            }
-
-        }
-
-
-        $info = ' ================ test Task ' . $taskNum . ' stop ================';
-        echo $info;
-        $log .= $info;
-        $log .= ' date >= ' . strtotime("-1 week", time());
-        $dateTaskStop = date('Y-m-d H:i:s');
-    } else {
-        $info = '   Task ' . $taskNum . ' skip   ';
-        echo $info;
-        $log .= $info;
-    }
-} catch (Exception $e) {
-    $error = 'Exception: ' . $e->getMessage() . ' ' . $e->getFile() . ' >>> ' . $e->getLine();
-}
-
-if (empty($schedulerTaskLog)) {
-    $schedulerTaskLog = new SchedulerTaskLog();
-    $schedulerTaskLog->setTaskNum($taskNum)
-        ->setName('Task ' . $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();
-}
-
-function createApiCron($key, $weekRange) {
-    $model = new ApiCronBuh();
-    $model->date = date('Y-m-d H:i:s');
-    $model->request_id = strval(strtotime($model->date) . '_' . $key);
-    $model->json_post = Json::encode([
-        'request_id' => $model->request_id,
-        'cost_items' => [
-            'start_time' => date('Y-m-d 00:00:00', strtotime($weekRange['start_time'])),
-            'end_time' => date('Y-m-d 23:59:59', strtotime($weekRange['end_time'])),
-        ]
-    ]);
-    $model->inn = $key;
-    try {
-        $model->save();
-    } catch (Exception $e) {
-        throw new Exception($e);
-    }
-}
\ No newline at end of file
index 464d9c563cc43d4a02c07ced611b2aa49675aaca..4378cf5c260f6796f08ae9b097a4ed42370c33ff 100644 (file)
@@ -67,10 +67,29 @@ try {
             $schedulerTaskLog->save();
         }
 
+
+
+
+        $currentDay = date('d', $time);
+
+
+        if ($currentDay == '01') {
+
+            $monthValue = intval(date('m', strtotime('-1 month', $time)));
+            $yearValue = intval(date('Y', strtotime('-1 month', $time)));
+        } else {
+
+            $monthValue = intval(date('m', $time));
+            $yearValue = intval(date('Y', $time));
+        }
+
+
+
+
         $month = MotivationBuh::find()
             ->select('id')
-            ->andWhere(['month' => intval(date('m'))])
-            ->andWhere(['year' => intval(date('Y'))])
+            ->andWhere(['month' => $monthValue])
+            ->andWhere(['year' => $yearValue])
             ->asArray()
             ->column();
 
diff --git a/erp24/scripts/tasks/task_34_create_request_for_1c_buh.php b/erp24/scripts/tasks/task_34_create_request_for_1c_buh.php
new file mode 100644 (file)
index 0000000..53d51ab
--- /dev/null
@@ -0,0 +1,175 @@
+<?php
+
+/**
+ * @var $time integer
+ */
+
+use yii\helpers\Json;
+use yii_app\records\Admin;
+use yii_app\records\AdminGroup;
+use yii_app\records\ApiCronBuh;
+use yii_app\records\Firms;
+use yii_app\records\Motivation;
+use yii_app\records\SchedulerTaskLog;
+
+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 "time2_" . $time . "_time2 ";
+$taskNum = 34;
+$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 (
+        (
+            (
+                date('H:i', $time) == "06:00" ||
+                date('H:i', $time) == "18:00"
+            )
+            || $force
+        )
+        && $enable
+    ) {
+
+        $dateTaskStart = date('Y-m-d H:i:s');
+        $info = ' ================ test Task ' . $taskNum . ' start ================';
+        echo $info;
+        $log .= $info;
+        $log .= $time;
+
+        $schedulerTaskLog = new SchedulerTaskLog();
+        $schedulerTaskLog->setTaskNum($taskNum)
+            ->setName('Task ' . $taskNum)
+            ->setDate($dateTask)
+            ->setDateStart($dateTaskStart);
+
+        $validate = $schedulerTaskLog->validate();
+        if ($validate) {
+            $schedulerTaskLog->save();
+        }
+
+        $currentDay = date('d');
+        $currentMonth = date('m');
+        $currentYear = date('Y');
+
+
+        if ($currentDay == 8) {
+            // 1-я неделя
+            $weekRange = Motivation::getWeekRangeForDate(1);
+            processFirms($weekRange);
+        } elseif ($currentDay == 15) {
+            // 1-я и 2-я недели
+            for ($week = 1; $week <= 2; $week++) {
+                $weekRange = Motivation::getWeekRangeForDate($week);
+                processFirms($weekRange);
+            }
+        } elseif ($currentDay == 22) {
+            // 1-я, 2-я и 3-я недели
+            for ($week = 1; $week <= 3; $week++) {
+                $weekRange = Motivation::getWeekRangeForDate($week);
+                processFirms($weekRange);
+            }
+        } elseif ($currentDay == 29) {
+            // 1-я, 2-я, 3-я и 4-я недели
+            for ($week = 1; $week <= 4; $week++) {
+                $weekRange = Motivation::getWeekRangeForDate($week);
+                processFirms($weekRange);
+            }
+        } elseif (date('t') == $currentDay) {
+            // Последний день месяца — все 5 недель
+            for ($week = 1; $week <= 5; $week++) {
+                $weekRange = Motivation::getWeekRangeForDate($week);
+                processFirms($weekRange);
+            }
+        }
+
+
+        if ($currentDay == 1) {
+            $previousMonth = date('m', strtotime('first day of last month'));
+            for ($week = 1; $week <= 5; $week++) {
+                $weekRange = Motivation::getWeekRangeForDate($week, $previousMonth);
+                processFirms($weekRange);
+            }
+        }
+
+        $info = ' ================ test Task ' . $taskNum . ' stop ================';
+        echo $info;
+        $log .= $info;
+        $log .= ' date >= ' . strtotime("-1 week", time());
+        $dateTaskStop = date('Y-m-d H:i:s');
+    } else {
+        $info = '   Task ' . $taskNum . ' skip   ';
+        echo $info;
+        $log .= $info;
+    }
+} catch (Exception $e) {
+    $error = 'Exception: ' . $e->getMessage() . ' ' . $e->getFile() . ' >>> ' . $e->getLine();
+}
+
+if (empty($schedulerTaskLog)) {
+    $schedulerTaskLog = new SchedulerTaskLog();
+    $schedulerTaskLog->setTaskNum($taskNum)
+        ->setName('Task ' . $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();
+}
+
+
+function processFirms($weekRange) {
+    foreach (Firms::getInn() as $key => $firm) {
+        createApiCron($key, $weekRange);
+    }
+}
+
+function createApiCron($key, $weekRange) {
+    $model = new ApiCronBuh();
+    $model->date = date('Y-m-d H:i:s');
+    $model->request_id = strval(strtotime($model->date) . '_' . $key);
+    $model->json_post = Json::encode([
+        'request_id' => $model->request_id,
+        'cost_items' => [
+            'start_time' => date('Y-m-d 00:00:00', strtotime($weekRange['start_time'])),
+            'end_time' => date('Y-m-d 23:59:59', strtotime($weekRange['end_time'])),
+        ]
+    ]);
+    $model->inn = $key;
+    try {
+        $model->save();
+    } catch (Exception $e) {
+        throw new Exception($e);
+    }
+}
\ No newline at end of file