예제 #1
0
 function save(array $params)
 {
     $response = new ResponseEntity();
     DB::transaction(function () use(&$response, $params) {
         if ($params['content']) {
             $p = new Post();
             $p->content = $params['content'];
             $p->user_id = Auth::user()->id;
             $ok = $p->save();
             if ($ok) {
                 $response->setSuccess(true);
                 $response->setData(['post' => $this->postDto->findOneForNewsFeed($p->id)]);
             } else {
                 $response->setMessages(['Something went wrong!']);
             }
         } else {
             $response->setMessages(['Input something to post']);
         }
     });
     return $response;
 }
예제 #2
0
 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;
 }