public function actionCreate() { $model = new UserGroup(); if (isset($_POST['save'])) { $model->setAttributes($_POST['UserGroup']); if ($model->save()) { Messages::get()->success("Group saved!"); $this->getRequest()->goToPage('usergroups'); } } $this->assign('model', $model); }
function save(array $params) { $response = new ResponseEntity(); DB::transaction(function () use(&$response, $params) { $empId = isset($params['empId']) ? intval($params['empId']) : 0; $idNumber = Config::get('hris_system.employee_id_prefix') . $params['id_number']; $existingEmp = Employee::with('user')->find($empId); // check for duplicate id_number $tempEmp = Employee::where('id_number', '=', $idNumber)->first(); if ($tempEmp) { if (!$existingEmp) { // new $response->setMessages(['id_number' => ['Id number is already taken']]); return $response; } else { if ($existingEmp && $existingEmp->id != $tempEmp->id) { // update $response->setMessages(['id_number' => ['Id number is already taken']]); return $response; } } } if ($empId > 0 && !$existingEmp) { // check when updating $response->setMessages(['Employee is not available!']); return $response; } else { // employee user account $user = $existingEmp ? $existingEmp->user : new User(); $user->email = $params['email']; if (!$existingEmp) { // for new employee user account $user->password = Hash::make($idNumber); //default password is the ID Number of the employee $user->active = '1'; } $user->save(); // clear user group UserGroup::where('user_id', $user->id)->delete(); // assign group $ug = new UserGroup(); $ug->user_id = $user->id; $ug->group_id = $params['group_id']; $ug->save(); // employee records $employee = $existingEmp ? $existingEmp : new Employee(); $employee->user_id = $user->id; $employee->id_number = $idNumber; $employee->first_name = $params['first_name']; $employee->last_name = $params['last_name']; if (isset($params['middle_name'])) { $employee->middle_name = $params['middle_name']; } if (isset($params['supervisor_id'])) { $employee->supervisor_id = $params['supervisor_id']; } $employee->sex = $params['sex']; $employee->birthday = Carbon::createFromFormat('m/d/Y', $params['birthday']); $employee->shift_id = $params['shift_id']; $employee->active = $existingEmp ? $existingEmp->active : '1'; $ok = $employee->save(); if ($ok) { $response->setSuccess(true); $response->setData(['empId' => $employee->id]); $response->setMessages(['Employee successfully ' . ($existingEmp ? 'saved' : 'created')]); } else { $response->setMessages(['Failed to ' . ($existingEmp ? 'save' : 'create') . ' employee!']); } } }); return $response; }
public function postCreateMobileApp(Request $request) { $email = $request->input('email'); $password = $request->input('password'); $password_again = $request->input('password_again'); $group_to_register_in = $request->input('group_to_register_in'); $inputs = ['email' => $email, 'password' => $password, 'password_again' => $password_again, 'group_to_register_in' => $group_to_register_in]; $validator = validator::make($request->all(), ['email' => 'required|unique:users|email', 'password' => 'required|max:16|min:6', 'password_again' => 'required|same:password', 'group_to_register_in' => 'required|in:1,2,3']); if ($validator->fails()) { return ApiResponseClass::errorResponse('You Have Some Input Errors', $inputs, $validator->errors()); } $group_id = null; if ($group_to_register_in == Groups::Student_Group_Id) { $group_id = Groups::Student_Group_Id; } elseif ($group_to_register_in == Groups::Administrator_Group_ID) { $group_id = Groups::Administrator_Group_ID; } elseif ($group_to_register_in == Groups::Teacher_Group_Id) { $group_id = Groups::Teacher_Group_Id; } DB::beginTransaction(); try { Groups::findorFail($group_id); $user = new User(); $user->email = $email; $user->password = Hash::make($password); $user->activated = 0; $user->email_updated_at = date("Y-m-d h:i:s"); $user->password_updated_at = date("Y-m-d h:i:s"); $user->activation_code = str_random(64); if (!$user->save()) { throw new \ErrorException(); } $user_group = new UserGroup(); $user_group->user_id = $user->id; $user_group->group_id = $group_id; if (!$user_group->save()) { throw new \ErrorException(); } DB::commit(); } catch (ModelNotFoundException $e) { DB::rollback(); return ApiResponseClass::errorResponse('ModelNotFoundException', $inputs); } catch (\ErrorException $e) { DB::rollback(); return ApiResponseClass::errorResponse('ModelNotSavedException', $inputs); } // Send mail to the user if not the test Shop Id. return ApiResponseClass::successResponse($user, $inputs); }