Browse Source

Correção dashboard

Felipe
Felipe Fontana 10 months ago
parent
commit
4336a8f537
  1. 82
      app/Http/Controllers/Admin/DashboardController.php
  2. 4
      public/js/views/dashboard/index.js
  3. 2
      resources/views/admin/dashboard/dashboard.blade.php

82
app/Http/Controllers/Admin/DashboardController.php

@ -95,26 +95,68 @@ class DashboardController extends Controller
private function relatoriosDados() private function relatoriosDados()
{ {
$id_empresa = Helper::getIdEmpresa(); $id_empresa = Helper::getIdEmpresa();
$relatorios = DB::select(" $relatorios = DB::select("
SELECT SELECT
q.nome, q.id, q.id, q.nome,
COUNT(DISTINCT s.matricula) AS agentes, SUM(CASE WHEN evento = 'EMESPERA' THEN 1 ELSE 0 END) AS em_espera,
SUM(CASE WHEN evento = 'EMESPERA' THEN 1 ELSE 0 END) AS em_espera, SUM(CASE WHEN evento = 'START' THEN 1 ELSE 0 END) AS iniciadas,
SUM(CASE WHEN evento = 'START' THEN 1 ELSE 0 END) AS iniciadas, SUM(CASE WHEN evento = 'SENDED' THEN 1 ELSE 0 END) AS enviados,
SUM(CASE WHEN evento IN ('COMPLETE_AGENT', 'COMPLETE_CALLER') THEN 1 ELSE 0 END) AS finalizadas, SUM(CASE WHEN evento IN ('COMPLETE_AGENT','COMPLETE_CALLER') THEN 1 ELSE 0 END) AS finalizadas,
SUM(CASE WHEN evento = 'ABANDON' THEN 1 ELSE 0 END) AS abandonadas SUM(CASE WHEN evento = 'ABANDON' THEN 1 ELSE 0 END) AS abandonadas,
FROM queues q SUM(CASE WHEN evento = 'CANCELADO' THEN 1 ELSE 0 END) AS cancelado
LEFT JOIN supervisor s ON s.fila = q.nome AND s.id_empresa = :id_empresa FROM atendimento a
LEFT JOIN atendimento a ON a.matricula = s.matricula INNER JOIN eventos_atendimento ea ON ea.uniqueid = a.uniqueid and ea.id = (SELECT MAX(id) FROM eventos_atendimento ee WHERE ee.uniqueid = ea.uniqueid)
LEFT JOIN eventos_atendimento ea ON ea.uniqueid = a.uniqueid INNER JOIN queues q on q.id = ea.id_queue
AND ea.id = (SELECT MAX(id) FROM eventos_atendimento ee WHERE ee.uniqueid = ea.uniqueid) WHERE a.data_reg::date = CURRENT_DATE
AND a.data_reg::date = CURRENT_DATE AND a.id_empresa = :id_empresa
where q.is_ativa = true GROUP BY q.nome, q.id
GROUP BY q.nome, q.id ORDER BY q.id
ORDER BY q.nome ", ['id_empresa' => $id_empresa]);
", ['id_empresa' => $id_empresa]);
$filas = DB::select("
return $relatorios; SELECT
q.nome, q.id, count(s.nome) as agentes
FROM
queues q
LEFT JOIN supervisor s on s.fila = q.nome
WHERE q.id_empresa = :id_empresa AND q.is_ativa = true
GROUP BY q.nome, q.id
", ['id_empresa' => $id_empresa]);
$relatoriosPorId = [];
foreach ($relatorios as $relatorio) {
$relatoriosPorId[$relatorio->id] = [
'em_espera' => $relatorio->em_espera,
'iniciadas' => $relatorio->iniciadas,
'enviadas' => $relatorio->enviados,
'finalizadas' => $relatorio->finalizadas,
'abandonadas' => $relatorio->abandonadas,
'canceladas' => $relatorio->cancelado,
];
}
foreach ($filas as &$fila) {
$idFila = $fila->id;
if (isset($relatoriosPorId[$idFila])) {
$fila->em_espera = $relatoriosPorId[$idFila]['em_espera'];
$fila->iniciadas = $relatoriosPorId[$idFila]['iniciadas'];
$fila->enviadas = $relatoriosPorId[$idFila]['enviadas'];
$fila->finalizadas = $relatoriosPorId[$idFila]['finalizadas'];
$fila->abandonadas = $relatoriosPorId[$idFila]['abandonadas'];
$fila->canceladas = $relatoriosPorId[$idFila]['canceladas'];
} else {
$fila->em_espera = 0;
$fila->iniciadas = 0;
$fila->enviadas = 0;
$fila->finalizadas = 0;
$fila->abandonadas = 0;
$fila->canceladas = 0;
}
}
return $filas;
} }
private function getAtendimentosMes($data_inicio, $data_fim) private function getAtendimentosMes($data_inicio, $data_fim)

4
public/js/views/dashboard/index.js

@ -43,7 +43,9 @@ async function montarRelatorios()
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.em_espera}</td> <td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.em_espera}</td>
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.iniciadas}</td> <td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.iniciadas}</td>
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.finalizadas}</td> <td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.finalizadas}</td>
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.abandonadas}</td> <td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.abandonadas}</td>
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.enviadas}</td>
<td class="p-3 text-sm text-gray-700 dark:text-gray-100 text-center">${relatorio.canceladas}</td>
<td class="text-center" title="Colocar fila em pausa"> <td class="text-center" title="Colocar fila em pausa">
<button onclick="selecionaFila(${relatorio.id})" class="text-xl p-2 hover:bg-gray-700 rounded-full"> <button onclick="selecionaFila(${relatorio.id})" class="text-xl p-2 hover:bg-gray-700 rounded-full">
<i class="fas fa-pause-circle text-gray-900 dark:text-gray-100"> <i class="fas fa-pause-circle text-gray-900 dark:text-gray-100">

2
resources/views/admin/dashboard/dashboard.blade.php

@ -58,6 +58,8 @@
<th class="p-3 text-sm font-semibold tracking-wide text-center">INICIADOS</th> <th class="p-3 text-sm font-semibold tracking-wide text-center">INICIADOS</th>
<th class="p-3 text-sm font-semibold tracking-wide text-center">FINALIZADOS</th> <th class="p-3 text-sm font-semibold tracking-wide text-center">FINALIZADOS</th>
<th class="p-3 text-sm font-semibold tracking-wide text-center">ABANDONADOS</th> <th class="p-3 text-sm font-semibold tracking-wide text-center">ABANDONADOS</th>
<th class="p-3 text-sm font-semibold tracking-wide text-center">ENVIADOS</th>
<th class="p-3 text-sm font-semibold tracking-wide text-center">CANCELADOS</th>
<th class="p-3 text-sm font-semibold tracking-wide text-center">AÇÕES</th> <th class="p-3 text-sm font-semibold tracking-wide text-center">AÇÕES</th>
</tr> </tr>
</thead> </thead>

Loading…
Cancel
Save