Added addon_service filter to preorder
This commit is contained in:
@@ -61,6 +61,15 @@
|
||||
<option value="order" <?=(isset($filter) && array_key_exists("type", $filter) && in_array("order", $filter['type'])) ? "selected='selected'" : ""?>>Vollanschluss</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_addon_services">Zusatzdienste</label>
|
||||
<select name="filter[addon_services]" id="filter_addon_services" class="form-control">
|
||||
<option></option>
|
||||
<option value="1" <?=($filter['addon_services'] == 1) ? "selected='selected'" : ""?>>Mit Zusatzdiensten</option>
|
||||
<option value="0" <?=($filter['addon_services'] === 0 || $filter['addon_services'] === "0") ? "selected='selected'" : ""?>>Keine Zusatzdienste</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-2">
|
||||
<label class="form-label" for="filter_address">Anschlussadresse</label>
|
||||
|
||||
@@ -83,6 +83,14 @@ class PreorderController extends mfBaseController {
|
||||
$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(array_key_exists("addon_services", $filter)) {
|
||||
if($filter['addon_services'] == 1) {
|
||||
$new_filter['add-where'] = " AND JSON_LENGTH(addon_services) > 0";
|
||||
}
|
||||
if($filter['addon_services'] === 0 || $filter['addon_services'] === "0") {
|
||||
$new_filter['add-where'] = " AND (JSON_LENGTH(addon_services) = 0 OR addon_services IS NULL)";
|
||||
}
|
||||
}
|
||||
|
||||
if(is_array($filter) && count($filter)) {
|
||||
foreach($filter as $name => $value) {
|
||||
|
||||
@@ -246,5 +246,38 @@ class PreordercampaignController extends mfBaseController {
|
||||
$this->redirect("Preordercampaign");
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected function downloadAddonServices() {
|
||||
$id = $this->request->preordercampaign_id;
|
||||
if(!is_numeric($id) || !$id) {
|
||||
$this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error");
|
||||
$this->redirect("Preordercampaign");
|
||||
}
|
||||
|
||||
$campaign = new Preordercampaign($id);
|
||||
if(!$campaign->id) {
|
||||
$this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error");
|
||||
$this->redirect("Preordercampaign");
|
||||
}
|
||||
|
||||
$preorders = PreorderModel::search(["preordercampaign_id" => $id, "add-where" => "AND JSON_LENGTH(addon_services) > 1"]);
|
||||
|
||||
$csv = [];
|
||||
foreach($preorders as $preorder) {
|
||||
$sjson = json_decode($preorder->addon_services);
|
||||
if(!$sjson) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// address data and stuff
|
||||
$general = [
|
||||
|
||||
];
|
||||
|
||||
foreach($sjson as $service) {
|
||||
$services[] = $service->service;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user