253 lines
8.9 KiB
PHP
253 lines
8.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin\helpdesk;
|
|
|
|
// controllers
|
|
use App\Http\Controllers\Controller;
|
|
// requests
|
|
use App\Http\Requests\helpdesk\HelptopicRequest;
|
|
use App\Http\Requests\helpdesk\HelptopicUpdate;
|
|
// models
|
|
use App\Model\helpdesk\Agent\Agents;
|
|
use App\Model\helpdesk\Agent\Department;
|
|
use App\Model\helpdesk\Form\Forms;
|
|
use App\Model\helpdesk\Manage\Help_topic;
|
|
use App\Model\helpdesk\Manage\Sla_plan;
|
|
use App\Model\helpdesk\Settings\Ticket;
|
|
use App\Model\helpdesk\Ticket\Ticket_Priority;
|
|
use App\User;
|
|
// classes
|
|
use DB;
|
|
use Exception;
|
|
use Lang;
|
|
|
|
/**
|
|
* HelptopicController.
|
|
*
|
|
* @author Ladybird <info@ladybirdweb.com>
|
|
*/
|
|
class HelptopicController extends Controller
|
|
{
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return type vodi
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth');
|
|
$this->middleware('roles');
|
|
}
|
|
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @param type Help_topic $topic
|
|
*
|
|
* @return type Response
|
|
*/
|
|
public function index(Help_topic $topic)
|
|
{
|
|
try {
|
|
$topics = $topic->get();
|
|
|
|
return view('themes.default1.admin.helpdesk.manage.helptopic.index', compact('topics'));
|
|
} catch (Exception $e) {
|
|
return redirect()->back()->with('fails', $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @param type Priority $priority
|
|
* @param type Department $department
|
|
* @param type Help_topic $topic
|
|
* @param type Form_name $form
|
|
* @param type Agents $agent
|
|
* @param type Sla_plan $sla
|
|
*
|
|
* @return type Response
|
|
*/
|
|
/*
|
|
================================================
|
|
| Route to Create view file passing Model Values
|
|
| 1.Department Model
|
|
| 2.Help_topic Model
|
|
| 3.Agents Model
|
|
| 4.Sla_plan Model
|
|
| 5.Forms Model
|
|
================================================
|
|
*/
|
|
public function create(Ticket_Priority $priority, Department $department, Help_topic $topic, Forms $form, User $agent, Sla_plan $sla)
|
|
{
|
|
try {
|
|
$departments = $department->get();
|
|
$topics = $topic->get();
|
|
$forms = $form->get();
|
|
$agents = $agent->where('role', '=', 'agent')->get();
|
|
$slas = $sla->get();
|
|
$priority = $priority->get();
|
|
|
|
return view('themes.default1.admin.helpdesk.manage.helptopic.create', compact('priority', 'departments', 'topics', 'forms', 'agents', 'slas'));
|
|
} catch (Exception $e) {
|
|
return redirect()->back()->with('fails', $e->getMessage());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param type Help_topic $topic
|
|
* @param type HelptopicRequest $request
|
|
*
|
|
* @return type Response
|
|
*/
|
|
public function store(Help_topic $topic, HelptopicRequest $request)
|
|
{
|
|
try {
|
|
if ($request->custom_form) {
|
|
$custom_form = $request->custom_form;
|
|
} else {
|
|
$custom_form = null;
|
|
}
|
|
if ($request->auto_assign) {
|
|
$auto_assign = $request->auto_assign;
|
|
} else {
|
|
$auto_assign = null;
|
|
}
|
|
/* Check whether function success or not */
|
|
$topic->fill($request->except('custom_form', 'auto_assign'))->save();
|
|
// $topics->fill($request->except('custom_form','auto_assign'))->save();
|
|
/* redirect to Index page with Success Message */
|
|
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_created_successfully'));
|
|
} catch (Exception $e) {
|
|
/* redirect to Index page with Fails Message */
|
|
return redirect('helptopic')->with('fails', Lang::get('lang.helptopic_can_not_create').'<li>'.$e->getMessage().'</li>');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param type $id
|
|
* @param type Priority $priority
|
|
* @param type Department $department
|
|
* @param type Help_topic $topic
|
|
* @param type Form_name $form
|
|
* @param type Agents $agent
|
|
* @param type Sla_plan $sla
|
|
*
|
|
* @return type Response
|
|
*/
|
|
public function edit($id, Ticket_Priority $priority, Department $department, Help_topic $topic, Forms $form, Sla_plan $sla)
|
|
{
|
|
try {
|
|
$agents = User::where('role', '=', 'agent')->get();
|
|
$departments = $department->get();
|
|
$topics = $topic->whereId($id)->first();
|
|
$forms = $form->get();
|
|
$slas = $sla->get();
|
|
$priority = $priority->get();
|
|
$sys_help_topic = \DB::table('settings_ticket')
|
|
->select('help_topic')
|
|
->where('id', '=', 1)->first();
|
|
|
|
return view('themes.default1.admin.helpdesk.manage.helptopic.edit', compact('priority', 'departments', 'topics', 'forms', 'agents', 'slas', 'sys_help_topic'));
|
|
} catch (Exception $e) {
|
|
return redirect('helptopic')->with('fails', '<li>'.$e->getMessage().'</li>');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param type $id
|
|
* @param type Help_topic $topic
|
|
* @param type HelptopicUpdate $request
|
|
*
|
|
* @return type Response
|
|
*/
|
|
public function update($id, Help_topic $topic, HelptopicUpdate $request)
|
|
{
|
|
try {
|
|
$topics = $topic->whereId($id)->first();
|
|
if ($request->custom_form) {
|
|
$custom_form = $request->custom_form;
|
|
} else {
|
|
$custom_form = null;
|
|
}
|
|
if ($request->auto_assign) {
|
|
$auto_assign = $request->auto_assign;
|
|
} else {
|
|
$auto_assign = null;
|
|
}
|
|
/* Check whether function success or not */
|
|
$topics->fill($request->except('custom_form', 'auto_assign'))->save();
|
|
$topics->custom_form = $custom_form;
|
|
$topics->auto_assign = $auto_assign;
|
|
$topics->save();
|
|
if ($request->input('sys_help_tpoic') == 'on') {
|
|
\DB::table('settings_ticket')
|
|
->where('id', '=', 1)
|
|
->update(['help_topic' => $id]);
|
|
}
|
|
/* redirect to Index page with Success Message */
|
|
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_updated_successfully'));
|
|
} catch (Exception $e) {
|
|
/* redirect to Index page with Fails Message */
|
|
return redirect('helptopic')->with('fails', Lang::get('lang.helptopic_can_not_update').'<li>'.$e->getMessage().'</li>');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param type int $id
|
|
* @param type Help_topic $topic
|
|
*
|
|
* @return type Response
|
|
*/
|
|
public function destroy($id, Help_topic $topic, Ticket $ticket_setting)
|
|
{
|
|
$ticket_settings = $ticket_setting->where('id', '=', '1')->first();
|
|
if ($ticket_settings->help_topic == $id) {
|
|
return redirect('departments')->with('fails', Lang::get('lang.you_cannot_delete_default_department'));
|
|
} else {
|
|
$tickets = DB::table('tickets')->where('help_topic_id', '=', $id)->update(['help_topic_id' => $ticket_settings->help_topic]);
|
|
if ($tickets > 0) {
|
|
if ($tickets > 1) {
|
|
$text_tickets = 'Tickets';
|
|
} else {
|
|
$text_tickets = 'Ticket';
|
|
}
|
|
$ticket = '<li>'.$tickets.' '.$text_tickets.Lang::get('lang.have_been_moved_to_default_help_topic').' </li>';
|
|
} else {
|
|
$ticket = '';
|
|
}
|
|
$emails = DB::table('emails')->where('help_topic', '=', $id)->update(['help_topic' => $ticket_settings->help_topic]);
|
|
if ($emails > 0) {
|
|
if ($emails > 1) {
|
|
$text_emails = 'Emails';
|
|
} else {
|
|
$text_emails = 'Email';
|
|
}
|
|
$email = '<li>'.$emails.' System '.$text_emails.Lang::get('lang.have_been_moved_to_default_help_topic').' </li>';
|
|
} else {
|
|
$email = '';
|
|
}
|
|
$message = $ticket.$email;
|
|
$topics = $topic->whereId($id)->first();
|
|
/* Check whether function success or not */
|
|
try {
|
|
$topics->delete();
|
|
/* redirect to Index page with Success Message */
|
|
return redirect('helptopic')->with('success', Lang::get('lang.helptopic_deleted_successfully').$message);
|
|
} catch (Exception $e) {
|
|
/* redirect to Index page with Fails Message */
|
|
return redirect('helptopic')->with('fails', Lang::get('lang.helptopic_can_not_update').'<li>'.$e->getMessage().'</li>');
|
|
}
|
|
}
|
|
}
|
|
}
|