added Preorder filter

This commit is contained in:
Frank Schubert
2022-10-12 15:54:25 +02:00
parent 9b53186a6b
commit 192e1323df
7 changed files with 75 additions and 30 deletions

View File

@@ -57,9 +57,14 @@
</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 class="col-2">
<label class="form-label" for="filter_address">Anschlussadresse</label>
<input type="text" class="form-control" name="filter[address]" id="filter_address" value="<?=$filter['address']?>" />
</div>
<div class="col-2">
<label class="form-label" for="filter_kunde">Kunde</label>
<input type="text" class="form-control" name="filter[kunde]" id="filter_kunde" value="<?=$filter['kunde']?>" />
</div>
</div>

View File

@@ -62,6 +62,12 @@
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="homes_total">Homes gesamt *</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="homes_total" id="homes_total" value="<?=$campaign->homes_total?>" />
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="from">Von</label>

View File

@@ -101,8 +101,8 @@
<td>
<a href="<?=self::getUrl("Preorder", "Index", ["filter" => ["preordercampaign_id" => $camp->id]])?>">
<?=count($camp->active_preorders)?>
<?php if($camp->total_homes): ?>
/ <?=$camp->total_homes?> (<?=(round((count($camp->active_preorders) / $camp->total_homes) * 100, 2))?> %)
<?php if($camp->homes_total): ?>
/ <?=$camp->homes_total?> (<?=(round((count($camp->active_preorders) / $camp->homes_total) * 100, 2))?> %)
<?php endif; ?>
</a>
</td>

View File

@@ -18,26 +18,15 @@ class DashboardController extends mfBaseController {
protected function testAction() {
/*$b = new Building(7);
var_dump($b->getNewObjectCode());exit;
*/
/*$address = AddressModel::getOne(5);
var_dump($address->types);exit;*/
/*
$a = new Address(1);
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;
$sql = "SELECT tt_preorder.* FROM `thetool_live`.Preorder tt_preorder
LEFT JOIN `thetool_addressdb`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id)
WHERE 1=1 AND deleted=0 AND preordercampaign_id=1 AND (adb_hausnummer.gemeinde like '%stift%' OR adb_hausnummer.plz like '%stift%' OR adb_hausnummer.strasse like '%stift%')
ORDER By lastname, firstname";
$res = $this->db()->query($sql);
if($this->db()->num_rows($res)) {
$data = $this->db()->fetch_object($res);
var_dump($data);exit;
}
}
protected function pdfAction() {

View File

@@ -23,7 +23,8 @@ class PreorderController extends mfBaseController {
}
$this->layout->set("filter", $rfilter);
$where = "";
$filter = $this->getPreparedFilter($rfilter);
// pagination defaults
@@ -50,6 +51,7 @@ class PreorderController extends mfBaseController {
}
}
//var_dump($filter);exit;
$preorders = PreorderModel::search($filter);
$this->layout()->set("preorders", $preorders);
}
@@ -69,6 +71,19 @@ class PreorderController extends mfBaseController {
$new_filter['deleted'] = 0;
}
$new_filter['add-where'] = "";
if(array_key_exists("address", $filter)) {
$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%')";
}
if(array_key_exists("kunde", $filter)) {
$kunde = $this->db()->escape($filter['kunde']);
$new_filter['add-where'] = " AND (firstname like '%$kunde%' OR lastname like '%$kunde%' OR street like '%$kunde%' OR zip like '%$kunde%' OR city like '%$kunde%')";
}
if(is_array($filter) && count($filter)) {
foreach($filter as $name => $value) {
$new_filter[$name] = $value;

View File

@@ -112,7 +112,16 @@ class PreorderModel {
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
$res = $db->select("Preorder", "*", "$where ORDER BY lastname, firstname");
$sql = "SELECT tt_preorder.* FROM `".FRONKDB_DBNAME."`.Preorder tt_preorder
LEFT JOIN `".ADDRESSDB_DBNAME."`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id)
WHERE $where
ORDER BY lastname, firstname
";
mfLoghandler::singleton()->debug($sql);
$res = $db->query($sql);
if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) {
$items[] = new Preorder($data);
@@ -131,9 +140,6 @@ class PreorderModel {
if(is_numeric($deleted)) {
$where .= " AND deleted=$deleted";
}
/*if($deleted === null) {
$where .= " AND deleted IS NULL";
}*/
}
if(array_key_exists("preordercampaign_id", $filter)) {
@@ -196,7 +202,30 @@ class PreorderModel {
}
if(array_key_exists("gemeinde", $filter)) {
$gemeinde = FronkDB::singleton()->escape($filter['gemeinde']);
if($gemeinde) {
$where .= " AND `".ADDRESSDB_DBNAME."`.view_hausnummer.gemeinde like '%$gemeinde%'";
}
}
if(array_key_exists("plz", $filter)) {
$plz = FronkDB::singleton()->escape($filter['plz']);
if($plz) {
$where .= " AND `".ADDRESSDB_DBNAME."`.view_hausnummer.plz like '%$plz%'";
}
}
if(array_key_exists("strasse", $filter)) {
$strasse = FronkDB::singleton()->escape($filter['strasse']);
if($strasse) {
$where .= " AND `".ADDRESSDB_DBNAME."`.view_hausnummer.strasse like '%$strasse%'";
}
}
if(array_key_exists("add-where", $filter)) {
$where .= " ".$filter['add-where'];
}
//var_dump($filter, $where);exit;
return $where;

View File

@@ -137,6 +137,7 @@ class PreordercampaignController extends mfBaseController {
$data['description'] = $r->description;
$data['area'] = $r->area;
$data['note'] = $r->note;
$data['homes_total'] = (int)$r->homes_total;
if($r->from) {
$data['from'] = self::dateToTimestamp($r->from);