]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Вывод ошибки и обработка ошибки создания чека заказа с МП в 1С
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 23 Dec 2025 14:34:41 +0000 (17:34 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 23 Dec 2025 14:34:41 +0000 (17:34 +0300)
erp24/records/CreateChecks.php
erp24/services/MarketplaceService.php
erp24/services/UploadService.php
erp24/views/marketplace-orders/index.php

index edd3ee29094065d1e82d9f4cfa4d97ddacc24e28..1781596520d44ccbb6643bec6e752961a43d6ee8 100644 (file)
@@ -34,6 +34,9 @@ use yii_app\api3\core\validators\PhoneValidator;
  */
 class CreateChecks extends \yii\db\ActiveRecord
 {
+    const STATUS_CHECK_CREATED_ERP = 0;
+    const STATUS_CHECK_CREATED_1C = 1;
+    const STATUS_CHECK_ERROR_1C = 8;
     /**
      * {@inheritdoc}
      */
index aa81ef2180638f76998312f6d670a2fc40dfde00..d0742dfca29aa76f03a918b500758e5265a23d8a 100644 (file)
@@ -3168,14 +3168,15 @@ class MarketplaceService
                     ->select(['id'])
                     ->where(['articule' => $item->offer_id])
                     ->one();
-
-                $items[] = [
-                    'product_id' => $productsId->id ?? '',
-                    'quantity' => $item->count,
-                    'price' => $item->price,
-                    'seller_id' => $marketplaceOrder->seller_id,
-                    'marketplace_order_id' => $marketplaceOrder->marketplace_order_id,
-                ];
+                if ($productsId && $productsId->id) {
+                    $items[] = [
+                        'product_id' => $productsId->id,
+                        'quantity' => $item->count,
+                        'price' => $item->price,
+                        'seller_id' => $marketplaceOrder->seller_id,
+                        'marketplace_order_id' => $marketplaceOrder->marketplace_order_id,
+                    ];
+                }
             }
 
             $createChecks->items = Json::encode($items);
index fdd86150174613c65c8b39a34696cc5542f79c5e..b69aeaf5ec72c8b2db196789b28d827ae277bc4f 100644 (file)
@@ -1492,7 +1492,12 @@ class UploadService {
 //                        } catch (Exception $e) {
 //                            file_put_contents(self::OUT_DIR . '/log_created_check_error.txt', PHP_EOL . date("d.m.Y H:i:s",time()). $e->getMessage(), FILE_APPEND);
 //                        }
-
+                        CreateChecks::updateAll([
+                            'status' => CreateChecks::STATUS_CHECK_ERROR_1C,
+                            'guid' => $arr2["id"],
+                            'date_up' => date('Y-m-d H:i:s'),
+                        ], ['check_id' => $arr2["id"]]);
+                        LogService::apiErrorLog(json_encode(["error_id" => 31, "error" => 'ОШИБКА В 1С - СОЗДАНИЕ ЧЕКА ЗАКАЗА  id=' . $arr2["id"]], JSON_UNESCAPED_UNICODE));
                         $txt = date("d.m.Y H:i:s", time()) . " $idp СОЗДАНИЕ ЧЕКА ОШИБКА id=" . $arr2["id"] . " " . $arr2["error"];
                         file_put_contents(self::OUT_DIR . '/log_created_check_error.txt', PHP_EOL . $txt, FILE_APPEND);
                     } else { // Если ошибок нет
@@ -1511,7 +1516,7 @@ class UploadService {
 //                            }
                             // Обновляем данные в очереди на создание чеков
                             CreateChecks::updateAll([
-                                'status' => 1,
+                                'status' => CreateChecks::STATUS_CHECK_CREATED_1C,
                                 'guid' => $arr2["id"],
                                 'date_up' => date('Y-m-d H:i:s'),
                                 'name' => $arr2["name"],
index e59530977c2390e1d5d19eb36693fb51472d8085..6e0d36dc52e68c528d1127db58e7dbde903619c1 100644 (file)
@@ -2,6 +2,7 @@
 
 use kartik\grid\GridView;
 use yii\web\YiiAsset;
+use yii_app\records\CreateChecks;
 use yii_app\records\MarketplaceOrders;
 use yii\helpers\Html;
 use yii\helpers\Url;
@@ -249,14 +250,16 @@ YiiAsset::register($this);
                     }
 
                     $check = $model->check;
-                    if ($check->status == 0) {
+                    if ($check->status == CreateChecks::STATUS_CHECK_CREATED_ERP) {
                         return 'Создан в ERP';
                     }
 
-                    if ($check->status == 1) {
-                        return $check->name
-                            ? 'Создан в 1С'
-                            : 'Отправлен в 1С';
+                    if ($check->status == CreateChecks::STATUS_CHECK_CREATED_1C) {
+                        return 'Создан в 1С';
+                    }
+
+                    if ($check->status == CreateChecks::STATUS_CHECK_ERROR_1C) {
+                        return 'Ошибка создания в 1С';
                     }
 
                     return '-';