forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
6.4 KiB
179 lines
6.4 KiB
<?php |
|
|
|
/* |
|
* To change this template, choose Tools | Templates |
|
* and open the template in the editor. |
|
*/ |
|
|
|
/* |
|
* carregar controles prepara relatório |
|
*/ |
|
//variaveis para manter o estado |
|
$inRel = 0; |
|
if ($_POST["btConsulta"]) { |
|
//print "listaAgente: " . $_SESSION["listaSites"] ." - ". $_POST["listaSites"]; |
|
$trocaDac = $_SESSION["listaSites"] != $_POST["listaSites"]; |
|
$_SESSION["listaSites"] = $_POST["listaSites"]; |
|
$_SESSION["dataIni"] = $_POST["dataIni"] ? $_POST["dataIni"] : date('d/m/Y'); |
|
$_SESSION["dataFim"] = $_POST["dataFim"] ? $_POST["dataFim"] : date('d/m/Y'); |
|
$_SESSION["matricula"] = $_POST["matricula"]; |
|
$_SESSION["nome"] = $_POST["nome"]; |
|
$_SESSION["duracao"] = $_POST["rbDuracao"]; |
|
$inRel = 1; |
|
} else { |
|
$_SESSION["listaSites"] = GetDefaultSite(); |
|
; |
|
$_SESSION["dataIni"] = date('d/m/Y'); |
|
$_SESSION["dataFim"] = date('d/m/Y'); |
|
$_SESSION["matricula"] = ""; |
|
$_SESSION["nome"] = ""; |
|
$_SESSION["duracao"] = 1; |
|
} |
|
|
|
$isValid = 1; |
|
if ($inRel && !is_date($_SESSION["dataIni"])) { |
|
$isValid = 0; |
|
$msg = "Data inicial inválida!"; |
|
} else if ($inRel && !is_date($_SESSION["dataFim"])) { |
|
$isValid = 0; |
|
$msg = "Data final inválida!"; |
|
} |
|
/* |
|
* Retirado a obrigatoriedade de informar uma conta |
|
else if($inRel && empty( $_SESSION["conta"])) |
|
{ |
|
$isValid = 0; |
|
$msg = "Informe a conta!"; |
|
} |
|
*/ else if ($inRel && empty($_SESSION["listaSites"])) { |
|
$isValid = 0; |
|
$msg = "Informe um Site!"; |
|
} |
|
|
|
//conexao para a base corrente |
|
$dbHost = GetDbFromHost($_SESSION["listaSites"]); |
|
//carrega sites |
|
$sites = GetSites($dbcon, $_SESSION["listaSites"]); |
|
|
|
//$usuarios = GetTodasContas($dbHost, $_SESSION["conta"]); |
|
|
|
$imp = 0; |
|
$linha = ""; |
|
$linhaTmp = ""; |
|
$somaDuration = 0; |
|
$somaValor = 0; |
|
$linhas = array(); |
|
//executa consulta somente com post |
|
if ($inRel && $isValid) { |
|
$result = pg_query($dbHost, GetQuery()); |
|
while ($row = @pg_fetch_array($result)) { |
|
$matricula = $row["matricula"]; |
|
$apelido = $row["apelido"]; |
|
$ramal = $row["src"]; |
|
$numero = $row["dst"]; |
|
$data = FormataDBDataHora($row["calldate"]); |
|
$duration = $row["billsec"]; |
|
$valor = $row["valor"]; |
|
$somaValor += $valor; |
|
$somaDuration += $duration; |
|
//formata duração |
|
$duration = SecondToStrTime($duration); |
|
|
|
$linhaTmp = " <tr> |
|
<td align=\"left\" class=\"headData\">$ramal</td> |
|
<td align=\"left\" class=\"headData\">$matricula</td> |
|
<td align=\"left\" class=\"headData\">$apelido</td> |
|
<td align=\"left\" class=\"headData\">$numero</td> |
|
<td align=\"center\" class=\"headData\">$data</td> |
|
<td align=\"center\" class=\"headData\">$duration</td> |
|
<td align=\"right\" nowrap class=\"headData\">$valor</td> |
|
</tr>"; |
|
//$linhas[$imp] = $linhaTmp; |
|
$linha .= $linhaTmp; |
|
$imp++; |
|
} |
|
} |
|
if (empty($linha)) { |
|
if ($inRel && $isValid && pg_last_error($dbcon)) |
|
$noData = "Erro ao realizar consulta! Erro: " . pg_last_error($dbcon); |
|
else |
|
$noData = $inRel ? $isValid ? "Nenhum registro encontrado!" : $msg : "Informe as datas inicial,final, matricula e clique em consultar!"; |
|
$linha = " <tr><td colspan=\"7\" align=\"left\" class=\"headData\">$noData</td>"; |
|
} |
|
else { |
|
$_SESSION["SSsiteDesc"] = GetSiteDesc($dbcon, $_SESSION["listaSites"]); |
|
} |
|
$somaDuration = SecondToStrTime($somaDuration); |
|
|
|
$linha .= " <tr> |
|
<th colspan=\"4\" align=\"left\" class=\"headColun\">Total chamadas: $imp</th> |
|
<th align=\"center\" class=\"headColun\">Totais</th> |
|
<th align=\"center\" class=\"headColun\">$somaDuration</th> |
|
<th align=\"right\" nowrap class=\"headColun\">$somaValor</th> |
|
</tr>"; |
|
|
|
|
|
if (!$isValid) |
|
$jsStartup[] = "alert('$msg');"; |
|
|
|
$jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);}) "; |
|
$jsJQuery[] = "\$('#dataFim').keypress(function(){formataDataHora(this);}) "; |
|
|
|
|
|
$jsJQuery[] = "\$('#matricula').blur(function(){SetUserFromConta();}) "; |
|
$_SESSION["SSlinhas"] = $linha; |
|
|
|
$smarty->assign('imp', $imp); |
|
$smarty->assign('dtIni', $_SESSION["dataIni"]); |
|
$smarty->assign('dtFim', $_SESSION["dataFim"]); |
|
$smarty->assign('matricula', $_SESSION["matricula"]); |
|
$smarty->assign('nome', $_SESSION["nome"]); |
|
$smarty->assign('sites', $sites); |
|
$smarty->assign('linhas', $linha); |
|
$smarty->assign('duracao', $_SESSION["duracao"]); |
|
|
|
GetTemplate($smarty, 'pbx/relatorios/chamadasEntrantes/entrantesConta.tpl'); |
|
|
|
function GetQuery() { |
|
$dataIin = FormatDtMssql($_SESSION["dataIni"]); |
|
$dataFim = FormatDtMssql($_SESSION["dataFim"]); |
|
$matricula = $_SESSION["matricula"]; |
|
$nome = $_SESSION["nome"]; |
|
$site = $_SESSION["listaSites"]; |
|
|
|
$sql = "select distinct substring(src,'....$') as src, c.conta, split_part(userfield, '-', 2) as dst, calldate, billsec, 0.0 as valor, b.apelido |
|
from pbx_bilhetes a, pbx_usuarios_cs b, pbx_bilhetes_complemento c |
|
where c.uniqueid2 = a.uniqueid |
|
and b.id = c.id_usuario |
|
and a.data_bilhete >= '$dataIin' |
|
and a.data_bilhete <= '$dataFim' |
|
and b.matricula = '$matricula' |
|
and c.direcao in(select ctop_contexto from pbx_contextos_operacoes where ctop_tipo = 'entrada') "; |
|
if ($duracao == 2) |
|
$sql .= " and a.billsec > 0 "; |
|
if ($duracao == 3) |
|
$sql .= " and a.billsec = 0 "; |
|
$sql .= " and lastapp <> 'Transferred Call' order by 4, 1"; |
|
return $sql; |
|
} |
|
|
|
function GetTopRel() { |
|
return "<table cellpadding=\"2\" width=\"800\" class=\"grid\"> |
|
<tr > |
|
<th colspan=\"6\" align=\"center\">Agentes em Operação</th> |
|
</tr> |
|
<tr> |
|
<th align=\"left\" class=\"headColun\">Ramal</th> |
|
<th align=\"center\" class=\"headColun\">Transf.</th> |
|
<th align=\"center\" class=\"headColun\">Número</th> |
|
<th align=\"center\" class=\"headColun\">Data</th> |
|
<th align=\"center\" class=\"headColun\">Duração</th> |
|
<th align=\"right\" nowrap class=\"headColun\">Valor</th> |
|
</tr>"; |
|
} |
|
|
|
function GetFootRel() { |
|
return "</table>"; |
|
} |
|
|
|
?>
|
|
|