From 93df823304e4b46e9e1fef7ab15a2ee7e7042794 Mon Sep 17 00:00:00 2001 From: vladfo Date: Wed, 2 Oct 2024 09:54:58 +0300 Subject: [PATCH] =?utf8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=BD=D0=B8=D1=8F?= =?utf8?q?=20=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=D1=85=20=D0=B7=D0=B0?= =?utf8?q?=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...ata_to_monitvation_from_motivation_buh.php | 23 +++++- ... => task_34_create_request_for_1c_buh.php} | 78 ++++++++++++------- 2 files changed, 71 insertions(+), 30 deletions(-) rename erp24/scripts/tasks/{task_32_create_request_for_1c_buh.php => task_34_create_request_for_1c_buh.php} (63%) diff --git a/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php b/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php index 464d9c56..4378cf5c 100644 --- a/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php +++ b/erp24/scripts/tasks/task_33_insert_data_to_monitvation_from_motivation_buh.php @@ -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_32_create_request_for_1c_buh.php b/erp24/scripts/tasks/task_34_create_request_for_1c_buh.php similarity index 63% rename from erp24/scripts/tasks/task_32_create_request_for_1c_buh.php rename to erp24/scripts/tasks/task_34_create_request_for_1c_buh.php index f9254fd8..53d51ab8 100644 --- a/erp24/scripts/tasks/task_32_create_request_for_1c_buh.php +++ b/erp24/scripts/tasks/task_34_create_request_for_1c_buh.php @@ -19,7 +19,7 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL); echo "time2_" . $time . "_time2 "; -$taskNum = 32; +$taskNum = 34; $dateTask = date('Y-m-d H:i:s'); $dateTaskStart = null; $dateTaskStop = null; @@ -59,41 +59,57 @@ try { $schedulerTaskLog->setTaskNum($taskNum) ->setName('Task ' . $taskNum) ->setDate($dateTask) - ->setDateStart($dateTaskStart) - ; + ->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'); + $currentDay = date('d'); + $currentMonth = date('m'); + $currentYear = date('Y'); - if ($week == 5) { - $day = ($week - 1) * 7 + 1; - } - $date = strtotime("{$day}-{$month}-{$year}"); - - $weekRange = Motivation::getWeekRangeForDate($date); - createApiCron($key, $weekRange); - } + 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); } - } else { - foreach (Firms::getInn() as $key => $firm) { - createApiCron($key, $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; @@ -118,21 +134,27 @@ if (empty($schedulerTaskLog)) { ->setDescription($description) ->setError($error) ->setInfo($infoText) - ->setLog($log) - ; + ->setLog($log); } else { $schedulerTaskLog->setDateStop($dateTaskStop) ->setDescription($description) ->setError($error) ->setInfo($infoText) - ->setLog($log) - ; + ->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'); -- 2.39.5