diff --git a/Layout/default/Preorder/Form.php b/Layout/default/Preorder/Form.php index c1309ffa7..464ae75ac 100644 --- a/Layout/default/Preorder/Form.php +++ b/Layout/default/Preorder/Form.php @@ -65,7 +65,7 @@ Straße PLZ Ort - Wohneinheiten + Wohneinheiten belegt Code OAN ID @@ -95,7 +95,7 @@ building->street?>
building->zip?> building->city?>
- Wohneinheiten: building->units) ? $preorder->building->units : 1?> + Belegte Wohneinheiten: building->getUsedTerminationCount(true)?> von building->units) ? $preorder->building->units : 1?> building->code): ?>
building->code?> @@ -348,11 +348,13 @@ data.buildings.forEach(function(b) { var line = ''; - line += ''; - line += "" + b.street + ""; + line += ''; + + line += "" + b.street + ""; line += "" + b.zip + ""; line += "" + b.city + ""; - line += "" + b.units + ""; + line += "" + b.units_used + " / " + b.units + ""; line += "" + b.code + ""; line += "" + b.oan_id + ""; @@ -396,6 +398,7 @@ var code = $('input[name=building_result_check][value=' + id + ']').data("code"); var oan_id = $('input[name=building_result_check][value=' + id + ']').data("oanid"); var units = $('input[name=building_result_check][value=' + id + ']').data("units"); + var units_used = $('input[name=building_result_check][value=' + id + ']').data("units-used"); $('input[name=street]').val(street); $('input[name=zip]').val(zip); @@ -403,7 +406,7 @@ var label = street + "
" + zip + " " + city; - label += "
Wohneinheiten: " + units; + label += "
Belegte Wohneinheiten: " + units_used + " von " + units; if(code || oan_id) { if(code) { label += "
Code: " + code; diff --git a/application/Building/Building.php b/application/Building/Building.php index 2003391b4..b2b8bf53a 100644 --- a/application/Building/Building.php +++ b/application/Building/Building.php @@ -80,6 +80,25 @@ class Building extends mfBaseModel { return $code; } + public function getUsedTerminationCount($includePreorders = false) { + if(!$this->id) { + return false; + } + + $count = 0; + + $orders = OrderModel::search(['building_id' => $this->id]); + $count += count($orders); + + if($includePreorders) { + $preorders = PreorderModel::search(['building_id' => $this->id]); + $count += count($preorders); + } + + return $count; + + } + public function loadWorkflowItems() { $item_ids = []; diff --git a/application/Building/BuildingController.php b/application/Building/BuildingController.php index 5a6802ce3..47b504580 100644 --- a/application/Building/BuildingController.php +++ b/application/Building/BuildingController.php @@ -294,10 +294,10 @@ class BuildingController extends mfBaseController { $data['email'] = $building->email; } /* - // no more lineworker_id in Termination - if($building->lineworker_id) { - $data['lineworker_id'] = $building->lineworker_id; - }*/ + // no more lineworker_id in Termination + if($building->lineworker_id) { + $data['lineworker_id'] = $building->lineworker_id; + }*/ if($building->oan_id) { $data['oan_id'] = $building->oan_id. "." . sprintf("%03d", $i); } @@ -418,6 +418,7 @@ class BuildingController extends mfBaseController { $u['oan_id'] = $building->oan_id; $u['code'] = $building->code; $u['units'] = ($building->units) ? $building->units : 1; + $u['units_used'] = $building->getUsedTerminationCount(true); $u['status'] = $building->status->name; $unsorted[$building->street."-".$building->id] = $u; } diff --git a/application/Dashboard/DashboardController.php b/application/Dashboard/DashboardController.php index 80430640d..f618c7970 100644 --- a/application/Dashboard/DashboardController.php +++ b/application/Dashboard/DashboardController.php @@ -29,9 +29,15 @@ class DashboardController extends mfBaseController { var_dump($a->generateServicePin());exit; */ + /* $t = new Termination(45); $ports = $t->getLineworkportPairs(); var_dump($ports);exit; + * + */ + + $b = new Building(12); + echo $b->getUsedTerminationCount(true);exit; } protected function pdfAction() { diff --git a/application/Order/OrderModel.php b/application/Order/OrderModel.php index de825bd86..710413278 100644 --- a/application/Order/OrderModel.php +++ b/application/Order/OrderModel.php @@ -332,6 +332,17 @@ class OrderModel { } } + if(array_key_exists("building_id", $filter)) { + $building_id = $filter['building_id']; + if(is_numeric($building_id)) { + $where .= " AND Building.id=$building_id"; + } elseif(is_array($building_id)) { + $where .= " AND Building.id IN (".implode(",",$building_id).")"; + } elseif($building_id === null) { + $where .= " AND Building.id IS NULL"; + } + } + if(array_key_exists("termination_id", $filter)) { $termination_id = $filter['termination_id']; if(is_numeric($termination_id)) { diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index fc9f591a5..2a9d39bbc 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -118,6 +118,17 @@ class PreorderModel { } } + if(array_key_exists("building_id", $filter)) { + $building_id = $filter['building_id']; + if(is_numeric($building_id)) { + $where .= " AND building_id=$building_id"; + } elseif(is_array($building_id)) { + $where .= " AND building_id IN (".implode(",",$building_id).")"; + } elseif($building_id === null) { + $where .= " AND building_id IS NULL"; + } + } + //var_dump($filter, $where);exit;