'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']),
],
],
[
'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;
}
],
[