Browse Source

Atualizações no contatos exclusivos

Matheus
Matheus Maia 6 months ago
parent
commit
2174040c8f
  1. 46
      app/Http/Controllers/Admin/ContatosSalvosAgenteController.php
  2. 24
      resources/views/admin/cadastros/contatosSalvos.blade.php

46
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);
}

24
resources/views/admin/cadastros/contatosSalvos.blade.php

@ -17,39 +17,43 @@
<h1 class=" text-gray-900 dark:text-gray-100 text-3xl font-bold text-center">
Contatos Exclusivos
</h1>
@can('store_contatos')
@can('store_contatosSalvos')
<button class="bg-blue-500 hover:bg-opacity-90 transition-all text-white py-2 px-6 rounded text-base overflow-hidden" @click="modal = !modal" type="button">Cadastrar Contato</button>
@endcan
</div>
<form action="{{route('contatos_agente.index')}}" method="GET" class="flex w-full gap-3 flex-col lg:flex-row ">
<div class="flex-1 flex flex-col gap-1">
<label class="text-gray-900 dark:text-gray-100">Número: </label>
<input type="text" name="id_cliente" class="w-full dark:bg-gray-800 placeholder:text-gray-800 dark:placeholder:text-gray-100 dark:text-gray-100" placeholder="Pesquise o Número">
<input type="text" name="id_cliente" class="w-full dark:bg-gray-800 placeholder:text-gray-800 dark:placeholder:text-gray-100 dark:text-gray-100"
placeholder="Pesquise o Número" value={{ !empty($selected->id_cliente) ? $selected->id_cliente : '' }}>
</div>
<div class="flex-1 flex flex-col gap-1">
<label class="text-gray-900 dark:text-gray-100">Fila: </label>
<select class="w-full dark:bg-gray-800 placeholder:text-gray-800 dark:placeholder:text-gray-100 dark:text-gray-100" name="id_queue">
<option value="" {{ empty($selected->fila) ? 'selected disabled' : '' }}>--------------------</option>
<option value="" {{ empty($selected->id_queue) ? 'selected disabled' : '' }}>--------------------</option>
@foreach($filas as $fila)
<option value="{{ $fila->id}}" {{ !empty($selected->fila) && ($fila->id == $selected->fila) ? 'selected' : '' }}>
<option value="{{ $fila->id}}" {{ !empty($selected->id_queue) && ($fila->id == $selected->id_queue) ? 'selected' : '' }}>
{{ $fila->name }}
</option>
@endforeach
</select>
</div>
@if($grupoId != 3)
<div class="flex-1 flex flex-col gap-1">
<label class="text-gray-900 dark:text-gray-100">Agente: </label>
<select class="w-full dark:bg-gray-800 placeholder:text-gray-800 dark:placeholder:text-gray-100 dark:text-gray-100" name="matricula_agente">
<option value="" {{ empty($selected->atendente) ? 'selected disabled' : '' }}>--------------------</option>
<option value="" {{ empty($selected->matricula_agente) ? 'selected disabled' : '' }}>--------------------</option>
@foreach($agentes as $agente)
<option value="{{ $agente->matricula}}" {{ !empty($selected->atendente) && ($agente->id == $selected->atendente) ? 'selected' : '' }}>
<option value="{{ $agente->matricula}}" {{ !empty($selected->matricula_agente) && ($agente->matricula == $selected->matricula_agente) ? 'selected' : '' }}>
{{ $agente->nome }}
</option>
@endforeach
</select>
</div>
<button class="lg:ml-auto ml-0 bg-blue-900 hover:bg-opacity-90 transition-all text-white py-2 px-6 rounded text-lg overflow-hidden">Pesquisar</button>
@endif
<div class="flex-1 flex flex-col gap-1" style="background-color: transparent; margin-top: 25px;">
<button class="lg:ml-auto ml-0 bg-blue-900 hover:bg-opacity-90 transition-all text-white py-2 px-6 rounded text-lg overflow-hidden">Pesquisar</button>
</div>
</form>
</div>
<div class="body mt-4 overflow-auto rounded-lg shadow">
@ -70,11 +74,11 @@
<td class="p-3 text-sm text-gray-700 dark:text-gray-100">{{ $contato->matricula_agente }}</td>
<td class="p-3 text-sm font-bold w-28">
@can('store_contatos')
@can('store_contatosSalvos')
<button onclick="atualizaContatoSalvo({{ $contato->id }})" class="bg-blue-600 text-white p-2 rounded text-lg text-center w-full mb-2" title="editar contato"><i class="fas fa-edit"></i></button>
@endcan
@can('store_contatos')
@can('store_contatosSalvos')
<form action="{{ route('contatos_agente.destroy', ['contatos_agente' => $contato->id]) }}" method="POST" title="desativar contato" onclick="javascript: if(!confirm('Deseja desativar esse contato?'))
return false;">
@method('delete')

Loading…
Cancel
Save