*/ class DepartmentController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); $this->middleware('roles'); } /** * Get index page. * * @param type Department $department * * @return type Response */ public function index(Department $department) { try { $departments = $department->get(); return view('themes.default1.admin.helpdesk.agent.departments.index', compact('departments')); } catch (Exception $e) { return view('404'); } } /** * Show the form for creating a new resource. * * @param type User $user * @param type Group_assign_department $group_assign_department * @param type Department $department * @param type Sla_plan $sla * @param type Template $template * @param type Emails $email * @param type Groups $group * * @return type Response */ public function create(User $user, Group_assign_department $group_assign_department, Department $department, Sla_plan $sla, Template $template, Emails $email, Groups $group) { try { $slas = $sla->get(); $user = $user->where('role', 'agent2')->get(); $emails = $email->get(); $templates = $template->get(); $department = $department->get(); $groups = $group->lists('id', 'name'); return view('themes.default1.admin.helpdesk.agent.departments.create', compact('department', 'templates', 'slas', 'user', 'emails', 'groups')); } catch (Exception $e) { return redirect()->back()->with('fails', $e->getMessage()); } } /** * Store a newly created resource in storage. * * @param type Department $department * @param type DepartmentRequest $request * * @return type Response */ public function store(Department $department, DepartmentRequest $request) { try { $department->fill($request->except('group_id', 'manager', 'sla'))->save(); if ($request->sla) { $department->sla = $request->input('sla'); } else { $department->sla = null; } $requests = $request->input('group_id'); $id = $department->id; if ($request->manager) { $department->manager = $request->input('manager'); } else { $department->manager = null; } /* Succes And Failure condition */ /* Check Whether the function Success or Fail */ if ($department->save() == true) { return redirect('departments')->with('success', Lang::get('lang.department_created_sucessfully')); } else { return redirect('departments')->with('fails', Lang::get('lang.failed_to_create_department')); } } catch (Exception $e) { return redirect('departments')->with('fails', Lang::get('lang.failed_to_create_department')); } } /** * Show the form for editing the specified resource. * * @param type int $id * @param type User $user * @param type Group_assign_department $group_assign_department * @param type Template $template * @param type Teams $team * @param type Department $department * @param type Sla_plan $sla * @param type Emails $email * @param type Groups $group * * @return type Response */ public function edit($id, User $user, Group_assign_department $group_assign_department, Template $template, Teams $team, Department $department, Sla_plan $sla, Emails $email, Groups $group) { try { $sys_department = \DB::table('settings_system') ->select('department') ->where('id', '=', 1) ->first(); $slas = $sla->get(); $user = $user->where('primary_dpt', $id)->get(); $emails = $email->get(); $templates = $template->get(); $departments = $department->whereId($id)->first(); $groups = $group->lists('id', 'name'); $assign = $group_assign_department->where('department_id', $id)->lists('group_id'); return view('themes.default1.admin.helpdesk.agent.departments.edit', compact('assign', 'team', 'templates', 'departments', 'slas', 'user', 'emails', 'groups', 'sys_department')); } catch (Exception $e) { return redirect('departments')->with('fails', $e->getMessage()); } } /** * Update the specified resource in storage. * * @param type int $id * @param type Group_assign_department $group_assign_department * @param type Department $department * @param type DepartmentUpdate $request * * @return type Response */ public function update($id, Group_assign_department $group_assign_department, Department $department, DepartmentUpdate $request) { // dd($id); try { $table = $group_assign_department->where('department_id', $id); $table->delete(); $requests = $request->input('group_id'); // foreach ($requests as $req) { // DB::insert('insert into group_assign_department (group_id, department_id) values (?,?)', [$req, $id]); // } $departments = $department->whereId($id)->first(); if ($request->manager) { $departments->manager = $request->input('manager'); } else { $departments->manager = null; } $departments->save(); if ($request->sla) { $departments->sla = $request->input('sla'); $departments->save(); } else { $departments->sla = null; $departments->save(); } if ($request->input('sys_department') == 'on') { DB::table('settings_system') ->where('id', 1) ->update(['department' => $id]); } if ($departments->fill($request->except('group_access', 'manager', 'sla'))->save()) { return redirect('departments')->with('success', Lang::get('lang.department_updated_sucessfully')); } else { return redirect('departments')->with('fails', Lang::get('lang.department_not_updated')); } } catch (Exception $e) { return redirect('departments')->with('fails', Lang::get('lang.department_not_updated')); } } /** * Remove the specified resource from storage. * * @param type int $id * @param type Department $department * @param type Group_assign_department $group_assign_department * * @return type Response */ public function destroy($id, Department $department, Group_assign_department $group_assign_department, System $system, Tickets $tickets) { // try { $system = $system->where('id', '=', '1')->first(); if ($system->department == $id) { return redirect('departments')->with('fails', Lang::get('lang.you_cannot_delete_default_department')); } else { $tickets = DB::table('tickets')->where('dept_id', '=', $id)->update(['dept_id' => $system->department]); if ($tickets > 0) { if ($tickets > 1) { $text_tickets = 'Tickets'; } else { $text_tickets = 'Ticket'; } $ticket = '