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.
142 lines
6.0 KiB
142 lines
6.0 KiB
<?php |
|
|
|
$templateName = 'discador/retornoCampanha.tpl'; |
|
$vAlineMaster = 'middle'; |
|
$_SESSION["dataIni"] = IsPostBack() ? $_POST["dataIni"] : ""; //date('d/m/Y'); |
|
$_SESSION["dataFim"] = IsPostBack() ? $_POST["dataFim"] : ""; //date('d/m/Y'); |
|
|
|
if (IsAjax()) { |
|
$campanha = $_GET["listaDacs"]; |
|
$dataIni = is_date($_GET["dataIni"]) ? FormatDtMssql($_GET["dataIni"]) : ""; |
|
$dataFim = is_date($_GET["dataFim"]) ? FormatDtMssql($_GET["dataFim"]) : ""; |
|
echo GetListaCampanha($dbcon, $campanha, 0, $dataIni, $dataFim); |
|
} else { |
|
if (IsPostBack()) { |
|
$campanha = ""; |
|
|
|
$campanha = $_POST["listaDacs"]; |
|
$listId = $_POST["listId"]; |
|
$validaCampanha = 1; |
|
|
|
$dtIni = trim($_SESSION["dataIni"]); |
|
$dtFim = trim($_SESSION["dataFim"]); |
|
|
|
if (!$campanha) { |
|
$validaCampanha = 0; |
|
$msg = "Selecione pelo menos uma \"Campanha\""; |
|
} else if (!$listId) { |
|
$validaCampanha = 0; |
|
$msg = "Selecione pelo menos uma \"Lista\""; |
|
} else if ((soNumero($dtIni) && !is_date($_SESSION["dataIni"]))) { |
|
$validaCampanha = 0; |
|
$msg = "Data Inicial Inválida"; |
|
} else if ((soNumero($dtFim) && !is_date($_SESSION["dataFim"]))) { |
|
$validaCampanha = 0; |
|
$msg = "Data Final Inválida"; |
|
} |
|
} |
|
|
|
|
|
|
|
if (IsPostBack() && $validaCampanha) { |
|
$format = array('cmp_descricao' => 'NOME DA CAMPANHA', 'list_nome' => 'NOME DA LISTA', 'cont_identificador' => 'CLIENTE', 'cont_param1' => 'PARAMETRO_RETORNO', 'status_contato' => 'STATUS DO CONTATO', |
|
'cont_fechamento' => 'FINAL ATENDIMENTO', 'cont_msg' => 'MSG ATENDIMENTO', 'conf_fone' => 'TELEFONE', 'status_registro' => 'STATUS CHAMADA', 'conf_uid' => 'IDENT. CENTRAL', |
|
'conf_agente_matricula' => 'MATRICULA AGENTE', 'calldate' => 'HORA DA CHAMADA', 'billsec' => 'DURACAO DA CHAMADA', 'clas_descricao' => 'CLASSIFICACAO', 'clit_descricao' => 'ITEM CLASSIFICACAO' |
|
); // $format["NOME_CAMPO"] = array(TAMANHO, FORMATO, SEPARADOR, CHAR_PREENCHE, DIRECAO_PREENCE, FUNCAO_ESPECIAL) |
|
$formatKeys = array_keys($format); |
|
|
|
$linha = ""; |
|
$linhas = ""; |
|
$query = GetQuery(); |
|
$result = pg_query($dbcon, $query); |
|
|
|
while ($dados = pg_fetch_array($result)) { |
|
if (!$linhas) { |
|
foreach ($format as $campo) { |
|
$linhas .= !$linhas ? $campo : ";$campo"; |
|
} |
|
$linhas .= "\n"; |
|
} |
|
|
|
$linha = ''; |
|
foreach ($formatKeys as $key) { |
|
$linha .= !$linha ? $dados[$key] : ";" . $dados[$key]; |
|
} |
|
|
|
$linhas .= $linha . "\n"; |
|
} |
|
} |
|
|
|
if ($validaCampanha && IsPostBack()) { |
|
$dtini = $_SESSION["dataIni"] ? ( "_" . $_SESSION["dataIni"] . "_") : ""; |
|
$dtfim = $_SESSION["dataFim"] ? ( "_" . $_SESSION["dataFim"]) : ""; |
|
$disp = $dacIn ? "_rcp($dacIn)" : "_atv($campanha)"; |
|
$list = ($campanha && $listId) ? "_lst($listId)" : ""; |
|
$file = sprintf('Retorno%s%s%s%s%s.txt', $dtini, $dtfim, ("_" . GetLogin()), $disp, $list); |
|
header("Pragma: public"); |
|
header('Cache-Control: no-cache, must-revalidate'); |
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); |
|
header('Accept-Ranges: bytes'); |
|
header('Content-Type: ' . GetMimeContentType($file)); |
|
header('Content-Disposition: attachment; filename="' . $file . '";'); |
|
header('Content-Transfer-Encoding: binary'); |
|
header('Connection: close'); |
|
echo $linhas; |
|
|
|
ob_flush(); |
|
exit; |
|
} |
|
|
|
// $jsJQuery[] = "\$('#listaDacs').change(function(){GetCampanhaLista();}) "; |
|
|
|
$dacs = GetCampanhaRetorno($dbcon, $campanha, 0, 1, ''); |
|
$listas = GetListaCampanha($dbcon, $campanha, $listId); |
|
//Atualiza template |
|
$smarty->assign("dacs", $dacs); |
|
$smarty->assign("listas", $listas); |
|
$smarty->assign('dataIni', $_SESSION["dataIni"]); |
|
$smarty->assign('dataFim', $_SESSION["dataFim"]); |
|
$smarty->assign('msg', $msg); |
|
|
|
|
|
//Seta o template |
|
GetTemplate($smarty, $templateName); |
|
} |
|
|
|
function GetQuery() { |
|
$campanha = $_POST["listaDacs"]; |
|
$listId = $_POST["listId"]; |
|
$dtIni = is_date($_SESSION["dataIni"]) ? FormatDtMssql($_SESSION["dataIni"]) : ''; |
|
$dtFim = is_date($_SESSION["dataFim"]) ? FormatDtMssql($_SESSION["dataFim"]) : ''; |
|
$dddpadrao = GetDddPadrao(); |
|
|
|
$ret = "select a.cmp_descricao, b.list_nome, b.data_reg, a.cmp_id, b.list_id, c.cont_identificador, C.cont_param1, c.cont_status, c.cont_discado, f.ctst_nome as status_contato, c.cont_fechamento, c.cont_msg, |
|
d.conf_callfile, d.conf_fone, d.conf_status, g.ctst_nome as status_registro, d.conf_uid, d.conf_agente_matricula, h.calldate, h.dst, h.duration, h.billsec, l.clas_descricao, j.clit_descricao |
|
from pbx_campanha a |
|
inner join pbx_campanha_lista b on b.cmp_id = a.cmp_id |
|
inner join pbx_campanha_contato c on c.cmp_id = b.cmp_id and c.list_id = b.list_id |
|
inner join pbx_campanha_contato_fone d on d.cmp_id = c.cmp_id and d.list_id = c.list_id and d.cont_id = c.cont_id |
|
inner join pbx_campanha_contato_display e on e.list_id = b.list_id |
|
left join pbx_campanha_contato_status f on f.ctst_id = c.cont_status |
|
left join pbx_campanha_contato_status g on g.ctst_id = strtoint(d.conf_status,0) |
|
left join pbx_bilhetes h on h.uniqueid = d.conf_uid and h.lastapp <> 'Transferred Call' |
|
left join pbx_classifica_reg i on i.id_bilhetes = h.uniqueid |
|
left join pbx_classifica_item j on j.clit_id = i.clit_id and j.clas_id = i.clas_id |
|
left join pbx_classifica_atendimento l on l.clas_id = j.clas_id |
|
where a.cmp_id = '$campanha' |
|
and b.list_id = '$listId' |
|
order by a.cmp_id, b.list_id, c.cont_id, d.conf_id"; |
|
|
|
if (!empty($dtIni)) { |
|
$ret .= " and d.conf_data::date = '$dtIni' "; |
|
$ret .= " and d.conf_data::date = '$dtFim' "; |
|
} |
|
|
|
|
|
|
|
|
|
//if(IsAdmin ()){ echo $ret; exit;} |
|
return $ret; |
|
} |
|
|
|
?>
|
|
|