From: marina Date: Wed, 2 Jul 2025 09:18:35 +0000 (+0300) Subject: ERP-433 Отчет по остаткам букетов для МП и причинам, если логика не проходит. Возможн... X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=1d9517b19df1124c349d24e39dee324424ee987f;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 f589dbd4..f73f9cde 100644 --- a/erp24/actions/marketplace/ReportAction.php +++ b/erp24/actions/marketplace/ReportAction.php @@ -24,9 +24,9 @@ class ReportAction extends Action ]) ->select('p1n.id'); - $storeId = Yii::$app->request->get('store', 4); - - $products = Products1c::find() + $storeId = Yii::$app->request->post('store', 'dbd70103-2c7b-11e9-9b87-c85b76f0e893'); + $isValid = Yii::$app->request->post('is_valid'); + $innerQuery = Products1c::find() ->alias('p1n') ->leftJoin('prices p', 'p.product_id = p1n.id') ->leftJoin('matrix_erp_property_dynamic mep', 'mep.product_id = p1n.id AND mep.active = 1') @@ -47,7 +47,7 @@ class ReportAction extends Action FROM jsonb_each( replace(trim(both '\"' from mep.value), '\"\"', '\"')::jsonb ) AS j(key, value) - LEFT JOIN balances b ON b.product_id::text = j.key AND b.store_id = '{$storeId}' + LEFT JOIN balances b ON b.product_id::text = j.key AND b.store_id = :storeId LEFT JOIN products_1c prod ON prod.id::text = j.key ) ")], 'true') @@ -56,35 +56,37 @@ class ReportAction extends Action 'p1n.name', 'p1n.articule', new \yii\db\Expression(" - ( - 'Коэффициент: ' || COALESCE(mp.reminder_koef::text, 'N/A') || E'\n' || - COALESCE( - concat_ws( - E'\n', - CASE WHEN mep.id IS NULL THEN 'Не имеет состава букета' ELSE NULL END, - CASE WHEN p.price IS NULL THEN 'Нет имеет цены' ELSE NULL END - ), - '' - ) - || - CASE WHEN mp_check.has_insufficient_quantity THEN - E'\n' || mp_check.insuff_reason - ELSE '' - END - ) AS reason -") - - , + ( + 'Коэффициент: ' || COALESCE(mp.reminder_koef::text, 'N/A') || E'\n' || + COALESCE( + concat_ws( + E'\n', + CASE WHEN mep.id IS NULL THEN 'Не имеет состава букета' ELSE NULL END, + CASE WHEN p.price IS NULL THEN 'Нет имеет цены' ELSE NULL END + ), + '' + ) + || + CASE WHEN mp_check.has_insufficient_quantity THEN + E'\n' || mp_check.insuff_reason + ELSE '' + END + ) AS reason + "), new \yii\db\Expression(" - CASE - WHEN mep.id IS NULL OR p.price IS NULL OR mp_check.has_insufficient_quantity THEN FALSE - ELSE TRUE - END AS is_valid - "), + CASE + WHEN mep.id IS NULL OR p.price IS NULL OR mp_check.has_insufficient_quantity THEN FALSE + ELSE TRUE + END AS is_valid + "), ]) ->where(['in', 'parent_id', $subQuery]) + ->params([':storeId' => $storeId]); + + $products = (new \yii\db\Query()) + ->from(['q' => $innerQuery]) + ->andFilterWhere(['is_valid' => $isValid]) ->orderBy(['is_valid' => SORT_ASC]) - ->asArray() ->all(); diff --git a/erp24/views/marketplace/report.php b/erp24/views/marketplace/report.php index d3a1cc0e..c9392c47 100644 --- a/erp24/views/marketplace/report.php +++ b/erp24/views/marketplace/report.php @@ -22,12 +22,8 @@ $this->params['breadcrumbs'][] = $this->title;
'store', - 'value' => Yii::$app->request->get('store', 4), - 'data' => ArrayHelper::map( - CityStore::findAll(['visible' => CityStore::IS_VISIBLE]), - 'id', - 'name' - ), + 'value' => Yii::$app->request->post('store', 'dbd70103-2c7b-11e9-9b87-c85b76f0e893'), + 'data' => CityStore::getAllActiveGuidName(), 'options' => [ 'placeholder' => 'Выберите магазин', ], @@ -36,12 +32,29 @@ $this->params['breadcrumbs'][] = $this->title; ], ]) ?>
-
+
+ 'is_valid', + 'value' => Yii::$app->request->post('is_valid'), + 'data' => [ + 'true' => 'Да', + 'false' => 'Нет', + ], + 'options' => [ + 'placeholder' => 'Активен ли букет на МП?', + ], + 'pluginOptions' => [ + 'allowClear' => true, + ], + ]) ?> +
+
'btn btn-primary']) ?>
+ $dataProvider, 'columns' => [