diff --git a/Layout/default/Preorder/include/preorder-detail.php b/Layout/default/Preorder/include/preorder-detail.php index 913dc5c8f..43dca4981 100644 --- a/Layout/default/Preorder/include/preorder-detail.php +++ b/Layout/default/Preorder/include/preorder-detail.php @@ -521,8 +521,12 @@ - + status->code != "20"): ?> + status->code == "20"): ?> + @@ -542,8 +546,10 @@ adb_wohneinheit->ftu_data["id"]?> + -

FCP

+
+

FCP

fcp): ?> @@ -566,9 +572,12 @@
-

Kein FCP zugewiesen

+
+ +
-
diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index 593a136b3..c1c418a55 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -256,7 +256,7 @@ class PreorderModel LEFT JOIN `" . FRONKDB_DBNAME . "`.Preorderstatus tt_preorderstatus ON (tt_preorder.status_id = tt_preorderstatus.id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Wohneinheit as adb_wohneinheit ON (tt_preorder.adb_wohneinheit_id = adb_wohneinheit.id) - LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id + LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted', 'cancelled') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id WHERE $where ORDER BY $orderBy LIMIT 1"; @@ -305,7 +305,7 @@ class PreorderModel LEFT JOIN `" . FRONKDB_DBNAME . "`.Preorderstatus tt_preorderstatus ON (tt_preorder.status_id = tt_preorderstatus.id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Wohneinheit as adb_wohneinheit ON (tt_preorder.adb_wohneinheit_id = adb_wohneinheit.id) - LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id + LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted', 'cancelled') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id LEFT JOIN Preorderlogistics ON (Preorderlogistics.preorder_id = tt_preorder.id) WHERE $where "; @@ -331,7 +331,7 @@ class PreorderModel LEFT JOIN `" . FRONKDB_DBNAME . "`.Preorderstatus tt_preorderstatus ON (tt_preorder.status_id = tt_preorderstatus.id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Wohneinheit as adb_wohneinheit ON (tt_preorder.adb_wohneinheit_id = adb_wohneinheit.id) - LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id + LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted', 'cancelled') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id LEFT JOIN Preorderlogistics ON (Preorderlogistics.preorder_id = tt_preorder.id) WHERE $where ORDER BY lastname, firstname @@ -385,7 +385,7 @@ class PreorderModel LEFT JOIN `" . FRONKDB_DBNAME . "`.Preorderstatus as tt_preorderstatus ON (tt_preorder.status_id = tt_preorderstatus.id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Wohneinheit as adb_wohneinheit ON (tt_preorder.adb_wohneinheit_id = adb_wohneinheit.id) - LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id, + LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted', 'cancelled') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id, JSON_TABLE(tt_preorder.addon_services, '$[*]' COLUMNS ( ordered VARCHAR(64) PATH '$.ordered' @@ -426,7 +426,7 @@ class PreorderModel LEFT JOIN `" . FRONKDB_DBNAME . "`.Preorderstatus as tt_preorderstatus ON (tt_preorder.status_id = tt_preorderstatus.id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id) LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Wohneinheit as adb_wohneinheit ON (tt_preorder.adb_wohneinheit_id = adb_wohneinheit.id) - LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id, + LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name, MAX(rimo_team_name) as rimo_team_name, MAX(rimo_team_id) as rimo_team_id FROM `" . FRONKDB_DBNAME . "`.RimoWorkorder WHERE rimo_status NOT IN ('deleted', 'cancelled') GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id, JSON_TABLE(tt_preorder.addon_services, '$[*]' COLUMNS ( ordered VARCHAR(64) PATH '$.ordered' @@ -469,6 +469,7 @@ class PreorderModel if (!array_key_exists("status_code", $filter) && !array_key_exists("status_code", $filter) && !array_key_exists("status_id", $filter) && !array_key_exists("status_id", $filter)) { $filter["status_code", $filter) && !array_key_exists("status_code", $filter) && !array_key_exists("status_id", $filter) && !array_key_exists("status_id", $filter)) { $filter["debug($sql); + $res = $db->query($sql); if ($db->num_rows($res)) { @@ -706,6 +710,15 @@ class PreorderModel } } + if (array_key_exists("!status_code", $filter)) { + $status_code = $filter['!status_code']; + if (is_numeric($status_code)) { + $where .= " AND tt_preorderstatus.code != $status_code"; + } elseif (is_array($status_code)) { + $where .= " AND tt_preorderstatus.code NOT IN (" . implode(",", $status_code) . ")"; + } + } + if (array_key_exists("<=status_code", $filter)) { $status_code = $filter['<=status_code']; if (is_numeric($status_code)) { @@ -727,7 +740,7 @@ class PreorderModel $where .= " AND tt_preorder.borderpoint_status='$borderpoint_status'"; } } - + if (array_key_exists("preordercampaign_id", $filter)) { $preordercampaign_id = $filter['preordercampaign_id']; @@ -924,16 +937,10 @@ class PreorderModel if (array_key_exists("rimo_workorder_status", $filter)) { $rimo_workorder_status = $filter['rimo_workorder_status']; - if (is_array($rimo_workorder_status) && count($rimo_workorder_status)) { $rimo_workorder_status = array_map(function ($value) { return FronkDB::singleton()->escape($value); }, $filter['rimo_workorder_status']); - - if (is_array($rimo_workorder_status) && in_array('Canceled', $rimo_workorder_status) && !in_array('Cancelled', $rimo_workorder_status)) { - $rimo_workorder_status = array_merge($rimo_workorder_status, ['Cancelled']); - } - $where .= " AND workorder.rimo_status IN ('" . implode("','", $rimo_workorder_status) . "')"; } else if ($rimo_workorder_status) { $rimo_workorder_status = FronkDB::singleton()->escape($rimo_workorder_status); @@ -1198,7 +1205,7 @@ class PreorderModel `".FRONKDB_DBNAME."`.Preorder p LEFT JOIN `".ADDRESSDB_DBNAME."`.Hausnummer h ON p.adb_hausnummer_id = h.id LEFT JOIN `".FRONKDB_DBNAME."`.Preorderstatus tt_preorderstatus ON p.status_id = tt_preorderstatus.id - WHERE p.deleted = 0 AND tt_preorderstatus.code < 899"; + WHERE p.deleted = 0 AND tt_preorderstatus.code NOT IN (20) AND tt_preorderstatus.code < 899" . $where; $queryStart = microtime(true); $res = $db->query($sql . $where); @@ -1268,9 +1275,9 @@ class PreorderModel } public static function countHistoryStatus($filter = [], $status_code = null) { - if ($status_code === null) { - die("Please select a status code"); - } + if ($status_code === null) { + die("Please select a status code"); + } if (!is_array($filter)) return false;