✏️ 正在编辑: CallcenterRelatoriosController.php
路径:
/srv/systems_dir/yuppiecred/application/controllers/CallcenterRelatoriosController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php /** * @permissao 0 */ class CallcenterRelatoriosController extends Zend_Controller_Action { public function init() { $this->_helper->layout->setLayout('layout_callcenter'); } /** * @permissao 0 */ public function indexAction() { $this->_redirect('/callcenter-relatorios/painel'); } /** * @permissao 0 */ public function painelAction() { $request = $this->getRequest(); $form = new Form_CallcenterFiltroPainel(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $fields = $form->getValues(); $campanha = new Model_CallcenterCampanha(); //atendimentos por campanha $this->view->atendimentos = $campanha->getAtendimentosPorCampanha($fields); $this->view->atendimentos_status = $campanha->getAtendimentosPorStatus($fields); $this->view->em_atendimento = $campanha->getClientesEmAtendimento($fields); $this->view->qtde_clientes = $campanha->getQtdeClientesCampanha($fields); $form->populate($request->getPost()); } $this->view->form = $form; } /** * @permissao 0 */ public function detalharOperadorCampanhaAction() { $this->_helper->layout->setLayout('layout_popup'); $request = $this->getRequest(); $campanhaId = (int) $request->getParam('campanha_id'); $usuarioId = (int) $request->getParam('usuario'); if( $campanhaId > 0 && $usuarioId > 0 ){ $dataInicial = $request->getParam('data_inicial'); $dataFinal = $request->getParam('data_final'); $campanha = new Model_CallcenterCampanha(); $fields = array( 'usuario' => $usuarioId, 'campanha_id' => $campanhaId ); if( $dataInicial ){ $fields['data_inicial'] = $dataInicial; } if( $dataFinal ){ $fields['data_final'] = $dataFinal; } $this->view->atendimentos = $campanha->getAtendimentosPorStatus($fields); $usuario = new Model_Usuario(); $this->view->dados_operador = $usuario->exibir($usuarioId); $this->view->dados_campanha = $campanha->exibir($campanhaId); $this->view->data_inicial = $dataInicial; $this->view->data_final = $dataFinal; } else { $this->_helper->flashMessenger(array( 'alert' => 'Campanha e/ou operador não identificado(s).' )); } } /** * @permissao 0 */ public function detalharAtendimentosAction() { $this->_helper->layout->setLayout('layout_popup'); $request = $this->getRequest(); $campanhaId = (int) $request->getParam('campanha_id'); $usuarioId = (int) $request->getParam('usuario'); $status = $request->getParam('status'); if( $campanhaId > 0 && $usuarioId > 0 && $status != null ){ $dataInicial = $request->getParam('data_inicial'); $dataFinal = $request->getParam('data_final'); $base = new Model_CallcenterBase(); $fields = array( 'campanha_id' => $campanhaId, 'usuario_ultimo_atendimento' => $usuarioId, 'status_atendimento' => $status ); if( $dataInicial ){ $fields['data_inicial'] = $dataInicial; } if( $dataFinal ){ $fields['data_final'] = $dataFinal; } $this->view->base = $base->listar($fields, 'nome ASC'); // $atendimentos = new Model_CallcenterAtendimento(); // $this->view->base = $atendimentos->listar(array( // 'campanha_id' => $campanhaId, // 'usuario' => $usuarioId, // 'status_atendimento' => $status // ), 'nome ASC'); } else { $this->_helper->flashMessenger(array( 'alert' => 'Campanha e/ou operador e/ou status não identificado(s).' )); } $this->view->usuario = $usuarioId; $this->view->campanha_id = $campanhaId; } /** * @permissao 0 */ public function consultasBeneficiosAction() { $dados = $this->getRequest()->getPost(); $form = new Form_CallcenterFiltroConsultasBeneficios(); if( $dados && ($dados['corretor'] || $dados['tipo'] || $dados['data_inicio']) ){ $where = array(); if( isset($dados['corretor']) && $dados['corretor'] ){ $where[] = "corretor_id = {$dados['corretor']}"; } if( isset($dados['tipo']) && $dados['tipo'] ){ $where[] = "tipo = '{$dados['tipo']}'"; } if( isset($dados['data_inicio']) && $dados['data_inicio'] ){ if( Zend_Date::isDate($dados['data_inicio'], 'dd/MM/yyyy') ){ $dataInicio = new Zend_Date($dados['data_inicio'], 'dd/MM/yyyy'); if( !$dados['data_fim'] ){ $dataFim = Zend_Date::now(); $dados['data_fim'] = $dataFim->get('dd/MM/yyyy'); } else if( Zend_Date::isDate($dados['data_fim'], 'dd/MM/yyyy') ){ $dataFim = new Zend_Date($dados['data_fim'], 'dd/MM/yyyy'); } $where[] = "DATE(data_hora_consulta) >= '" . $dataInicio->get('yyyy-MM-dd') . "'" . " AND DATE(data_hora_consulta) <= '" . $dataFim->get('yyyy-MM-dd') . "'"; } } $consultasMultibr = new Model_DbTable_ConsultaHiscon(); $consultas = $consultasMultibr->fetchAll($where, 'data_hora_consulta DESC'); $this->view->consultas = $consultas; $form->populate($dados); } $this->view->form = $form; } /** * @permissao 0 */ public function atendimentosAction() { $request = $this->getRequest(); $form = new Form_CallcenterFiltroAtendimentos(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $form->populate($request->getPost()); $fields = array_filter($form->getValues()); $mAtendimento = new Model_CallcenterAtendimento(); $atendimentos = $mAtendimento->getAtendimentos($fields, 'data_atendimento DESC'); $this->view->atendimentos = $atendimentos; } $this->view->form = $form; } /** * @permissao 0 */ public function baseAction() { set_time_limit(0); $request = $this->getRequest(); $form = new Form_Filtro_CallcenterRelatorioBase(); $ns = new Zend_Session_Namespace('filtro_relatorio_base'); if ($request->isPost()) { $ns->unsetAll(); $ns->filtro_relatorio_base = $request->getPost(); } $clientes = []; if (isset($ns->filtro_relatorio_base)) { $fields = array_filter($ns->filtro_relatorio_base); unset($fields['btn_filtrar']); if (!$fields) { $this->_helper->flashMessenger([ 'error' => 'Informe ao menos um filtro para exibir os dados' ]); // $this->_helper->redirector('etiquetas'); } $form->populate($fields); if (count($fields) > 0) { $base = new Model_CallcenterBase(); $clientes = $base->listar($fields, 'base.nome'); } } $this->view->clientes = $clientes; $this->view->form = $form; } public function etiquetasAction() { $request = $this->getRequest(); $form = new Form_Filtro_CallcenterRelatorioEtiquetas(); $fields = array_filter($request->getPost()); if( $request->isPost() && $form->isValid($request->getPost()) ){ unset($fields['btn_gerar']); $model = new Model_Campanha(); $clientes = $model->getEtiquetas($fields); try { if( !$clientes ){ throw new Exception("Nenhum registro identificado."); } $pdf = new Zend_Pdf(); $x = 33; $y = 823; $i = 1; foreach ( $clientes as $cliente ) { if( $i == 1 ){ $page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); $cerulean = new Zend_Pdf_Style(); $cerulean->setLineWidth(5); $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA); $cerulean->setFont($font, 7.5); $page->setStyle($cerulean); } $filterUpper = new Zend_Filter_StringToUpper(array( 'encoding' => 'UTF-8' )); $filterCep = new Yuppie_Filter_Cep(); $page->drawText($filterUpper->filter($cliente->nome), $x, $y-=10, 'UTF-8'); $page->drawText($filterUpper->filter($cliente->endereco . ($cliente->numero ? ', ' . $cliente->numero : '')), $x, $y-=10, 'UTF-8'); $page->drawText($filterUpper->filter("{$cliente->bairro} - {$cliente->cidade}/{$cliente->uf}"), $x, $y-=10, 'UTF-8'); $page->drawText($filterCep->filter($cliente->cep), $x, $y-=10, 'UTF-8'); $y -= 65; if( $i++ == 8 ){ $y = 825; $i = 1; $pdf->pages[] = $page; } } $pdf->pages[] = $page; // send to browser as download header("Content-Disposition: attachment; filename=etiquetas-clientes.pdf"); header('Content-Type: application/pdf'); echo $pdf->render(); } catch ( Zend_Pdf_Exception $e ) { die('PDF error: ' . $e->getMessage()); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); $this->_helper->redirector('etiquetas'); } $this->getHelper('Layout')->disableLayout(); $this->getHelper('ViewRenderer')->setNoRender(true); } $this->view->form = $form; } /** * @permissao 0 */ public function extratoLigacoesAction() { $request = $this->getRequest(); $form = new Form_Filtro_CallCenterExtratoLigacoes(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $form->populate($request->getPost()); $fields = array_filter($form->getValues()); $mAtendimento = new Model_CallcenterAtendimento(); $atendimentos = $mAtendimento->getAtendimentosTelefones($fields); $this->view->atendimentos = $atendimentos; } $this->view->form = $form; } public function pausasOperadoresAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioPausasOperador(); if($request->isPost() && $form->isValid($request->getPost())){ $this->view->relatorio = (new Model_CallcenterPausaOperador())->listar($form->getValues()); } $this->view->form = $form; } public function analiseVendasAction() { $request = $this->getRequest(); $form = new Form_Filtro_CallcenterAnaliseVendas(); if ($request->isPost() && $form->isValid($request->getPost())) { $form->populate($request->getPost()); $model = new Model_CallcenterCampanha(); $this->view->relatorio = $model->viewAnaliseVendas($request->getPost()); } $this->view->form = $form; } public function perfilLeadsAction() { $request = $this->getRequest(); $form = new Form_Filtro_CallcenterPerfilLeads(); $ns = new Zend_Session_Namespace('filtro_perfil_leads'); if ($request->isPost() && $form->isValid($request->getPost())) { $ns->unsetAll(); $ns->filtro_perfil_leads = $request->getPost(); } if (isset($ns->filtro_perfil_leads) && count($ns->filtro_perfil_leads) > 0) { $fields = $ns->filtro_perfil_leads; unset($fields['bt_filtrar_leads']); unset($fields['page']); $form->populate($fields); } else { $fields['data_simulacao_de'] = Zend_Date::now()->setDay(1)->get('dd/MM/yyyy'); $fields['data_simulacao_a'] = Zend_Date::now()->get('dd/MM/yyyy'); } $model = new Model_CallcenterBase(); $ticketSaldo = $model->getLeadsTicketMedioSaldo($fields); $ticketContrato = $model->getLeadsTicketMedioContrato($fields); $leadsOrigem = $model->getLeadsOrigem($fields); $leadsReferencia = $model->getLeadsReferencia($fields); $leadsPeriodo = $model->getLeadsPeriodo($fields); $leadsXuf = $model->getLeadsXuf($fields); $leadsXsexo = $model->getLeadsXsexo($fields); $leadsFaixaEtaria = $model->getLeadsFaixaEtaria($fields); $leadsFaixaRenda = $model->getLeadsFaixaRenda($fields); $funilVenbdas = $model->getLeadsFunilVendas($fields); $this->view->form = $form; $this->view->ticketSaldo = $ticketSaldo; $this->view->ticketContrato = $ticketContrato; $this->view->origem = $leadsOrigem; $this->view->referencia = $leadsReferencia; $this->view->rendas = $leadsFaixaRenda; $this->view->funil = $funilVenbdas; if ($request->isXmlHttpRequest()) { $this->_helper->json([ 'periodo' => $leadsPeriodo, 'ufs' => $leadsXuf, 'sexo' => $leadsXsexo, 'idade' => $leadsFaixaEtaria, ]); } } }
💾 保存文件
← 返回文件管理器