me->is("Preorderreadonly")) return \mfResponse::Forbidden(); $code = trim($code); if(!$code) { return \mfResponse::NotFound(["message" => "Preorder not found"]); } $preorder = \PreorderModel::getFirst(['ucode' => strtoupper($code), 'partner_id' => $this->me->address_id]); if(!$preorder) { // try oaid $preorder = \PreorderModel::getFirst(['oaid' => strtolower($code), 'partner_id' => $this->me->address_id], "`create` DESC"); } if(!$preorder) { // try as extref $preorder = \PreorderModel::getFirst(['extref' => $code, 'partner_id' => $this->me->address_id]); } if(!$preorder) { return \mfResponse::NotFound(["message" => "Preorder not found"]); } if($preorder->partner_id != $this->me->address_id) { return \mfResponse::NotFound(["message" => "Preorder not found"]); } // set status flag 200 $preorder->setStatusFlag(200, 1); return \mfResponse::Ok(["message" => "Status successfully updated."]); } /* * GET /preorder/customerInstallationFeedback */ public function getCifData() { if($this->me->is("Preorderreadonly")) return \mfResponse::Forbidden(); if(!array_key_exists("ciftoken", $this->get) || !$this->get['ciftoken']) { return \mfResponse::BadRequest(["message" => "ciftoken missing"]); } $preorder = \PreorderModel::getFirst(["ciftoken" => $this->get["ciftoken"]]); if(!$preorder) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } if(!$preorder->adb_hausnummer->netzgebiet_id) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } $network = \NetworkModel::getFirst(["adb_netzgebiet_id" => $preorder->adb_hausnummer->netzgebiet->id]); if(!$network) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } if($network->owner_id != $this->me->address_id) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } $return = $preorder->getCifdataApiArray(); return \mfResponse::Ok($return); } /* * POST /preorder/customerInstallationFeedback */ public function userSetCif() { if($this->me->is("Preorderreadonly")) return \mfResponse::Forbidden(); //return \mfResponse::InternalServerError(); $ciftoken = false; if(array_key_exists("ciftoken", $this->post) && $this->post['ciftoken']) { $ciftoken = $this->post['ciftoken']; } if(array_key_exists("ciftoken", $this->get) && $this->get['ciftoken']) { $ciftoken = $this->get['ciftoken']; } if(!$ciftoken) { return \mfResponse::BadRequest(["message" => "ciftoken missing"]); } $preorder = \PreorderModel::getFirst(["ciftoken" => $this->get["ciftoken"]]); if(!$preorder) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } if(!$preorder->adb_hausnummer->netzgebiet_id) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } $network = \NetworkModel::getFirst(["adb_netzgebiet_id" => $preorder->adb_hausnummer->netzgebiet->id]); if(!$network) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } if($network->owner_id != $this->me->address_id) { return \mfResponse::NotFound(["message" => "Invalid ciftoken"]); } // set status flag 200 $preorder->setStatusFlag(200, 1); return \mfResponse::Ok(["message" => "Status successfully updated."]); } }