From 2cf306c5c3f49d58d064ed7883cacb1a17a902b0 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 27 Nov 2024 16:14:24 +0100 Subject: [PATCH] reformatted PreordernotificationController.php --- .../PreordernotificationController.php | 840 +++++++++--------- 1 file changed, 420 insertions(+), 420 deletions(-) diff --git a/application/Preordernotification/PreordernotificationController.php b/application/Preordernotification/PreordernotificationController.php index f300cb841..b8656a5b8 100644 --- a/application/Preordernotification/PreordernotificationController.php +++ b/application/Preordernotification/PreordernotificationController.php @@ -1,451 +1,451 @@ needlogin=true; - $me = new User(); - $me->loadMe(); - $this->me = $me; - $this->layout()->set("me",$me); - - if(!$me->is(["Admin", "netowner", "salespartner"])) { - $this->redirect("Dashboard"); - } - } - - protected function indexAction() { - $this->layout()->setTemplate("Preordernotification/Index"); - - $rfilter = $this->request->filter; - iF(!is_array($rfilter)) { - $rfilter = []; - } - - $this->layout->set("filter", $rfilter); - - $where = ""; - $filter = $this->getPreparedFilter($rfilter); - - // pagination defaults - $pagination = []; - $pagination['start'] = 0; - $pagination['count'] = 25; - $pagination['maxItems'] = 0; - - if(is_numeric($this->request->s)) { - $pagination['start'] = intval($this->request->s); - } - - $preorder_filter = $filter; - $my_campaigns = []; - $my_campaign_ids = []; - - if($this->me->is("Admin")) { - if($filter['preordercampaign_id']) { - $this->layout()->set("campaign", new Preordercampaign($filter['preordercampaign_id'])); - } else { - $my_campaigns = PreordercampaignModel::getAll(); - } - $this->layout()->set("my_campaigns", PreordercampaignModel::getAll()); - } else { - $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); - //var_dump($my_networks);exit; - $user_network_ids = $this->me->getFlag("preorder_networks")->value(); - if($user_network_ids) { - $user_network_ids = json_decode($user_network_ids); + protected function init() { + $this->needlogin = true; + $me = new User(); + $me->loadMe(); + $this->me = $me; + $this->layout()->set("me", $me); + + if(!$me->is(["Admin", "netowner", "salespartner"])) { + $this->redirect("Dashboard"); + } + } + + protected function indexAction() { + $this->layout()->setTemplate("Preordernotification/Index"); + + $rfilter = $this->request->filter; + if(!is_array($rfilter)) { + $rfilter = []; } - if(is_array($user_network_ids) && count($user_network_ids)) { + $this->layout->set("filter", $rfilter); - if(!$my_networks) { - foreach($user_network_ids as $mnid) { - $my_networks[] = new Network($mnid); - } - } else { - //var_dump($user_network_ids, $my_networks);exit; - $new_my_networks = []; - foreach($my_networks as $network) { - if(in_array($network->id, $user_network_ids)) { - $new_my_networks[$network->id] = $network; - } - } - $my_networks = $new_my_networks; - } + $where = ""; + $filter = $this->getPreparedFilter($rfilter); + + // pagination defaults + $pagination = []; + $pagination['start'] = 0; + $pagination['count'] = 25; + $pagination['maxItems'] = 0; + + if(is_numeric($this->request->s)) { + $pagination['start'] = intval($this->request->s); } - foreach($my_networks as $network) { - foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { - $my_campaigns[] = $campaign; - if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; - } - } - //var_dump($my_network_ids,$my_campaign_ids);exit; - $this->layout()->set("my_campaigns", $my_campaigns); - - if($filter['preordercampaign_id'] && in_array($filter['preordercampaign_id'], $my_campaign_ids)) { - $campaign_id = $filter['preordercampaign_id']; - if(is_numeric($campaign_id) && $campaign_id > 0) { - $campaign = new Preordercampaign($campaign_id); - $this->layout()->set("campaign", $campaign); - } - } else { - $filter['preordercampaign_id'] = $my_campaign_ids; - } - } - //var_dump($filter);exit; - $pagination['maxItems'] = PreordernotificationModel::count($filter); - $notifications = PreordernotificationModel::search($filter, $pagination); - - $this->layout()->set("pagination", $pagination); - $this->layout()->set("notifications", $notifications); - - - } - - private function getPreparedFilter($filter) { - $new_filter = []; - - if(is_array($filter) && count($filter)) { - foreach($filter as $name => $value) { - $new_filter[$name] = $value; - } - } - - return $new_filter; - } - - protected function addAction() { - $this->layout()->setTemplate("Preordernotification/Form"); - if(!$this->request->preordercampaign_id) { - $this->layout()->setFlash("Keine Kampagne ausgewählt!", "warn"); - } - - $campaign_id = $this->request->preordercampaign_id; - $campaign = new Preordercampaign($campaign_id); - $this->layout()->set("campaign", $campaign); - - $partners = AddressModel::search(['addresstype' => ['netowner','salespartner']]); - $this->layout()->set("partners", $partners); - - } - - protected function editAction() { - $id = $this->request->id; - if(!is_numeric($id) || $id < 1) { - $this->layout()->setFlash("Aussendung nicht gefunden", "error"); - $this->redirect("Preordernotification"); - } - - $notification = new Preordernotification($id); - if(!$notification->id) { - $this->layout()->setFlash("Aussendung nicht gefunden", "error"); - $this->redirect("Preordernotification"); - } - - //var_dump($notification->filter);exit; - - $this->request->set("preordercampaign_id", $notification->preordercampaign_id); // needed in addAction() - $this->layout()->set("notification", $notification); - - return $this->addAction(); - - } - - protected function saveAction() { - $r = $this->request; - //var_dump($r->get(), $_FILES);exit; - - /* - * add or edit - */ - $id = $r->id; - if(is_numeric($id) && $id > 0) { - $mode = "edit"; - $notification = new Preordernotification($id); - if(!$notification->id) { - $this->layout()->setFlash("Aussendung nicht gefunden", "error"); - $this->redirect("Preordernotification"); - } - } else { - $id = false; - $mode = "add"; - } - - /* - * check campaign and permissions - */ - - $campaign_id = $r->preordercampaign_id; - if(!$campaign_id) { - $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); - $this->redirect("Preordernotification"); - } - $campaign = new Preordercampaign($campaign_id); - if(!$campaign->id) { - $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); - $this->redirect("Preordernotification"); - } - - // check permission - if(!$this->me->is("Admin")) { - /*$my_campaign_ids = []; - $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); - //var_dump($my_networks);exit; - - foreach($my_networks as $network) { - foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { - if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; - } - } - - if(!in_array($campaign_id, $my_campaign_ids)) { - $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); - $this->redirect("Preordernotification"); - }*/ - + $preorder_filter = $filter; $my_campaigns = []; $my_campaign_ids = []; - $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); - //var_dump($my_networks);exit; + if($this->me->is("Admin")) { + if($filter['preordercampaign_id']) { + $this->layout()->set("campaign", new Preordercampaign($filter['preordercampaign_id'])); + } else { + $my_campaigns = PreordercampaignModel::getAll(); + } + $this->layout()->set("my_campaigns", PreordercampaignModel::getAll()); + } else { + $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); + //var_dump($my_networks);exit; - $user_network_ids = $this->me->getFlag("preorder_networks")->value(); - if($user_network_ids) { - $user_network_ids = json_decode($user_network_ids); - } + $user_network_ids = $this->me->getFlag("preorder_networks")->value(); + if($user_network_ids) { + $user_network_ids = json_decode($user_network_ids); + } - if(is_array($user_network_ids) && count($user_network_ids)) { - if(!$my_networks) { - foreach($user_network_ids as $mnid) { - $my_networks[] = new Network($mnid); + if(is_array($user_network_ids) && count($user_network_ids)) { + + if(!$my_networks) { + foreach($user_network_ids as $mnid) { + $my_networks[] = new Network($mnid); + } + } else { + //var_dump($user_network_ids, $my_networks);exit; + $new_my_networks = []; + foreach($my_networks as $network) { + if(in_array($network->id, $user_network_ids)) { + $new_my_networks[$network->id] = $network; + } + } + $my_networks = $new_my_networks; + } + } + + foreach($my_networks as $network) { + foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { + $my_campaigns[] = $campaign; + if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; + } + } + //var_dump($my_network_ids,$my_campaign_ids);exit; + $this->layout()->set("my_campaigns", $my_campaigns); + + if($filter['preordercampaign_id'] && in_array($filter['preordercampaign_id'], $my_campaign_ids)) { + $campaign_id = $filter['preordercampaign_id']; + if(is_numeric($campaign_id) && $campaign_id > 0) { + $campaign = new Preordercampaign($campaign_id); + $this->layout()->set("campaign", $campaign); } } else { - //var_dump($user_network_ids, $my_networks);exit; - $new_my_networks = []; - foreach($my_networks as $network) { - if(in_array($network->id, $user_network_ids)) { - $new_my_networks[$network->id] = $network; - } - } - $my_networks = $new_my_networks; + $filter['preordercampaign_id'] = $my_campaign_ids; + } + } + //var_dump($filter);exit; + $pagination['maxItems'] = PreordernotificationModel::count($filter); + $notifications = PreordernotificationModel::search($filter, $pagination); + + $this->layout()->set("pagination", $pagination); + $this->layout()->set("notifications", $notifications); + + + } + + private function getPreparedFilter($filter) { + $new_filter = []; + + if(is_array($filter) && count($filter)) { + foreach($filter as $name => $value) { + $new_filter[$name] = $value; } } - foreach($my_networks as $network) { - foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { - if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; - } + return $new_filter; + } + + protected function addAction() { + $this->layout()->setTemplate("Preordernotification/Form"); + if(!$this->request->preordercampaign_id) { + $this->layout()->setFlash("Keine Kampagne ausgewählt!", "warn"); } - if(!in_array($campaign_id, $my_campaign_ids)) { + $campaign_id = $this->request->preordercampaign_id; + $campaign = new Preordercampaign($campaign_id); + $this->layout()->set("campaign", $campaign); + + $partners = AddressModel::search(['addresstype' => ['netowner', 'salespartner']]); + $this->layout()->set("partners", $partners); + + } + + protected function editAction() { + $id = $this->request->id; + if(!is_numeric($id) || $id < 1) { + $this->layout()->setFlash("Aussendung nicht gefunden", "error"); + $this->redirect("Preordernotification"); + } + + $notification = new Preordernotification($id); + if(!$notification->id) { + $this->layout()->setFlash("Aussendung nicht gefunden", "error"); + $this->redirect("Preordernotification"); + } + + //var_dump($notification->filter);exit; + + $this->request->set("preordercampaign_id", $notification->preordercampaign_id); // needed in addAction() + $this->layout()->set("notification", $notification); + + return $this->addAction(); + + } + + protected function saveAction() { + $r = $this->request; + //var_dump($r->get(), $_FILES);exit; + + /* + * add or edit + */ + $id = $r->id; + if(is_numeric($id) && $id > 0) { + $mode = "edit"; + $notification = new Preordernotification($id); + if(!$notification->id) { + $this->layout()->setFlash("Aussendung nicht gefunden", "error"); + $this->redirect("Preordernotification"); + } + } else { + $id = false; + $mode = "add"; + } + + /* + * check campaign and permissions + */ + + $campaign_id = $r->preordercampaign_id; + if(!$campaign_id) { $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); $this->redirect("Preordernotification"); } - } - - - /* - * data colletion - */ - $filter = []; - if(is_array($r->type) && count($r->type)) { - $filter['type'] = []; - foreach($r->type as $type) { - switch($type) { - case "interest": - $filter["type"][] = "interest"; - break; - case "provision": - $filter["type"][] = "provision"; - break; - case "order": - $filter["type"][] = "order"; - break; - case "reorder": - $filter["type"][] = "reorder"; - break; + $campaign = new Preordercampaign($campaign_id); + if(!$campaign->id) { + $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); + $this->redirect("Preordernotification"); } - } - } - - if(is_array($r->connection_type) && count($r->connection_type)) { - $filter['connection_type'] = []; - foreach($r->connection_type as $type) { - switch($type) { - case "single-dwelling": - $filter["connection_type"][] = "single-dwelling"; - break; - case "multi-dwelling": - $filter["connection_type"][] = "multi-dwelling"; - break; - case "apartment-building": - $filter["connection_type"][] = "apartment-building"; - break; - case "apartment": - $filter["connection_type"][] = "apartment"; - break; - case "business": - $filter["connection_type"][] = "business"; - break; - } - } - } - - //var_dump($filter); - $data = []; - $data['preordercampaign_id'] = $campaign_id; - $data['sender_email'] = $r->sender_email; - $data['sender_name'] = $r->sender_name; - $data['sender_replyto'] = $r->sender_replyto; - $data['subject'] = $r->subject; - $data['body_html'] = $r->body_html; - $data['note'] = $r->note; - - if($r->tosend_day) { - $tosend_day = $r->tosend_day; - $tosend_hour = $r->tosend_hour; - if($tosend_hour < 0 || $tosend_hour > 23) { - $tosend_hour = 0; - } - $data['tosend_date'] = self::dateToTimestamp($tosend_day." ".str_pad($tosend_hour, 2, "0", STR_PAD_LEFT).":00:00"); - } - - $data['preorder_filter'] = json_encode($filter); - - //var_dump($data);exit; - - if($mode == "edit") { - $notification->update($data); - } else { - $notification = PreordernotificationModel::create($data); - } - - $new_id = $notification->save(); - if(!$new_id) { - $this->layout()->setFlash("Fehler beim Speichern", "error"); - if($id) { - $this->redirect("Preordernotification", "edit", ['id' => $id]); - } else { - $this->redirect("Preordernotification"); - } - } - - /* - * Attachment upload - */ - - if(array_key_exists("attachment", $_FILES)) { - $files = $_FILES['attachment']; - if(is_array($files) && count($files)) { - $file_errors = 0; - foreach($files['name'] as $i => $name) { - if(!$name) continue; - $upload_error = false; - try { - $upload = new mfUpload(['attachment', $i]); - $upload->setSavepath(MFUPLOAD_FILE_SAVE_PATH . "/" . TT_PREORDERNOTIFICATION_FILE_UPLOAD_SUBFOLDER); - } catch(Exception $e) { - $this->layout()->setFlash("Dateiupload fehlgeschlagen: ".$e->getMessage(), "warn"); - $file_errors++; - continue; - } - - if(!$upload->getSize()) { - $this->layout()->setFlash("Dateiupload fehlgeschlagen: Datei ist leer!", "warn"); - $upload_error = true; - } - - $mime = ""; - - if(!$upload_error) { - try { - $mime = $upload->getMimetype(); - $upload->save(); - } catch(Exception $e) { - $this->layout()->setFlash("Dateiupload fehlgeschlagen", "warn"); - $upload_error = true; - } - } - if($upload_error) { - $file_errors++; - continue; - } - - $file_data = []; - $file_data['name'] = $upload->getOriginalFilename(); - $file_data['filename'] = $upload->getOriginalFilename(); - $file_data['subfolder'] = TT_PREORDERNOTIFICATION_FILE_UPLOAD_SUBFOLDER; - $file_data['store_filename'] = $upload->getFilename(); - $file_data['orig_filename'] = $upload->getOriginalFilename(); - $file_data['mimetype'] = $mime; - - $file = FileModel::create($file_data); - $file_id = $file->save(); - if(!$file_id) { - $this->layout()->setFlash("Dateiupload fehlgeschlagen", "warn"); - unlink($upload->getSavepath()."/".$upload->getFilename()); - } else { - $pnf = []; - $pnf['preordernotification_id'] = $notification->id; - $pnf['file_id'] = $file_id; - $pnf['filename'] = $file->filename; - - $notification_file = PreordernotificationFileModel::create($pnf); - if(!$notification_file->save()) { - $file->delete(); - unlink($upload->getSavepath()."/".$upload->getFilename()); - $this->layout()->setFlash("Dateiupload fehlgeschlagen", "warn"); + // check permission + if(!$this->me->is("Admin")) { + /*$my_campaign_ids = []; + $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); + //var_dump($my_networks);exit; + + foreach($my_networks as $network) { + foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { + if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; + } } - } - + if(!in_array($campaign_id, $my_campaign_ids)) { + $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); + $this->redirect("Preordernotification"); + }*/ + + $my_campaigns = []; + $my_campaign_ids = []; + + $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); + //var_dump($my_networks);exit; + + $user_network_ids = $this->me->getFlag("preorder_networks")->value(); + if($user_network_ids) { + $user_network_ids = json_decode($user_network_ids); + } + + if(is_array($user_network_ids) && count($user_network_ids)) { + if(!$my_networks) { + foreach($user_network_ids as $mnid) { + $my_networks[] = new Network($mnid); + } + } else { + //var_dump($user_network_ids, $my_networks);exit; + $new_my_networks = []; + foreach($my_networks as $network) { + if(in_array($network->id, $user_network_ids)) { + $new_my_networks[$network->id] = $network; + } + } + $my_networks = $new_my_networks; + } + } + + foreach($my_networks as $network) { + foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { + if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; + } + } + + if(!in_array($campaign_id, $my_campaign_ids)) { + $this->layout()->setFlash("Vorbestellkampagne nicht gefunden", "error"); + $this->redirect("Preordernotification"); + } } - } - + + + /* + * data colletion + */ + $filter = []; + if(is_array($r->type) && count($r->type)) { + $filter['type'] = []; + foreach($r->type as $type) { + switch($type) { + case "interest": + $filter["type"][] = "interest"; + break; + case "provision": + $filter["type"][] = "provision"; + break; + case "order": + $filter["type"][] = "order"; + break; + case "reorder": + $filter["type"][] = "reorder"; + break; + } + } + } + + if(is_array($r->connection_type) && count($r->connection_type)) { + $filter['connection_type'] = []; + foreach($r->connection_type as $type) { + switch($type) { + case "single-dwelling": + $filter["connection_type"][] = "single-dwelling"; + break; + case "multi-dwelling": + $filter["connection_type"][] = "multi-dwelling"; + break; + case "apartment-building": + $filter["connection_type"][] = "apartment-building"; + break; + case "apartment": + $filter["connection_type"][] = "apartment"; + break; + case "business": + $filter["connection_type"][] = "business"; + break; + } + } + } + + //var_dump($filter); + $data = []; + $data['preordercampaign_id'] = $campaign_id; + $data['sender_email'] = $r->sender_email; + $data['sender_name'] = $r->sender_name; + $data['sender_replyto'] = $r->sender_replyto; + $data['subject'] = $r->subject; + $data['body_html'] = $r->body_html; + $data['note'] = $r->note; + + if($r->tosend_day) { + $tosend_day = $r->tosend_day; + $tosend_hour = $r->tosend_hour; + if($tosend_hour < 0 || $tosend_hour > 23) { + $tosend_hour = 0; + } + $data['tosend_date'] = self::dateToTimestamp($tosend_day . " " . str_pad($tosend_hour, 2, "0", STR_PAD_LEFT) . ":00:00"); + } + + $data['preorder_filter'] = json_encode($filter); + + //var_dump($data);exit; + + if($mode == "edit") { + $notification->update($data); + } else { + $notification = PreordernotificationModel::create($data); + } + + $new_id = $notification->save(); + if(!$new_id) { + $this->layout()->setFlash("Fehler beim Speichern", "error"); + if($id) { + $this->redirect("Preordernotification", "edit", ['id' => $id]); + } else { + $this->redirect("Preordernotification"); + } + } + + /* + * Attachment upload + */ + + if(array_key_exists("attachment", $_FILES)) { + $files = $_FILES['attachment']; + if(is_array($files) && count($files)) { + $file_errors = 0; + foreach($files['name'] as $i => $name) { + if(!$name) continue; + $upload_error = false; + try { + $upload = new mfUpload(['attachment', $i]); + $upload->setSavepath(MFUPLOAD_FILE_SAVE_PATH . "/" . TT_PREORDERNOTIFICATION_FILE_UPLOAD_SUBFOLDER); + } catch(Exception $e) { + $this->layout()->setFlash("Dateiupload fehlgeschlagen: " . $e->getMessage(), "warn"); + $file_errors++; + continue; + } + + if(!$upload->getSize()) { + $this->layout()->setFlash("Dateiupload fehlgeschlagen: Datei ist leer!", "warn"); + $upload_error = true; + } + + $mime = ""; + + if(!$upload_error) { + try { + $mime = $upload->getMimetype(); + $upload->save(); + } catch(Exception $e) { + $this->layout()->setFlash("Dateiupload fehlgeschlagen", "warn"); + $upload_error = true; + } + } + + if($upload_error) { + $file_errors++; + continue; + } + + $file_data = []; + $file_data['name'] = $upload->getOriginalFilename(); + $file_data['filename'] = $upload->getOriginalFilename(); + $file_data['subfolder'] = TT_PREORDERNOTIFICATION_FILE_UPLOAD_SUBFOLDER; + $file_data['store_filename'] = $upload->getFilename(); + $file_data['orig_filename'] = $upload->getOriginalFilename(); + $file_data['mimetype'] = $mime; + + $file = FileModel::create($file_data); + $file_id = $file->save(); + if(!$file_id) { + $this->layout()->setFlash("Dateiupload fehlgeschlagen", "warn"); + unlink($upload->getSavepath() . "/" . $upload->getFilename()); + } else { + $pnf = []; + $pnf['preordernotification_id'] = $notification->id; + $pnf['file_id'] = $file_id; + $pnf['filename'] = $file->filename; + + $notification_file = PreordernotificationFileModel::create($pnf); + if(!$notification_file->save()) { + $file->delete(); + unlink($upload->getSavepath() . "/" . $upload->getFilename()); + $this->layout()->setFlash("Dateiupload fehlgeschlagen", "warn"); + } + + } + + } + } + + } + + /* + * delete files + */ + //var_dump($r->deletefile);exit; + if(is_array($r->deletefile)) { + foreach($r->deletefile as $pnf_id => $check) { + if(!$check) continue; + $pnf = new PreordernotificationFile($pnf_id); + if($pnf->preordernotification_id != $notification->id) continue; + $pnf->file->delete(); + $pnf->delete(); + } + } + + + // get and save preorder count + $preorder_filter = json_decode($notification->preorder_filter, true); + $preorder_filter['preordercampaign_id'] = $notification->preordercampaign_id; + $preorder_count = PreorderModel::countActive($preorder_filter); + $notification->recipient_count = $preorder_count; + $notification->save(); + + if($r->send_testmail && $r->testmail_to) { + $preorder = PreorderModel::getFirstActive($preorder_filter); + if(!$preorder) { + $this->layout()->setFlash("Testmail konnte nicht versendet werden. Keine Empfänger gefunden", "warn"); + $this->redirect("Preordernotification", "edit", ['id' => $new_id]); + } + $notification->sendToPreorder($preorder, $r->testmail_to); + $this->layout()->setFlash("Test Email erfolgreich versendet", "success"); + $this->redirect("Preordernotification", "edit", ['id' => $new_id]); + } + + $this->layout()->setFlash("Erfolgreich gepeichert.", "success"); + if($r->return == "index") { + $this->redirect("Preordernotification"); + } else { + $this->redirect("Preordernotification", "edit", ['id' => $new_id]); + } + } - - /* - * delete files - */ - //var_dump($r->deletefile);exit; - if(is_array($r->deletefile)) { - foreach($r->deletefile as $pnf_id => $check) { - if(!$check) continue; - $pnf = new PreordernotificationFile($pnf_id); - if($pnf->preordernotification_id != $notification->id) continue; - $pnf->file->delete(); - $pnf->delete(); - } - } - - - // get and save preorder count - $preorder_filter = json_decode($notification->preorder_filter, true); - $preorder_filter['preordercampaign_id'] = $notification->preordercampaign_id; - $preorder_count = PreorderModel::countActive($preorder_filter); - $notification->recipient_count = $preorder_count; - $notification->save(); - - if($r->send_testmail && $r->testmail_to) { - $preorder = PreorderModel::getFirstActive($preorder_filter); - if(!$preorder) { - $this->layout()->setFlash("Testmail konnte nicht versendet werden. Keine Empfänger gefunden", "warn"); - $this->redirect("Preordernotification", "edit", ['id' => $new_id]); - } - $notification->sendToPreorder($preorder, $r->testmail_to); - $this->layout()->setFlash("Test Email erfolgreich versendet", "success"); - $this->redirect("Preordernotification", "edit", ['id' => $new_id]); - } - - $this->layout()->setFlash("Erfolgreich gepeichert.", "success"); - if($r->return == "index") { - $this->redirect("Preordernotification"); - } else { - $this->redirect("Preordernotification", "edit", ['id' => $new_id]); - } - - } } \ No newline at end of file