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.
109 lines
5.8 KiB
109 lines
5.8 KiB
<?php |
|
|
|
$template = "vendas/funilVendas.htm"; |
|
|
|
|
|
$dataIni = isset($_POST["dataIni"]) ? $_POST["dataIni"] : date('01/m/Y'); |
|
$dataFim = isset($_POST["dataFim"]) ? $_POST["dataFim"] : date('d/m/Y'); |
|
$chamadasTotal = 0; |
|
$chamadasAtendida = 0; |
|
$chamadasConvertidas = 0; |
|
$revendas = isset($_POST["revendas"]) ? $_POST["revendas"] : null; |
|
$grpId = isset($_REQUEST['grp_id']) ? $_REQUEST['grp_id'] : 0; |
|
|
|
|
|
if (!is_date($dataIni) || !is_date($dataFim)) { |
|
Alert("Datas inválidas, verifique e tente novamente!"); |
|
} else { |
|
$conn = $dbcon; |
|
//$conn = GetAlernativeDB("192.168.115.12"); |
|
$dtIni = FormatDtMssql($dataIni); |
|
$dtFim = FormatDtMssql($dataFim); |
|
$revendasUser = GetRevendasUsuario($conn, $grpId, true); |
|
|
|
$query = "SELECT SUM(originadas) AS originadas, SUM(atendidas) AS atendidas, SUM(vendido) AS vendido, SUM(nao_atendidas) AS nao_atendidas |
|
FROM vds_chamadas_diario |
|
WHERE data_ini >= '$dtIni' AND data_fim <= '$dtFim' |
|
AND id_pk_emp IN ($revendasUser)"; |
|
|
|
$result = pg_query($conn, $query); |
|
|
|
$dados = pg_fetch_array($result, null, PGSQL_ASSOC); |
|
$totalOrig = $dados['originadas']; |
|
$chamadasTotal = sprintf("%s", FormataValor($dados['originadas'], 0)); |
|
$chamadasAtendida = sprintf("%s", FormataValor($dados['atendidas'], 0)); |
|
$chamadasAtendidaPerc = sprintf("%s", FormataValor(($dados['atendidas'] / $totalOrig) * 100.0, 2)); |
|
$chamadasConvertidas = sprintf("%s", FormataValor($dados['vendido'], 0)); |
|
$chamadasConvertidasPerc = sprintf("%s", FormataValor(($dados['vendido'] / $dados['atendidas']) * 100.0, 2)); |
|
|
|
/* |
|
* $chamadasTotal = sprintf("<span style=\"font-size: xx-large; font-weight: bold\">%s</span><br /> <span style=\"font-style: italic\">%s%%</span>", FormataValor($dados['originadas'], 0), " 100"); |
|
* $chamadasAtendida = sprintf("<span style=\"font-size: xx-large; font-weight: bold\">%s</span><br /><span style=\"font-style: italic\">%s%%</span>", FormataValor($dados['atendidas'], 0), FormataValor( ($dados['atendidas'] / $totalOrig) * 100.0, 2)); |
|
* $chamadasConvertidas = sprintf("<span style=\"font-size: xx-large; font-weight: bold\">%s</span><br /><span style=\"font-style: italic\">%s%%</span>", FormataValor($dados['vendido'], 0), FormataValor( ($dados['vendido'] / $totalOrig) * 100.0, 2)); |
|
*/ |
|
} |
|
|
|
$imgDetalhes = "<img src=\"imgSite/detalhes.png\" width=\"22\" height=\"22\" border=\"0\" title=\"Detalhamento por Revenda!\">"; |
|
$detalhes = "<a href=\"javaScript:NovaJanela('index.php?idProg=282&dataIni=%s&dataFim=%s&revendas=%s', 'jnDetalhesRevendas', '%s', '%s', 'resizable=NO,scrollbars=auto');\">%s</a>"; |
|
$detalhes = sprintf($detalhes, $dtIni, $dtFim, GetRevendasUsuario($conn, $grpId, true), 800, 420, $imgDetalhes); |
|
$smarty->assign('dataIni', $dataIni); |
|
$smarty->assign('dataFim', $dataFim); |
|
$smarty->assign('detalhes', $detalhes); |
|
$smarty->assign('revendas', vdsGetRevendas($conn, $revendasUser, $dtIni, $dtFim)); |
|
$smarty->assign('regionais', vdsGetRegionais($conn, $grpId)); |
|
$smarty->assign('chamadasTotal', $chamadasTotal); |
|
$smarty->assign('chamadasAtendida', $chamadasAtendida); |
|
$smarty->assign('chamadasAtendidaPerc', $chamadasAtendidaPerc); |
|
$smarty->assign('chamadasConvertidas', $chamadasConvertidas); |
|
$smarty->assign('chamadasConvertidasPerc', $chamadasConvertidasPerc); |
|
GetTemplate($smarty, 'vendas/funilVendas.htm'); |
|
|
|
function vdsGetRevendas($conn, $revendasUser, $dtIni, $dtFim) { |
|
/* |
|
$query = "select a.emp_id, a.emp_nome_fantasia, a.emp_razao_social, a.emp_cnpj |
|
from vds_empresas a |
|
where a.emp_id in($revendasUser) |
|
and exists(select '' from vds_chamadas where emp_id = a.emp_id and chm_data_bilhete >= '$dtIni' and chm_data_bilhete <= '$dtFim') |
|
order by 3 "; |
|
*/ |
|
$query = "select DISTINCT a.emp_id, a.emp_nome_fantasia, coalesce(c.grp_nome, 'ND') || ' - ' || a.emp_razao_social as emp_razao_social, a.emp_cnpj |
|
from vds_empresas a |
|
left join vds_grupos_empresas b on b.emp_id = a.emp_id |
|
left join vds_grupos c on c.grp_id = b.grp_id |
|
where a.emp_id in($revendasUser) |
|
and exists(select '' from vds_chamadas where emp_id = a.emp_id and chm_data_bilhete >= '$dtIni' and chm_data_bilhete <= '$dtFim') |
|
order by 3 "; |
|
|
|
$linhas = ''; |
|
$result = pg_query($conn, $query); |
|
while ($dados = pg_fetch_array($result, null, PGSQL_ASSOC)) { |
|
//$ck = ( is_null($revendas)) || (array_search($dados['emp_id'], $revendas) !== false) ? 'checked="checked"' : ''; |
|
//$linhas .= sprintf('<tr><td style="border: 0"><input type="checkbox" name="revendas[]" value="%s" id="%s" %s></td><td nowrap style="border: 0">%s</td></tr>', $dados['emp_id'], $dados['emp_id'], $ck, $dados['emp_razao_social']); |
|
$linhas .= sprintf('<tr><td style="border: 0"> </td><td nowrap style="border: 0">%s</td></tr>', $dados['emp_razao_social']); |
|
} |
|
|
|
return $linhas; |
|
} |
|
|
|
function vdsGetRegionais($conn, $grpId) { |
|
$idUser = GetIdUser(); |
|
$query = "select distinct a.grp_id, a.grp_nome |
|
from vds_grupos a |
|
inner join vds_grupos_empresas b on b.grp_id = a.grp_id |
|
inner join pbx_grupo_revendas c on c.emp_id = b.emp_id |
|
inner join pbx_grupo_usuario d on d.gp_id = c.gp_id |
|
inner join vds_empresas e on e.emp_id = c.emp_id\n"; |
|
$query .= isAdmin() ? '' : sprintf("where d.user_id = '%s'\n", $idUser); |
|
$query .= "order by a.grp_nome\n"; |
|
|
|
$sel = !$grpId ? ' selected="selected"' : ''; |
|
$linhas = sprintf('<option value="0"%s>Todos</option>', $sel); |
|
$result = pg_query($conn, $query); |
|
// echo $query; |
|
while ($dados = pg_fetch_array($result, null, PGSQL_ASSOC)) { |
|
$sel = ($grpId == $dados['grp_id']) ? ' selected="selected"' : ''; |
|
$linhas .= sprintf('<option value="%s"%s>%s</option>', $dados['grp_id'], $sel, $dados['grp_nome']); |
|
} |
|
|
|
return $linhas; |
|
}
|
|
|