Added Order finish_date

This commit is contained in:
Frank Schubert
2021-09-21 20:37:40 +02:00
parent 6b7bad66a0
commit 2320e1c782
4 changed files with 120 additions and 42 deletions

View File

@@ -604,18 +604,34 @@
</div>
</div>
<div class="form-group row">
<label class="col-lg-2"></label>
<div class="col-lg-10">
<button type="submit" class="btn btn-primary">Speichern</button>
<span id="form-error" class="text-danger hidden">Bitte alle benötigten Felder ausfüllen!</span>
<div class="card">
<div class="card-body">
<div class="form-group row">
<label class="col-lg-2"></label>
<div class="col-lg-10">
<label class="form-check-label"><input type="checkbox" class="form-check-input" name="order_finished" value="1" id="order_finished" <?=($order->allow_contact) ? "checked='checked'" : ""?> /> Bestellung abschließen</label>
</div>
</div>
<div class="form-group row" id="finish_date_field">
<label class="col-lg-2 col-form-label" for="finish_date">Abgeschlossen am</label>
<div class="col-lg-4">
<input type="text" class="form-control" name="finish_date" id="finish_date" value="<?=($order->finish_date) ? date("d.m.Y", $order->finish_date) : date("d.m.Y")?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2"></label>
<div class="col-lg-10">
<button type="submit" class="btn btn-primary">Speichern</button>
<span id="form-error" class="text-danger hidden">Bitte alle benötigten Felder ausfüllen!</span>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
@@ -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;
});
<?php if(!$order->finish_date): ?>
$('#finish_date_field').hide();
<?php endif; ?>
});
</script>

View File

@@ -71,7 +71,14 @@
<input type="text" class="form-control" name="filter[building_street]" id="filter_building_street" value="<?=$filter['building_street']?>" />
</div>
<div class="col-2">
<label class="form-label" for="filter_finish_date">Bestellstatus</label>
<select name="filter[finish_date]" id="filter_finish_date" class="form-control">
<option></option>
<option value="0" <?=( (!array_key_exists("finish_date", $filter) || $filter["finish_date"] != "1") ? 'selected="selected"' : "")?>>Offen</option>
<option value="1" <?=($filter["finish_date"] == "1" ? 'selected="selected"' : "")?>>Fertiggestellt</option>
</select>
</div>
</div>
@@ -90,7 +97,7 @@
<div class="card">
<div class="card-body mb-3">
<div class="float-left">
<h4 class="header-title">Bestellungen ohne Produkte</h4>
<h4 class="header-title">Bestellungen ohne Produkt</h4>
</div>
<table class="table table-striped table-hover">

View File

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

View File

@@ -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'";
}
}