___dac = isset($_REQUEST['dac']) ? $_REQUEST['dac'] : $_SESSION['SSDacCamp']; $this->___listCamp = isset($_POST["listCamp"]) ? $_POST["listCamp"] : 0; } function ___ValidaForm() { parent::___ValidaForm(); } function ___FiltrosRelatorio() { if ($this->___media != MEDIA_PRINT_GRID) { /* * Recupera os filtros da sess�o do usu�rio. */ list($this->___dataIni, $this->___dataFim, $this->___telefone) = $_SESSION["SSstorageFiltros"]; if ($this->___media == MEDIA_PRINT_HTML) { return sprintf("Data Inicial: %s Data Final: %s ", $this->___dataIni, $this->___dataFim); } $fltCsv = array(); $fltCsv[] = "Data Inicial: " . $this->___dataIni; $fltCsv[] = "Data Final: " . $this->___dataFim; //$fltCsv[] = $this->___telefone ? "Telefone: " . $this->___telefone : ''; $fltCsv[] = "Data Emissao: " . date('d/m/Y H:i:s'); $fltCsv[] = "Emitido Por: " . GetLogin(); return $fltCsv; } $lkPrint = ""; if ($this->___dataCount) { $prt = 'Clique aqui para imprimir!'; $prtHtml = "\"Clique"; //$lkPrint .= sprintf($prtHtml, $this->GetidProg(), MEDIA_PRINT_HTML, substr(LimpaString(GetDispProgSel($this->GetIdProg())), 0, 20), 'print.gif'); $lkPrint .= sprintf($prt, $this->GetidProg(), MEDIA_PRINT_EXCEL, 'prt-xls.png') . " "; //$lkPrint .= sprintf($prt, $this->GetidProg(), MEDIA_PRINT_PDF, 'prt-pdf.png'); $lkPrint .= sprintf($prt, $this->GetidProg(), MEDIA_PRINT_CSV, 'prt-csv.png'); } /* * Personalise esta função se necessitar de outras opções de filtro. */ $filtro = ''; /* * Rotulos. */ $filtro .= ''; $filtro .= ''; $filtro .= ''; $filtro .= ''; $filtro .= ''; $filtro .= ''; /* * Valores. */ $filtro .= ''; $filtro .= sprintf('', $this->getCamp($this->___listCamp, $this->___dac)); $filtro .= ''; $filtro .= ''; $filtro .= ''; $filtro .= '
 Campanha  
 %s%s
'; /* * Guarda os filtros passados para recuperar na emiss�o dos relat?ios para impress�o. */ $_SESSION["SSstorageFiltros"] = array($this->___dataIni, $this->___dataFim, $this->___telefone); return sprintf($filtro, $lkPrint); } protected function ___GetDadosDb() { $dac = $this->___dac; $campanha = $this->___listCamp; $query = "select a.id_dac,a.cmp_id,b.list_id, a.cmp_descricao as nome_campanha, b.list_nome, count(*) as numero_contatos, sum(case when(c.cont_discado = 1)then 1 else 0 end) as numero_discado, sum(case when(c.cont_discado = 1)then 0 else 1 end) as numero_restante from pbx_campanha a inner join pbx_campanha_lista b on b.cmp_id = a.cmp_id and b.list_status = 1 inner join pbx_campanha_contato c on c.list_id = b.list_id where a.id_dac = (select id from pbx_dacs where nome = '$dac') and a.cmp_status in (1,2) "; if ($campanha != 0) { $query .= " and a.cmp_id = $campanha"; } $query .= " group by 1,2,3,4,5 order by 4 limit 1"; $result = $this->___GetQuery($query); $row = pg_fetch_assoc($result); $this->SetData($row ? $row : array()); if ($row['cmp_id'] && $row['list_id']) { $sql = "SELECT a.cont_id,'IDENTIFICADOR' as disp_param, a.cont_identificador, b.disp_param1,a.cont_param1,b.disp_param2,a.cont_param2, b.disp_param3,a.cont_param3,b.disp_param4,a.cont_param4, b.disp_param5,a.cont_param5,'AGENTE' as disp_param6,c.apelido, 'DISCADO' as disp_param7,a.cont_discado,'STATUS' as disp_param8, d.ctst_nome, 'PENDENTE' as disp_param9, coalesce(e.cmpo_status,-1)as cmpo_status, 'MENSAGEM' as disp_param10, a.cont_msg FROM pbx_campanha_contato a inner join pbx_campanha_contato_display b on a.cmp_id = b.cmp_id and a.list_id = b.list_id left outer join pbx_usuarios c on c.matricula = a.matricula left outer join pbx_campanha_contato_status d on d.ctst_id = a.cont_status left outer join pbx_campanha_operacao e on e.cmp_id = a.cmp_id and e.list_id = a.list_id and e.cont_id = a.cont_id where a.cmp_id = {$row['cmp_id']} and a.list_id = {$row['list_id']} order by 1"; $result1 = $this->___GetQuery($sql); $row1 = pg_fetch_all($result1); } $this->SetData($row1 ? $row1 : array()); } protected function ___PreparaCsv() { $dataRel = array(); $filtro = $this->___FiltrosRelatorio(); $dataRel[] = GenerateCsvFromArray($filtro); $data = $this->GetData()[1]; $disp = $data[0]; $dispParam = $disp['disp_param'] ? $disp['disp_param'] : "-"; $dispParam1 = $disp['disp_param1'] && $disp['disp_param1'] != "-" ? $disp['disp_param1'] : "DISPLAY 1"; $dispParam2 = $disp['disp_param2'] && $disp['disp_param2'] != "-" ? $disp['disp_param2'] : "DISPLAY 2"; $dispParam3 = $disp['disp_param3'] && $disp['disp_param3'] != "-" ? $disp['disp_param3'] : "DISPLAY 3"; $dispParam4 = $disp['disp_param4'] && $disp['disp_param4'] != "-" ? $disp['disp_param4'] : "DISPLAY 4"; $dispParam5 = $disp['disp_param5'] && $disp['disp_param5'] != "-" ? $disp['disp_param5'] : "DISPLAY 5"; $dispParam6 = $disp['disp_param6'] && $disp['disp_param6'] != "-" ? $disp['disp_param6'] : "DISPLAY 6"; $dispParam7 = $disp['disp_param7'] && $disp['disp_param7'] != "-" ? $disp['disp_param7'] : "DISPLAY 7"; $dispParam8 = $disp['disp_param8'] && $disp['disp_param8'] != "-" ? $disp['disp_param8'] : "DISPLAY 8"; $dispParam9 = $disp['disp_param9'] && $disp['disp_param9'] != "-" ? $disp['disp_param9'] : "DISPLAY 9"; $dispParam10 = $disp['disp_param10'] && $disp['disp_param10'] != "-" ? $disp['disp_param10'] : "DISPLAY 10"; /* * Inicia o relatório. */ $dadosCabecalio = array( $dispParam, $dispParam1, $dispParam2, $dispParam3, $dispParam4, $dispParam5, $dispParam6, $dispParam8, $dispParam10, $dispParam7, $dispParam9 ); $dadosField = array( 'cont_identificador', 'cont_param1', 'cont_param2', 'cont_param3', 'cont_param4', 'cont_param5', 'apelido', 'ctst_nome', 'cont_msg', 'cont_discado', 'cmpo_status' ); $dataRel[] = GenerateCsvFromArray($dadosCabecalio); $somaQuantidade = 0; /* * Linhas de dados. */ foreach ($this->GetData()[1] as $row) { $idStatus = $row["cmpo_status"]; $somaQuantidade++; // Formata linha de dados. $linha = array(); foreach ($dadosField as $key) { if ($idStatus == 0) { $titPendente = "Pendente"; } else if ($idStatus == 1) { $titPendente = "Encerrado"; } else { $titPendente = "Nao Processado"; } $row['cmpo_status'] = $titPendente; $linha[] = RemoveAcentos($row["$key"]); } $dataRel[] = GenerateCsvFromArray($linha); $dataRel[] = $linha; } $dataRel[] = GenerateCsvFromArray(array('Total', 'Registros:', $somaQuantidade)); $dataRel[] = $linha; $this->___dataRel[] = $dataRel; } protected function ___PreparaExcel() { $dataRel = array(); $filtro = $this->___FiltrosRelatorio(); $data = $this->GetData()[1]; $disp = $data[0]; $dispParam = $disp['disp_param'] ? $disp['disp_param'] : "-"; $dispParam1 = $disp['disp_param1'] && $disp['disp_param1'] != "-" ? $disp['disp_param1'] : "DISPLAY 1"; $dispParam2 = $disp['disp_param2'] && $disp['disp_param2'] != "-" ? $disp['disp_param2'] : "DISPLAY 2"; $dispParam3 = $disp['disp_param3'] && $disp['disp_param3'] != "-" ? $disp['disp_param3'] : "DISPLAY 3"; $dispParam4 = $disp['disp_param4'] && $disp['disp_param4'] != "-" ? $disp['disp_param4'] : "DISPLAY 4"; $dispParam5 = $disp['disp_param5'] && $disp['disp_param5'] != "-" ? $disp['disp_param5'] : "DISPLAY 5"; $dispParam6 = $disp['disp_param6'] && $disp['disp_param6'] != "-" ? $disp['disp_param6'] : "DISPLAY 6"; $dispParam7 = $disp['disp_param7'] && $disp['disp_param7'] != "-" ? $disp['disp_param7'] : "DISPLAY 7"; $dispParam8 = $disp['disp_param8'] && $disp['disp_param8'] != "-" ? $disp['disp_param8'] : "DISPLAY 8"; $dispParam9 = $disp['disp_param9'] && $disp['disp_param9'] != "-" ? $disp['disp_param9'] : "DISPLAY 9"; $dispParam10 = $disp['disp_param10'] && $disp['disp_param10'] != "-" ? $disp['disp_param10'] : "DISPLAY 10"; /* * Inicia o relatório. */ /* * Cria os filtros */ $linha = array('LABEL'); foreach ($filtro as $values) { list($label, $value) = explode(":", $values); $linha[] = RemoveAcentos($label); } $dataRel[] = $linha; $linha = array('DADOS'); foreach ($filtro as $values) { list($label, $value) = explode(":", $values); $linha[] = RemoveAcentos($value); } $dataRel[] = $linha; $dadosCabecalio = array( $dispParam, $dispParam1, $dispParam2, $dispParam3, $dispParam4, $dispParam5, $dispParam6, $dispParam8, $dispParam10, $dispParam7, $dispParam9 ); $dadosField = array( 'cont_identificador', 'cont_param1', 'cont_param2', 'cont_param3', 'cont_param4', 'cont_param5', 'apelido', 'ctst_nome', 'cont_msg', 'cont_discado', 'cmpo_status' ); /* * Monta a linha de cabecalio. */ $linha = array('LABEL'); foreach ($dadosCabecalio as $value) { $linha[] = $value; } $dataRel[] = $linha; $somaTempo = 0; $somaQuantidade = 0; /* * Linhas de dados. */ foreach ($this->GetData()[1] as $row) { $idStatus = $row["cmpo_status"]; $somaQuantidade++; // Formata linha de dados. $linha = array('DADOS'); foreach ($dadosField as $key) { if ($idStatus == 0) { $titPendente = "Pendente"; } else if ($idStatus == 1) { $titPendente = "Encerrado"; } else { $titPendente = "Nao Processado"; } $row['cmpo_status'] = $titPendente; $linha[] = RemoveAcentos($row["$key"]); } $dataRel[] = $linha; } $linha = array('LABEL', 'Total', '', '', 'Registros: ' . $somaQuantidade); $dataRel[] = $linha; $this->___dataRel[] = $dataRel; } protected function ___PreparaGrid() { $data = $this->GetData()[1]; $disp = $data[0]; $dispParam = $disp['disp_param'] ? $disp['disp_param'] : "-"; $dispParam1 = $disp['disp_param1'] && $disp['disp_param1'] != "-" ? $disp['disp_param1'] : "DISPLAY 1"; $dispParam2 = $disp['disp_param2'] && $disp['disp_param2'] != "-" ? $disp['disp_param2'] : "DISPLAY 2"; $dispParam3 = $disp['disp_param3'] && $disp['disp_param3'] != "-" ? $disp['disp_param3'] : "DISPLAY 3"; $dispParam4 = $disp['disp_param4'] && $disp['disp_param4'] != "-" ? $disp['disp_param4'] : "DISPLAY 4"; $dispParam5 = $disp['disp_param5'] && $disp['disp_param5'] != "-" ? $disp['disp_param5'] : "DISPLAY 5"; $dispParam6 = $disp['disp_param6'] && $disp['disp_param6'] != "-" ? $disp['disp_param6'] : "DISPLAY 6"; $dispParam7 = $disp['disp_param7'] && $disp['disp_param7'] != "-" ? $disp['disp_param7'] : "DISPLAY 7"; $dispParam8 = $disp['disp_param8'] && $disp['disp_param8'] != "-" ? $disp['disp_param8'] : "DISPLAY 8"; $dispParam9 = $disp['disp_param9'] && $disp['disp_param9'] != "-" ? $disp['disp_param9'] : "DISPLAY 9"; $dispParam10 = $disp['disp_param10'] && $disp['disp_param10'] != "-" ? $disp['disp_param10'] : "DISPLAY 10"; $dadosCabecalio = array( $dispParam => 'align="center"', $dispParam1 => 'align="center"', $dispParam2 => 'align="center"', $dispParam3 => 'align="center"', $dispParam4 => 'align="center"', $dispParam5 => 'align="center"', $dispParam6 => 'align="center"', $dispParam8 => 'align="center"', $dispParam10 => 'align="center"', $dispParam7 => 'align="center"', $dispParam9 => 'align="center"' ); $dadosField = array( 'cont_identificador' => 'align="center"', 'cont_param1' => 'align="center"', 'cont_param2' => 'align="center"', 'cont_param3' => 'align="center"', 'cont_param4' => 'align="center"', 'cont_param5' => 'align="center"', 'apelido' => 'align="center"', 'ctst_nome' => 'align="center"', 'cont_msg' => 'align="center"', 'cont_discado' => 'align="center"', 'cmpo_status' => 'align="center"' ); $dataCamp = $this->GetData()[0]; $dataRel[] = ''; $dataRel[] = ''; $dataRel[] = ""; $dataRel[] = '
DETALHAMENTO DE CAMPANHA
Campanha: {$dataCamp['nome_campanha']} Lista: {$dataCamp['list_nome']} QTE. Contato: {$dataCamp['numero_contatos']} QTE. Discado: {$dataCamp['numero_discado']}
'; /* * Inicia o relatorio. */ $dataRel[] = ''; /* * Monta a linha de cabecalio. */ $linha = ''; foreach ($dadosCabecalio as $key => $value) { $linha .= sprintf("", $value, $key); } $linha .= ""; $dataRel[] = $linha; /* * Verifica se retornou dados */ if (!count($data)) { $dataRel[] = sprintf("
%s
%s
", count($dadosCabecalio) - 1, (!IsPostBack() ? 'Informe os parametros e clique em consultar!' : 'Nenhum registro encontado!')); $this->___dataRel[] = $dataRel; return; } $registros = 0; /* * Linhas de dados. */ foreach ($data as $row) { $idStatus = $row["cmpo_status"]; // Formata linha de dados. $linha = ""; foreach ($dadosField as $key => $value) { if ($idStatus == 0) { $imgPendente = "imgSite/fecha16.png"; $titPendente = "pendente"; } else if ($idStatus == 1) { $imgPendente = "imgSite/button_ok16.png"; $titPendente = "encerrado"; } else { $imgPendente = "imgSite/cadeado.gif"; $titPendente = "Não processado"; } $row['cont_discado'] = sprintf('', ($row["cont_discado"] == 0) ? "imgSite/fecha16.png" : "imgSite/button_ok16.png", ($row["cont_discado"] == 0) ? "não discado" : "discado"); $pendente = sprintf('', $imgPendente, $titPendente); $row['cmpo_status'] = ($idStatus == 0) ? sprintf("%s", $identificador, $idContato, $idCamp, $idList, $pendente) : $pendente; $linha .= sprintf("%s", $value, $row["$key"]); } $registros++; $linha .= ""; $dataRel[] = $linha; } /* * Linha de totalizacao. */ $linha = 'TotalRegistros: %s'; $dataRel[] = sprintf($linha, $registros); /* * Fecha relatorio. */ $dataRel[] = ''; $this->___dataRel[] = $dataRel; } protected function ___PreparaHtml() { } protected function ___PreparaPdf() { } private function getCamp($codSel, $dac) { $listCamp = ""; return $listCamp; } public function ExecutaRelatorio() { global $jsStartup, $jsJQuery, $smarty; try { /* * Use esta fun��o para validar dados do formul�rio. */ //$this->___ValidaForm(); /* * Recupera os dados do banco. */ $this->___ConteudoRelatorio(); /* * Imprime relat�rio de acordo com a media passada. */ $conteudoRelatorio = $this->___ImprimeRelatorio(); } catch (Exception $exc) { $this->SetMsg($exc->getMessage()); $jsStartup[] = sprintf("alert('%s');", $this->GetMsg()); $this->___GravaLog(); } /* * Inclua os scripts necessários aqui. */ $jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);}) "; $jsJQuery[] = "\$('#dataFim').keypress(function(){formataDataHora(this);}) "; $smarty->assign('filtros', $this->___FiltrosRelatorio()); $smarty->assign('conteudo', $conteudoRelatorio); $smarty->assign('msg', $this->GetMsg()); GetTemplate($smarty, 'relatoriosGrid.tpl'); } } $relChmEntG = new RelSupCampanha($idProg, $dbcon, 0); $relChmEntG->ExecutaRelatorio(); // // // $dac = $_GET["dac"] ? $_GET["dac"] : $_POST["dac"]; // // if ($_POST["btConsulta"]) { // $campanha = $_POST["listCamp"]; // $dac = $_POST["dac"]; // } // // // $nomeTpl = "supervisao/RelSupCampanha.tpl"; // // $query = "select a.id_dac,a.cmp_id,b.list_id, // a.cmp_descricao as nome_campanha, // b.list_nome, // count(*) as numero_contatos, // sum(case when(c.cont_discado = 1)then 1 else 0 end) as numero_discado, // sum(case when(c.cont_discado = 1)then 0 else 1 end) as numero_restante // from pbx_campanha a // inner join pbx_campanha_lista b on b.cmp_id = a.cmp_id and b.list_status = 1 // inner join pbx_campanha_contato c on c.list_id = b.list_id // where a.id_dac = (select id from pbx_dacs where nome = '$dac') // and a.cmp_status in (1,2)"; // if ($campanha != 0) // $query .= "and a.cmp_id = $campanha"; // $query .= " group by 1,2,3,4,5 // order by 4 // limit 1"; // ////echo $query; // $result = pg_query($dbcon, $query); // $linhas = ""; // $idCampAnt = ''; // while ($row = pg_fetch_array($result)) { // $idList = $row["list_id"]; // $idCamp = $row["cmp_id"]; // $campanha = $row["nome_campanha"]; // $lista = $row["list_nome"]; // $qtdContato = $row["numero_contatos"]; // $qtdDiscado = $row["numero_discado"]; // $qtdRestante = $row["numero_restante"]; // // $linhas .= " // Campanha: $campanha // Lista: $lista // Qtde Contato: $qtdContato // Qtde Discado: $qtdDiscado // Qtde Restante: $qtdRestante // "; // // $sql = "SELECT a.cont_id,'IDENTIFICADOR' as disp_param, a.cont_identificador, // b.disp_param1,a.cont_param1,b.disp_param2,a.cont_param2, // b.disp_param3,a.cont_param3,b.disp_param4,a.cont_param4, // b.disp_param5,a.cont_param5,'AGENTE' as disp_param6,c.apelido, // 'DISCADO' as disp_param7,a.cont_discado,'STATUS' as disp_param8, d.ctst_nome, // 'PENDENTE' as disp_param9, coalesce(e.cmpo_status,-1)as cmpo_status, 'MENSAGEM' as disp_param10, a.cont_msg // FROM pbx_campanha_contato a // inner join pbx_campanha_contato_display b on a.cmp_id = b.cmp_id and a.list_id = b.list_id // left outer join pbx_usuarios c on c.matricula = a.matricula // left outer join pbx_campanha_contato_status d on d.ctst_id = a.cont_status // left outer join pbx_campanha_operacao e on e.cmp_id = a.cmp_id and e.list_id = a.list_id and e.cont_id = a.cont_id // where a.cmp_id = $idCamp // and a.list_id = $idList // order by 1"; // // // // //echo $sql; // $result2 = pg_query($dbcon, $sql); // $numrow = 0; // while ($row = pg_fetch_array($result2)) { // //cabeçalho dinâmico // $idContato = $row["cont_id"]; // $dParam = $row["disp_param"]; // $dParam1 = isset($row["disp_param1"]) ? $row["disp_param1"] : "-"; // $dParam2 = isset($row["disp_param2"]) ? $row["disp_param2"] : "-"; // $dParam3 = isset($row["disp_param3"]) ? $row["disp_param3"] : "-"; // $dParam4 = isset($row["disp_param4"]) ? $row["disp_param4"] : "-"; // $dParam5 = isset($row["disp_param5"]) ? $row["disp_param5"] : "-"; // $dParam6 = isset($row["disp_param6"]) ? $row["disp_param6"] : "-"; // $dParam7 = isset($row["disp_param7"]) ? $row["disp_param7"] : "-"; // $dParam8 = isset($row["disp_param8"]) ? $row["disp_param8"] : "-"; // $dParam9 = isset($row["disp_param9"]) ? $row["disp_param9"] : "-"; // $dParam10 = isset($row["disp_param10"]) ? $row["disp_param10"] : "-"; // //dados da query // $identificador = $row["cont_identificador"]; // $cParam1 = isset($row["cont_param1"]) ? $row["cont_param1"] : "-"; // $cParam2 = isset($row["cont_param2"]) ? $row["cont_param2"] : "-"; // $cParam3 = isset($row["cont_param3"]) ? $row["cont_param3"] : "-"; // $cParam4 = isset($row["cont_param4"]) ? $row["cont_param4"] : "-"; // $cParam5 = isset($row["cont_param5"]) ? $row["cont_param5"] : "-"; // $agente = $row["apelido"]; // $discado = sprintf('', ($row["cont_discado"] == 0) ? "imgSite/fecha16.png" : "imgSite/button_ok16.png", ($row["cont_discado"] == 0) ? "não discado" : "discado"); // $status = $row["ctst_nome"]; // $idStatus = $row["cmpo_status"]; // // if ($idStatus == 0) { // $imgPendente = "imgSite/fecha16.png"; // $titPendente = "pendente"; // } else if ($idStatus == 1) { // $imgPendente = "imgSite/button_ok16.png"; // $titPendente = "encerrado"; // } else { // $imgPendente = "imgSite/cadeado.gif"; // $titPendente = "Não processado"; // } // // $pendente = sprintf('', $imgPendente, $titPendente); // $lkPendente = ($idStatus == 0) ? sprintf("%s", $identificador, $idContato, $idCamp, $idList, $pendente) : $pendente; // $mensagem = $row["cont_msg"]; // // // if ($idCampAnt != $idCamp) { // $linhas .= " // // // // // // // // // // // // // // // "; // } // // $linhas .= " // // // // // // // // // // // // "; // $numrow++; // $idCampAnt = $idCamp; // } // $linhas .= " // // // // // // //
$dParam$dParam1$dParam2$dParam3$dParam4$dParam5$dParam6$dParam8$dParam10$dParam7$dParam9
$identificador$cParam1$cParam2$cParam3$cParam4$cParam5$agente$status$mensagem$discado$lkPendente
Quantidade Total$numrow
-
// "; // } // // $camp = getCamp($dbcon, $campanha); // ////print $linhas; // $smarty->assign('linhas', $linhas); // $smarty->assign('camp', $camp); // $smarty->assign('dac', $dac); // GetTemplate($smarty, $nomeTpl); ?>