diff --git a/Layout/default/Order/Form.php b/Layout/default/Order/Form.php index 77e6e49e7..4453bfbac 100644 --- a/Layout/default/Order/Form.php +++ b/Layout/default/Order/Form.php @@ -604,18 +604,34 @@ - - -
- -
- - +
+
+
+ +
+ +
+
+ +
+ +
+ finish_date) : date("d.m.Y")?>" /> +
+
+ + +
+ +
+ + +
+
+
- -
@@ -663,6 +679,14 @@ } }); + $('#order_finished').change(function() { + if($('#order_finished').is(":checked")) { + $('#finish_date_field').show(); + } else { + $('#finish_date_field').hide(); + } + }); + $('#order_date').datepicker({ language: 'de', format: "dd.mm.yyyy", @@ -679,6 +703,14 @@ autoclose: true }); + $('#finish_date').datepicker({ + language: 'de', + format: "dd.mm.yyyy", + showWeekDays: true, + todayBtn: 'linked', + autoclose: true + }); + // disable mousewheel on input number field when in focus $('form').on('focus', 'input[type=number]', function (e) { @@ -891,6 +923,10 @@ } return true; }); + + finish_date): ?> + $('#finish_date_field').hide(); + }); diff --git a/Layout/default/Order/Index.php b/Layout/default/Order/Index.php index e6114a4f5..0cee9a285 100644 --- a/Layout/default/Order/Index.php +++ b/Layout/default/Order/Index.php @@ -71,7 +71,14 @@ - +
+ + +
@@ -90,7 +97,7 @@
-

Bestellungen ohne Produkte

+

Bestellungen ohne Produkt

diff --git a/application/Order/OrderController.php b/application/Order/OrderController.php index a54113855..c46777935 100644 --- a/application/Order/OrderController.php +++ b/application/Order/OrderController.php @@ -20,10 +20,10 @@ class OrderController extends mfBaseController { $filter = []; $this->layout->set("filter", $this->request->filter); - if($this->request->filter) { + //if($this->request->filter) { $filter = $this->getPreparedFilter($this->request->filter); - } - + //} + //var_dump($filter);exit; // pagination defaults $pagination = []; $pagination['start'] = 0; @@ -100,18 +100,21 @@ class OrderController extends mfBaseController { $lonelyOrders = []; - if(!count($filter)) { + //if(!count($filter)) { + unset($order_search["network_id"]); + $order_search['product_id'] = null; if($this->me->isAdmin()) { - $lonelies = OrderModel::search(['product_id' => null]); + $lonelies = OrderModel::search($order_search); } else { - $lonelies = OrderModel::search(['product_id' => null, 'create_by' => $this->me->id]); + $order_search['create_by'] = $this->me->id; + $lonelies = OrderModel::search($order_search); } foreach($lonelies as $order) { if(!array_key_exists($order->id, $orders)) { $lonelyOrders[$order->id] = $order; } } - } + //} $this->layout()->set("orders", $orders); $this->layout()->set("lonelyOrders", $lonelyOrders); @@ -121,30 +124,43 @@ class OrderController extends mfBaseController { private function getPreparedFilter($filter) { $new_filter = []; - - if(is_numeric($filter['networksection_id']) && $filter['networksection_id']) { - $section = new Networksection($filter['networksection_id']); - if($section->id) { - $filter['network_id'] = $section->network_id; - } - } - if(array_key_exists("termination_status", $filter)) { - $status = $filter['termination_status']; - if($status == "term_connected") { - $new_filter["termination_status_code"] = ">=".TT_TERMSTATUS_CONNECTED; + if(is_array($filter) && count($filter)) { + if(is_numeric($filter['networksection_id']) && $filter['networksection_id']) { + $section = new Networksection($filter['networksection_id']); + if($section->id) { + $filter['network_id'] = $section->network_id; + } } - if($status == "building_connected") { - $new_filter["building_status_code"] = ">=".TT_BUILDINGSTATUS_CONNECTED; - } - if($status == "pipework_needed") { - $new_filter["building_status_code"] = "<".TT_BUILDINGSTATUS_CONNECTED; + + if(array_key_exists("termination_status", $filter)) { + $status = $filter['termination_status']; + if($status == "term_connected") { + $new_filter["termination_status_code"] = ">=".TT_TERMSTATUS_CONNECTED; + } + if($status == "building_connected") { + $new_filter["building_status_code"] = ">=".TT_BUILDINGSTATUS_CONNECTED; + } + if($status == "pipework_needed") { + $new_filter["building_status_code"] = "<".TT_BUILDINGSTATUS_CONNECTED; + } + } - } - - foreach($filter as $name => $value) { - $new_filter[$name] = $value; + if(array_key_exists("finished", $filter)) { + if($filter["finished"] == "1") { + $new_filter["finish_date"] = true; + } else { + $new_filter["finish_date"] = false; + } + } + + //var_dump($new_filter);exit; + foreach($filter as $name => $value) { + $new_filter[$name] = $value; + } + } else { + $new_filter["finish_date"] = false; } return $new_filter; @@ -371,7 +387,15 @@ class OrderController extends mfBaseController { } $order_data['edit_by'] = $this->me->id; - + //var_dump($r); + if($r->order_finished == "1") { + if($r->finish_date) { + $order_data['finish_date'] = Layout::dateToInt($r->finish_date); + } else { + $order_data['finish_date'] = date("U"); + } + } + //var_dump($order_data);exit; if($mode == "add") { $order = OrderModel::create($order_data); } else { diff --git a/application/Order/OrderModel.php b/application/Order/OrderModel.php index 0752af294..1b0bc9233 100644 --- a/application/Order/OrderModel.php +++ b/application/Order/OrderModel.php @@ -186,6 +186,8 @@ class OrderModel { GROUP BY `Order`.id ORDER BY `Order`.order_date ASC"; + mfLoghandler::singleton()->debug($sql); + if(is_array($limit) && count($limit)) { if(is_numeric($limit['start']) && is_numeric($limit['count'])) { $sql .= " LIMIT ".$limit['start'].", ".$limit['count']; @@ -212,21 +214,30 @@ class OrderModel { if(array_key_exists("owner_id", $filter)) { $ownerid= $filter['owner_id']; if(is_numeric($ownerid)) { - $where .= " AND Order.owner_id=$ownerid"; + $where .= " AND `Order`.owner_id=$ownerid"; } } if(array_key_exists("create_by", $filter)) { $create_by = $filter['create_by']; if(is_numeric($create_by)) { - $where .= " AND Order.create_by=$create_by"; + $where .= " AND `Order`.create_by=$create_by"; + } + } + + if(array_key_exists("finish_date", $filter)) { + $finish_date = $filter['finish_date']; + if($finish_date) { + $where .= " AND `Order`.finish_date > 0"; + } else { + $where .= " AND (`Order`.finish_date = 0 OR `Order`.finish_date IS NULL)"; } } if(array_key_exists("name", $filter)) { $name = FronkDB::singleton()->escape($filter['name']); if($name) { - $where .= " AND Order.name='$name'"; + $where .= " AND `Order`.name='$name'"; } }