From: Alexander Smirnov Date: Fri, 13 Dec 2024 14:55:24 +0000 (+0300) Subject: Сортировка числа вниз X-Git-Tag: 1.7~166^2~1 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=53d6caea604eb57fd9db2b87cd8516a82286dbb0;p=erp24_rep%2Fyii-erp24%2F.git Сортировка числа вниз --- diff --git a/erp24/controllers/ShiftTransferController.php b/erp24/controllers/ShiftTransferController.php index 3d27fd4c..4c1e8b96 100644 --- a/erp24/controllers/ShiftTransferController.php +++ b/erp24/controllers/ShiftTransferController.php @@ -3,6 +3,7 @@ namespace app\controllers; use Yii; +use yii\db\Expression; use yii\helpers\ArrayHelper; use yii\helpers\Json; use yii\web\Controller; @@ -64,9 +65,21 @@ class ShiftTransferController extends Controller public function buildLoadDataShiftRemains($groups, $storeGuid, $normal = true) { $productsClass = ProductsClass::find()->select(['category_id'])->where(['tip' => $groups])->column(); - $products = ArrayHelper::map(Products1c::find()->alias('p')->select(['id', 'name'])->leftJoin('products_class pc', 'pc.category_id = p.parent_id') - ->where(['parent_id' => $productsClass])->orderBy(['(CASE WHEN pc.tip = \'other_items\' THEN 1 ELSE 0 END)' => SORT_DESC - , 'name' => SORT_ASC])->all(), 'id', 'name'); + $products = ArrayHelper::map( + Products1c::find()->alias('p') + ->select(['p.id', 'p.name']) + ->leftJoin('products_class pc', 'pc.category_id = p.parent_id') + ->where(['parent_id' => $productsClass]) + ->orderBy([ + // Сортировка по "tip", где значения 'other_items' будут в начале + '(CASE WHEN pc.tip = \'other_items\' THEN 1 ELSE 0 END)' => SORT_DESC, + // Сортировка по имени: сначала буквы (регулярное выражение для проверки начала на букву) + '(CASE WHEN p.name ~ \'^[0-9]\' THEN 0 ELSE 1 END)' => SORT_DESC, + // Обычная алфавитная сортировка + 'p.name' => SORT_ASC, + ]) + ->all(), 'id', 'name' + ); $balance = ArrayHelper::map(Balances::find()->select(['quantity', 'product_id']) ->where(['store_id' => $storeGuid])->all(), 'product_id', 'quantity'); $productGuids = [];