middleware('auth:admin'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $departments = DB::table('departments') ->orderBy('id', 'desc') ->get(); $users = User::join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->where('users.working_status', '=', '1') ->where('users.status', '=', '1') ->where('roles.id', '<=', 2) ->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id') ->orderBy('roles.id', 'asc') ->get(); $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); return view('admin.departments.index', compact('departments', 'users', 'languages')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); $departments=Department::where('status', '1')->orderBy('id', 'asc')->pluck('name', 'id')->toArray(); $users = User::join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->where('users.working_status', '=', '1') ->where('users.status', '=', '1') ->where('roles.id', '<=', 2) ->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id') ->orderBy('roles.id', 'asc') ->get(); return view('admin.departments.create', compact('departments', 'users', 'languages')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); $request->session()->put('old_data', $request->all()); $name=[]; $error_array=[]; if(!empty($languages)): foreach($languages as $language): if(isset($request['name_'.$language->short_name])): if($request['name_'.$language->short_name]== ''): Session::flash('error_message', 'Department name for '.$language->name.' ( '.strtoupper($language->short_name).' ) is required.'); return redirect()->back(); else: $exists_check = Department::where('name', 'LIKE', '%"'.$language->short_name.'":"'.$request['name_'.$language->short_name].'"%')->first(); if(isset($exists_check) && !empty($exists_check)): Session::flash('error_message', 'Department name for '.$language->name.' ( '.strtoupper($language->short_name).' ) is already exists.'); return redirect()->back(); else: $name[$language->short_name]= $request['name_'.$language->short_name]; endif; endif; endif; endforeach; endif; $request['name'] = json_encode($name); $input = $request->all(); $saved_data=Department::create($input); if($saved_data) { $request->session()->forget('old_data'); Session::flash('success_message', 'Department has been added successfully'); return redirect()->route('departments'); } else { Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('add-department'); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $id=base64_decode($id); $department = Department::where('id', '=', $id)->first(); $users = User::join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->where('users.working_status', '=', '1') ->where('users.status', '=', '1') ->where('roles.id', '<=', 2) ->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id') ->orderBy('roles.id', 'asc') ->get(); if($department): $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); $department_lists=Department::where([['id','<>',$id], ['status', '=',1]])->orderBy('id', 'asc')->pluck('name', 'id')->toArray(); return view('admin.departments.edit', compact('department', 'department_lists', 'users', 'languages')); else: Session::flash('error_message', 'Invalid department id.'); return redirect()->route('departments'); endif; } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $id=base64_decode($id); $department = Department::findOrFail($id); $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); $request->session()->put('old_data', $request->all()); $name=[]; $error_array=[]; if(!empty($languages)): foreach($languages as $language): if(isset($request['name_'.$language->short_name])): if($request['name_'.$language->short_name]== ''): Session::flash('error_message', 'Delivery type name for '.$language->name.' ( '.strtoupper($language->short_name).' ) is required.'); return redirect()->back(); else: $exists_check = Department::where('name', 'LIKE', '%"'.$language->short_name.'":"'.$request['name_'.$language->short_name].'"%')->where('id', '<>', $id)->first(); if(isset($exists_check) && !empty($exists_check)): Session::flash('error_message', 'Delivery type name for '.$language->name.' ( '.strtoupper($language->short_name).' ) is already exists.'); return redirect()->back(); else: $name[$language->short_name]= $request['name_'.$language->short_name]; endif; endif; endif; endforeach; endif; $request['name'] = json_encode($name); $input = $request->all(); $saved_data=$department->fill($input)->save(); if($saved_data): $request->session()->forget('old_data'); Session::flash('success_message', 'Department has been updated successfully'); return redirect()->route('departments'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('edit-department'); endif; } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $id=base64_decode($id); $department = Department::findOrFail($id); $department_lists=Department::where('parent_id',$id)->get()->toArray(); if(!empty($department_lists)): Session::flash('error_message', 'Please delete all related department first.'); return redirect()->route('departments'); endif; $delete_department = $department->delete(); if($delete_department): Session::flash('success_message', 'Department has been deleted successfully'); return redirect()->route('departments'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('departments'); endif; } public function statusupdate($id) { $id=base64_decode($id); $find_department = Department::findOrFail($id); if($find_department->status==1) $status=0; else $status=1; $input=[ 'status'=>$status ]; $saved_data=$find_department->fill($input)->save(); if($saved_data): Session::flash('success_message', 'Department has been updated successfully'); return redirect()->route('departments'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('departments'); endif; } }