'Staff Members', 'current_user' => session('current_user') ]; return view('staff_members.index', $data); } public function getstaffMemberssJson(Request $request) { #$this->log_query(); $staff_members_arr = \DB::table('staff_members') ->join('departments', 'departments.id', '=', 'staff_members.department_id') ->join('auth_users AS staffcreate', 'staffcreate.id', '=', 'staff_members.created_by') ->join('auth_users AS staffmodify', 'staffmodify.id', '=', 'staff_members.modified_by') ->select('staff_members.id', 'staffcreate.name AS createdBy', 'staff_members.name','staff_members.phone', 'staffmodify.name AS modifiedBy', 'departments.name AS deptName', 'staff_members.gender', 'staff_members.profile_pic', 'staff_members.email', 'staff_members.personal_email', 'staff_members.staff_number', 'staff_members.staff_number', 'staff_members.status', 'staff_members.location_country', 'staff_members.hire_date') ->orderBy('staff_members.name', 'ASC') ->paginate(10); if($request->has('keyword')){ $keyword = $request->keyword; $staff_members_arr = \DB::table('staff_members') ->join('departments', 'departments.id', '=', 'staff_members.department_id') ->join('auth_users AS staffcreate', 'staffcreate.id', '=', 'staff_members.created_by') ->join('auth_users AS staffmodify', 'staffmodify.id', '=', 'staff_members.modified_by') ->select('staff_members.id', 'staffcreate.name AS createdBy','staff_members.name', 'staff_members.phone', 'staffmodify.name AS modifiedBy', 'departments.name AS deptName', 'staff_members.gender', 'staff_members.profile_pic', 'staff_members.email', 'staff_members.personal_email', 'staff_members.staff_number', 'staff_members.status', 'staff_members.location_country', 'staff_members.hire_date') ->whereRaw("staffcreate.name LIKE '%$keyword%' OR staffmodify.name LIKE '%$keyword%' OR staff_members.name LIKE '%$keyword%' OR departments.name LIKE '%$keyword%' OR staff_members.gender LIKE '%$keyword%' OR staff_members.email LIKE '%$keyword%' OR staff_members.personal_email LIKE '%$keyword%' OR staff_members.staff_number LIKE '%$keyword%' OR 'staff_members.staff_number' LIKE '%$keyword%' OR 'staff_members.location_country' LIKE '%$keyword%' OR 'staff_members.hire_date' LIKE '%$keyword%'") ->orderBy('staff_members.name', 'ASC') ->paginate(10); } return response()->json($staff_members_arr); } public function create() { $countries = Models\Country::pluck('en_short_name','en_short_name'); $departments = Models\Department::pluck('name', 'id'); $status = ['Inactive' => 'Inactive', 'Active' => 'Active', 'Pending Confirmation' => 'Pending Confirmation']; $gender_arr = ['Female' => 'Female', 'Male' => 'Male']; $data = [ 'page_title' => 'Add Staff Member', 'countries' => $countries, 'status' => $status, 'gender_arr' => $gender_arr, 'departments' => $departments, ]; return view('staff_members.create', $data); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'name' => 'required', 'gender' => 'required', 'department_id' => 'required', 'email' => 'required', 'personal_email' => 'required', 'phone' => 'required', 'location_country' => 'required', 'hire_date' => 'sometimes|date', 'profile_pic' => 'sometimes', 'staff_number' => 'sometimes' ]); $staff_members_arr = $request->except('_token'); $staff_members_arr['created_by'] = session('current_user.id'); $staff_members_arr['modified_by'] = session('current_user.id'); $result = Models\StaffMember::create($staff_members_arr); Session::flash('success_message', 'Staff Member successfully added'); return redirect(url('staffmembers')); } public function edit($id){ $staff_member = Models\StaffMember::findOrFail($id); $countries = Models\Country::pluck('en_short_name','en_short_name'); $departments = Models\Department::pluck('name', 'id'); $status = ['Inactive' => 'Inactive', 'Active' => 'Active', 'Pending Confirmation' => 'Pending Confirmation']; $gender_arr = ['Female' => 'Female', 'Male' => 'Male']; $data = [ 'page_title' => 'Edit Staff Member Details', 'countries' => $countries, 'status' => $status, 'staff_member' => $staff_member, 'gender_arr' => $gender_arr, 'departments' => $departments ]; return view('staff_members.edit', $data); } public function update(Request $request, $id) { $request->validate([ 'name' => 'required', 'gender' => 'required', 'department_id' => 'required', 'email' => 'required', 'personal_email' => 'required', 'phone' => 'required', 'location_country' => 'required', 'hire_date' => 'sometimes|date' ]); $staff_member = Models\StaffMember::findOrFail($id); $staff_member->name = $request->name; $staff_member->email = $request->email; $staff_member->status = $request->status; $staff_member->personal_email = $request->personal_email; $staff_member->department_id = $request->department_id; $staff_member->location_country = $request->location_country; $staff_member->phone = $request->phone; $staff_member->hire_date = $request->hire_date; $staff_member->staff_number = $request->staff_number; $staff_member->gender = $request->gender; if ($request->has('profile_pic')) { $staff_member->profile_pic = $request->profile_pic; } $staff_member->save(); Session::flash('success_message', 'Staff Member Details successfully Updated'); return redirect(url('staffmembers')); } }