From: marina Date: Tue, 1 Jul 2025 14:04:29 +0000 (+0300) Subject: ERP-433 Отчет по остаткам букетов для МП и причинам, если логика не проходит. Возможн... X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=42f8a62d085dc6f7a3af2c197db2e3c8d2f6a406;p=erp24_rep%2Fyii-erp24%2F.git ERP-433 Отчет по остаткам букетов для МП и причинам, если логика не проходит. Возможность ручной выгрузки из ERP в Excel --- diff --git a/erp24/actions/marketplace/ReportAction.php b/erp24/actions/marketplace/ReportAction.php index 7e9ffd98..8a48bde5 100644 --- a/erp24/actions/marketplace/ReportAction.php +++ b/erp24/actions/marketplace/ReportAction.php @@ -24,24 +24,36 @@ class ReportAction extends Action ]) ->select('p1n.id'); - $productsRaw = Products1c::find() + $products = Products1c::find() + ->alias('p1n') + ->leftJoin('prices p', 'p.product_id = p1n.id') + ->leftJoin('matrix_erp_property mep', 'mep.guid = p1n.id') + ->select([ + 'p1n.id', + 'p1n.name', + 'p1n.articule', + new \yii\db\Expression(" + CASE + WHEN mep.id IS NULL AND p.price IS NULL THEN + 'Не имеет состава букета в MatrixErpProperty и нет цена' + WHEN mep.id IS NULL THEN + 'Не имеет состава букета в MatrixErpProperty' + WHEN p.price IS NULL THEN + 'Нет цены' + ELSE NULL + END AS reason + "), + new \yii\db\Expression(" + CASE + WHEN mep.id IS NULL OR p.price IS NULL THEN FALSE + ELSE TRUE + END AS is_valid + ") + ]) ->where(['in', 'parent_id', $subQuery]) - ->limit(10) + ->asArray() ->all(); - $marketplaceService = new MarketplaceService(); - - $products = []; - - foreach ($productsRaw as $product) { - $check = $marketplaceService->checkProducts($product, true); - $products[] = [ - 'id' => $product->id, - 'name' => $product->name, - 'articule' => $product->articule, - 'checkResult' => $check !== false ? 'true' : 'false', - ]; - } $dataProvider = new ArrayDataProvider([ 'allModels' => $products, diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index e309da99..7bc8b269 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -486,19 +486,8 @@ class MarketplaceService return false; } - $price = MarketplaceService::getProductPrice($product->id); - if ($price == 0) { - if ($isView) { - $message = "У товара {$product->id} отсутствует цена и он будет исключен из фида."; - Yii::error($message, __METHOD__); - InfoLogService::setInfoLog(__FILE__, __LINE__, $message, 'Zero price error'); - } - return false; - } - return [ 'properties' => $properties, - 'price' => $price, ]; } diff --git a/erp24/views/marketplace/report.php b/erp24/views/marketplace/report.php index a3fedd2c..4195a3e9 100644 --- a/erp24/views/marketplace/report.php +++ b/erp24/views/marketplace/report.php @@ -20,7 +20,21 @@ $this->params['breadcrumbs'][] = $this->title; 'name', 'articule', 'id', - 'checkResult', + [ + 'attribute' => 'is_valid', + 'label' => 'Активен ли букет на МП?', + 'value' => function ($model) { + return $model->is_valid ? 'Да' : 'Нет'; + } + ], + [ + 'attribute' => 'reason', + 'label' => 'Причина не активности', + 'value' => function ($model) { + return $model->reason; + } + ], + 'reason', ], ]); ?>