public function updateAction() { //Disable view $this->view->disable(); //As usual, catch and process posted data if ($this->request->isPost() && in_array($action = $this->request->getPost("action"), array("Add", "Update"))) { if (empty($company = ucfirst(htmlspecialchars($this->request->getPost("company_name", "trim"))))) { $this->flashSession->error("Nama perusahaan belum diisi. Mohon isi nama perusahaan dan ulangi proses kembali!"); return $this->response->redirect("responden"); } $email = htmlspecialchars($this->request->getPost("email", "trim")); if ($action == "Add") { $login_name = htmlspecialchars($this->request->getPost("username", "trim")); if (empty($login_name)) { $this->flashSession->error("Username belum diisi. Mohon isi kolom username dan ulangi proses kembali!"); return $this->response->redirect("responden"); } $name = ucfirst(htmlspecialchars($this->request->getPost("first_name", "trim"))); if (empty($name)) { $this->flashSession->error("Nama Depan belum diisi. Mohon isi kolom Nama Depan dan ulangi proses kembali!"); return $this->response->redirect("responden"); } if (!empty($this->request->getPost("last_name", "trim"))) { $name = $name . " " . ucfirst(htmlspecialchars($this->request->getPost("last_name", "trim"))); } $user = new Users(); $user->setLoginName($login_name)->setName($name)->setCompanyName($company)->setEmail($email); //Set the default password $user->setPassword($this->security->hash(self::DEFAULT_PASSWORD)); //Set role_id to Respondent's role id $user->setIdRole(Roles::findFirstByName("Respondent")->getIdRole()); if (!$user->save()) { $this->flashSession->error("Fatal Error! Error occured while adding new user record"); foreach ($user->getMessages() as $err) { $this->flashSession->error($err); } return $this->response->redirect("responden"); } } $this->flashSession->success("Data telah berhasil disimpan ke database."); } return $this->response->redirect("responden"); }
public function respondenListAction() { //Disable main level view $this->view->disableLevel(View::LEVEL_MAIN_LAYOUT); //Process only if http post request if ($this->request->isPost()) { $responden = array(); $exclude_user_id = array(""); $i = 0; if (!empty($kue_id = (int) $this->request->getPost("kue_id", "int"))) { //Fetch already selected respondents data $kue_access = $this->modelsManager->createBuilder()->columns(array("k.id_responden", "k.status", "u.name", "u.company_name"))->addFrom("KuesionerAccess", "k")->leftJoin("Users", "k.id_responden = u.id_user", "u")->where("k.id_kuesioner = :kue_id:", array("kue_id" => $kue_id))->getQuery()->execute(); for (; $i < $kue_access->count(); $i++) { $k = $kue_access[$i]; $responden[$i] = array("selected" => true, "id_responden" => $k->id_responden, "status" => $k->status, "name" => $k->name, "company" => $k->company_name); $exclude_user_id[$i] = $k->id_responden; } } //Fetch all not selected yet respondents data from Users table $users = Users::query()->notInWhere("id_user", $exclude_user_id)->andWhere("id_role = :role_id:", array("role_id" => Roles::findFirstByName("Respondent")->getIdRole()))->andWhere("banned = false")->andWhere("suspended = false")->andWhere("active = true")->execute(); foreach ($users as $u) { $responden[$i++] = array("selected" => false, "id_responden" => $u->getIdUser(), "status" => null, "name" => $u->getName(), "company" => $u->getCompanyName()); } $this->view->setVar("responden", $responden); } }