WIP Preorder web gui changes

This commit is contained in:
Frank Schubert
2022-10-11 12:29:26 +02:00
parent 3f7e96d320
commit 2c7223d1a0
5 changed files with 99 additions and 14 deletions

View File

@@ -19,7 +19,65 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body mb-3">
<h4 class="header-title mb-3">Filter</h4>
<form method="get" action="<?=self::getUrl("Preorder")?>">
<div class="row">
<div class="col-2">
<label class="form-label" for="filter_preordercampaign_id">Kampagne</label>
<select name="filter[preordercampaign_id]" id="filter_preordercampaign_id" class="form-control">
<option value="">Alle</option>
<?php foreach(PreordercampaignModel::getAll() as $c): ?>
<option value="<?=$c->id?>" <?=($c->id == $campaign->id) ? "selected='selected'" : ""?>><?=$c->name?></option>
<?php endforeach; ?>
</select>
</div>
<div class="col-2">
<label class="form-label" for="filter_status">Status</label>
<select name="filter[status][]" id="filter_status" class="form-control" multiple="multiple">
<option value="new" <?=(isset($filter) && array_key_exists("status", $filter) && in_array("new", $filter['status'])) ? "selected='selected'" : ""?>>Aufgenommen</option>
<option value="approved" <?=(isset($filter) && array_key_exists("status", $filter) && in_array("approved", $filter['status'])) ? "selected='selected'" : ""?>>Freigegeben</option>
<option value="pipework" <?=(isset($filter) && array_key_exists("status", $filter) && in_array("pipework", $filter['status'])) ? "selected='selected'" : ""?>>Tiefbau</option>
<option value="linework" <?=(isset($filter) && array_key_exists("status", $filter) && in_array("linework", $filter['status'])) ? "selected='selected'" : ""?>>Leitungsbau</option>
<option value="finished" <?=(isset($filter) && array_key_exists("status", $filter) && in_array("finished", $filter['status'])) ? "selected='selected'" : ""?>>Hergestellt</option>
</select>
</div>
<div class="col-2">
<label class="form-label" for="filter_type">Bestelltyp</label>
<select name="filter[type][]" id="filter_type" class="form-control" multiple="multiple">
<option value="interest" <?=(isset($filter) && array_key_exists("type", $filter) && in_array("interest", $filter['type'])) ? "selected='selected'" : ""?>>Interessensbekundung</option>
<option value="provision" <?=(isset($filter) && array_key_exists("type", $filter) && in_array("provision", $filter['type'])) ? "selected='selected'" : ""?>>Vorsorgeanschluss</option>
<option value="order" <?=(isset($filter) && array_key_exists("type", $filter) && in_array("order", $filter['type'])) ? "selected='selected'" : ""?>>Vollanschluss</option>
</select>
</div>
<div class="col-1">
<label class="form-label" for="filter_email">Email</label>
<input type="text" class="form-control" name="filter[email]" id="filter_email" value="<?=$filter['email']?>" />
</div>
</div>
<div class="row mt-2">
<div class="col">
<button type="submit" class="btn btn-primary">Filter anwenden</button>
<?php if(isset($campaign) && $campaign->id): ?>
<a class="btn btn-secondary" href="<?=self::getUrl("Preorder", "Index", ['filter' => ['preordercampaign_id' => $campaign->id]])?>">Filter zurücksetzen</a>
<?php else: ?>
<a class="btn btn-secondary" href="<?=self::getUrl("Preorder")?>">Filter zurücksetzen</a>
<?php endif; ?>
</div>
</div>
</form>
</div>
</div>
<div class="card">
<div class="card-body mb-3">
@@ -35,9 +93,11 @@
<table class="table table-striped table-hover">
<tr>
<th>Kampagne</th>
<th>Typ</th>
<th>Bestelltyp</th>
<th>Status</th>
<th>Anschlussadresse</th>
<th>Kunde</th>
<th>Adresse</th>
<th>Kontakt</th>
<th>Partner</th>
<th>Anschluss</th>
<th>Erstellt</th>
@@ -48,7 +108,7 @@
<tr>
<td><?=$preorder->campaign->name?></td>
<td><?=__($preorder->type, "preorder")?></td>
<td><?=($preorder->company) ? $preorder->company : $preorder->firstname." ".$preorder->lastname?></td>
<td>Aufgenommen</td>
<?php if($preorder->building_id): ?>
<td><?=$preorder->building->street?><br /><?=$preorder->building->zip?> <?=$preorder->building->city?></td>
<?php elseif($preorder->adb_hausnummer_id): ?>
@@ -57,11 +117,21 @@
<?=$preorder->adb_hausnummer->hausnummer?><br />
<?=($preorder->adb_wohneinheit_id) ? ((string)$preorder->adb_wohneinheit ? $preorder->adb_wohneinheit."<br />" : "") : "<i class='text-pink'>&lt;keine Wohneinheit&gt;</i><br />"?>
<?=$preorder->adb_hausnummer->plz->plz?>
<?=$preorder->adb_hausnummer->strasse->ortschaft->name?>
<?=$preorder->adb_hausnummer->strasse->gemeinde->name?>
</td>
<?php else: ?>
<td></td>
<?php endif; ?>
<td>
<?=($preorder->company) ? $preorder->company : $preorder->firstname." ".$preorder->lastname?><br />
<?=$preorder->street?><br />
<?=$preorder->zip?> <?=$preorder->city?>
</td>
<td>
<?=($preorder->phone) ? $preorder->phone."<br />" : ""?>
<?=($preorder->email) ? $preorder->email : ""?>
</td>
<td><?=($preorder->partner_id) ? $preorder->partner->getCompanyOrName() : ""?></td>
<td><?=($preorder->termination) ? $preorder->termination->code : ""?></td>
<td><?=date('d.m.Y H:i', $preorder->create)?></td>
@@ -79,4 +149,9 @@
</div>
</div>
<script type="text/javascript">
$("#filter_type").select2({closeOnSelect: false});
$("#filter_status").select2({closeOnSelect: false});
</script>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>

View File

@@ -98,7 +98,7 @@
<td><?=$camp->network->name?></td>
<td><?=$camp->name?></td>
<td><?=$camp->area?></td>
<td><a href="<?=self::getUrl("Preorder", "Index", ["filter" => ["campaign_id" => $camp->id]])?>"><?=count($camp->preorders)?></a></td>
<td><a href="<?=self::getUrl("Preorder", "Index", ["filter" => ["preordercampaign_id" => $camp->id]])?>"><?=count($camp->preorders)?></a></td>
<td><?=date('d.m.Y',$camp->from)?></td>
<td><?=date('d.m.Y',$camp->to)?></td>
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">

View File

@@ -42,17 +42,15 @@ class PreorderController extends mfBaseController {
$campaign_filter = [];
if($filter['campaign_id']) {
$campaign_id = $filter['campaign_id'];
if($filter['preordercampaign_id']) {
$campaign_id = $filter['preordercampaign_id'];
if(is_numeric($campaign_id) && $campaign_id > 0) {
$campaign = new Preordercampaign($campaign_id);
$this->layout()->set("campaign", $campaign);
}
$campaign_filter["preordercampaign_id"] = $campaign_id;
}
//var_dump($campaign_filter);exit;
$preorders = PreorderModel::search($campaign_filter);
$preorders = PreorderModel::search($filter);
$this->layout()->set("preorders", $preorders);
}

View File

@@ -165,6 +165,18 @@ class PreorderModel {
}
}
if(array_key_exists("type", $filter)) {
$type = $filter['type'];
if(is_array($type) && count($type)) {
$where .= " AND type IN ('".implode("','",$type)."')";
} else {
$type = FronkDB::singleton()->escape($filter['type']);
if($type) {
$where .= " AND type like '%$type%'";
}
}
}
if(array_key_exists("ucode", $filter)) {
$ucode = FronkDB::singleton()->escape($filter['ucode']);
if($ucode) {

View File

@@ -47,7 +47,7 @@ class PreordercampaignModel {
$db = FronkDB::singleton();
$res = $db->select("Preordercampaign", "*", "ORDER BY `create`");
$res = $db->select("Preordercampaign", "*", "1=1 ORDER BY name,`create`");
if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) {
$items[] = new Preordercampaign($data);
@@ -61,7 +61,7 @@ class PreordercampaignModel {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
$res = $db->select("Preordercampaign", "*", "$where ORDER BY `create`");
$res = $db->select("Preordercampaign", "*", "$where ORDER BY name,`create`");
if($db->num_rows($res)) {
$data = $db->fetch_object($res);
$item = new Preordercampaign($data);
@@ -79,7 +79,7 @@ class PreordercampaignModel {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
$res = $db->select("Preordercampaign", "*", "$where ORDER BY `create`");
$res = $db->select("Preordercampaign", "*", "$where ORDER BY name,`create`");
if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) {
$items[] = new Preordercampaign($data);