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) {