From d7f2b065c3695e05ef599e295b30f907deec64db Mon Sep 17 00:00:00 2001 From: "guilherme.guia" Date: Fri, 13 Oct 2023 14:56:20 +0000 Subject: [PATCH] Correcao em desconectar e pausa do agente --- .../Controllers/Admin/DashboardController.php | 10 +- public/js/views/agentesLogados/index.js | 102 +++++++++++++----- .../admin/dashboard/agentesLogados.blade.php | 16 +-- 3 files changed, 79 insertions(+), 49 deletions(-) diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index bf35276..3451a99 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -173,15 +173,12 @@ class DashboardController extends Controller public function relatoriosFilas($id) { - if(empty($id)){ return response()->json(['data' => "Parametro ID é obrigatorio"]); } $id_empresa = Helper::getIdEmpresa(); - $fila = Filas::where('id', $id)->where('id_empresa', $id_empresa)->first(); - $agentesNaFila = DB::table('supervisor as s') ->leftJoin('atendimento as a', function ($join) { $data_atual = date('Y-m-d h:i:s'); @@ -189,16 +186,15 @@ class DashboardController extends Controller $join->on('s.id_usuario', '=', 'a.id_usuario') ->where(DB::raw('DATE(a.data_reg)'), $data_atual); }) - ->select(DB::raw("(now() - s.tempo_login) AS login"), DB::raw('COALESCE(COUNT(a.id), 0) AS qtde_atendimento'), 's.*') + ->join("tokens as t", "t.id_usuario", "=", "s.id_usuario") + ->select(DB::raw("(now() - s.tempo_login) AS login"), DB::raw('COALESCE(COUNT(a.id), 0) AS qtde_atendimento'), 's.*', 't.token') ->where([ ['s.id_empresa', $id_empresa], ['fila', $fila->nome], ]) - ->groupBy('s.id') + ->groupBy('s.id', 't.token') ->get(); - return response()->json(['data' => $agentesNaFila]); - } } diff --git a/public/js/views/agentesLogados/index.js b/public/js/views/agentesLogados/index.js index 631abab..441cd72 100644 --- a/public/js/views/agentesLogados/index.js +++ b/public/js/views/agentesLogados/index.js @@ -6,8 +6,7 @@ const colorStatus = { CHAMANDO: "orange-400", } -function getFilaId() -{ +function getFilaId() { const url = window.location.href; const splitUrl = url.split('/'); const id = splitUrl[splitUrl.length - 1]; @@ -15,12 +14,12 @@ function getFilaId() } function getDadosRelatorioDB(fila_id) { - return new Promise(function(resolve, reject){ + return new Promise(function (resolve, reject) { $.ajax({ type: "get", dataType: 'json', url: `/dashboard/agentes/${fila_id}/fila`, - success: function(response) { + success: function (response) { const data = response.data; resolve(data); } @@ -28,28 +27,22 @@ function getDadosRelatorioDB(fila_id) { }) } -async function montarRelatorios() -{ +async function montarRelatorios() { const id = getFilaId(); const data = await getDadosRelatorioDB(id); let elementsTable = ""; - - data.forEach(supervisor => { + data.forEach(supervisor => { const tempoFormatado = supervisor.login.split(".")[0]; - const btnPlay = ` -
- @csrf - - -
+ const btnPlay = ` + ` const btnPausa = ``; - const agenteIsPausa = supervisor.status === "PAUSA" ? btnPlay : btnPausa; + const agenteIsPausa = supervisor.status === "PAUSA" ? btnPlay : btnPausa; elementsTable += ` @@ -66,25 +59,78 @@ async function montarRelatorios() ${agenteIsPausa} - - + ` }); - $(".table-relatorio").html(elementsTable); } -{/*
-@csrf - - -
*/} -function selecionaAgente(supervisor_id){ +async function desconectarAgente(matricula, token) { + if (confirm("Deseja realmente desconectar do sistema?")) { + logoff(matricula, token).then((res) => { + montarRelatorios(); + }) + } +} + +async function retirarPausa(matricula, token) { + if (confirm("Deseja retirar a pausa do agente?")) { + sairPausa(matricula, token).then((res) => { + montarRelatorios(); + }) + } +} + +const sairPausa = (matricula, token) => new Promise((resolve) => { + $.ajax({ + url: `https://${server_api}/api/v1/agente/sairPausa`, + type: "POST", + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token, + "ngrok-skip-browser-warning":"any" + }, + data: JSON.stringify({ + matricula + }), + success: function (res) { + alert('Pausa removida do Agente!') + resolve(res) + }, + error: function (res) { + alert('Nao foi possivel retirar de pausa.') + } + }); +}) + +const logoff = (matricula, token) => new Promise((resolve) => { + $.ajax({ + type: "POST", + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + token, + "ngrok-skip-browser-warning":"any" + }, + url: `https://${server_api}/access/logoff`, + data: JSON.stringify({ + matricula + }), + success: function (res) { + alert('Desconectado com sucesso'); + resolve(res) + }, + error: function (res) { + alert('Não foi possivel deslogar do sistema.') + } + }); +}) + +function selecionaAgente(supervisor_id) { console.log(supervisor_id); const modal = document.querySelector(".modal"); modal.style.display = "block"; diff --git a/resources/views/admin/dashboard/agentesLogados.blade.php b/resources/views/admin/dashboard/agentesLogados.blade.php index 81fb124..35cc5a2 100644 --- a/resources/views/admin/dashboard/agentesLogados.blade.php +++ b/resources/views/admin/dashboard/agentesLogados.blade.php @@ -11,18 +11,6 @@

Agentes na Fila - {{$fila->nome}}

-
@@ -50,12 +38,12 @@