271 lines
6.4 KiB
PHP
271 lines
6.4 KiB
PHP
<?php namespace App\Http\Controllers\Admin;
|
|
|
|
//use App\Http\Requests\AgentRequest;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\AgentRequest;
|
|
|
|
/* include update request for update validation */
|
|
use App\Http\Requests\AgentUpdate;
|
|
use Illuminate\Http\Request;
|
|
use App\Model\Agent\Agents;
|
|
use App\Model\Utility\Timezones;
|
|
use App\Model\Agent\Groups;
|
|
use App\Model\Agent\Department;
|
|
use App\Model\Agent\Teams;
|
|
|
|
use App\Model\Agent\Assign_team_agent;
|
|
|
|
use DB;
|
|
|
|
use App\User;
|
|
|
|
use Auth;
|
|
|
|
class AgentController extends Controller {
|
|
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth');
|
|
$this->middleware('roles');
|
|
}
|
|
|
|
public function index(User $user)
|
|
{
|
|
try
|
|
{
|
|
$user = $user->where('role','agent')->get();
|
|
return view('themes.default1.admin.agent.agents.index', compact('user'));
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
return view('404');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function create(Assign_team_agent $team_assign_agent, Timezones $timezone, Groups $group, Department $department, Teams $team)
|
|
{
|
|
try
|
|
{
|
|
$team= $team->get();
|
|
//$agents = $agent->get();
|
|
$timezones = $timezone->get();
|
|
$groups = $group->get();
|
|
$departments = $department->get();
|
|
|
|
$teams = $team->lists('id','name');
|
|
|
|
//$assign = $team_assign_agent->where('agent_id',$id)->lists('team_id');
|
|
|
|
//$assign = $team_assign_agent->where('agent_id',1)->lists('team_id');
|
|
|
|
return view('themes.default1.admin.agent.agents.create', compact('assign','teams','agents','timezones','groups','departments','team'));
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
return view('404');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function store(User $user, AgentRequest $request, Assign_team_agent $team_assign_agent)
|
|
{
|
|
|
|
try
|
|
{
|
|
|
|
//$agent -> fill($request->except('team_id'))->save();
|
|
|
|
/* Insert to user table */
|
|
$user->role = 'agent';
|
|
$user->fill($request->input())->save();
|
|
|
|
|
|
// $teams = $request->input('assign_team');
|
|
// $imp =implode(',', $teams);
|
|
// $agent->assign_team = $imp;
|
|
|
|
$requests = $request->input('team_id');
|
|
|
|
$id = $user->id;
|
|
|
|
foreach($requests as $req)
|
|
{
|
|
DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]);
|
|
|
|
}
|
|
|
|
/* Succes And Failure condition */
|
|
|
|
if($user->save()==true)
|
|
{
|
|
return redirect('agents')->with('success','Agent Created sucessfully');
|
|
}
|
|
else
|
|
{
|
|
return redirect('agents')->with('fails','Agent can not Create');
|
|
}
|
|
}
|
|
catch( Exception $e)
|
|
{
|
|
return redirect('agents')->with('fails','Agent can not Create');
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function show($id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function edit($id,User $user, Assign_team_agent $team_assign_agent, Timezones $timezone, Groups $group, Department $department, Teams $team)
|
|
{
|
|
try
|
|
{
|
|
$user = $user->whereId($id)->first();
|
|
$team= $team->get();
|
|
$teams1 = $team->lists('name','id');
|
|
$timezones = $timezone->get();
|
|
$groups = $group->get();
|
|
$departments = $department->get();
|
|
|
|
// $selectedTeam= $user->assign_team;
|
|
// $selectedTeams = explode(',',$selectedTeam);
|
|
|
|
$table = $team_assign_agent->where('agent_id',$id)->first();
|
|
$teams = $team->lists('id','name');
|
|
|
|
$assign = $team_assign_agent->where('agent_id',$id)->lists('team_id');
|
|
|
|
|
|
|
|
|
|
return view('themes.default1.admin.agent.agents.edit', compact('teams','assign','table','teams1','selectedTeams','user','timezones','groups','departments','team','exp','counted'));
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
return redirect('agents')->with('fail','No such file');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function update($id, User $user, AgentUpdate $request, Assign_team_agent $team_assign_agent)
|
|
{
|
|
|
|
try
|
|
{
|
|
//$agents = $agent -> whereId($id) -> first();
|
|
|
|
$user = $user->whereId($id)->first();
|
|
|
|
$daylight_save=$request->input('daylight_save');
|
|
$limit_access=$request->input('limit_access');
|
|
$directory_listing=$request->input('directory_listing');
|
|
$vocation_mode=$request->input('vocation_mode');
|
|
//$role=$request->input('role');
|
|
|
|
//dd($account_status);
|
|
|
|
// $agents->daylight_save=$daylight_save;
|
|
// $agents->limit_access=$limit_access;
|
|
// $agents->directory_listing=$directory_listing;
|
|
// $agents->vocation_mode=$vocation_mode;
|
|
|
|
//==============================================
|
|
|
|
$user->daylight_save=$daylight_save;
|
|
$user->limit_access=$limit_access;
|
|
$user->directory_listing=$directory_listing;
|
|
$user->vocation_mode=$vocation_mode;
|
|
//$user->role=$role;
|
|
|
|
//==============================================
|
|
|
|
|
|
$table = $team_assign_agent->where('agent_id',$id);
|
|
$table->delete();
|
|
|
|
$requests = $request->input('team_id');
|
|
|
|
foreach($requests as $req)
|
|
{
|
|
DB::insert('insert into team_assign_agent (team_id, agent_id) values (?,?)', [$req, $id]);
|
|
|
|
}
|
|
|
|
//Todo For success and failure conditions
|
|
|
|
//$agents->fill($request->except('daylight_save','limit_access','directory_listing','vocation_mode','assign_team'))->save();
|
|
$user->fill($request->except('daylight_save','limit_access','directory_listing','vocation_mode','assign_team'))->save();
|
|
return redirect('agents')->with('success','Agent Updated sucessfully');
|
|
}
|
|
catch (Exception $e)
|
|
{
|
|
return redirect('agents')->with('fails','Agent did not update');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param int $id
|
|
* @return Response
|
|
*/
|
|
public function destroy($id, User $user, Assign_team_agent $team_assign_agent)
|
|
{
|
|
try
|
|
{
|
|
/* Becouse of foreign key we delete team_assign_agent first */
|
|
$team_assign_agent = $team_assign_agent->where('agent_id',$id);
|
|
$team_assign_agent->delete();
|
|
|
|
$user = $user->whereId($id)->first();
|
|
|
|
|
|
if($user->delete())
|
|
{
|
|
return redirect('agents')->with('success','Agent Deleted sucessfully');
|
|
}
|
|
else
|
|
{
|
|
return redirect('agents')->with('fails','Agent can not Delete ');
|
|
}
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
return redirect('agents')->with('fails','Agent can not Delete if the team Excist');
|
|
}
|
|
}
|
|
|
|
}
|