Added addon_service filter to preorder

This commit is contained in:
Frank Schubert
2022-11-10 18:37:35 +01:00
parent 0764e87790
commit e71126c8bf
3 changed files with 51 additions and 1 deletions

View File

@@ -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>

View File

@@ -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) {

View File

@@ -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;
}
}
}
}