diff --git a/Layout/default/Preordercampaign/Index.php b/Layout/default/Preordercampaign/Index.php
index addcbf490..14cc3dfa2 100644
--- a/Layout/default/Preordercampaign/Index.php
+++ b/Layout/default/Preordercampaign/Index.php
@@ -109,6 +109,7 @@
=date('d.m.Y',$camp->from)?> |
=date('d.m.Y',$camp->to)?> |
+ $camp->id])?>" title="Bestellte Zusatzdienste exportieren">
$camp->id])?>">
$camp->id])?>" class="text-danger" onclick="if(!confirm('Vorbestellkampagne wirklich löschen?')) return false;" title="Vorbestellkampagne Löschen">
|
diff --git a/application/ADBGemeinde/ADBGemeinde.php b/application/ADBGemeinde/ADBGemeinde.php
index a32bec397..7297e745f 100644
--- a/application/ADBGemeinde/ADBGemeinde.php
+++ b/application/ADBGemeinde/ADBGemeinde.php
@@ -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;
+ }
}
diff --git a/application/ADBGemeinde/ADBGemeindeModel.php b/application/ADBGemeinde/ADBGemeindeModel.php
index 3013c3ef8..1b10fac47 100644
--- a/application/ADBGemeinde/ADBGemeindeModel.php
+++ b/application/ADBGemeinde/ADBGemeindeModel.php
@@ -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%'";
}
}
diff --git a/application/ADBHausnummer/ADBHausnummer.php b/application/ADBHausnummer/ADBHausnummer.php
index de3a1fea9..39cf674f4 100644
--- a/application/ADBHausnummer/ADBHausnummer.php
+++ b/application/ADBHausnummer/ADBHausnummer.php
@@ -1,6 +1,7 @@
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;
diff --git a/application/ADBOrtschaft/ADBOrtschaft.php b/application/ADBOrtschaft/ADBOrtschaft.php
index 9b0d77139..fdb1b48bf 100644
--- a/application/ADBOrtschaft/ADBOrtschaft.php
+++ b/application/ADBOrtschaft/ADBOrtschaft.php
@@ -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;
}
diff --git a/application/ADBOrtschaft/ADBOrtschaftModel.php b/application/ADBOrtschaft/ADBOrtschaftModel.php
index 48bfc9a2c..65b9544ff 100644
--- a/application/ADBOrtschaft/ADBOrtschaftModel.php
+++ b/application/ADBOrtschaft/ADBOrtschaftModel.php
@@ -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%'";
}
}
diff --git a/application/ADBPlz/ADBPlzModel.php b/application/ADBPlz/ADBPlzModel.php
index db558f741..6514993a4 100644
--- a/application/ADBPlz/ADBPlzModel.php
+++ b/application/ADBPlz/ADBPlzModel.php
@@ -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%'";
}
}
diff --git a/application/ADBStrasse/ADBStrasseModel.php b/application/ADBStrasse/ADBStrasseModel.php
index 1419ad321..9b33eac79 100644
--- a/application/ADBStrasse/ADBStrasseModel.php
+++ b/application/ADBStrasse/ADBStrasseModel.php
@@ -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%'";
}
}
diff --git a/application/Preordercampaign/PreordercampaignController.php b/application/Preordercampaign/PreordercampaignController.php
index 40422cacd..90344c9b3 100644
--- a/application/Preordercampaign/PreordercampaignController.php
+++ b/application/Preordercampaign/PreordercampaignController.php
@@ -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);
}
}