From 1d4483e5a06de1e501a67bb0df230c2cff393e95 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Tue, 19 Aug 2025 08:40:29 +0200 Subject: [PATCH] fixed createWorkordersFromPreorders to add statusflag filter --- application/Preorder/PreorderModel.php | 15 +++++++++++++++ .../RMLWorkorderAdminController.php | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index e6cd3869c..e6a416d7b 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -646,6 +646,21 @@ class PreorderModel } } + if (!empty($filter['preorder_status_flags_all']) && is_array($filter['preorder_status_flags_all'])) { + $sanitized_flags = array_map('intval', $filter['preorder_status_flags_all']); + $flags_list = implode(',', $sanitized_flags); + $flags_count = count($sanitized_flags); + $dbName = FRONKDB_DBNAME; + + $where .= " AND tt_preorder.id IN ( + SELECT psv.preorder_id + FROM `{$dbName}`.PreorderStatusflagValue psv + WHERE psv.flag_id IN ({$flags_list}) AND psv.value = 1 + GROUP BY psv.preorder_id + HAVING COUNT(DISTINCT psv.flag_id) = {$flags_count} + )"; + } + if (array_key_exists("preorder_status_flags_disabled", $filter)) { $preorder_status_flags_disabled = $filter['preorder_status_flags_disabled']; if (is_array($preorder_status_flags_disabled) && count($preorder_status_flags_disabled)) { diff --git a/application/RMLWorkorderAdmin/RMLWorkorderAdminController.php b/application/RMLWorkorderAdmin/RMLWorkorderAdminController.php index 7dd33cb34..a5ea1c0fb 100644 --- a/application/RMLWorkorderAdmin/RMLWorkorderAdminController.php +++ b/application/RMLWorkorderAdmin/RMLWorkorderAdminController.php @@ -85,7 +85,7 @@ class RMLWorkorderAdminController extends TTCrud } private function createWorkordersFromPreorders() { - $newPreorders = PreorderModel::searchActive(['status_code' => 220]); + $newPreorders = PreorderModel::searchActive(['status_code' => 220, 'preorder_status_flags_all' => [3,5]]); if (empty($newPreorders)) return; foreach ($newPreorders as $preorder) {