]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ошибка
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 18 Dec 2025 14:34:17 +0000 (17:34 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 18 Dec 2025 14:34:17 +0000 (17:34 +0300)
erp24/services/MarketplaceService.php
erp24/views/marketplace-orders/index.php

index d9935d1fa255f5837c62098fb6cc882ed446f4ea..634e21e949d51975b0a83b75f8100024094bb6ad 100644 (file)
@@ -1230,9 +1230,9 @@ class MarketplaceService
                         }
                         $marketplaceOrder->store_id = $store ? $store->store_id : null;
                         $marketplaceOrder->warehouse_guid = $warehouseGuid;
-                        $marketplaceOrder->marketplace_id = $store->warehouse_id ?? MarketplaceStore::YANDEX_WAREHOUSE_ID;
+                        $marketplaceOrder->marketplace_id = $store ? $store->warehouse_id : MarketplaceStore::YANDEX_WAREHOUSE_ID;
                         $warehouseNames = MarketplaceStore::getWarehouseId();
-                        $marketplaceOrder->marketplace_name = $warehouseNames[$marketplaceOrder->marketplace_id];
+                        $marketplaceOrder->marketplace_name = $warehouseNames[$marketplaceOrder->marketplace_id] ?? 'Unknown';
                     }
 
                     $marketplaceOrder->status_id = (int)$statusId;
index 22c02cae7f727a3b2250e9329e18c7a5995a4e34..9f46660109ffc2ab2cfe8dddb7f497d67aa4fe68 100644 (file)
@@ -86,9 +86,13 @@ YiiAsset::register($this);
                 'attribute' => 'store_id',
                 'format' => 'raw', // добавляем raw формат
                 'value' => function ($model) {
-                    return Html::tag('span', $model->store->name ?? '-', ['class' => ""]) . '<br>' .
-                        Html::tag('span', MarketplaceStore::getWarehouseId()[$model->mpstore->warehouse_id], ['class' => "bg-success text-white"])
-                        . '<br>' . Html::tag('span', $model->warehouse_guid ?? '-', ['class' => ""]);
+                    $storeName = $model->store->name ?? '-';
+                    $warehouseId = $model->mpstore ? MarketplaceStore::getWarehouseId()[$model->mpstore->warehouse_id] ?? '-' : '-';
+                    $warehouseGuid = $model->warehouse_guid ?? '-';
+                    
+                    return Html::tag('span', $storeName, ['class' => ""]) . '<br>' .
+                        Html::tag('span', $warehouseId, ['class' => "bg-success text-white"])
+                        . '<br>' . Html::tag('span', $warehouseGuid, ['class' => ""]);
                 },
                 'filter' => Html::input('text', 'MarketplaceOrdersSearch[store_name]', $searchModel->store_name, ['class' => 'form-control']),
             ],
@@ -180,8 +184,54 @@ YiiAsset::register($this);
             ],
             [
                 'attribute' => 'readyto_1c',
+                'label' => 'Готовность к 1С',
+                'format' => 'raw',
                 'value' => function ($model) {
-                    return $model->readyto_1c == 0 ? 'Не готов' : 'Готов';
+                    if ($model->readyto_1c == 1) {
+                        return Html::tag('span', 'Готов', ['class' => 'badge bg-success']);
+                    }
+                    
+                    // Проверяем причины неготовности
+                    $reasons = [];
+                    
+                    if (empty($model->marketplace_order_id)) {
+                        $reasons[] = 'Отсутствует ID заказа маркетплейса';
+                    }
+                    
+                    if (empty($model->marketplace_id)) {
+                        $reasons[] = 'Отсутствует ID маркетплейса';
+                    }
+                    
+                    if (empty($model->guid)) {
+                        $reasons[] = 'Отсутствует GUID заказа';
+                    }
+                    
+                    if (empty($model->order_link)) {
+                        $reasons[] = 'Отсутствует ссылка на заказ';
+                    }
+                    
+                    // Проверяем наличие товаров
+                    $items = $model->items;
+                    if (empty($items) || count($items) == 0) {
+                        $reasons[] = 'Отсутствуют товары в заказе';
+                    }
+                    
+                    if (empty($model->delivery_to)) {
+                        $reasons[] = 'Отсутствует срок доставки (delivery_to)';
+                    }
+                    
+                    if (empty($reasons)) {
+                        return Html::tag('span', 'Не готов (причина неизвестна)', ['class' => 'badge bg-warning']);
+                    }
+                    
+                    $reasonsHtml = Html::tag('span', 'Не готов', ['class' => 'badge bg-danger']);
+                    $reasonsHtml .= '<ul class="mt-2 mb-0" style="font-size: 0.85em;">';
+                    foreach ($reasons as $reason) {
+                        $reasonsHtml .= Html::tag('li', Html::encode($reason));
+                    }
+                    $reasonsHtml .= '</ul>';
+                    
+                    return $reasonsHtml;
                 }
             ],
             [