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