Browse Source

implementei filtro e coluna de entrada no relatorio de chamadas recebidas por agente

1.8
Claudio Zimmermann Junior 3 months ago
parent
commit
d3fc27fdee
  1. 28
      relatorios/callcenter/geral/recebidasAgente.php

28
relatorios/callcenter/geral/recebidasAgente.php

@ -1,12 +1,12 @@
<?php
include_once 'util/relatoriosBase.php';
class RelRecebidasAgente extends Relatorios
{
private $___agente;
private $___tempoAtendimento;
private $___entrada;
public function __construct($idProg, $dbcon, $incDac)
{
@ -14,6 +14,7 @@ class RelRecebidasAgente extends Relatorios
$this->___dac = isset($_POST['listaDacs']) ? $_POST['listaDacs'] : 0;
$this->___tempoAtendimento = isset($_POST['tempoAtendimento']) ? $_POST['tempoAtendimento'] : '';
$this->___agente = isset($_POST["listaAgente"]) ? $_POST["listaAgente"] : 0;
$this->___entrada = isset($_REQUEST['entrada']) ? $_REQUEST['entrada'] : '';
}
public function ___ValidaForm()
@ -39,7 +40,7 @@ class RelRecebidasAgente extends Relatorios
/*
* Recupera os filtros da sessão do usuário.
*/
list($this->___dac, $this->___dataIni, $this->___dataFim, $this->___tipoRelatorio) = $_SESSION["SSstorageFiltros"];
list($this->___dac, $this->___dataIni, $this->___dataFim, $this->___tipoRelatorio, $this->___entrada) = $_SESSION["SSstorageFiltros"];
if ($this->___media == MEDIA_PRINT_HTML) {
$fila = $this->GetIncDac() ? 'Fila: ' . GetDacDesc($this->GetDbCon(), $this->GetIdProg() . ' ') : '';
@ -86,6 +87,7 @@ class RelRecebidasAgente extends Relatorios
$filtro .= '<td>Data Final </td>';
$filtro .= '<td>Agente</td>';
$filtro .= '<td>Duração (Segundos)</td>';
$filtro .= '<td>Entrada</td>';
$filtro .= '<td align="center" valign="middle">&nbsp;</td>';
$filtro .= '</tr>';
@ -99,6 +101,7 @@ class RelRecebidasAgente extends Relatorios
$filtro .= '<td><input name="dataFim" id="dataFim" type="text" size="15" maxlength="10" value="%s" onkeyup="formataData(this)" title="dd/mm/aaaa"></td>';
$filtro .= sprintf('<td>%s</td>', $agente);
$filtro .= "<td><input name=\"tempoAtendimento\" type=\"text\" id=\"tempoAtendimento\" size='10'value='{$this->___tempoAtendimento}' /></td>";
$filtro .= "<td><input name=\"entrada\" type=\"text\" id=\"entrada\" size='10'value='{$this->___entrada}' /></td>";
$filtro .= '<td><input type="submit" name="btConsulta" id="btConsulta" value="Consultar"></td>';
$filtro .= '<td>%s</td>';
$filtro .= '</tr>';
@ -108,7 +111,7 @@ class RelRecebidasAgente extends Relatorios
* Guarda os filtros passados para recuperar na emissão dos relatóios para impressão.
*/
$_SESSION["SSstorageFiltros"] = array($this->___dac, $this->___dataIni, $this->___dataFim, $this->___tipoRelatorio, $this->___agente);
$_SESSION["SSstorageFiltros"] = array($this->___dac, $this->___dataIni, $this->___dataFim, $this->___tipoRelatorio, $this->___agente, $this->___entrada);
return sprintf($filtro, $this->___dataIni, $this->___dataFim, $lkPrint);
}
@ -119,8 +122,9 @@ class RelRecebidasAgente extends Relatorios
$dataFim = FormatDtHoraBD($this->___dataFim);
$agente = $this->___agente;
$dac = $this->___dac;
$entrada = $this->___entrada;
$query1 = "SELECT a.calldate AS data, a.src AS origem,
$query1 = "SELECT a.calldate AS data, a.src AS origem, a.clid AS entrada,
CASE WHEN(b.evento IN('COMPLETECALLER', 'COMPLETEAGENT', 'COMPLETEAGENTRAMAL', 'COMPLETECALLERRAMAL'))THEN strtoint(b.param2)
ELSE
CASE WHEN(b.evento = 'TRANSFER')THEN strtoint(b.param4) ELSE 0 END
@ -140,6 +144,9 @@ class RelRecebidasAgente extends Relatorios
if ($agente) {
$query .= "AND c.matricula = '$agente'";
}
if (!empty($entrada)) {
$query .= "AND UPPER(a.clid) LIKE UPPER('%$entrada%')";
}
$sqlTempo = $this->___tempoAtendimento && $this->___tempoAtendimento > 10 ? " AND strtoint(b.param2) >= " . $this->___tempoAtendimento : '';
@ -278,7 +285,8 @@ class RelRecebidasAgente extends Relatorios
'Origem' => 'align="center"',
'TMA' => 'align="center"',
'Agente' => 'align="center"',
'Status' => 'align="center"'
'Status' => 'align="center"',
'Entrada' => 'align="center"'
);
$dadosField = array(
'data' => 'align="center"',
@ -286,20 +294,21 @@ class RelRecebidasAgente extends Relatorios
'origem' => 'align="center"',
'tmo' => 'align="center"',
'agente' => 'align="center"',
'status' => 'align="center"'
'status' => 'align="center"',
'entrada' => 'align="center"'
);
/*
* Inicia o relatório.
*/
$dataRel[] = '<table width="70%" cellpadding="2" class="grid">';
$dataRel[] = '<table width="80%" cellpadding="2" class="grid">';
/*
* Monta a linha de cabecalio.
*/
$linha = '<tr>';
$linha .= "<th align=\"center\" colspan=\"6\">Chamadas Recebidas por Agente</th>";
$linha .= "<th align=\"center\" colspan=\"7\">Chamadas Recebidas por Agente</th>";
$linha .= "</tr>";
$dataRel[] = $linha;
@ -331,6 +340,7 @@ class RelRecebidasAgente extends Relatorios
$somaReg++;
$somaDuracao += $row['tmo'];
$row['entrada'] = explode('"', $row['entrada'])[1];
$row['status'] == 1 ? $somaAtendida++ : $somaNAtendida++;
$row['origem'] = ocultarTelefone($row['origem']);
$row['hora'] = date('H:i:s', strtotime($row['data']));
@ -346,7 +356,7 @@ class RelRecebidasAgente extends Relatorios
$dataRel[] = $linha;
}
$linhaGeral = '<tr><th colspan="2" align="right">TMO: </th><th colspan="4" align="left">%s</th></tr>';
$linhaGeral = '<tr><th colspan="2" align="right">TMO: </th><th colspan="5" align="left">%s</th></tr>';
$dataRel[] = sprintf($linhaGeral, SecondToStrTime($somaDuracao));
/*
* Fecha relatorio.

Loading…
Cancel
Save