]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Создание чеков в тестовых заказах
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 15 Jul 2025 06:53:50 +0000 (09:53 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 15 Jul 2025 06:53:50 +0000 (09:53 +0300)
erp24/controllers/MarketplaceOrdersController.php
erp24/views/marketplace-orders/index.php

index abdcff16e9d06f82491a818f6d143554aefe0467..09163194477345e0d37468d38821346f1d37388b 100644 (file)
@@ -661,15 +661,21 @@ class MarketplaceOrdersController extends Controller
 
         try {
             if ($model->fake) {
-                $deliveredStatusId = MarketplaceOrderStatusTypes::find()->select('id')->where(['code' => 'DELIVERED'])->scalar();
-                $deliveredSubstatusId = MarketplaceOrderStatusTypes::find()->select('id')->where(['code' => 'DELIVERY_SERVICE_DELIVERED'])->scalar();
+                $deliveredStatusId = MarketplaceOrderStatusTypes::find()->select('id')->where(['code' => 'DELIVERED'])->one();
+                $deliveredSubstatusId = MarketplaceOrderStatusTypes::find()->select('id')->where(['code' => 'DELIVERY_SERVICE_DELIVERED'])->one();
 
                 if (!$deliveredStatusId || !$deliveredSubstatusId) {
                     throw new \Exception('Не удалось найти статусы DELIVERED / DELIVERY_SERVICE_DELIVERED');
                 }
 
-                $model->status_id = $deliveredStatusId;
-                $model->substatus_id = $deliveredSubstatusId;
+                $model->status_id = $deliveredStatusId->id;
+                $model->substatus_id = $deliveredSubstatusId->id;
+                if ((int)$model->marketplace_id === 2) {
+                    $rawData = json_decode($model->raw_data, true, 512, JSON_THROW_ON_ERROR);
+                    $rawData['status'] = $deliveredStatusId->code;
+                    $rawData['substatus'] = $deliveredSubstatusId->code;
+                    $model->raw_data = json_encode($rawData, JSON_UNESCAPED_UNICODE);
+                }
 
                 if (!$model->save()) {
                     throw new \Exception('Ошибка сохранения модели: ' . json_encode($model->getErrors(), JSON_UNESCAPED_UNICODE));
@@ -738,7 +744,12 @@ class MarketplaceOrdersController extends Controller
         if ($model->fake) {
             $model->status_id = $statusCancelled->id;
             $model->substatus_id = $substatusFailed->id;
-
+            if ((int)$model->marketplace_id === 2) {
+                $rawData = json_decode($model->raw_data, true, 512, JSON_THROW_ON_ERROR);
+                $rawData['status'] = $statusCancelled->code;
+                $rawData['substatus'] = $substatusFailed->code;
+                $model->raw_data = json_encode($rawData, JSON_UNESCAPED_UNICODE);
+            }
             if (!$model->save()) {
                 Yii::error('Ошибка сохранения модели: ' . json_encode($model->getErrors(), JSON_UNESCAPED_UNICODE));
                 Yii::$app->session->setFlash('error', 'Ошибка обновления статуса заказа.');
@@ -789,29 +800,12 @@ class MarketplaceOrdersController extends Controller
     public function actionCheckOrders($id)
     {
         $model = $this->findModel($id);
-        $json = '{
-        "pager": {
-            "total": 32,
-               "from": 1,
-               "to": 32,
-               "currentPage": 1,
-               "pagesCount": 1,
-               "pageSize": 50
-           },
-           "orders": [' . $model->raw_data . '],
-           "paging": {}
-        }';
-        $content = json_decode($json, false, 512, JSON_THROW_ON_ERROR);
-
-        $testCampaignId = 109969229;
-        $testData = ObjectSerializer::deserialize($content, '\OpenAPI\Client\Model\GetOrdersResponse', []);
-        if (!empty($testData) && isset($testData['orders'])) {
-            $ordersData[$testCampaignId] = $testData['orders'];
-            $result = MarketplaceService::processOrders($ordersData);
-            if (!empty($result)) {
-                Yii::error('Заказ обновлен: ' . json_encode($result, JSON_UNESCAPED_UNICODE));
-                Yii::$app->session->setFlash('success', 'Заказ обновлен.');
-            }
+        $isCheckCreated = MarketplaceService::createCheckForMarketplaceOrder($model);
+        if ($isCheckCreated) {
+            Yii::$app->session->setFlash('success', 'Чек создан для заказа ' . $model->marketplace_order_id);
+        } else {
+            Yii::error('Чек для заказа не cоздан' . $model->marketplace_order_id, 'Marketplace');
+            Yii::$app->session->setFlash('error', 'Чек не cоздан для заказа ' . $model->marketplace_order_id);
         }
         return $this->redirect(['index']);
     }
index 336edd78db7259b628cf28398d7434bef0a6775b..8ef4afd746de00cfeb047530cec01f3db3891c00 100644 (file)
@@ -66,6 +66,12 @@ YiiAsset::register($this);
     <?= GridView::widget([
         'dataProvider' => $dataProvider,
         'filterModel' => $searchModel,
+        'rowOptions' => function ($model) {
+            if ($model->fake == 1) {
+                return ['style' => 'background-color: #fdd;'];
+            }
+            return [];
+        },
         'columns' => [
             ['class' => 'yii\grid\SerialColumn'],