Added ordered addon services download in preordercampaign
This commit is contained in:
@@ -109,6 +109,7 @@
|
||||
<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;">
|
||||
<a href="<?=self::getUrl("Preordercampaign", "downloadAddonServices", ["preordercampaign_id" => $camp->id])?>" title="Bestellte Zusatzdienste exportieren"><i class="far fa-sunset"></i></a>
|
||||
<a href="<?=self::getUrl("Preordercampaign", "edit", ["id" => $camp->id])?>"><i class="far fa-edit" title="Vorbestellkampagne Bearbeiten"></i></a>
|
||||
<a href="<?=self::getUrl("Preordercampaign", "delete", ["id" => $camp->id])?>" class="text-danger" onclick="if(!confirm('Vorbestellkampagne wirklich löschen?')) return false;" title="Vorbestellkampagne Löschen"><i class="fas fa-trash"></i></a>
|
||||
</td>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
class ADBGemeinde extends mfBaseModel {
|
||||
public $plzs = [];
|
||||
|
||||
private $ortschaften = [];
|
||||
|
||||
protected function init() {
|
||||
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
@@ -66,4 +66,35 @@ class ADBGemeinde extends mfBaseModel {
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
public function getProperty($name) {
|
||||
if($this->$name == null) {
|
||||
|
||||
if(!$this->id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if($name == "types") {
|
||||
$this->loadAddresstypes();
|
||||
return $this->types;
|
||||
}
|
||||
|
||||
if($name == "ortschaften") {
|
||||
$this->ortschaften = ADBOrtschaftModel::search(["gemeinde_id" => $this->id]);
|
||||
return $this->ortschaften;
|
||||
}
|
||||
|
||||
$classname = ucfirst($name);
|
||||
$idfield = $name."_id";
|
||||
$this->$name = new $classname($this->$idfield);
|
||||
|
||||
if($this->$name->id) {
|
||||
return $this->$name;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->$name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@ class ADBGemeindeModel {
|
||||
LEFT JOIN Plz ON (Plz.gemeinde_id = Gemeinde.id)
|
||||
LEFT JOIN GemeindeNetzgebiet ON (GemeindeNetzgebiet.gemeinde_id = Gemeinde.id)
|
||||
LEFT JOIN Netzgebiet ON (GemeindeNetzgebiet.netzgebiet_id = Netzgebiet.id)
|
||||
LEFT JOIN Ortschaft ON (Ortschaft.gemeinde_id = Gemeinde.id)
|
||||
WHERE $where
|
||||
GROUP BY Gemeinde.id
|
||||
ORDER BY name,code,kennziffer";
|
||||
@@ -157,7 +158,7 @@ class ADBGemeindeModel {
|
||||
if(array_key_exists("name%", $filter)) {
|
||||
$name = FronkDB::singleton()->escape($filter['name%']);
|
||||
if($name) {
|
||||
$where .= " AND Gemeinde.`name` like '%$name%'";
|
||||
$where .= " AND Gemeinde.`name` like '$name%'";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +172,21 @@ class ADBGemeindeModel {
|
||||
if(array_key_exists("plz%", $filter)) {
|
||||
$plz = FronkDB::singleton()->escape($filter['plz%']);
|
||||
if($plz) {
|
||||
$where .= " AND Plz.plzstring like '%$plz%'";
|
||||
$where .= " AND Plz.plzstring like '$plz%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("ortschaft", $filter)) {
|
||||
$ortschaft = FronkDB::singleton()->escape($filter['ortschaft']);
|
||||
if($ortschaft) {
|
||||
$where .= " AND Plz.ortschaft = '$ortschaft'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("ortschaft%", $filter)) {
|
||||
$ortschaft = FronkDB::singleton()->escape($filter['ortschaft%']);
|
||||
if($ortschaft) {
|
||||
$where .= " AND Plz.ortschaft like '$ortschaft%'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
class ADBHausnummer extends mfBaseModel {
|
||||
private $ortschaft;
|
||||
private $strasse;
|
||||
private $plz;
|
||||
private $freigaben = [];
|
||||
@@ -44,6 +45,11 @@ class ADBHausnummer extends mfBaseModel {
|
||||
return $this->freigaben;
|
||||
}
|
||||
|
||||
if($name == "ortschaft") {
|
||||
$this->ortschaft = new ADBOrtschaft($this->ortschaft_id);
|
||||
return $this->ortschaft;
|
||||
}
|
||||
|
||||
if($name == "strasse") {
|
||||
$this->strasse = new ADBStrasse($this->strasse_id);
|
||||
return $this->strasse;
|
||||
|
||||
@@ -31,7 +31,7 @@ class ADBOrtschaft extends mfBaseModel {
|
||||
if($this->$name == null) {
|
||||
|
||||
if($name == "gemeinde") {
|
||||
$this->gemeinde = new ADBGemeinde($this->hausnummer_id);
|
||||
$this->gemeinde = new ADBGemeinde($this->gemeinde_id);
|
||||
return $this->gemeinde;
|
||||
}
|
||||
|
||||
|
||||
@@ -92,8 +92,9 @@ class ADBOrtschaftModel {
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT Ortschaft.* FROM Ortschaft
|
||||
LEFT JOIN Gemeinde ON (Ortschaft.gemeinde_id = Gemeinde.id)
|
||||
WHERE $where
|
||||
ORDER BY name,kennziffer";
|
||||
ORDER BY gemeinde_id,Ortschaft.name,Ortschaft.kennziffer";
|
||||
|
||||
//mfLoghandler::singleton()->debug($sql);
|
||||
if(is_array($limit) && count($limit)) {
|
||||
@@ -149,7 +150,7 @@ class ADBOrtschaftModel {
|
||||
if(array_key_exists("name%", $filter)) {
|
||||
$name = FronkDB::singleton()->escape($filter['name%']);
|
||||
if($name) {
|
||||
$where .= " AND Ortschaft.`name` like '%$name%'";
|
||||
$where .= " AND Ortschaft.`name` like '$name%'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,6 @@ class ADBPlzModel {
|
||||
private static function getSqlFilter($filter) {
|
||||
$where = "1=1 ";
|
||||
|
||||
|
||||
if(array_key_exists("netzgebiet_id", $filter)) {
|
||||
$netzgebiet_id = $filter['netzgebiet_id'];
|
||||
if(is_numeric($netzgebiet_id)) {
|
||||
@@ -129,12 +128,12 @@ class ADBPlzModel {
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("hausnummer_id", $filter)) {
|
||||
$hausnummer_id = $filter['hausnummer_id'];
|
||||
if(is_numeric($hausnummer_id)) {
|
||||
$where .= " AND Plz.hausnummer_id=$hausnummer_id";
|
||||
} elseif(is_array($hausnummer_id) && count($hausnummer_id)) {
|
||||
$where .= " AND Plz.hausnummer_id IN (". implode(",", $hausnummer_id).")";
|
||||
if(array_key_exists("gemeinde_id", $filter)) {
|
||||
$gemeinde_id = $filter['gemeinde_id'];
|
||||
if(is_numeric($gemeinde_id)) {
|
||||
$where .= " AND Plz.gemeinde_id=$gemeinde_id";
|
||||
} elseif(is_array($gemeinde_id) && count($gemeinde_id)) {
|
||||
$where .= " AND Plz.gemeinde_id IN (". implode(",", $gemeinde_id).")";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +156,7 @@ class ADBPlzModel {
|
||||
if(array_key_exists("plzstring%", $filter)) {
|
||||
$plzstring = FronkDB::singleton()->escape($filter['plzstring%']);
|
||||
if($plzstring) {
|
||||
$where .= " AND Plz.`plzstring` like '%$plzstring%'";
|
||||
$where .= " AND Plz.`plzstring` like '$plzstring%'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ class ADBStrasseModel {
|
||||
if(array_key_exists("name%", $filter)) {
|
||||
$name = FronkDB::singleton()->escape($filter['name%']);
|
||||
if($name) {
|
||||
$where .= " AND Strasse.`name` like '%$name%'";
|
||||
$where .= " AND Strasse.`name` like '$name%'";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ class ADBStrasseModel {
|
||||
if(array_key_exists("gemeinde%", $filter)) {
|
||||
$gemeinde = FronkDB::singleton()->escape($filter['gemeinde%']);
|
||||
if($gemeinde) {
|
||||
$where .= " AND Gemeinde.`name` like '%$gemeinde%'";
|
||||
$where .= " AND Gemeinde.`name` like '$gemeinde%'";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ class ADBStrasseModel {
|
||||
if(array_key_exists("plz%", $filter)) {
|
||||
$plz = FronkDB::singleton()->escape($filter['plz%']);
|
||||
if($plz) {
|
||||
$where .= " AND Plz.`plzstring` like '%$plz%'";
|
||||
$where .= " AND Plz.`plzstring` like '$plz%'";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -260,6 +260,7 @@ class PreordercampaignController extends mfBaseController {
|
||||
$this->redirect("Preordercampaign");
|
||||
}
|
||||
|
||||
$this->layout()->set("campaign", $campaign);
|
||||
$preorders = PreorderModel::search(["preordercampaign_id" => $id, "add-where" => "AND JSON_LENGTH(addon_services) > 1"]);
|
||||
|
||||
$csv = [];
|
||||
@@ -271,12 +272,38 @@ class PreordercampaignController extends mfBaseController {
|
||||
|
||||
// address data and stuff
|
||||
$general = [
|
||||
|
||||
"ucode" => $preorder->ucode,
|
||||
"gemeinde" => $preorder->adb_hausnummer->ortschaft->gemeinde->name,
|
||||
"plz" => $preorder->adb_hausnummer->plz->plzstring,
|
||||
"ortschaft" => $preorder->adb_hausnummer->ortschaft->name,
|
||||
"strasse" => $preorder->adb_hausnummer->strasse->name,
|
||||
"address_info" => $preorder->address_info,
|
||||
"contact_firma" => $preorder->company,
|
||||
"contact_uid" => $preorder->uid,
|
||||
"contact_firstname" => $preorder->firstname,
|
||||
"contact_lastname" => $preorder->lastname,
|
||||
"contact_street" => $preorder->street,
|
||||
"contact_plz" => $preorder->zip,
|
||||
"contact_ort" => $preorder->city,
|
||||
"phone" => $preorder->phone,
|
||||
"email" => $preorder->email,
|
||||
];
|
||||
|
||||
foreach($sjson as $service) {
|
||||
$services[] = $service->service;
|
||||
if(!$service->ordered) continue;
|
||||
|
||||
$s = $general;
|
||||
$s["service"] = $service->service;
|
||||
$data = [];
|
||||
foreach($service->data as $d) {
|
||||
$data[] = (string)$d->name.": ".(is_bool($d->value) ? (int)$d->value : (string)$d->value);
|
||||
}
|
||||
$s["service_data"] = implode("; ", $data);
|
||||
$csv[] = $s;
|
||||
}
|
||||
//var_dump($csv);exit;
|
||||
$this->layout()->setTemplate("Preordercampaign/services.csv");
|
||||
$this->layout()->set("csv", $csv);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user