diff --git a/Layout/default/Preorder/export.csv.php b/Layout/default/Preorder/export.csv.php index 5c179119e..f6a624045 100644 --- a/Layout/default/Preorder/export.csv.php +++ b/Layout/default/Preorder/export.csv.php @@ -1,7 +1,9 @@ Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;OAID;Bestelldatum;Bestelltyp;Status Code; Status Name;Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;CIF Token;Cif Url; Cif Cable Url;Addon Lehrverrohrung Grundstück;Addon Hausverkabelung;BEP festgelegt;Starterpaket erhalten;Erstellt;Letzte Bearbeitung addRoute("/preorder/open", "getOpenPreorders", "GET"); $this->addRoute("/preorder/customerInstallationFeedback", [$modules["Cif"], "getCifData"], "GET"); $this->addRoute("/preorder/customerInstallationFeedback", [$modules["Cif"], "userSetCif"], "POST"); - + $this->addRoute("/preorder/fullexport", "exportPreorders", "GET"); + $this->addRoute("/preorder/:code/clientInstallationFinished", [$modules["Cif"], "providerSetCif"], "POST"); $this->addRoute("/preorder/:code/serviceActivated", [$modules["Activation"], "setServiceActive"], "POST"); $this->addRoute("/preorder/:code", "getPreorder", "GET"); $this->addRoute("/preorder/:code", "cancelPreorder", "DELETE"); + } @@ -118,7 +120,53 @@ class PreorderApicontroller extends mfBaseApicontroller { $this->allowed_preordertypes = array_unique($this->allowed_preordertypes); } - + + protected function exportPreorders() { + if($this->me->username != 'r.eschner@rmlinfrastruktur.at') { + return mfResponse::Forbidden(); + } + + if($this->me->is("Admin")) { + $my_networks = NetworkModel::getAll(); + } else { + $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); + } + + $netzgebiet_ids = []; + $my_adb_networks = []; + foreach($my_networks as $network) { + if($network->adb_netzgebiet_id && !in_array($network->adb_netzgebiet_id, $netzgebiet_ids)) { + $netzgebiet_ids[] = $network->id; + $my_adb_networks[$network->adb_netzgebiet_id] = new ADBNetzgebiet($network->adb_netzgebiet_id); + } + } + $preorder_filter = []; + + $campaign_ids = []; + foreach(PreordercampaignModel::search(["network_id" => $netzgebiet_ids]) as $campaign) { + if(!in_array($campaign->id, $campaign_ids)) { + $campaign_ids[] = $campaign->id; + } + } + + $preorder_filter["preordercampaign_id"] = $campaign_ids; + + // Get mysqli resource from Model, so layout can output data as it's retrieved + // Works around lousy performance and horrendous memory usage + $res = PreorderModel::searchActive($preorder_filter, [], true); + + + $tpl = new Layout(); + $tpl->setTemplate("Preorder/export.csv"); + $tpl->set("res", $res); + $tpl->set("no_filename", true); + $tpl->display(); + //$csv = $tpl->render(); + //echo $csv; + exit; + + } + protected function getOpenPreorders() { $ts = $this->get['ts'];