From 0a644ac2631222f29221b0bb0533df84b5d2b877 Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Fri, 20 Jun 2025 18:05:49 +0300 Subject: [PATCH] =?utf8?q?=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=BC=D0=B0?= =?utf8?q?=D1=82=D1=80=D0=B8=D1=86=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/CategoryPlanController.php | 45 +++++++++++++++----- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/erp24/controllers/CategoryPlanController.php b/erp24/controllers/CategoryPlanController.php index 5195c97a..6e133592 100644 --- a/erp24/controllers/CategoryPlanController.php +++ b/erp24/controllers/CategoryPlanController.php @@ -64,8 +64,7 @@ class CategoryPlanController extends Controller { "COUNT(*) as cnt", "SUM(CASE WHEN operation='Продажа' THEN s.summ ELSE (CASE WHEN operation='Возврат' THEN -s.summ ELSE 0 END) END) as total", "s.store_id", - //"p1c.type as type", - "p1cn.category as type", + "(CASE WHEN p1c.type = 'Матрица' THEN 'Матрица' ELSE p1cn.category END) as type", "TO_CHAR(s.date, 'YYYY-MM') as month" ]) ->leftJoin('sales_products sp', 's.id = sp.check_id') @@ -75,8 +74,17 @@ class CategoryPlanController extends Controller { ->andWhere(['order_id' => ['', '0']]) ->andWhere(['not in', 'p1cn.category', ['', 'букет', 'сборка', 'сервис']]) ->andWhere(['s.store_id' => $model->store_id]) - ->groupBy(['s.store_id', "TO_CHAR(s.date, 'YYYY-MM')", "p1cn.category"]) - ->orderBy(['month' => SORT_ASC, 'p1cn.category' => SORT_ASC]) + ->groupBy([ + 's.store_id', + "TO_CHAR(s.date, 'YYYY-MM')", + new \yii\db\Expression(" + CASE + WHEN p1c.type = 'Матрица' THEN 'Матрица' + ELSE p1cn.category + END + ") + ]) + ->orderBy(['month' => SORT_ASC, 'type' => SORT_ASC]) ->asArray() ->all(); @@ -101,8 +109,7 @@ class CategoryPlanController extends Controller { "COUNT(*) as cnt", "SUM(CASE WHEN operation='Продажа' THEN s.summ ELSE (CASE WHEN operation='Возврат' THEN -s.summ ELSE 0 END) END) as total", "s.store_id", - //"p1c.type as type", - "p1cn.category as type", + "(CASE WHEN p1c.type = 'Матрица' THEN 'Матрица' ELSE p1cn.category END) as type", "TO_CHAR(s.date, 'YYYY-MM') as month" ]) ->leftJoin('sales_products sp', 's.id = sp.check_id') @@ -112,8 +119,17 @@ class CategoryPlanController extends Controller { ->andWhere(['not in', 'order_id', ['', '0']]) ->andWhere(['s.store_id' => $model->store_id]) ->andWhere(['not in', 'p1cn.category', ['', 'букет', 'сборка', 'сервис']]) - ->groupBy(['s.store_id', "TO_CHAR(s.date, 'YYYY-MM')", "p1cn.category"]) - ->orderBy(['month' => SORT_ASC, 'p1cn.category' => SORT_ASC]) + ->groupBy([ + 's.store_id', + "TO_CHAR(s.date, 'YYYY-MM')", + new \yii\db\Expression(" + CASE + WHEN p1c.type = 'Матрица' THEN 'Матрица' + ELSE p1cn.category + END + ") + ]) + ->orderBy(['month' => SORT_ASC, 'type' => SORT_ASC]) ->asArray() ->all(); @@ -127,8 +143,7 @@ class CategoryPlanController extends Controller { $store_id = $eit->export_val ?? ''; $writeOffs = WriteOffs::find()->alias('wo')->select([ 'sum(wo.summ) as total', - //"p1c.type as p1ctype", - "p1cn.category as p1ctype", + "(CASE WHEN p1c.type = 'Матрица' THEN 'Матрица' ELSE p1cn.category END) as p1ctype", "TO_CHAR(wo.date, 'YYYY-MM') as month" ]) ->leftJoin('write_offs_products wop', 'wop.write_offs_id = wo.id') @@ -138,7 +153,15 @@ class CategoryPlanController extends Controller { ->andWhere(['wo.type' => WriteOffsErp::WRITE_OFFS_TYPE_BRAK]) ->andWhere(['not in', 'p1cn.category', ['', 'букет', 'сборка', 'сервис']]) ->andWhere(['wo.store_id' => $store_id]) - ->groupBy(["month", 'p1cn.category']) + ->groupBy([ + "month", + new \yii\db\Expression(" + CASE + WHEN p1c.type = 'Матрица' THEN 'Матрица' + ELSE p1cn.category + END + ") + ]) ->asArray()->all(); $tableWriteOffs = []; -- 2.39.5