PABX da Simples IP
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

<?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&nbsp;em&nbsp; Opera&ccedil;&atilde;o</th>
</tr>
<tr>
<th align=\"left\" class=\"headColun\">Ramal</th>
<th align=\"center\" class=\"headColun\">Transf.</th>
<th align=\"center\" class=\"headColun\">N&uacute;mero</th>
<th align=\"center\" class=\"headColun\">Data</th>
<th align=\"center\" class=\"headColun\">Dura&ccedil;&atilde;o</th>
<th align=\"right\" nowrap class=\"headColun\">Valor</th>
</tr>";
}
function GetFootRel() {
return "</table>";
}
?>