diff --git a/app/Http/Controllers/Admin/ContatosSalvosAgenteController.php b/app/Http/Controllers/Admin/ContatosSalvosAgenteController.php index 22e0951..aecb205 100644 --- a/app/Http/Controllers/Admin/ContatosSalvosAgenteController.php +++ b/app/Http/Controllers/Admin/ContatosSalvosAgenteController.php @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Validator; use App\Models\Agentes; use App\Models\Filas; +use App\Models\Grupos; class ContatosSalvosAgenteController extends Controller { @@ -18,26 +19,36 @@ class ContatosSalvosAgenteController extends Controller protected ContatosAgente $contatos_agente_repository, protected Agentes $agenteRepository, protected Filas $filasRepository, + protected Grupos $gruposRepository, ) { } public function index(Request $request) { $user = auth()->user(); - if(Gate::forUser($user)->denies('show_contatos')){ + if(Gate::forUser($user)->denies('show_contatosSalvos')){ abort(404); } $id_empresa = Helper::getIdEmpresa(); + $selected = (object) $request->all(); + $id_cliente = ($request->id_cliente); $id_queue = ($request->id_queue); - $matricula_agente = ($request -> matricula); - - $contatos_salvos = $this->contatos_agente_repository->list(['id_empresa' => $id_empresa, 'id_cliente' => $id_cliente, 'id_queue' => $id_queue, 'matricula_agente' => $matricula_agente]); + $matricula_agente = ($request -> matricula_agente); + + $grupoId = $this->gruposRepository->getUserGrupoID($user->id); + if ($grupoId == 4 || $grupoId == 1 || $grupoId == 2){ + $agentes = $this->agenteRepository->list(["id_empresa" => $id_empresa]); + $contatos_salvos = $this->contatos_agente_repository->list(['id_empresa' => $id_empresa, 'id_cliente' => $id_cliente, 'id_queue' => $id_queue, 'matricula_agente' => $request -> matricula_agente]); + } else{ + $contatos_salvos = $this->contatos_agente_repository->list(['id_empresa' => $id_empresa, 'id_cliente' => $id_cliente, 'id_queue' => $id_queue, 'matricula_agente' => $user->matricula]); + $agentes = $this->agenteRepository->list(["id_empresa" => $id_empresa, "matricula" => $user->matricula]); + } $filas = $this->filasRepository->list(["id_empresa" => $id_empresa]); - $agentes = $this->agenteRepository->list(["id_empresa" => $id_empresa]); - return view("admin.cadastros.contatosSalvos", compact('contatos_salvos', 'filas', 'agentes')); + + return view("admin.cadastros.contatosSalvos", compact('contatos_salvos', 'filas', 'agentes', 'grupoId', 'selected')); } public function store(Request $request) @@ -46,7 +57,7 @@ class ContatosSalvosAgenteController extends Controller $id_empresa = Helper::getIdEmpresa(); - if(Gate::forUser($user)->denies('store_contatos')){ + if(Gate::forUser($user)->denies('store_contatosSalvos')){ abort(404); } @@ -63,6 +74,10 @@ class ContatosSalvosAgenteController extends Controller } $telefoneDesformatado = preg_replace('/[^0-9]/', '', $request->numero); + $contatos_salvos = $this->contatos_agente_repository->list(['id_empresa' => $id_empresa, 'id_cliente' => $telefoneDesformatado, 'id_queue' => $request->fila]); + if(count($contatos_salvos) > 0){ + return redirect()->back()->with('error', "Contato já cadastrado por outro agente."); + } ContatosAgente::create([ "id_cliente" => $telefoneDesformatado, @@ -79,7 +94,7 @@ class ContatosSalvosAgenteController extends Controller public function edit($id) { $user = auth()->user(); - if(Gate::forUser($user)->denies('edit_contatos')){ + if(Gate::forUser($user)->denies('edit_contatosSalvos')){ abort(404); } @@ -90,7 +105,12 @@ class ContatosSalvosAgenteController extends Controller $id_empresa = Helper::getIdEmpresa(); $filas = $this->filasRepository->list(["id_empresa" => $id_empresa]); - $agentes = $this->agenteRepository->list(["id_empresa" => $id_empresa]); + $grupoId = $this->gruposRepository->getUserGrupoID($user->id); + if ($grupoId == 4 || $grupoId == 1 || $grupoId == 2){ + $agentes = $this->agenteRepository->list(["id_empresa" => $id_empresa]);; + } else{ + $agentes = $this->agenteRepository->list(["id_empresa" => $id_empresa, "matricula" => $user->matricula]); + } $contatosData = ContatosAgente::find($id); $response = [ @@ -111,7 +131,7 @@ class ContatosSalvosAgenteController extends Controller { $user = auth()->user(); - if(Gate::forUser($user)->denies('update_contatos')){ + if(Gate::forUser($user)->denies('update_contatosSalvos')){ abort(404); } @@ -131,6 +151,10 @@ class ContatosSalvosAgenteController extends Controller } $telefoneDesformatado = preg_replace('/[^0-9]/', '', $request->numero); + $contatos_salvos = $this->contatos_agente_repository->list(['id_empresa' => $id_empresa, 'id_cliente' => $telefoneDesformatado, 'id_queue' => $request->fila]); + if(count($contatos_salvos) > 0){ + return redirect()->back()->with('error', "Contato já cadastrado por outro agente."); + } ContatosAgente::where("id", $id) ->update([ @@ -146,7 +170,7 @@ class ContatosSalvosAgenteController extends Controller public function destroy($id) { $user = auth()->user(); - if(Gate::forUser($user)->denies('destroy_contatos')){ + if(Gate::forUser($user)->denies('destroy_contatosSalvos')){ abort(404); } diff --git a/resources/views/admin/cadastros/contatosSalvos.blade.php b/resources/views/admin/cadastros/contatosSalvos.blade.php index 82280d5..e386aee 100644 --- a/resources/views/admin/cadastros/contatosSalvos.blade.php +++ b/resources/views/admin/cadastros/contatosSalvos.blade.php @@ -17,39 +17,43 @@

Contatos Exclusivos

- @can('store_contatos') + @can('store_contatosSalvos') @endcan
- + id_cliente) ? $selected->id_cliente : '' }}>
+ @if($grupoId != 3)
- - + @endif +
+ +
@@ -70,11 +74,11 @@ {{ $contato->matricula_agente }} - @can('store_contatos') + @can('store_contatosSalvos') @endcan - @can('store_contatos') + @can('store_contatosSalvos')
@method('delete')