From 6e23983b000f527e20ce282a1ecc94bb9e0c760d Mon Sep 17 00:00:00 2001 From: marina Date: Wed, 28 Aug 2024 09:40:03 +0300 Subject: [PATCH] =?utf8?q?ERP-85=20=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?utf8?q?=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BE=D0=B1=D0=BC=D0=B5=D0=BD?= =?utf8?q?=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D1=81=201=D0=A1=20?= =?utf8?q?=D0=91=D1=83=D1=85=D0=B3=D0=B0=D0=BB=D1=82=D0=B5=D1=80=D0=B8?= =?utf8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/api2/controllers/DataBuhController.php | 2 +- erp24/records/Motivation.php | 5 +- .../task_32_create_request_for_1c_buh.php | 79 ++++++++++++++----- erp24/services/MotivationServiceBuh.php | 9 ++- 4 files changed, 71 insertions(+), 24 deletions(-) diff --git a/erp24/api2/controllers/DataBuhController.php b/erp24/api2/controllers/DataBuhController.php index d15c0c19..a20e2f61 100644 --- a/erp24/api2/controllers/DataBuhController.php +++ b/erp24/api2/controllers/DataBuhController.php @@ -109,7 +109,7 @@ class DataBuhController extends BaseController } } catch (Exception $e) { - file_put_contents(self::OUT_DIR . '/error_buh_upload.txt', PHP_EOL . 'result empty', FILE_APPEND); +// file_put_contents(self::OUT_DIR . '/error_buh_upload.txt', PHP_EOL . 'result empty', FILE_APPEND); } return $this->asJson(['request_id' => $requestId, 'response' => true]); diff --git a/erp24/records/Motivation.php b/erp24/records/Motivation.php index 14fee7b8..399fc071 100644 --- a/erp24/records/Motivation.php +++ b/erp24/records/Motivation.php @@ -67,6 +67,7 @@ class Motivation extends \yii\db\ActiveRecord public static function getWeekRangeForDate($date = null) { + $date = $date ?? strtotime(date('Y-m-d')); $day = date('d', $date); @@ -89,8 +90,8 @@ class Motivation extends \yii\db\ActiveRecord public static function getWeek($date = null) { - $date = $date ?? date("d"); - $d = date("d", strtotime($date)); + $date = $date ?? date('d-m-Y'); + $d = date('j', strtotime($date)); return intval(floor(($d - 1) / 7) + 1); } 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 index c5c4c0b6..857d1788 100644 --- a/erp24/scripts/tasks/task_32_create_request_for_1c_buh.php +++ b/erp24/scripts/tasks/task_32_create_request_for_1c_buh.php @@ -5,6 +5,8 @@ */ 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; @@ -66,27 +68,68 @@ try { $weekRange = Motivation::getWeekRangeForDate(); - foreach (Firms::getInn() as $key => $firm ) { - $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); + + 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); + $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); + } + } + } + } else { + foreach (Firms::getInn() as $key => $firm) { + $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); + } + } - } + } + if (!in_array(Admin::findOne([Yii::$app->user->id])->group_id, [AdminGroup::GROUP_IT])) { + return $this->render('/site/index'); + } $info = ' ================ test Task ' . $taskNum . ' stop ================'; diff --git a/erp24/services/MotivationServiceBuh.php b/erp24/services/MotivationServiceBuh.php index 3ad27f31..b61108c2 100644 --- a/erp24/services/MotivationServiceBuh.php +++ b/erp24/services/MotivationServiceBuh.php @@ -47,9 +47,12 @@ class MotivationServiceBuh ->andWhere(['store_guid' => $storeData['store_guid']]) ->one(); - if (isset($storeBuh)) { - $store = CityStore::getCityStoreById($storeBuh->store_id, true); + if (!$storeBuh) { + LogService::apiErrorLog(json_encode(["error_id" => 45, "error" => 'Несуществующий магазин! Название: ' . $storeData['store_name'] . ' , guid: ' . $storeData['store_guid']], JSON_UNESCAPED_UNICODE)); + return; + } + $store = CityStore::getCityStoreById($storeBuh->store_id, true); foreach ($storeData['items'] as $items) { foreach ($items as $item) { $value = MotivationCostsItem::findOne(['name' => $item['name']]); @@ -103,7 +106,7 @@ class MotivationServiceBuh } } } - } + } } -- 2.39.5