From: fomichev Date: Tue, 15 Jul 2025 06:53:50 +0000 (+0300) Subject: Создание чеков в тестовых заказах X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=16d515795271a52fbbc2045f219cc35475e2a6d7;p=erp24_rep%2Fyii-erp24%2F.git Создание чеков в тестовых заказах --- diff --git a/erp24/controllers/MarketplaceOrdersController.php b/erp24/controllers/MarketplaceOrdersController.php index abdcff16..09163194 100644 --- a/erp24/controllers/MarketplaceOrdersController.php +++ b/erp24/controllers/MarketplaceOrdersController.php @@ -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']); } diff --git a/erp24/views/marketplace-orders/index.php b/erp24/views/marketplace-orders/index.php index 336edd78..8ef4afd7 100644 --- a/erp24/views/marketplace-orders/index.php +++ b/erp24/views/marketplace-orders/index.php @@ -66,6 +66,12 @@ YiiAsset::register($this); $dataProvider, 'filterModel' => $searchModel, + 'rowOptions' => function ($model) { + if ($model->fake == 1) { + return ['style' => 'background-color: #fdd;']; + } + return []; + }, 'columns' => [ ['class' => 'yii\grid\SerialColumn'],