use yii_app\records\Incoming;
use yii_app\records\IncomingItems;
use yii_app\records\MarketplaceOrders;
+use yii_app\records\MarketplaceOrderStatusTypes;
use yii_app\records\OrdersAmo;
use yii_app\records\PaymentTypes;
use yii_app\records\Prices;
}
private function getMarketplaceNewOrders(): array {
+ $statusId = MarketplaceOrderStatusTypes::find()
+ ->where(['code' => 'PROCESSING'])->one()->id;
+ $substatusId = MarketplaceOrderStatusTypes::find()
+ ->where(['code' => 'STARTED'])->one()->id;
$marketplaceOrders = MarketplaceOrders::find()
->where([
'status_1c' => MarketplaceOrders::STATUSES_1C_CREATED_IN_ERP,
- 'status_id' => 1,
+ 'status_id' => $statusId,
+ 'substatus_id' => $substatusId,
])->andWhere([
'between',
'creation_date',
if (!empty($result['created_new_orders'])) {
foreach ($result['created_new_orders'] as $arr) {
- MarketplaceOrders::updateAll(['status_1c' => 2], ['guid' => $arr['id']]);
+ MarketplaceOrders::updateAll(['status_1c' => MarketplaceOrders::STATUSES_1C_SENDED_TO_1C], ['guid' => $arr['id']]);
}
}
}
}
- $marketplaceOrders->status_1c = MarketplaceOrders::STATUSES_1C_ERROR_1С;
+ $marketplaceOrders->status_1c = MarketplaceOrders::STATUSES_1C_ERROR_1C;
$marketplaceOrders->error_text = $errorText;
$marketplaceOrders->save();
if ($marketplaceOrders->getErrors()) {
$statusId1C = MarketplaceOrder1cStatuses::find()
->where(['marketplace_id' => $marketplaceId])
- ->andWhere(['status' => $orderStatus])
- ->one()->id;
+ ->andWhere(['status_id' => $orderStatus])
+ ->one();
if (empty($statusId1C)) {
$mess["result"] = 'error';
$mess["message_order"] = "Статус не найден";
}
// Получаем статусы МП по статусу 1С
- $orderStatus1CToCodes = MarketplaceOrders::getStatusCodes($orderStatus);
+ $orderStatus1CToCodes = MarketplaceOrders::getStatusCodes($statusId1C->status);
$statusId = MarketplaceService::getOrCreateStatus($orderStatus1CToCodes[0], $statuses, $statusCodes);
$substatusId = MarketplaceService::getOrCreateStatus($orderStatus1CToCodes[1], $statuses, $statusCodes);
if (
- in_array($singleOrder['status'], ['Отказ', 'Собрано']) &&
+ in_array($statusId1C->status, ['Отказ', 'Собрано']) &&
$order->marketplace_id == 2
) {
/* $updateResult = MarketplaceService::updateOrderStatus(
$order->substatus_id = $substatusId;
}
}
- $order->status_1c = $statusId1C;
+ $order->status_processing_1c = $statusId1C->id;
if ($order->save()) {
// Обновляем историю статусов
"order_id" => $orderGuid,
"result" => true,
"message" => "Статус обновлён",
- "status" => $orderStatus
+ "status" => $order->status_processing_1c
];
} else {
Yii::error('Ошибка сохранения: ' . Json::encode($order->getErrors(), JSON_UNESCAPED_UNICODE));
--- /dev/null
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Handles adding columns to table `{{%marketplace_orders}}`.
+ */
+class m250408_090416_add_status_processing_1c_column_to_marketplace_orders_table extends Migration
+{
+ const TABLE_NAME = 'erp24.marketplace_orders';
+ /**
+ * {@inheritdoc}
+ */
+ public function safeUp()
+ {
+ $table = $this->db->schema->getTableSchema(self::TABLE_NAME);
+ if ($table === null) {
+ return;
+ }
+
+ if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('status_processing_1c')) {
+ $this->addColumn(
+ self::TABLE_NAME,
+ 'status_processing_1c',
+ $this->integer()->null()->comment('Статус обработки заказа в 1С')
+ );
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function safeDown()
+ {
+ if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('status_processing_1c')) {
+ $this->dropColumn(self::TABLE_NAME, 'status_processing_1c');
+ }
+ }
+}
* @property string $error_text
* @property string|null $number_1c Название документа в 1с
* @property string|null $telegram_error ошибка телеграмма
+ * @property string|null $status_processing_1c Статус обработки заказа в 1С
*/
class MarketplaceOrders extends \yii\db\ActiveRecord
{
const STATUS_TELEGRAM_SENT = 2;
const STATUS_TELEGRAM_ERROR = 8;
- const STATUSES_1C_ERROR_1С = -3;
- const STATUSES_1C_CREATED_IN_ERP = -2;
- const STATUSES_1C_SENDED_TO_1C = -1;
- const STATUSES_1C_CREATED_IN_1C = 0;
+ const STATUSES_1C_ERROR_1C = 4;
+ const STATUSES_1C_CREATED_IN_ERP = 1;
+ const STATUSES_1C_SENDED_TO_1C = 2;
+ const STATUSES_1C_CREATED_IN_1C = 3;
const STATUSES_1C = [
self::STATUSES_1C_CREATED_IN_ERP => 'Создан в ЕРП',
self::STATUSES_1C_SENDED_TO_1C => 'Отправлен в 1C',
self::STATUSES_1C_CREATED_IN_1C => 'Создан в 1C',
+ self::STATUSES_1C_ERROR_1C => 'Ошибка в 1C',
];
[['store_id', 'warehouse_guid', 'returned_at', 'return_data', 'raw_data', 'guid'], 'default', 'value' => null],
[['cancel_requested', 'status_telegram'], 'default', 'value' => 0],
[['marketplace_order_id', 'marketplace_id', 'marketplace_name', '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],
+ [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'status_processing_1c'], 'default', 'value' => null],
[[ 'fake'], 'default', 'value' => 0],
- [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id', 'status_telegram'], 'integer'],
+ [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id', 'status_telegram', 'status_processing_1c'], 'integer'],
[['creation_date', 'updated_at', 'returned_at'], 'safe'],
[['return_data', 'raw_data', 'marketplace_name', 'telegram_error'], 'string'],
[['total', 'delivery_total', 'buyer_total_before_discount'], 'number'],
'number_1c' => 'Номер документа в 1с',
'status_telegram' => 'Статус отправки в телеграм',
'telegram_error' => 'Ошибка телеграмма',
+ 'status_processing_1c' => 'Статус обработки заказа в 1С',
];
}
public function getStatus1c()
{
- return $this->hasOne(MarketplaceOrder1cStatuses::class, ['id' => 'status_1c']);
+ return $this->hasOne(MarketplaceOrder1cStatuses::class, ['id' => 'status_processing_1c']);
}
[
'attribute' => 'status_1c',
'value' => function ($model) {
- return $model->status1c->status ?? MarketplaceOrders::STATUSES_1C[$model->status_1c];
+ return MarketplaceOrders::STATUSES_1C[$model->status_1c];
+ }
+ ],
+ [
+ 'attribute' => 'status_processing_1c',
+ 'value' => function ($model) {
+ return $model->status1c->status ?? null;
}
],
[
[
'attribute' => 'status_1c',
'value' => function ($model) {
- return $model->status1c->status ?? MarketplaceOrders::STATUSES_1C[$model->status_1c];
+ return MarketplaceOrders::STATUSES_1C[$model->status_1c];
+ }
+ ],
+ [
+ 'attribute' => 'status_processing_1c',
+ 'value' => function ($model) {
+ return $model->status1c->status ?? null;
}
],
],