From 160d69d0fac4c1882970f404247f4628f68f9b43 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Mon, 3 Mar 2025 13:11:37 +0300 Subject: [PATCH] =?utf8?q?[ERP-326]=20=D1=82=D0=B5=D0=BF=D0=B5=D1=80=D1=8C?= =?utf8?q?=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D1=83=D0=B5=D1=82?= =?utf8?q?=D1=81=D1=8F=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D0=B0=20mark?= =?utf8?q?etplace=5Forders?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...s_telegram_to_marketplace_orders_table.php | 27 +++++++++++++++++++ erp24/records/MarketplaceOrders.php | 10 +++++-- .../tasks/task_35_new_order_to_telegram.php | 11 +++++--- 3 files changed, 42 insertions(+), 6 deletions(-) create mode 100755 erp24/migrations/m250303_095855_add_column_status_telegram_to_marketplace_orders_table.php diff --git a/erp24/migrations/m250303_095855_add_column_status_telegram_to_marketplace_orders_table.php b/erp24/migrations/m250303_095855_add_column_status_telegram_to_marketplace_orders_table.php new file mode 100755 index 00000000..3f3fe7ff --- /dev/null +++ b/erp24/migrations/m250303_095855_add_column_status_telegram_to_marketplace_orders_table.php @@ -0,0 +1,27 @@ +addColumn(self::TABLE_NAME, 'status_telegram', $this->tinyInteger()->notNull() + ->defaultValue(0)->comment('0 - не отправлено, 1 - готово к отправке, 2 - отправлено')); + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + $this->dropColumn(self::TABLE_NAME, 'status_telegram'); + } +} diff --git a/erp24/records/MarketplaceOrders.php b/erp24/records/MarketplaceOrders.php index 0dc211cc..1dd312d3 100644 --- a/erp24/records/MarketplaceOrders.php +++ b/erp24/records/MarketplaceOrders.php @@ -28,9 +28,14 @@ use Yii; * @property string|null $raw_data Полный сырой ответ API * @property string|null $guid GUID заказа в 1С * @property int|null $status_1c Статус заказа в 1С + * @property int|null $status_telegram Статус отсылки заказа в телеграм */ class MarketplaceOrders extends \yii\db\ActiveRecord { + const STATUS_TELEGRAM_NOT_SENT = 0; + const STATUS_TELEGRAM_PREPARED_TO_SEND = 1; + const STATUS_TELEGRAM_SENT = 2; + const STATUSES_1C = [ 1 => 'Создан в ЕРП' ]; @@ -50,12 +55,12 @@ class MarketplaceOrders extends \yii\db\ActiveRecord { return [ [['store_id', 'warehouse_guid', 'returned_at', 'return_data', 'raw_data', 'guid'], 'default', 'value' => null], - [['cancel_requested'], 'default', 'value' => 0], + [['cancel_requested', 'status_telegram'], 'default', 'value' => 0], [['status_1c'], 'default', 'value' => 1], [['marketplace_order_id', 'status_id', 'substatus_id', 'creation_date', 'updated_at', 'total', 'delivery_total', 'buyer_total_before_discount', 'tax_system', 'payment_type', 'payment_method'], 'required'], [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c'], 'default', 'value' => null], [[ 'fake'], 'default', 'value' => 0], - [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c'], 'integer'], + [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'status_telegram'], 'integer'], [['creation_date', 'updated_at', 'returned_at'], 'safe'], [['return_data', 'raw_data'], 'string'], [['total', 'delivery_total', 'buyer_total_before_discount'], 'number'], @@ -93,6 +98,7 @@ class MarketplaceOrders extends \yii\db\ActiveRecord 'raw_data' => 'Полный сырой ответ API', 'guid' => 'GUID заказа в 1С', 'status_1c' => 'Статус заказа в 1С', + 'status_telegram' => 'Статус отправки в телеграм', ]; } diff --git a/erp24/scripts/tasks/task_35_new_order_to_telegram.php b/erp24/scripts/tasks/task_35_new_order_to_telegram.php index 9d74a329..0ea25e00 100644 --- a/erp24/scripts/tasks/task_35_new_order_to_telegram.php +++ b/erp24/scripts/tasks/task_35_new_order_to_telegram.php @@ -9,6 +9,7 @@ use yii\helpers\Json; use yii_app\records\SchedulerTaskLog; use \yii_app\records\Meeting; use yii_app\services\TelegramService; +use yii_app\records\MarketplaceOrders; ini_set('max_execution_time', (string)(60 * 60 * 1)); // 1 час ini_set('display_errors', 'on'); @@ -60,10 +61,12 @@ try { $schedulerTaskLog->save(); } //////////////////////////////////////////////////////////////////////// - Meeting::updateAll(['location' => 2], ['location' => 1]); - $meeting = Meeting::find()->where(['location' => 2])->one(); - if ($meeting) { - Meeting::updateAll(['location' => 3], ['location' => 2]); + MarketplaceOrders::updateAll(['status_telegram' => MarketplaceOrders::STATUS_TELEGRAM_PREPARED_TO_SEND], + ['status_telegram' => MarketplaceOrders::STATUS_TELEGRAM_NOT_SENT]); + $marketplaceOrders = MarketplaceOrders::find()->where(['status_telegram' => MarketplaceOrders::STATUS_TELEGRAM_PREPARED_TO_SEND])->one(); + if ($marketplaceOrders) { + MarketplaceOrders::updateAll(['status_telegram' => MarketplaceOrders::STATUS_TELEGRAM_SENT], + ['status_telegram' => MarketplaceOrders::STATUS_TELEGRAM_PREPARED_TO_SEND]); $botToken = TelegramService::TELEGRAM_BOT_DEV; $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage"; -- 2.39.5