From: Vladimir Fomichev Date: Fri, 20 Jun 2025 14:23:29 +0000 (+0300) Subject: Группировка по категориям X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=b9ff019a38e9253cdd9a3a9f2b7e82ad3b499f27;p=erp24_rep%2Fyii-erp24%2F.git Группировка по категориям --- diff --git a/erp24/controllers/CategoryPlanController.php b/erp24/controllers/CategoryPlanController.php index 8f329bc6..2cc797a3 100644 --- a/erp24/controllers/CategoryPlanController.php +++ b/erp24/controllers/CategoryPlanController.php @@ -64,16 +64,19 @@ 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", + //"p1c.type as type", + "p1cn.category as type", "TO_CHAR(s.date, 'YYYY-MM') as month" ]) ->leftJoin('sales_products sp', 's.id = sp.check_id') ->leftJoin('products_1c p1c', 'p1c.id = sp.product_id') + ->leftJoin('products_1c_nomenclature p1cn', 'p1cn.id = sp.product_id') ->where(['between', 's.date', $date_start, $date_end]) ->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')", "type"]) - ->orderBy(['month' => SORT_ASC, 'type' => SORT_ASC]) + ->groupBy(['s.store_id', "TO_CHAR(s.date, 'YYYY-MM')", "p1cn.category"]) + ->orderBy(['month' => SORT_ASC, 'p1cn.category' => SORT_ASC]) ->asArray() ->all(); @@ -98,16 +101,19 @@ 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", + //"p1c.type as type", + "p1cn.category as type", "TO_CHAR(s.date, 'YYYY-MM') as month" ]) ->leftJoin('sales_products sp', 's.id = sp.check_id') ->leftJoin('products_1c p1c', 'p1c.id = sp.product_id') + ->leftJoin('products_1c_nomenclature p1cn', 'p1cn.id = sp.product_id') ->where(['between', 's.date', $date_start, $date_end]) ->andWhere(['not in', 'order_id', ['', '0']]) ->andWhere(['s.store_id' => $model->store_id]) - ->groupBy(['s.store_id', "TO_CHAR(s.date, 'YYYY-MM')", "type"]) - ->orderBy(['month' => SORT_ASC, 'type' => SORT_ASC]) + ->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]) ->asArray() ->all(); @@ -121,15 +127,18 @@ class CategoryPlanController extends Controller { $store_id = $eit->export_val ?? ''; $writeOffs = WriteOffs::find()->alias('wo')->select([ 'sum(wo.summ) as total', - "p1c.type as p1ctype", + //"p1c.type as p1ctype", + "p1cn.category as p1ctype", "TO_CHAR(wo.date, 'YYYY-MM') as month" ]) ->leftJoin('write_offs_products wop', 'wop.write_offs_id = wo.id') ->leftJoin('products_1c p1c', 'p1c.id = wop.product_id') + ->leftJoin('products_1c_nomenclature p1cn', 'p1cn.id = wop.product_id') ->where(['between', 'wo.date', $date_start, $date_end]) ->andWhere(['wo.type' => WriteOffsErp::WRITE_OFFS_TYPE_BRAK]) + ->andWhere(['not in', 'p1cn.category', ['', 'сервис']]) ->andWhere(['wo.store_id' => $store_id]) - ->groupBy(["month", 'p1ctype']) + ->groupBy(["month", 'p1cn.category']) ->asArray()->all(); $tableWriteOffs = [];