*/
class SlaController extends Controller
{
/**
* Create a new controller instance.
*
* @return type void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('roles');
}
/**
* Display a listing of the resource.
*
* @param type Sla_plan $sla
*
* @return type Response
*/
public function index(Sla_plan $sla)
{
try {
/* Declare a Variable $slas to store all Values From Sla_plan Table */
$slas = $sla->get();
/* Listing the values From Sla_plan Table */
return view('themes.default1.admin.helpdesk.manage.sla.index', compact('slas'));
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->errorInfo[2]);
}
}
/**
* Show the form for creating a new resource.
*
* @return type Response
*/
public function create()
{
try {
/* Direct to Create Page */
return view('themes.default1.admin.helpdesk.manage.sla.create');
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->errorInfo[2]);
}
}
/**
* Store a newly created resource in storage.
*
* @param type Sla_plan $sla
* @param type SlaRequest $request
*
* @return type Response
*/
public function store(Sla_plan $sla, SlaRequest $request)
{
try {
/* Fill the request values to Sla_plan Table */
/* Check whether function success or not */
$sla->fill($request->input())->save();
/* redirect to Index page with Success Message */
return redirect('sla')->with('success', 'SLA Plan Created Successfully');
} catch (Exception $e) {
/* redirect to Index page with Fails Message */
return redirect('sla')->with('fails', 'SLA Plan can not Create'.'
'.$e->errorInfo[2].'');
}
}
/**
* Show the form for editing the specified resource.
*
* @param type int $id
* @param type Sla_plan $sla
*
* @return type Response
*/
public function edit($id, Sla_plan $sla)
{
try {
/* Direct to edit page along values of perticular field using Id */
$slas = $sla->whereId($id)->first();
$slas->get();
return view('themes.default1.admin.helpdesk.manage.sla.edit', compact('slas'));
} catch (Exception $e) {
return redirect()->back()->with('fails', $e->errorInfo[2]);
}
}
/**
* Update the specified resource in storage.
*
* @param type int $id
* @param type Sla_plan $sla
* @param type SlaUpdate $request
*
* @return type Response
*/
public function update($id, Sla_plan $sla, SlaUpdate $request)
{
try {
/* Fill values to selected field using Id except Check box */
$slas = $sla->whereId($id)->first();
$slas->fill($request->except('transient', 'ticket_overdue'))->save();
/* Update transient checkox field */
$slas->transient = $request->input('transient');
/* Update ticket_overdue checkox field */
$slas->ticket_overdue = $request->input('ticket_overdue');
/* Check whether function success or not */
$slas->save();
/* redirect to Index page with Success Message */
return redirect('sla')->with('success', 'SLA Plan Updated Successfully');
} catch (Exception $e) {
/* redirect to Index page with Fails Message */
return redirect('sla')->with('fails', 'SLA Plan can not Update'.''.$e->errorInfo[2].'');
}
}
/**
* Remove the specified resource from storage.
*
* @param type int $id
* @param type Sla_plan $sla
*
* @return type Response
*/
public function destroy($id, Sla_plan $sla)
{
$default_sla = Ticket::where('id', '=', '1')->first();
if ($default_sla->sla == $id) {
return redirect('departments')->with('fails', 'You cannot delete default department');
} else {
$tickets = DB::table('tickets')->where('sla', '=', $id)->update(['sla' => $default_sla->sla]);
if ($tickets > 0) {
if ($tickets > 1) {
$text_tickets = 'Tickets';
} else {
$text_tickets = 'Ticket';
}
$ticket = ''.$tickets.' '.$text_tickets.' have been moved to default SLA';
} else {
$ticket = '';
}
$dept = DB::table('department')->where('sla', '=', $id)->update(['sla' => $default_sla->sla]);
if ($dept > 0) {
if ($dept > 1) {
$text_dept = 'Emails';
} else {
$text_dept = 'Email';
}
$dept = 'Associated department have been moved to default SLA';
} else {
$dept = '';
}
$topic = DB::table('help_topic')->where('sla_plan', '=', $id)->update(['sla_plan' => $default_sla->sla]);
if ($topic > 0) {
if ($topic > 1) {
$text_topic = 'Emails';
} else {
$text_topic = 'Email';
}
$topic = 'Associated Help Topic have been moved to default SLA';
} else {
$topic = '';
}
$message = $ticket.$dept.$topic;
/* Delete a perticular field from the database by delete() using Id */
$slas = $sla->whereId($id)->first();
/* Check whether function success or not */
try {
$slas->delete();
/* redirect to Index page with Success Message */
return redirect('sla')->with('success', 'SLA Plan Deleted Successfully'.$message);
} catch (Exception $e) {
/* redirect to Index page with Fails Message */
return redirect('sla')->with('fails', 'SLA Plan can not Delete'.''.$e->errorInfo[2].'');
}
}
}
}