From: Vladimir Fomichev Date: Mon, 13 Oct 2025 11:19:37 +0000 (+0300) Subject: Добавление обработки Яндекс X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=6ad693659efa9e9079d36fc1fbcd3692101605a9;p=erp24_rep%2Fyii-erp24%2F.git Добавление обработки Яндекс --- diff --git a/erp24/media/controllers/NotificationController.php b/erp24/media/controllers/NotificationController.php index 815e89fa..24902e34 100644 --- a/erp24/media/controllers/NotificationController.php +++ b/erp24/media/controllers/NotificationController.php @@ -6,6 +6,7 @@ use JsonException; use OpenAPI\Client\ObjectSerializer; use Yii; use yii\filters\AccessControl; +use yii\helpers\ArrayHelper; use yii\helpers\Json; use yii\rest\Controller; use yii\web\BadRequestHttpException; @@ -18,9 +19,11 @@ use yii_app\records\CreateChecks; use yii_app\records\ExportImportTable; use yii_app\records\Files; use yii_app\records\Images; +use yii_app\records\MarketplaceOrder1cStatuses; use yii_app\records\MarketplaceOrderDelivery; use yii_app\records\MarketplaceOrderItems; use yii_app\records\MarketplaceOrders; +use yii_app\records\MarketplaceOrderStatusTypes; use yii_app\records\MatrixErp; use yii_app\records\MatrixErpProperty; use yii_app\records\Products1c; @@ -101,6 +104,18 @@ class NotificationController extends Controller } */ + $statuses = MarketplaceOrderStatusTypes::find() + ->select(['id', 'code']) + ->indexBy('code') + ->asArray() + ->all(); + $cancelledStatusId = $statuses[MarketplaceOrderStatusTypes::CANSELLED_CODE]['id']; + $status1cWithCancelledId = ArrayHelper::getColumn(MarketplaceOrder1cStatuses::find() + ->where(['order_status_id' => $cancelledStatusId]) + ->andWhere(['marketplace_id' => 2]) + ->asArray() + ->all(), 'id'); + $rawBody = Yii::$app->request->getRawBody(); // if (!is_dir(self::getPathNotification())) { // mkdir(self::getPathNotification(), 0777, true); @@ -289,16 +304,6 @@ class NotificationController extends Controller $campaignId = $data['campaignId']; $orderId = $data['orderId']; $orderData = MarketplaceService::fetchOrder($campaignId, $orderId); - $order = MarketplaceOrders::find() - ->where(['marketplace_order_id' => (string)$orderId]) - ->one(); - if ($order) { - $order->cancelled_order_source = 'Yandex Market'; - $order->cancelled_order_date = date('Y-m-d H:m:s'); - if (!$order->save()) { - Yii::error('Ошибка сохранения заказа ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE)); - } - } if (empty($orderData)) { Yii::$app->response->statusCode = 400; @@ -310,6 +315,17 @@ class NotificationController extends Controller ]); } $result = MarketplaceService::processOrders($orderData); + $order = MarketplaceOrders::find() + ->where(['marketplace_order_id' => (string)$orderId]) + ->one(); + if ($order) { + $order->cancelled_order_source = 'Yandex Market'; + $order->status_processing_1c = $status1cWithCancelledId; + $order->cancelled_order_date = date('Y-m-d H:m:s'); + if (!$order->save()) { + Yii::error('Ошибка сохранения заказа ' . json_encode($order->getErrors(), JSON_UNESCAPED_UNICODE)); + } + } return $this->asJson([ 'version' => '1.0.0', 'name' => 'БазаЦветов24', diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index 4b41b3fa..f39bf1d8 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -2336,7 +2336,7 @@ class MarketplaceService // отмена или успешное выполнение if ($index == self::SUBJECT_INDEX[self::SUBJECT_CANCELLED]) { /** @var $marketplaceOrder MarketplaceOrders */ - $marketplaceOrder->cancelled_order_source = 'Yandex Market'; + $marketplaceOrder->cancelled_order_source = 'Flowwow'; $marketplaceOrder->cancelled_order_date = date('Y-m-d H:m:s'); } if ($marketplaceOrder->save()) {