Пример #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     // validate the info, create rules for the inputs
     $rules = array('user_firstname' => 'required', 'user_gender' => 'required', 'user_joined_date' => 'required|date_format:"' . DATE_FORMAT_2, 'user_left_date' => 'date_format:"' . DATE_FORMAT_2, 'user_email' => 'required|email|unique:user,user_email,' . $id . ',user_key,deleted_at,NULL', 'country_key1' => 'required', 'user_contact_phone_number1' => 'required', 'user_status' => 'required');
     // run the validation rules on the inputs from the form
     $validator = Validator::make(Input::all(), $rules);
     // if the validator fails, redirect back to the form
     if ($validator->fails()) {
         // redirect to list page
         Session::flash('danger', UNABLE_TO_SAVE);
         return Redirect::back()->withErrors($validator)->withInput();
     } else {
         // where condition
         $user = User::userKey($id)->first();
         // check if the record can be updated
         if (empty($user->id)) {
             // redirect to list page
             Session::flash('danger', SOMETHING_WENT_WRONG);
             return Redirect::to(strtolower(USER_TITLE));
         }
         // fields to be updated
         $user->user_firstname = $this->getInput('user_firstname', '');
         $user->user_middlename = $this->getInput('user_middlename', '');
         $user->user_lastname = $this->getInput('user_lastname', '');
         $user->user_alias = $this->getInput('user_alias', '');
         $user->user_gender = $this->getInput('user_gender', '');
         $user->user_civil_status = $this->getInput('user_civil_status', '');
         $user->user_birth_date = \Carbon\Carbon::createFromFormat(DATE_FORMAT_1, $this->getInput('user_birth_date', DEFAULT_DATE))->format(DB_DATE_FORMAT);
         $user->user_joined_date = $this->getInput('user_joined_date', '');
         $user->user_left_date = $this->getInput('user_left_date', '');
         $user->user_email = $this->getInput('user_email', '');
         $user->user_hometown_address = $this->getInput('user_hometown_address', '');
         $user->user_overseas_address = $this->getInput('user_overseas_address', '');
         if (Session::has('user_photo')) {
             $user->user_photo = Session::get('user_photo');
             Session::forget('user_photo');
         }
         $user->user_status = $this->getInput('user_status', '');
         $user->updated_by = Auth::user()->id;
         // update record
         $user->save();
         for ($cnt = 1; $cnt <= $this->getInput('hdn_increment', ''); $cnt++) {
             if ($this->getInput('hdn_index' . $cnt, '') == YES && $this->getInput('country_key' . $cnt, '') != EMPTY_STRING && $this->getInput('user_contact_phone_number' . $cnt, '') != EMPTY_STRING) {
                 if ($this->getInput('user_contact_key' . $cnt, '') == EMPTY_STRING) {
                     $data = array();
                     $data['user_contact_key'] = generateRandomID();
                     $data['user_id'] = $user->id;
                     $data['country_id'] = Country::countryKey($this->getInput('country_key' . $cnt, ''))->pluck('id');
                     $data['user_contact_phone_number'] = $this->getInput('user_contact_phone_number' . $cnt, '');
                     $data['created_by'] = Auth::user()->id;
                     // create record
                     UserContact::create($data);
                 } else {
                     // where condition
                     $user_contact = UserContact::UserContactKey($this->getInput('user_contact_key' . $cnt, ''))->first();
                     // check if the record can be updated
                     if (isset($user_contact->id)) {
                         $user_contact->country_id = Country::countryKey($this->getInput('country_key' . $cnt, ''))->pluck('id');
                         $user_contact->user_contact_phone_number = $this->getInput('user_contact_phone_number' . $cnt, '');
                         $user_contact->updated_by = Auth::user()->id;
                         // update record
                         $user_contact->save();
                     }
                 }
             }
         }
         // where condition
         $user_emergency = UserEmergency::userId($user->id)->first();
         // check if the record can be updated
         if (!empty($user_emergency->id)) {
             // fields to be updated
             $user_emergency->user_emergency_name = $this->getInput('user_emergency_name', '');
             $user_emergency->user_emergency_relation = $this->getInput('user_emergency_relation', '');
             $user_emergency->user_emergency_address = $this->getInput('user_emergency_address', '');
             $user_emergency->country_id = Country::countryKey($this->getInput('emergency_country_key', ''))->pluck('id');
             $user_emergency->user_emergency_phone = $this->getInput('user_emergency_phone', '');
             $user_emergency->updated_by = Auth::user()->id;
             // update record
             $user_emergency->save();
         }
         // flag all approver template records
         AccessUser::userId($user->id)->update(array('access_user_flag' => YES));
         // create access record
         if (is_array($this->getInput('access_user', array()))) {
             foreach ($this->getInput('access_user', array()) as $access_id) {
                 $access_user = AccessUser::accessId($access_id)->userId($user->id)->first();
                 if (isset($access_user->id) && !empty($access_user->id)) {
                     // update record
                     $access_user->user_id = $user->id;
                     $access_user->access_id = $access_id;
                     $access_user->access_user_flag = NO;
                     $access_user->updated_by = Auth::user()->id;
                     $access_user->save();
                 } else {
                     // create record
                     $data = array();
                     $data['user_id'] = $user->id;
                     $data['access_id'] = $access_id;
                     $data['access_user_flag'] = NO;
                     $data['created_by'] = Auth::user()->id;
                     AccessUser::create($data);
                 }
             }
             // delete records set to yes
             AccessUser::AccessUserFlag(YES)->UserId($user->id)->delete();
         }
         // redirect to list page
         Session::flash('success', SUCCESS_UPDATE);
         return Redirect::to($this->getPreviousListURL());
     }
 }