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.
157 lines
5.5 KiB
157 lines
5.5 KiB
<?php |
|
|
|
//conexao para a base corrente |
|
$dbHost = GetDbFromHost($_SESSION["listaSites"]); |
|
|
|
if ($_POST["btConsulta"]) { |
|
$trocaDac = $_SESSION["listaSites"] != $_POST["listaSites"]; |
|
$_SESSION["listaSites"] = $_POST["listaSites"]; |
|
$_SESSION["listaEmpresas"] = $_POST["listaEmpresas"]; |
|
$_SESSION["listaDeptos"] = $_POST["listaDeptos"]; |
|
$_SESSION["dataIni"] = $_POST["dataIni"]; |
|
$_SESSION["dataFim"] = $_POST["dataFim"]; |
|
$_SESSION["duracao"] = $_POST["rbDuracao"]; |
|
$inRel = 1; |
|
} else { |
|
$_SESSION["listaSites"] = GetDefaultSite(); |
|
; |
|
$_SESSION["listaEmpresas"] = GetDefCodEmpresa($dbHost); |
|
$_SESSION["listaDeptos"] = "0"; |
|
$_SESSION["dataIni"] = date('d/m/Y'); |
|
$_SESSION["dataFim"] = date('d/m/Y'); |
|
$_SESSION["duracao"] = 1; |
|
$inRel = 0; |
|
} |
|
|
|
//carrega sites |
|
$sites = GetSites($dbcon, $_SESSION["listaSites"]); |
|
|
|
//carrega empresas |
|
$empresas = GetEmpresas($dbcon, $_SESSION["listaEmpresas"]); |
|
|
|
//carrega sites |
|
$deptos = GetDeptos($dbcon, $_SESSION["listaEmpresas"], $_SESSION["listaDeptos"]); |
|
|
|
$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!"; |
|
} |
|
|
|
$imp = 0; |
|
$linha = ""; |
|
$linhaTotal = ""; |
|
$linhaTmp = ""; |
|
$linhas = array(); |
|
|
|
if ($isValid && $inRel) { |
|
$result = pg_query($dbHost, GetQuery()); |
|
while ($row = @pg_fetch_array($result)) { |
|
$src = $row["src"]; |
|
$dst = $row["dst"]; |
|
$conta = $row["matricula"]; |
|
$nome = $row["nome"]; |
|
$apelido = $row["apelido"]; |
|
$codigo_empresa = $row["codigo_empresa"]; |
|
$nome_empresa = $row["nome_empresa"]; |
|
$codigo_departamento = $row["codigo_departamento"]; |
|
$nome_depto = $row["nome_depto"]; |
|
$data = FormataDBDataHora($row["data"]); |
|
$duration = $row["duracao"]; |
|
$somaDuration += $duration; |
|
$_SESSION["SScCustoEmpresa"] = $row["nome_empresa"]; |
|
$_SESSION["SScCustoDepto"] = $row["nome_depto"]; |
|
//formata duração |
|
$duration = SecondToStrTime($duration); |
|
|
|
$linhaTmp = " <tr> |
|
<td align=\"left\" class=\"headData\">$src</td> |
|
<td align=\"left\" class=\"headData\">$dst</td> |
|
<td align=\"left\" class=\"headData\">$conta</td> |
|
<td align=\"left\" class=\"headData\">$apelido</td> |
|
<td align=\"center\" class=\"headData\">$data</td> |
|
<td align=\"right\" class=\"headData\">$duration</td> |
|
</tr>"; |
|
$linhas[] = $linhaTmp; |
|
$linha .= $linhaTmp; |
|
$imp++; |
|
} |
|
} |
|
if (empty($linha)) { |
|
if ($isValid && pg_last_error($dbcon)) |
|
$noData = "Erro ao realizar a consulta. Erro: " . pg_last_error($dbcon); |
|
else |
|
$noData = $inRel ? ($isValid ? "Nenhum registro encontrado!" : $msg) : "clique em consultar!"; |
|
|
|
$linha = " <tr><td colspan=\"6\" align=\"left\" class=\"headData\">$noData</td>"; |
|
} |
|
else { |
|
$_SESSION["SSsiteDesc"] = GetSiteDesc($dbHost, $_SESSION["listaSites"]); |
|
} |
|
|
|
$somaDuration = SecondToStrTime($somaDuration); |
|
$linhaTotal = " <tr> |
|
<th colspan=\"5\" align=\"left\" class=\"headColun\">Total</th> |
|
<th align=\"right\" class=\"headColun\">$somaDuration</th> |
|
</tr>"; |
|
$linha .= $linhaTotal; |
|
$linhas[] = $linhaTotal; |
|
$_SESSION["SSlinhas"] = $linhas; |
|
|
|
if (!$isValid) |
|
$jsStartup[] = "alert('$msg');"; |
|
|
|
$jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);}) "; |
|
$jsJQuery[] = "\$('#dataFim').keypress(function(){formataDataHora(this);}) "; |
|
|
|
|
|
//Funcao ajax para carregas depos qdo selecinada uma nova empresa |
|
|
|
$jsJQuery[] = "\$('#listaEmpresas').change(function(){GetDeptos();}) "; |
|
|
|
|
|
$smarty->assign('imp', $imp); |
|
$smarty->assign('sites', $sites); |
|
$smarty->assign('dtIni', $_SESSION["dataIni"]); |
|
$smarty->assign('dtFim', $_SESSION["dataFim"]); |
|
$smarty->assign('linhas', $linha); |
|
$smarty->assign('empresas', $empresas); |
|
$smarty->assign('deptos', $deptos); |
|
$smarty->assign('duracao', $_SESSION["duracao"]); |
|
|
|
GetTemplate($smarty, 'pbx/relatorios/chamadasSaintes/saintesCentroCusto.tpl'); |
|
|
|
function GetQuery() { |
|
$dataIni = FormatDtMssql($_SESSION["dataIni"]); |
|
$dataFim = FormatDtMssql($_SESSION["dataFim"]); |
|
$emp = $_SESSION["listaEmpresas"]; |
|
$depto = $_SESSION["listaDeptos"]; |
|
$duracao = $_SESSION["duracao"]; |
|
|
|
$sql = " select a.src, a.dst, a.calldate as data, a.billsec as duracao, c.matricula, c.nome, c.apelido, d.id as codigo_empresa, d.nome as nome_empresa, |
|
e.id as codigo_departamento, e.nome_depto |
|
from pbx_bilhetes a, pbx_bilhetes_complemento b, pbx_usuarios_cs c, pbx_empresa d, pbx_departamentos e |
|
where b.uniqueid2 = a.uniqueid |
|
and c.id = b.id_usuario |
|
and e.id = c.departamento |
|
and e.empresa = c.empresa |
|
and d.id = e.empresa |
|
and cast(calldate as date) >= '$dataIni' |
|
and cast(calldate as date) <= '$dataFim' "; |
|
if ($emp) |
|
$sql .= " and d.id = $emp "; |
|
if ($depto) |
|
$sql .= " and e.id = $depto "; |
|
if ($duracao == 2) |
|
$sql .= " and a.billsec > 0 "; |
|
if ($duracao == 3) |
|
$sql .= " and a.billsec = 0 "; |
|
$sql .= " order by 4, 2 "; |
|
// if(IsAdmin ()) echo $sql; |
|
return $sql; |
|
} |
|
|
|
?>
|