Added extended search to Preorder Index
This commit is contained in:
@@ -105,18 +105,14 @@
|
||||
<input type="text" class="form-control" name="filter[kunde]" id="filter_kunde" value="<?=$filter['kunde'] ?? ""?>" />
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_magic_search">erweiterte Suche</label>
|
||||
<input type="text" class="form-control" name="filter[magic_search]" id="filter_magic_search" value="<?=$filter['magic_search'] ?? ""?>" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row mt-2">
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_address_source">Adressherkunft</label>
|
||||
<select name="filter[address_source]" id="filter_address_source" class="form-control">
|
||||
<option value=""></option>
|
||||
<option value="addressdb" <?=(isset($filter) && array_key_exists("address_source", $filter) && $filter['address_source'] == "addressdb") ? "selected='selected'" : ""?>>thetool AddressDB</option>
|
||||
<option value="manual" <?=(isset($filter) && array_key_exists("address_source", $filter) && $filter['address_source'] == "manual") ? "selected='selected'" : ""?>>manuelle Eingabe</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_unit_missing">Wohneinheit</label>
|
||||
<select name="filter[unit_missing]" id="filter_unit_missing" class="form-control">
|
||||
@@ -135,18 +131,8 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_unit_count">Anzahl Wohneinheiten in GWR</label>
|
||||
<select name="filter[unit_count]" id="filter_unit_count" class="form-control">
|
||||
<option value=""></option>
|
||||
<option value="0" <?=(isset($filter) && array_key_exists("unit_count", $filter) && strlen($filter['unit_count']) && intval($filter['unit_count']) === 0) ? "selected='selected'" : ""?>>0</option>
|
||||
<option value="1" <?=(isset($filter) && array_key_exists("unit_count", $filter) && intval($filter['unit_count']) === 1) ? "selected='selected'" : ""?>>1</option>
|
||||
<option value="2" <?=(isset($filter) && array_key_exists("unit_count", $filter) && intval($filter['unit_count']) === 2) ? "selected='selected'" : ""?>> > 1</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<?php if($campaign->fulfillment == "rimo"): ?>
|
||||
<div class="col-2">
|
||||
<?php if((isset($campaign) && $campaign->fulfillment == "rimo") || !isset($campaign) || !$campaign->id): ?>
|
||||
<div class="col-1">
|
||||
<label class="form-label" for="filter_rimo_workorder">Rimo Workorder</label>
|
||||
<select name="filter[rimo_workorder]" id="filter_rimo_workorder" class="form-control">
|
||||
<option value=""></option>
|
||||
@@ -155,6 +141,24 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_rimo_workorder">Rimo Workorder Status</label>
|
||||
<select name="filter[rimo_workorder_status]" id="filter_rimo_workorder_status" class="form-control">
|
||||
<option value=""></option>
|
||||
<option value="new" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && $filter["rimo_workorder_status"] == "new" ) ? "selected='selected'" : ""?>>New</option>
|
||||
<option value="Clarify" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && $filter["rimo_workorder_status"] == "Clarify" ) ? "selected='selected'" : ""?>>Clarify</option>
|
||||
<option value="Accepted" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && $filter["rimo_workorder_status"] == "Accepted" ) ? "selected='selected'" : ""?>>Accepted</option>
|
||||
<option value="Plan released" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && $filter["rimo_workorder_status"] == "Plan released" ) ? "selected='selected'" : ""?>>Plan released</option>
|
||||
<option value="Assigned" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && $filter["rimo_workorder_status"] == "Assigned" ) ? "selected='selected'" : ""?>>Assigned</option>
|
||||
<option value="Documented" <?=(isset($filter) && array_key_exists("rimo_workorder_status", $filter) && $filter["rimo_workorder_status"] == "Documented" ) ? "selected='selected'" : ""?>>Documented</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_kunde">Rimo Workorder Name</label>
|
||||
<input type="text" class="form-control" name="filter[rimo_workorder_name]" id="filter_workorder_name" value="<?=$filter['workorder_name'] ?? ""?>" />
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="rimo_home_extref">Wohneinheit Rimo-Extref</label>
|
||||
<select name="filter[rimo_home_extref]" id="filter_rimo_home_extref" class="form-control">
|
||||
|
||||
@@ -37,6 +37,7 @@ class AddressDB {
|
||||
`Hausnummer`.`rollout` AS `rollout`,
|
||||
`Hausnummer`.`rollout_info` AS `rollout_info`,
|
||||
`Hausnummer`.`freigabe` AS `freigabe`,
|
||||
`Hausnummer`.`rimo_id` AS `hausnummer_rimo_id`,
|
||||
`Hausnummer`.`rimo_fcp_name` AS `rimo_fcp_name`,
|
||||
`Wohneinheit`.`id` AS `wohneinheit_id`,
|
||||
`Wohneinheit`.`oaid` AS `wohneinheit_oaid`,
|
||||
|
||||
@@ -175,14 +175,30 @@ class PreorderController extends mfBaseController {
|
||||
|
||||
$new_filter['add-where'] = "";
|
||||
|
||||
if(array_key_exists("search",$filter) && trim($filter['search'])) {
|
||||
$search = trim($filter['search']);
|
||||
if(array_key_exists("magic_search",$filter) && trim($filter['magic_search'])) {
|
||||
$search = trim($filter['magic_search']);
|
||||
$new_filter['add-where'] .= " AND (";
|
||||
$new_filter['add-where'] .= " adb_hausnummer.gemeinde like '%$search%' OR adb_hausnummer.plz like '%$search%' OR adb_hausnummer.strasse like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR company like '%$search%' OR firstname like '%$search%' OR lastname like '%$search%' OR concat(firstname, ' ', lastname) like '%$search%' OR concat(lastname, ' ', firstname) like '%$search%' OR street like '%$search%' OR zip like '%$search%' OR city like '%$search%' OR email like '%$search' OR phone like '%$search'";
|
||||
$new_filter['add-where'] .= " OR ucode like '%$search' OR oaid like '%$search'";
|
||||
$new_filter['add-where'] .= " adb_hausnummer.gemeinde like '%$search%' OR adb_hausnummer.plz like '%$search%' OR adb_hausnummer.strasse like '%$search%'
|
||||
OR adb_hausnummer.hausnummer like '%$search%' OR CONCAT (adb_hausnummer.strasse, ' ', adb_hausnummer.hausnummer) like '%$search%'
|
||||
OR CONCAT (adb_hausnummer.strasse, ' ', adb_hausnummer.hausnummer) like '%".str_replace(" ", "%", $search)."%'";
|
||||
$new_filter['add-where'] .= " OR company like '%$search%' OR firstname like '%$search%' OR lastname like '%$search%' OR concat(firstname, ' ', lastname) like '%$search%' OR concat(lastname, ' ', firstname) like '%$search%' OR street like '%$search%' OR zip like '%$search%' OR city like '%$search%' OR email like '%$search%' OR phone like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR tt_preorder.ucode like '%$search%' OR tt_preorder.oaid like '%$search%'";
|
||||
|
||||
$new_filter['add-where'] .= " OR adb_wohneinheit.extref like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR adb_hausnummer.hausnummer_extref like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR adb_hausnummer.adrcd like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR adb_hausnummer.grund_nr like '%$search%'";
|
||||
|
||||
$new_filter['add-where'] .= " OR adb_hausnummer.rimo_fcp_name like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR workorder.rimo_status like '%$search%'";
|
||||
$new_filter['add-where'] .= " OR workorder.rimo_name like '%$search%'";
|
||||
|
||||
//$new_filter['add-where'] .= " OR ";
|
||||
$new_filter['add-where'] .= " )";
|
||||
}
|
||||
|
||||
//echo $new_filter['add-where'];exit;
|
||||
|
||||
if(array_key_exists("address", $filter) && $filter["address"]) {
|
||||
$address = $this->db()->escape($filter['address']);
|
||||
$new_filter['add-where'] .= " AND (adb_hausnummer.gemeinde like '%$address%' OR adb_hausnummer.plz like '%$address%' OR adb_hausnummer.strasse like '%$address%'
|
||||
@@ -241,6 +257,14 @@ class PreorderController extends mfBaseController {
|
||||
unset($filter['rimo_workorder']);
|
||||
}
|
||||
|
||||
if(array_key_exists("rimo_workorder_status", $filter) && $filter['rimo_workorder_status']) {
|
||||
$new_filter["rimo_workorder_status"] = $filter['rimo_workorder_status'];
|
||||
}
|
||||
|
||||
if(array_key_exists("rimo_workorder_name", $filter) && $filter['rimo_workorder_name']) {
|
||||
$new_filter["rimo_workorder_name"] = $filter['rimo_workorder_name'];
|
||||
}
|
||||
|
||||
if(array_key_exists("ucode", $filter) && $filter['ucode']) {
|
||||
$new_filter['ucode'] = "%".$filter['ucode']."%";
|
||||
unset($filter['ucode']);
|
||||
|
||||
@@ -142,7 +142,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id
|
||||
WHERE $where
|
||||
ORDER BY $orderBy
|
||||
LIMIT 1";
|
||||
@@ -171,7 +171,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder 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
|
||||
";
|
||||
@@ -196,7 +196,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder 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
|
||||
@@ -241,7 +241,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id,
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder 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'
|
||||
@@ -273,7 +273,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id,
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder 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'
|
||||
@@ -313,7 +313,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id
|
||||
WHERE $where
|
||||
";
|
||||
|
||||
@@ -337,7 +337,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 FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) wocount ON adb_wohneinheit.id = wocount.adb_wohneinheit_id
|
||||
LEFT OUTER JOIN (SELECT adb_wohneinheit_id, count(*) cnt, MAX(rimo_status) as rimo_status, MAX(rimo_name) as rimo_name FROM `".FRONKDB_DBNAME."`.RimoWorkorder GROUP BY adb_wohneinheit_id) workorder ON adb_wohneinheit.id = workorder.adb_wohneinheit_id
|
||||
WHERE $where
|
||||
ORDER BY lastname, firstname
|
||||
";
|
||||
@@ -568,9 +568,23 @@ class PreorderModel {
|
||||
if(array_key_exists("rimo_workorder", $filter)) {
|
||||
$rimo_workorder = $filter['rimo_workorder'];
|
||||
if($rimo_workorder === null || $rimo_workorder === false) {
|
||||
$where .= " AND (wocount.cnt IS NULL OR wocount.cnt = 0)";
|
||||
$where .= " AND (workorder.cnt IS NULL OR workorder.cnt = 0)";
|
||||
} elseif($rimo_workorder) {
|
||||
$where .= " AND wocount.cnt > 0";
|
||||
$where .= " AND workorder.cnt > 0";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("rimo_workorder_status", $filter)) {
|
||||
$rimo_workorder_status = FronkDB::singleton()->escape($filter['rimo_workorder_status']);
|
||||
if($rimo_workorder_status) {
|
||||
$where .= " AND workorder.rimo_status = '$rimo_workorder_status'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("rimo_workorder_name", $filter)) {
|
||||
$rimo_workorder_name = FronkDB::singleton()->escape($filter['rimo_workorder_name']);
|
||||
if($rimo_workorder_name) {
|
||||
$where .= " AND workorder.rimo_name = '$rimo_workorder_name'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user