staff, mno, clients, bug fixes
This commit is contained in:
141
app/Http/Controllers/StaffMembersController.php
Normal file
141
app/Http/Controllers/StaffMembersController.php
Normal file
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models;
|
||||
use Session;
|
||||
|
||||
class StaffMembersController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
$staff_members_arr = new Models\StaffMember;
|
||||
$data = [
|
||||
'page_title' => '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'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user