✏️ 正在编辑: RelatorioController.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/controllers/RelatorioController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class RelatorioController extends Zend_Controller_Action { /** @var Service_Relatorio_Gerador */ private $service; public function init() { set_time_limit(0); $this->service = service('relatorio'); if (Yuppie_Auth::getIdentity()->grupo == 'Corretor') { $this->_helper->layout->setLayout('layout_corretor'); } } /** * Exibir menu relatórios */ public function indexAction(){} public function producaoAnaliticoAction() { $form = new Form_RelatorioProducaoAnalitico(true); $this->_helper->flashMessenger(['alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.']); $this->view->form = $form; } public function processarProducaoAnaliticoAction() { $request = $this->getRequest(); if (!$request->isXmlHttpRequest()) { $this->_helper->json(['alert' => "Forma de acesso inválida!"]); } $fields = array_filter($request->getPost()); if (empty($fields)){ $this->_helper->json(['alert' => 'Informe uma opção válida de filtro']); } try { $producao = (new Model_Contrato())->getProducaoAnalitico($fields); } catch (Core_Exception $e) { $this->_helper->json(['alert' => $e->getMessage()]); } if (empty($producao)) { $this->_helper->json(['alert' => "Nenhuma informação retornada!"]); } if (!empty($request->getPost('page_excel'))) { $ns = new Zend_Session_Namespace("exportar_excel"); $ns->unsetAll(); $contrato = new Model_Contrato(); $contrato->exportarProducaoAnaliticaCabecalho(); $contrato->exportarProducaoAnalitica($producao); $this->_helper->json(['pages' => 1]); } $this->view->producao = $producao; $this->_helper->json([ 'relatorio' => $this->view->render("relatorio/producao-analitico-body.phtml") ]); } //conferencia individual public function conferenciaComissaoCorretorAction() { $form = new Form_Filtro_RelatorioConferenciaComissaoCorretor(); $request = $this->getRequest(); $comissao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $comissaoCorretor = new Model_ComissionamentoCorretorPercentual(); $comissao = $comissaoCorretor->getComissaoIndividual($fields, $page, 100); $form->populate($fields); } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->comissoes = $comissao; if ($request->isXmlHttpRequest() && $comissao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $comissao->count(), 'readCompleted' => ($comissao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/conferencia-comissao-corretor-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function producaoGerenteAction() { $form = new Form_RelatorioProducaoGerente(); $request = $this->getRequest(); if ( Yuppie_Auth::getIdentity()->grupo == 'Callcenter' && empty(Yuppie_Auth::getIdentity()->corretor_id) ) { $this->_helper->flashMessenger(['alert' => 'Atenção! Seu usuário não possui um corretor.']); $this->_redirect('/index'); } if (!$request->isPost()) { $this->view->form = $form; return; } $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $form->populate($fields); $this->view->producao = (new Model_Contrato()) ->getProducaoGerente($fields, null, null, 'corretores.nome ASC'); if ($request->isXmlHttpRequest()) { $content = $this->view->render('relatorio/producao-gerente-body.phtml'); $this->_helper->json(['relatorio' => $content]); } $this->view->form = $form; } catch (Throwable $throwable) { $this->_helper->json(['alert' => $throwable->getMessage()]); } } public function processarProducaoGerenteAction() { $request = $this->getRequest(); $fields = array_filter($request->getPost()); $page = $request->getPost('page_excel', 1); $contrato = new Model_Contrato(); $contratos = $contrato->getProducaoGerente($fields, null, null, 'corretores.nome ASC'); $ns = new Zend_Session_Namespace('processar_producao_gerente'); $ns->processar_producao_gerente = $contratos; if ($page == 1) { $ns2 = new Zend_Session_Namespace("exportar_excel"); $ns2->unsetAll(); $contrato->exportarProducaoGerenteCabecalho(); } $result = $contrato->exportarProducaoGerente($ns->processar_producao_gerente); if ($request->isXmlHttpRequest() && $result != null) { $this->_helper->json(['result' => $result]); } } public function extratoCorretorAction() { $form = new Form_Filtro_ExtratoCorretor(); $request = $this->getRequest(); $corretorId = $request->getParam('corretor_id'); $producao = array(); $comissoes = array(); $lancamentos = array(); if ($corretorId) { $dados = $request->getParams(); $form->populate($dados); if ($form->isValid($dados)) { $db = new Model_DbTable_Corretor(); $corretor = $db->fetchRow("id = {$corretorId}"); $this->view->corretor = $corretor; $lancamento = new Model_Lancamento(); $lancamentos = $lancamento->getLancamentosPeriodo($dados); } } $this->view->comissoes = $comissoes; $this->view->lancamentos = $lancamentos; $this->view->producao = $producao; $this->view->form = $form; } public function extratoGeralCorretorAction() { $form = new Form_Filtro_ExtratoGeralCorretor(); $request = $this->getRequest(); $lancamentos = array(); $resumo = array(); if ($request->isPost()) { $dados = $request->getPost(); if (isset($dados['corretores'])) { $form->populate($dados); if ($form->isValid($request->getPost())) { $corretoresId = $dados['corretores']; foreach ($corretoresId as $corretorId) { $db = new Model_DbTable_Corretor(); $corretor = $db->fetchRow("id = $corretorId"); $lancamento = new Model_Lancamento(); $dados['corretor_id'] = $corretorId; $lancamentos = $lancamento->getLancamentosPeriodo($dados); $creditos = $debitos = 0; foreach ($lancamentos as $lancamento) { $creditos += substr($lancamento['tipo'], 0, 1) == 'C' ? $lancamento['valor_pago'] : 0; $debitos += substr($lancamento['tipo'], 0, 1) == 'D' ? $lancamento['valor_pago'] : 0; } if (count($lancamentos) > 0) { $resumo["{$corretor['nome']} [ ID {$corretorId} ]"]['creditos'] = $creditos; $resumo["{$corretor['nome']} [ ID {$corretorId} ]"]['debitos'] = $debitos; $resumo["{$corretor['nome']} [ ID {$corretorId} ]"]['corretor_id'] = $corretorId; } } } } else { $this->_helper->flashMessenger(array('alert' => 'Você precisa selecionar ao menos um corretor.')); } } $this->view->resumo = $resumo; $this->view->form = $form; } public function campanhasAction() { $request = $this->getRequest(); $form = new Form_RelatorioCampanha(); if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); $form->populate($fields); $campanha = new Model_Campanha(); $relatorioCampanha = $campanha->relatorioCampanha($fields); $corretor = new Model_Corretor(); $this->view->relatorio = $relatorioCampanha; $this->view->resgates = $corretor->getResgates($form->getValue('campanha_id'), $fields['corretor_id']); } $this->view->form = $form; } public function refinanciamentoAction() { $this->_helper->flashMessenger(array('alert' => 'Atenção! O sistema exibirá os contratos ' . 'emitidos nos últimos 14 meses e que estejam dentro do prazo de refin, ' . 'definido no cadastro de bancos.')); $request = $this->getRequest(); $form = new Form_RelatorioRefinanciamento(); $producao = array(); $page = $request->getPost("page", 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); if ($request->isPost()) { $contrato = new Model_Contrato(); $fields['refinanciamento'] = 1; try { $producao = $contrato->getRefinanciamento($fields, $page, 100, array('corretores.nome ASC', 'clientes.nome ASC', 'contratos.data_liberacao ASC')); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getRefinanciamentoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/refinanciamento-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function despesasAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioDespesa(); $page = $request->getPost("page", 1); $despesas = array(); if ($request->isPost()) { $despesa = new Model_Despesa(); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if (!count(array_filter($fields))) { $this->_helper->json(array( 'alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.', 'readCompleted' => true, 'content' => '', 'body' => false )); } $despesas = $despesa->getDespesas($fields, $page, 100, array('conta_id ASC', 'data_vencimento ASC')); $form->populate($fields); if ($despesas->count() == $page) { $this->view->totalizador = $despesa->getDespesasTotalizador($fields); } } else { $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->despesas = $despesas; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $despesas->count(), 'readCompleted' => ($despesas->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/despesas-body.phtml'), 'body' => false )); } $this->view->form = $form; } public function despesasPorCorretorAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioDespesaPorCorretor(); if ($request->isPost()) { $dados = $request->getPost(); $form->populate($dados); $dados['por_corretor'] = true; $despesa = new Model_Despesa(); $despesas = $despesa->getLancamentos($dados, array('conta_id ASC', 'data_vencimento ASC')); $this->view->despesas = $despesas; } $this->view->form = $form; } public function despesasPorFuncionarioAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioDespesaPorFuncionario(); if ($request->isPost()) { $dados = $request->getPost(); $form->populate($dados); $dados['por_funcionario'] = true; $despesa = new Model_Despesa(); $despesas = $despesa->getLancamentos($dados, array('conta_id ASC', 'data_vencimento ASC')); $this->view->despesas = $despesas; } $this->view->form = $form; } public function despesasPorCategoriaAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioDespesaPorCategoria(); $despesas = array(); $dados = array(); if ($request->isPost() && $form->isValid($request->getPost())) { $dados = $request->getPost(); $form->populate($dados); $dados['por_categoria'] = true; $despesa = new Model_Despesa(); $despesas = $despesa->getLancamentosPorCategoria($dados); } $this->view->despesas = $despesas; $this->view->form = $form; } public function receitasAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioReceita(); if ($request->isPost()) { $form->populate($request->getPost()); $receita = new Model_Receita(); $this->view->receitas = $receita->getLancamentos( $request->getPost(), array('conta_id', 'data_vencimento ASC')); } $this->view->form = $form; } public function imprimirDespesasAction() { $this->_helper->layout->setLayout('layout_impressao'); $busca = new Zend_Session_Namespace('rel_despesas'); $despesas = array(); if (count($busca->rel_despesas) > 0) { $despesa = new Model_Despesa(); $despesas = $despesa->getLancamentos($busca->rel_despesas, 'data_vencimento ASC'); } $this->view->despesas = $despesas; } public function producaoSupervisorAction() { $form = new Form_RelatorioProducaoSupervisor(); $request = $this->getRequest(); $page = $request->getPost('page', 1); $producao = array(); if ($request->isPost()) { $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSupervisor($fields, $page, 100, 'corretores.nome ASC'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSupervisorTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-supervisor-body.phtml'), )); } $this->view->form = $form; } public function graficoProducaoAction() { $request = $this->getRequest(); $form = new Form_RelatorioGraficoProducao(); if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); $grafico = new Model_Grafico(); $fields['estornado'] = 2; $jsGraficos = $grafico->producaoRota($fields); $jsGraficos .= $grafico->producaoStatus($fields); $jsGraficos .= $grafico->producaoPeriodo($fields); $jsGraficos .= $grafico->producaoMensal($fields); $this->view->output_js_gchart = $jsGraficos; $this->view->inicialize_js = Core_GChart::initializeScript(); } $this->view->form = $form; } public function comissaoGerenteAction() { $form = new Form_RelatorioComissaoGerente(); $request = $this->getRequest(); $page = $request->getPost('page', 1); $producao = array(); if ($request->isPost()) { $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $contrato = new Model_Contrato(); $producao = $contrato->getRelatorioComissaoGerente($fields, $page, 100); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getComissaoGerenteTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage(), 'body' => true)); } } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/comissao-gerente-body.phtml'), 'body' => true, )); } $this->view->form = $form; } public function comissaoSupervisorAction() { $form = new Form_RelatorioComissaoSupervisor(); $request = $this->getRequest(); $page = $request->getPost('page', 1); $producao = array(); if ($request->isPost()) { $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $contrato = new Model_Contrato(); $producao = $contrato->getComissaoSupervisor($fields, $page, 100); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getComissaoSupervisorTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage(), 'body' => true)); } } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { die(json_encode(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/comissao-supervisor-body.phtml'), 'body' => true, ))); $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/comissao-supervisor-body.phtml'), 'body' => true, )); } $this->view->form = $form; } public function comissaoPendenteAction() { //data_recebimento_comissao $request = $this->getRequest(); $form = new Form_RelatorioComissaoPendente(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $contrato = new Model_Contrato(); $contratos = $contrato->getComissaoReceber($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getComissaoPendenteTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/comissao-pendente-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function processarComissaoPendenteAction() { $request = $this->getRequest(); $fields = array_filter($request->getPost()); $page = $request->getPost('page_excel', 1); $contrato = new Model_Contrato(); $contratos = $contrato->getComissaoReceber($fields, $page, 100); $ns = new Zend_Session_Namespace('processar_comissao_pendente'); $ns->processar_comissao_pendente = $contratos; if ($page == 1) { $ns2 = new Zend_Session_Namespace("exportar_excel"); $ns2->unsetAll(); $contrato->exportarComissaoPendenteCabecalho(); } $result = $contrato->exportarComissaoPendente($ns->processar_comissao_pendente); if ($request->isXmlHttpRequest() && $result != null) { $this->_helper->json(array( 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'result' => $result )); } } public function rankingFisicosPendentesAction() { $request = $this->getRequest(); $form = new Form_RelatorioRankingFisicosPendentes(); if ($request->isPost()) { $fields = $request->getPost(); $form->populate($fields); $contrato = new Model_Contrato(); $this->view->producao = $contrato->getRankingFisicosPendentes($fields); } $this->view->form = $form; } public function rankingEnviosPendentesAction() { $request = $this->getRequest(); $form = new Form_RelatorioEnviosPendentes(); if ($request->isPost()) { $fields = $request->getPost(); $form->populate($fields); $contrato = new Model_Contrato(); $this->view->producao = $contrato->getRankingEnviosPendentes($fields); } $this->view->form = $form; } public function contratosLiberadosAction() { $request = $this->getRequest(); $form = new Form_RelatorioContratosLiberados(); $contratos = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $contratos = $contrato->getContratosLiberados($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getContratosLiberadosTotalizador($fields); } } catch (Exception $exception) { $this->_helper->json(array('alert' => $exception->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/contratos-liberados-body.phtml') )); } $this->view->form = $form; } public function rankingVendasAction() { $form = new Form_RelatorioRankingVendas(); $request = $this->getRequest(); $producao = array(); if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); $fields['estornado'] = 2; $contrato = new Model_Contrato(); $dtPeriodo2De = new Zend_Date($fields['periodo_data2']); $dtPeriodo1De = new Zend_Date($fields['periodo_data1']); if ($dtPeriodo2De == $dtPeriodo1De) { $this->_helper->flashMessenger(array('alert' => 'Favor informar o período de emissão 2, diferente do período de emissão 1 com outro mês.')); $this->_redirect('relatorio/ranking-vendas'); } if (isset($fields['periodo_data1']) && !empty($fields['periodo_data1']) && isset($fields['periodo_data1_a']) && !empty($fields['periodo_data1_a'])) { $fields['periodo1'] = true; $result1 = (array)$contrato->rankingVendas($fields); $fields['data_de'] = $fields['periodo_data1']; $fields['data_emissao_de'] = $fields['periodo_data1']; $fields['data_a'] = $fields['periodo_data1_a']; $relatorio1 = $contrato->getDadosRelatorioRankingVendas($result1, $fields); unset($fields['data_de']); unset($fields['data_a']); } if (isset($fields['periodo_data2']) && !empty($fields['periodo_data2']) && isset($fields['periodo_data2_a']) && !empty($fields['periodo_data2_a'])) { $fields['periodo1'] = false; $result2 = (array)$contrato->rankingVendas($fields); $fields['data_de'] = $fields['periodo_data2']; $fields['data_a'] = $fields['periodo_data2_a']; $fields['data_emissao_a'] = $fields['periodo_data2_a']; $relatorio2 = $contrato->getDadosRelatorioRankingVendas($result2, $fields); unset($fields['data_de']); unset($fields['data_a']); } $dadosCorretores = array_merge($relatorio1['dados_corretores'], $relatorio2['dados_corretores']); $producao = $contrato->_geraArrayHorizontalRankingVendas($relatorio1['corretores_meses'], $relatorio2['corretores_meses']); if ($producao == NULL) { $this->_helper->flashMessenger(array('alert' => 'Favor informar o período de emissão 2, diferente do período de emissão 1 com outro mês.')); $this->_redirect('relatorio/ranking-vendas'); } $this->view->dados_corretores = $dadosCorretores; $this->view->totais = $producao->totais; $this->view->fields = $fields; $form->populate($request->getPost()); } $this->view->producao = $producao; $this->view->form = $form; } public function producaoSinteticoAction() { $form = new Form_RelatorioProducaoSintetico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSintetico($fields, $page, 100); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-sintetico-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function fisicosPendentesAction() { $this->_helper->flashMessenger(array('info' => 'Informação: ao deixar o filtro status em branco o sistema seta ' . 'o relatório, automaticamente, como sendo Operação Finalizada e Cancelados Itaú.')); $request = $this->getRequest(); $form = new Form_RelatorioFisicosPendentes(); $contratos = $qtdVendida = array(); $totalizador = 0; if ($request->isPost() && $form->isValid($request->getPost())) { $fields = array_filter($request->getPost()); try { $contrato = new Model_Contrato(); $contratos = $contrato->getFormalizacaoFisicosPendentes($fields, null, null, [ 'corretores.nome ASC', 'contratos.data_liberacao', 'clientes.nome ASC' ]); $qtdVendida = $contrato->getQuantidadeVendida($fields); $form->populate($fields); } catch (Exception $exception) { $this->_helper->json(array('alert' => $exception->getMessage())); } } $this->view->qtd_vendida = $qtdVendida; $this->view->totalizador = $totalizador; $this->view->contratos = $contratos; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'relatorio' => $this->view->render('relatorio/fisicos-pendentes-body.phtml'), )); } $this->view->form = $form; } public function processarFisicosPendentesAction() { $request = $this->getRequest(); $page = $request->getPost('page_excel'); $contrato = new Model_Contrato(); $contratos = $contrato->getFormalizacaoFisicosPendentes( $request->getParams(), null, null, ['corretores.nome ASC', 'contratos.data_liberacao', 'clientes.nome ASC'] ); $ns = new Zend_Session_Namespace('processar_excel'); $ns->processar_excel = $contratos; if ($page == 1) { $ns2 = new Zend_Session_Namespace("exportar_excel"); $ns2->unsetAll(); $contrato->exportarFisicosPendentesCabecalho(); } $result = $contrato->exportarFisicosPendentes($ns->processar_excel); if ($request->isXmlHttpRequest() && $result != null) { $this->_helper->json(['result' => $result]); } } public function producaoFormalizacaoAction() { $form = new Form_RelatorioProducaoAnalitico(true); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoFormalizacao($fields, 'corretores.nome ASC', $page, 100); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoFormalizacaoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-formalizacao-body.phtml') )); } $this->view->form = $form; } public function processarProducaoFormalizacaoAction() { $request = $this->getRequest(); $fields = array_filter($request->getPost()); $page = $request->getPost('page_excel'); $contrato = new Model_Contrato(); try { $contratos = $contrato->getProducaoFormalizacao($fields, 'corretores.nome ASC'); $ns = new Zend_Session_Namespace('processar_producao_formalizacao'); $ns->processar_producao_formalizacao = $contratos; if ($page == 1) { $ns2 = new Zend_Session_Namespace("exportar_excel"); $ns2->unsetAll(); $contrato->exportarProducaoFormalizacaoCabecalho(); $this->_helper->json([ 'result' => $contrato->exportarProducaoFormalizacao($ns->processar_producao_formalizacao) ]); } if ($request->isXmlHttpRequest()) { $this->view->producao = $contratos; $this->_helper->json([ 'relatorio' => $this->view->render('relatorio/producao-formalizacao-body.phtml') ]); } } catch (Throwable $throwable) { $this->_helper->json(['alert' => $throwable->getMessage()]); } } public function downloadExcelAction() { $ns = new Zend_Session_Namespace("exportar_excel"); $usuario = Yuppie_Auth::getIdentity()->login; $relatorio = "relatorio-de-{$ns->exportar_excel['relatorio_excel']}-{$usuario}.csv"; $caminho = "/downloads/{$relatorio}"; unset($ns->exportar_excel['relatorio_excel']); $fileName = getcwd() . $caminho; $fp = fopen($fileName, "w+"); $txt = utf8_decode(implode("\n", $ns->exportar_excel)); fwrite($fp, $txt); fclose($fp); header('Content-Type: text/csv'); header("Content-Disposition: attachment;filename={$relatorio}"); header('Cache-Control: max-age=0'); readfile(getcwd() . $caminho); unset($ns->exportar_excel); exit; } public function analiseHorizontalAction() { $request = $this->getRequest(); $form = new Form_RelatorioDespesasCategoria(); if ($request->isPost() && $form->isValid($request->getPost())) { $form->populate($request->getPost()); $categoria = new Model_Categoria(); $periodos = (new Model_Lancamento())->getPeriodosAnaliseHorizontal($request); if (count($periodos) > 12) { $this->_helper->flashMessenger(array('alert' => 'O período não pode ser maior do que 12 meses' )); } else { $filtros = $form->getValues(); $categorias = $categoria->listarSubcategorias( $request->getPost('categorias')); $despesas = array(); foreach ($categorias as $categoriaId => $categ) { foreach ($periodos as $mes) { $despesas[$categoriaId][$mes] = $categoria->exibirDespesas( $categoriaId, $mes, $filtros['empresa_id'], $filtros['fornecedores'], $filtros['competencia'] ); } } $this->view->periodos = $periodos; $this->view->categorias = $categorias; $this->view->filtros = $filtros; $this->view->despesas = $despesas; } } $this->view->form = $form; } public function posVendaAction() { $request = $this->getRequest(); $fields = $request->getPost(); $form = new Form_Filtro_ProspectoContato(); $form->populate($fields); if ($request->isPost()) { $prospectoContato = new Model_ProspectoContato(); $contatos = $prospectoContato->fetchAllDependents($fields); $this->view->contatos = $contatos; } $this->view->form = $form; } public function lucratividadeAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioLucratividade(); if ($request->isPost() && $form->isValid($request->getPost())) { $form->populate($request->getPost()); $corretor = new Model_Corretor(); $corretores = $corretor->getCorretoresProducaoDespesa($request->getPost()); $this->view->corretores = $corretores; } $this->view->form = $form; } public function impostoAction() { $request = $this->getRequest(); $form = new Form_RelatorioImposto(); if ($request->isPost() && $form->isValid($request->getPost())) { $contrato = new Model_Contrato(); $contratos = $contrato->getRelatorioImposto(array( 'periodo_de' => $request->getPost('data_liberacao_de'), 'periodo_a' => $request->getPost('data_liberacao_a') )); $this->view->contratos = $contratos; } $this->view->form = $form; } public function producaoCorretorAction() { $form = new Form_RelatorioProducaoCorretor(); $request = $this->getRequest(); $producao = []; $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['btn_export']); if (Yuppie_Auth::getIdentity()->grupo == 'Corretor') { $fields['corretor_id'] = Yuppie_Auth::getIdentity()->id; $fields['estornado'] = 2; $form->removeElement('corretor_id'); } elseif (Yuppie_Auth::getIdentity()->corretor_id > 0) { $fields['corretor_id'] = Yuppie_Auth::getIdentity()->corretor_id; $fields['estornado'] = 2; $form->removeElement('corretor_id'); } elseif (Yuppie_Auth::getIdentity()->grupo == 'Callcenter') { if (empty(Yuppie_Auth::getIdentity()->corretor_id)) { $this->_helper->flashMessenger(array('alert' => 'Atenção! Seu usuário não possui um corretor.')); $this->_redirect('/index'); } } if ($request->isPost() && $form->isValid($request->getPost()) ) { $contrato = new Model_Contrato(); $fields['cartao_corretor'] = true; $producao = $contrato->getProducaoAnaliticoCorretor($fields); $form->populate($fields); $exportar = $request->getPost('btn_export'); if ($producao && $exportar) { $fileName = $contrato->exportarProducaoCorretor($producao); $this->getHelper('Layout')->disableLayout(); $this->getHelper('ViewRenderer')->setNoRender(true); header('Content-Type: text/csv'); header("Content-Disposition: attachment;filename={$fileName}"); header('Cache-Control: max-age=0'); readfile(getcwd() . "/downloads/" . $fileName); unlink(getcwd() . "/downloads/" . $fileName); exit; } } else { $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; $this->view->form = $form; } public function semProducaoCorretorAction() { $request = $this->getRequest(); $form = new Form_RelatorioCorretorSemProducao(); if ($request->isPost() && $form->isValid($request->getPost())) { $contrato = new Model_Contrato(); $corretores = $contrato->corretorSemProducao($request->getPost()); $this->view->corretores = $corretores; } $this->view->form = $form; } public function debitosCorretoresAction() { $request = $this->getRequest(); $form = new Form_Filtro_DebitosCorretores(); if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); $form->populate($fields); $model = new Model_Lancamento(); $result = $model->getDebitosCorretores($fields); $this->view->corretores = $result; } $this->view->form = $form; } public function fisicosRecepcionadosAction() { $request = $this->getRequest(); $form = new Form_Filtro_FisicosRecepcionados(); $page = $request->getPost('page', 1); $filtrar = new Zend_Session_Namespace('filtro_fisicos'); $result = null; $fields = array(); if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); unset($fields['btn_filtrar']); unset($fields['page']); $filtrar->unsetAll(); $filtrar->filtro_fisicos = array_filter($fields); } if (isset($filtrar->filtro_fisicos) && count($filtrar->filtro_fisicos) > 0) { $form->populate($filtrar->filtro_fisicos); $fields = $filtrar->filtro_fisicos; $model = new Model_Contrato(); $result = $model->getFisicosRecepcionados($fields, $page, 100); $result->setCurrentPageNumber($this->_getParam('page', 1)); } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.' )); } $this->view->fisicos_recepcionados = $result; $this->view->form = $form; } public function recebimentoBradescoAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoBradesco(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção! Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoBradesco($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoBradescoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } $this->view->tipo_relatorio = $request->getPost('tipo_relatorio'); } $this->view->producao = $contratos; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-bradesco-body.phtml') )); } $this->view->form = $form; } public function recebimentoMercantilAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoMercantil(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção!!! Nome do Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoMercantil($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoMercantilTotalizador($fields); } } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-mercantil-body.phtml') )); } $this->view->form = $form; } public function recebimentoBvAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoBv(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção!!! Nome do Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoBv($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoBvTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-bv-body.phtml') )); } $this->view->form = $form; } public function recebimentoPanAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoPan(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção!!! Nome do Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoPan($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoPanTotalizador($fields); } } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-pan-body.phtml') )); } $this->view->form = $form; } /** * Comissão Bonsucesso */ public function recebimentoBonsucessoAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoBonsucesso(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção!!! Nome do Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoBonsucesso($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoBonsucessoTotalizador($fields); } } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-bonsucesso-body.phtml') )); } $this->view->form = $form; } /** * Comissão Bmg */ public function recebimentoBmgAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoBmg(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção!!! Nome do Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoBmg($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoBmgTotalizador($fields); } } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-bmg-body.phtml') )); } $this->view->form = $form; } public function recebimentoBanrisulAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoBanrisul(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { if (!isset($fields['banco_id']) && empty($fields['banco_id'])) { throw new Exception("Atenção!!! Nome do Banco não localizado."); } $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoBanrisul($fields, $page, 100, null); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoBanrisulTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-banrisul-body.phtml') )); } $this->view->form = $form; } public function recebimentoGenericoAction() { $request = $this->getRequest(); $form = new Form_Filtro_RecebimentoGenerico(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); try { $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoGenerico($fields, $page, 100); $form->populate($fields); } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/recebimento-generico-body.phtml') )); } $this->view->form = $form; } public function pagamentoSupervisoresAction() { $form = new Form_Filtro_PagamentoSupervisores(); $ns = new Zend_Session_Namespace(); $verificarComissao = $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'pagar-comissao-supervisor') ? true : false; if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) { $pagamentoSupervisor = new Model_ProtocoloPagamentoSupervisor(); $protocolos = $pagamentoSupervisor->listarProtocolos($form->getValues()); $this->view->protocolos = $protocolos; } $this->view->acl = $verificarComissao; $this->view->form = $form; } public function pagamentoGerentesAction() { $form = new Form_Filtro_PagamentoGerentes(); if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) { $pagamentoSupervisor = new Model_ProtocoloPagamentoGerente(); $protocolos = $pagamentoSupervisor->listarProtocolos($form->getValues()); $this->view->protocolos = $protocolos; } $this->view->form = $form; } public function extratoBancarioAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioExtratoBancario(); $result = array(); $ns = new Zend_Session_Namespace('extrato_bancario'); if ($request->isPost() && $form->isValid($request->getPost())) { $ns->unsetAll(); $ns->extrato_bancario = $request->getPost(); } if (count($ns->extrato_bancario) > 0) { unset($ns->extrato_bancario['btn_filtrar']); try { $contrato = new Model_Contrato(); $result = $contrato->getRelatorioExtratoBancario($ns->extrato_bancario); $form->populate($ns->extrato_bancario); } catch (Zend_Exception $exception) { $this->_helper->FlashMessenger(array('alert' => $exception->getMessage())); } } $this->view->extrato_bancario = $result; $this->view->form = $form; } public function digitacaoSinteticoAction() { $form = new Form_Filtro_RelatorioDigitacaoSintetico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getRelatorioDigitacaoSintetica($fields, null, $page, 100); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getRelatorioDigitacaoSinteticaTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/digitacao-sintetico-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function solicitacaoRecursoAction() { $request = $this->getRequest(); $form = new Form_RelatorioSolicitacaoRecurso(); $result = array(); $ns = new Zend_Session_Namespace('relatorio_solicitacao_recurso'); if ($request->isPost() && $form->isValid($request->getPost())) { $ns->unsetAll(); $ns->relatorio_solicitacao_recurso = $request->getPost(); } if (count($ns->relatorio_solicitacao_recurso) > 0) { unset($ns->relatorio_solicitacao_recurso['btn_filtrar']); try { $model = new Model_SolicitacaoRecurso(); $result = $model->getRelatorioSolicitacao($ns->relatorio_solicitacao_recurso); $form->populate($ns->relatorio_solicitacao_recurso); } catch (Zend_Exception $exception) { $this->_helper->FlashMessenger(array('alert' => $exception->getMessage())); } } $this->view->solicitacoes = $result; $this->view->form = $form; } public function acoesJudiciaisAction() { $request = $this->getRequest(); $params = $request->getParams(); $contratoId = $request->getParam('contrato_id'); $form = new Form_RelatorioAcoesJudiciais(); $acoesJudiciais = array(); if ($request->isPost() || $contratoId) { $contrato = new Model_Contrato(); $acoesJudiciais = $contrato->fetchAcoesJudiciais($params); $form->populate($params); } $this->view->acoesJudiciais = $acoesJudiciais; $this->view->contratoId = $contratoId; $this->view->form = $form; } public function propostaUsuarioDigitadoAction() { $form = new Form_Filtro_RelatorioPropostaUsuarioDigitado(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getRelatorioPropostaUsuarioDigitado($fields, null, $page, 100); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getRelatorioPropostaUsuarioDigitadoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/proposta-usuario-digitado-body.phtml'), )); } $this->view->form = $form; } public function corrigirContratosComissaoAction() { $request = $this->getRequest(); $form = new Form_Filtro_CorrigirContratosComissao(); $contratos = array(); $page = $request->getPost('page', 1); if ($request->isPost()) { $form->populate($request->getPost()); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $contrato = new Model_Contrato(); $contratos = $contrato->getRecebimentoMercantil($fields, $page, 100); $form->populate($fields); if ($contratos->count() == $page) { $this->view->totalizador = $contrato->getRecebimentoMercantilTotalizador($fields); } } catch (Zend_Db_Exception $dbException) { Yuppie_Log::write($dbException->getMessage() . "\n" . $dbException->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->producao = $contratos; if ($request->isXmlHttpRequest() && $contratos != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/corrigir-contratos-comissao-body.phtml') )); } $this->view->form = $form; } public function fluxoDreAction() { $form = new Form_Filtro_FluxoDre(); $request = $this->getRequest(); $contrato = new Model_Contrato(); $fields = array_filter($request->getPost()); $lancamentos = array(); $data = null; if ($request->isPost() && $form->isValid($request->getPost())) { unset($fields['btn_filtrar']); $date = new Zend_Date($fields['data_competencia']); $data = "- " . $date->get('MM/yyyy'); $lancamentos = $contrato->getFluxoDre($fields); } $this->view->data = $data; $this->view->lancamentos = $lancamentos; $this->view->form = $form; } public function acompanhamentoDiferidoAction() { $request = $this->getRequest(); $form = new Form_Filtro_AcompanhamentoDiferido(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { if ($form->isValid($fields)) { try { $contrato = new Model_Contrato(); $producao = $contrato->getAcompanhamentoDiferido($fields, $page, 100, null); $form->populate($fields); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage(), 'body' => true)); } } else { $this->_helper->json(array('alert' => "Atenção! Preencha os campos obrigatórios (*).", 'body' => true)); } } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/acompanhamento-diferido-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function faixaProducaoCorretorAction() { $form = new Form_FaixaProducaoCorretor(); $formDialog = new Form_BonificacaoCorretor(); $corretorMeta = new Model_CorretorMeta(); $contratoModel = new Model_Contrato(); $producao = null; $request = $this->getRequest(); $params = $request->getParams(); $producaoNovo = array(); /** * @todo * Retirar essa mensagem quando melhorar a parte de pagamento de comissão por meta */ $this->_helper->FlashMessenger([ 'info' => "Esta tela está sendo melhorada, por isso o formulário " . "de atribução das comissões, foi retirado temporariamente. <br>" . "O relatório pode ser utilizado normalmente para fins de pagamento de comissão por meta alcançada!" ]); if ($request->isPost() && $form->isValid($request->getPost())) { $form->populate($params); $producaoMeta = $corretorMeta->getMetaProducao($params); // Dados da Meta foreach ($producaoMeta as $meta) { if ($meta['protocolo_fisico']) { $meta['fisico_recebido'] = "RECEBIDO"; } unset($meta['protocolo_fisico']); $meta['data_emissao_de'] = $params['data_inicial']; $meta['data_emissao_a'] = $params['data_final']; $producao = $contratoModel->getProducaoCorretor($meta); // Dados do contrato if (!$producao) { continue; } foreach ($producao as $p) { if ($p['base_comissao_valor'] >= $meta['producao_inicial'] && $p['base_comissao_valor'] <= $meta['producao_final']) { $producaoNovo[] = array( 'banco_nome' => $p['banco_nome'], 'corretor' => $p['corretor'], 'corretor_id' => $p['corretor_id'], 'base_comissao_valor' => $p['base_comissao_valor'], 'producao_inicial' => $meta['producao_inicial'], 'producao_final' => $meta['producao_final'], 'producao_comissao' => $meta['producao_comissao'], 'valor_comissao_empresa' => $p['valor_comissao_empresa'], 'valor_comissao_liquido' => $p['base_comissao_valor'] * $meta['producao_comissao'] / 100, ); } } } } $this->view->metas = $producaoNovo; $this->view->form = $form; $this->view->formDialog = $formDialog; } public function projecaoSupervisorAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioProjecaoSupervisor(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); $result = null; if ($request->isPost()) { $fields['projecao_supervisor'] = true; $fields['supervisor'] = true; $fields['supervisor_id'] = $fields['gerente_id']; $model = new Model_GerenteRota(); try { $result = $model->relatorioProducaoComercial($fields, $page, 100, null); } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->desempenho_comercial = $result; if ($request->isXmlHttpRequest() && $result != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $result->count(), 'readCompleted' => ($result->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/projecao-supervisor-body.phtml') )); } elseif (!$result && $request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => 'Nenhum registro encontrado.', )); } $this->view->form = $form; } public function projecaoGerenteComercialAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioProjecaoGerente(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); $result = null; if ($request->isPost()) { $fields['projecao_gerente'] = true; $model = new Model_GerenteRota(); try { $result = $model->relatorioProducaoComercial($fields, $page, 100, null, null, '_selectDesempenhoComercial'); $result2 = $model->relatorioProducaoComercial($fields, $page, 100, null, null, '_selectDesempenhoComercial2'); if ($result2) { $result = array_merge_recursive((array)$result->getIterator(), (array)$result2->getIterator()); $adapter = new Zend_Paginator_Adapter_Array($result); $result = new Zend_Paginator($adapter); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } $this->view->desempenho_comercial = $result; if ($request->isXmlHttpRequest() && $result != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $result->count(), 'readCompleted' => ($result->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/projecao-gerente-body.phtml') )); } elseif (!$result && $request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => 'Nenhum registro encontrado.', )); } $this->view->form = $form; } public function producaoRotaAction() { $form = new Form_RelatorioProducaoAnalitico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSinteticoAgrupado($fields, 'rotas.nome ASC', $page, 100, 'rotas.id', 'rotas.excluido <> 1'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoAgrupadoTotalizador($fields, 'rotas.excluido <> 1'); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-rota-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function producaoConvenioAction() { $form = new Form_RelatorioProducaoAnalitico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSinteticoAgrupado($fields, 'convenios.nome ASC', $page, 100, 'convenios.id', 'convenios.excluido <> 1'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoAgrupadoTotalizador($fields, 'convenios.excluido <> 1'); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-convenio-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function producaoBancoAction() { $form = new Form_RelatorioProducaoAnalitico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSinteticoAgrupado($fields, 'bancos.nome ASC', $page, 100, 'bancos.id', 'bancos.excluido <> 1'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoAgrupadoTotalizador($fields, 'bancos.excluido <> 1'); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-banco-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function tabelasNovasAction() { $this->_helper->layout->setLayout("layout_popup"); $tabelaNova = new Model_Tabela(); $registros = $tabelaNova->searchNewTables(); $this->view->producao = $registros; } public function consultasBeneficiosAction() { $form = new Form_CallcenterFiltroConsultasBeneficios(); $request = $this->getRequest(); $fields = array_filter($request->getPost()); $consultas = array(); if ($request->isPost() && !$form->isValid($request->getPost())) { unset($fields['btn_filtrar']); $consultasMultibr = new Model_DbTable_ConsultaHiscon(); if (isset($fields['corretor_id']) && $fields['corretor_id']) { $this->_helper->flashMessenger(array('info' => 'O saldo para consultas é: ' . $consultasMultibr->calculaCreditosRestantes($fields['corretor_id']))); } try { $consultas = $consultasMultibr->getConsultasNb($fields, 'data_hora_consulta DESC'); } catch (Exception $e) { $this->_helper->flashMessenger(array('alert' => $e->getMessage())); } $form->populate($fields); } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.' )); } $this->view->consultas = $consultas; $this->view->form = $form; } public function consultasBeneficiosSinteticoAction() { $form = new Form_CallcenterFiltroConsultasBeneficios(); $request = $this->getRequest(); $fields = array_filter($request->getPost()); $consultas = array(); if ($request->isPost() && !$form->isValid($request->getPost())) { unset($fields['btn_filtrar']); $consultasMultibr = new Model_DbTable_ConsultaHiscon(); if (isset($fields['corretor_id']) && $fields['corretor_id']) { $this->_helper->flashMessenger(array('info' => 'O saldo para consultas é: ' . $consultasMultibr->calculaCreditosRestantes($fields['corretor_id']))); } try { $consultas = $consultasMultibr->getConsultasNbSintetico($fields, 'corretores.nome DESC'); } catch (Exception $e) { $this->_helper->flashMessenger(array('alert' => $e->getMessage())); } $form->populate($fields); } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.' )); } $this->view->consultas = $consultas; $this->view->form = $form; } public function campanhaRankAction() { $request = $this->getRequest(); $params = $request->getParams(); $form = new Form_RelatorioCampanha(); $form->removeElement('corretor_id'); $rank = null; $dbtable = new Model_DbTable_Campanha(); if ($request->isPost() && $form->isValid($params)) { $campanha = new Model_Campanha(); $rank = $campanha->rankValores($params); $regra = $dbtable->getById($params['campanha_id']); $this->view->rank = $rank; $this->view->regras = $regra; } $this->view->form = $form; } public function atendimentoCorretorAnaliticoAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioAtendimentoCorretorAnalitico(); $fields = array_filter($request->getPost()); $analitico = array(); if ($request->isPost() && $form->isValid($request->getPost())) { $model = new Model_AtendimentoCorretor(); $analitico = $model->getLigacoesAnalitico($fields); } $this->view->analitico = $analitico; $this->view->form = $form; } public function atendimentoCorretorSinteticoAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioAtendimentoCorretorSintetico(); $fields = array_filter($request->getPost()); $sintetico = array(); if ($request->isPost() && $form->isValid($request->getPost())) { $model = new Model_AtendimentoCorretor(); $sintetico = $model->getLigacoesSintetico($fields); } $this->view->sintetico = $sintetico; $this->view->form = $form; } /** * Gráfico Análise de Vendas */ public function acompanhamentoVendaAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioAcompanhamentoVenda(); $showDashboards = false; $jsGraficos = null; if ($request->isPost() && $form->isValid($request->getPost())) { $grafico = new Model_Grafico(); $fields = $request->getPost(); $fields['estornado'] = 2; try { if (empty($fields['data_liberacao_de']) && empty($fields['data_liberacao_a']) && empty($fields['data_emissao_de']) && empty($fields['data_emissao_a'])) { throw new Exception("Utilize o filtro de data de liberação ou data de emissão."); } $jsGraficos = $grafico->producaoAgrupadaPor($fields, 'tipo', 'Tipo de Produto', 0, 'drawPieChart', 'contratos.tipo IS NOT NULL'); $jsGraficos .= $grafico->producaoAgrupadaPor($fields, 'convenio', 'Convênio', 1, 'drawColumnChart', 'convenios.nome IS NOT NULL'); $jsGraficos .= $grafico->producaoAgrupadaPor($fields, 'uf', 'Estado', 2, 'drawColumnChart', 'corretores.uf IS NOT NULL'); $jsGraficos .= $grafico->producaoAgrupadaPor($fields, 'empresa', 'Filial', 3, 'drawPieChart', 'empresas.nome IS NOT NULL'); if ($jsGraficos) { $showDashboards = true; } } catch (Zend_Db_Exception $e) { Yuppie_Log::write($e->getMessage() . "\n" . $e->getTraceAsString(), $this); $this->_helper->flashMessenger(array('alert' => "Erro na consulta ao banco de dados")); } catch (Exception $e) { $this->_helper->flashMessenger(array('alert' => $e->getMessage())); } $this->view->output_js_gchart = $jsGraficos; $this->view->inicialize_js = Core_GChart::initializeScript(); } else { $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->show_dashboards = $showDashboards; $this->view->form = $form; } /** * Análise Desempenho Corretor */ public function tabelaGeralCorretorAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioTabelaGeralCorretor(); $result = array(); if ($request->isPost() && $form->isValid($request->getPost())) { $model = new Model_Contrato(); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); try { $result = $model->getTabelaGeralCorretor($fields); } catch (Exception $e) { $this->_helper->flashMessenger(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->paginator = $result; $this->view->form = $form; } public function pendenciasEsteiraBancoAction() { $form = new Form_RelatorioProducaoCorretor(); $request = $this->getRequest(); $producao = array(); $fields = array_filter($request->getPost()); if ($request->isPost() && count($fields) > 0) { unset($fields['btn_filtrar']); $fields['esteira_banco'] = 1; if (Yuppie_Auth::getIdentity()->grupo == 'Corretor') { $fields['corretor_id'] = Yuppie_Auth::getIdentity()->id; $form->removeElement('corretor_id'); } elseif (Yuppie_Auth::getIdentity()->corretor_id > 0) { $fields['corretor_id'] = Yuppie_Auth::getIdentity()->corretor_id; $form->removeElement('corretor_id'); } elseif (Yuppie_Auth::getIdentity()->grupo == 'Callcenter') { if (empty(Yuppie_Auth::getIdentity()->corretor_id)) { $this->_helper->flashMessenger(array('alert' => 'Atenção! Seu usuário não possui um corretor.')); $this->_redirect('/index'); } } $contrato = new Model_Contrato(); $producao = $contrato->getProducaoAnalitico($fields); $form->populate($fields); $exportar = $request->getPost('btn_export'); if ($producao && $exportar) { $fileName = $contrato->exportarProducaoCorretor($producao); $this->getHelper('Layout')->disableLayout(); $this->getHelper('ViewRenderer')->setNoRender(true); $url = "http://" . $_SERVER['HTTP_HOST'] . $this->getRequest()->getBaseUrl() . "/downloads/" . $fileName; header('Content-Type: text/csv'); header("Content-Disposition: attachment;filename={$fileName}"); header('Cache-Control: max-age=0'); readfile($url); unlink(getcwd() . "/downloads/" . $fileName); exit; } } else { $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; $this->view->form = $form; } /* * Contratos a recuperar */ public function contratosRecuperarAction() { $form = new Form_Filtro_ContratosRecuperar(); $request = $this->getRequest(); $producao = array(); $form->populate($request->getPost()); $fields = array_filter($form->getValues()); if (Yuppie_Auth::getIdentity()->grupo == 'Corretor') { $fields['corretor_id'] = Yuppie_Auth::getIdentity()->id; $form->removeElement('corretor_id'); } elseif (Yuppie_Auth::getIdentity()->corretor_id > 0) { $fields['corretor_id'] = Yuppie_Auth::getIdentity()->corretor_id; $form->removeElement('corretor_id'); } elseif (Yuppie_Auth::getIdentity()->grupo == 'Callcenter' && empty(Yuppie_Auth::getIdentity()->corretor_id)) { $this->_helper->flashMessenger(array('alert' => 'Atenção! Seu usuário não possui um corretor.')); $this->_redirect('/index'); } if ($request->isPost() || count($fields)) { if (count($fields) > 0) { $contrato = new Model_Contrato(); $fields["solucao_pendencia"] = "not null"; $producao = $contrato->getContratosRecuperar($fields); $form->populate($fields); if ($producao && $request->getPost('btn_export')) { $fileName = $contrato->exportarProducaoCorretor($producao); $this->getHelper('Layout')->disableLayout(); $this->getHelper('ViewRenderer')->setNoRender(true); $url = "http://" . $_SERVER['HTTP_HOST'] . $this->getRequest()->getBaseUrl() . "/downloads/" . $fileName; header('Content-Type: text/csv'); header("Content-Disposition: attachment;filename={$fileName}"); header('Cache-Control: max-age=0'); readfile($url); unlink(getcwd() . "/downloads/$fileName"); exit; } } else { $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } } $this->view->producao = $producao; $this->view->form = $form; } public function mediaComissionamentoAction() { $request = $this->getRequest(); $form = new Form_Filtro_MediaComissionamento(); $fields = array_filter($request->getPost()); $this->_helper->flashMessenger(array('alert' => 'Atenção! São exibidos apenas os tipos de contratos com comissão cadastrada.')); if ($request->isPost() && $form->isValid($fields)) { $form->populate($fields); $corretor = new Model_Corretor(); $mediasCorretores = $corretor->getMediaComissionamento($fields); $this->view->corretores = $mediasCorretores; } $this->view->form = $form; } public function pmtAction() { $request = $this->getRequest(); $params = $request->getParams(); $form = new Form_Filtro_Pmt(); $parcelas = null; if ($request->isPost() && $form->isValid($params)) { $contratosModel = new Model_Contrato(); $parcelas = $contratosModel->pmt($params); if (count($parcelas) > 0) { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $data = new Zend_Date($form->getValue('data_liberacao'), 'MM/yyyy'); $output = fopen("php://output", 'w') or die("Can't open php://output"); $filename = "Relatorio_PMT_" . $data->get('MMyyyy') . ".csv"; header("Content-Type:application/csv"); header("Content-Disposition:attachment;filename={$filename}"); fputcsv($output, array('N Contrato', 'Parcela', 'Emissao', 'Liberacao', 'CPF Cliente', 'Nome Cliente', 'Convenio', 'Tabela', 'Tipo', 'Prazo', 'Base Comissão', '% Previsto', 'R$ Previsto', '% Recebido', 'R$ Recebido', 'Data Saldo', 'Data Recebimento'), ";"); foreach ($parcelas as $parcela) { fputcsv($output, $parcela, ";"); } fclose($output) or die("Can't close php://output"); } else { $this->_helper->flashMessenger(array( 'alert' => 'Não foi encontrada nenhuma parcela para este período.' )); } } $this->view->form = $form; } public function producaoAnualAction() { $form = new Form_Filtro_RelatorioProducaoAnual(); if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) { $dbtable = new Model_DbTable_Contrato(); $this->view->producao = $dbtable->getProducaoAnual($form->getValues()); } $this->view->form = $form; } public function opsAction() { $page = $this->getRequest()->getPost('page', 1); $form = new Form_Filtro_Ops(); if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) { $contrato = new Model_Contrato(); $fields = $form->getValues(); $this->view->paginator = $contrato->getContratos($fields, $page, 100, array('data_emissao ASC', 'contratos.id ASC')); } $this->view->form = $form; } public function saldosMbAction() { $request = $this->getRequest(); $form = new Form_Filtro_RelatorioSaldoMb(); if ($request->isPost()) { $dados = $request->getPost(); if (isset($dados['corretor_id']) && !empty($dados['corretor_id'])) { $corretorId = $dados['corretor_id']; } else { $corretorId = null; } $form->populate($dados); $consultaMultiBr = new Model_DbTable_ConsultaHiscon(); $this->view->data = $consultaMultiBr->saldosMb($corretorId); } $this->view->form = $form; } public function previsaoCorretorAction() { $request = $this->getRequest(); $this->_helper->flashMessenger(array('info' => 'Estornos e devoluções aparecerão independente do filtro utilizado.')); $form = new Form_Filtro_RelatorioPrevisaoCorretor(); $form->populate($request->getPost()); $this->view->form = $form; if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); $fields['corretores'] = Yuppie_Auth::getIdentity()->id; $fields['status_proposta'] = 43; //Operação Finalizada $contrato = new Model_Contrato(); try { $corretorContratos = array(); $corretoresPendencia = (new Model_DbTable_CorretorPendenciaFisico()) ->selectCorretoresLista($fields['corretores']); $corretoresIdsPendencia = array_column($corretoresPendencia, "id"); $contratos = $contrato->getComissaoPagar($fields); if (count($contratos)) { foreach ($contratos as $contrato) { $corretorId = $contrato['corretor_id']; if ($contrato['pendente'] > 0) { $corretorContratos[$corretorId]['info']['pendente'] = $contrato['pendente']; } $index = array_search($corretorId, $corretoresIdsPendencia); $corretorContratos[$corretorId]['info']['pendencia'] = $index !== false ? $corretoresPendencia[$index] : null; $contrato['comissao'] = $contrato['base_comissao_valor'] * $contrato['comissao_corretor'] / 100; $contrato['bonus'] = $contrato['base_comissao_bonus'] * $contrato['bonus_corretor'] / 100; $totais = array( 'total_comissao' => ($contrato['estornado']) ? -$contrato['comissao'] : $contrato['comissao'], 'total_bonus' => $contrato['bonus'], 'total_liquido' => $contrato['valor_liquido'], 'total_bruto' => $contrato['valor_bruto'] ); array_push($corretorContratos[$corretorId], $contrato); foreach ($totais as $total => $valor) { if (!isset($corretorContratos[$corretorId]['info'][$total])) { $corretorContratos[$corretorId]['info'][$total] = $valor; } else { $corretorContratos[$corretorId]['info'][$total] += $valor; } } } } else { $this->_helper->flashMessenger(array('alert' => 'Nenhum contrato encontrado.')); } $this->view->corretores_pendencia = $corretoresIdsPendencia; $this->view->corretor_contratos = $corretorContratos; } catch (Exception $e) { $this->_helper->getHelper('layout')->disableLayout(); $this->_helper->viewRenderer->setNoRender(); echo $e; } } } public function diarioRotaAction() { $form = new Form_Filtro_RelatorioDiarioRota(); $request = $this->getRequest(); if ($request->isPost() && $form->isValid($request->getPost())) { $diario = new Model_DiarioRota(); $this->view->diarios = $diario->getVisitas($form->getValues()); } $this->view->form = $form; } public function producaoTipoProdutoAction() { $form = new Form_RelatorioProducaoAnalitico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSinteticoAgrupado($fields, 'contratos.tipo ASC', $page, 100, 'contratos.tipo'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoAgrupadoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-tipo-produto-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function producaoSupervisorAgrupadoAction() { $form = new Form_RelatorioProducaoAnalitico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSinteticoAgrupado($fields, 'supervisores.nome ASC', $page, 100, 'supervisores.id'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoAgrupadoTotalizador($fields); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-supervisor-agrupado-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function producaoSupervisorBancoAction() { $form = new Form_RelatorioProducaoAnalitico(); $request = $this->getRequest(); $producao = array(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); if ($request->isPost()) { try { $contrato = new Model_Contrato(); $producao = $contrato->getProducaoSinteticoAgrupado($fields, 'bancos.nome ASC', $page, 100, new Zend_Db_Expr("bancos.id, supervisores.id"), 'bancos.excluido <> 1'); $form->populate($fields); if ($producao->count() == $page) { $this->view->totalizador = $contrato->getProducaoSinteticoAgrupadoTotalizador($fields, 'bancos.excluido <> 1'); } } catch (Exception $e) { $this->_helper->json(array('alert' => $e->getMessage())); } } else { $element = $form->getElement('status_proposta'); $statusId = Model_Contrato::findByNameStatus("Operação Finalizada"); $element->setValue($statusId); $this->_helper->flashMessenger(array('alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.')); } $this->view->producao = $producao; if ($request->isXmlHttpRequest() && $producao != null) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $producao->count(), 'readCompleted' => ($producao->count() == $page) ? true : false, 'content' => $this->view->render('relatorio/producao-supervisor-banco-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function notificarCorretorSemProducaoAction() { $request = $this->getRequest(); $corretores = $request->getPost("corretores"); $cont = 0; if (!empty($corretores)) { $corretorModel = new Model_Corretor(); foreach ($corretores as $corretorId) { $corretor = $corretorModel->exibir($corretorId); $email = new Core_Mail(); try { $email->enviarMensagemHtml( $corretor->nome, $corretor->email, "Vamos produzir", $this->view->render("relatorio/notificar-corretor-sem-producao.phtml") ); $cont++; } catch (Exception $e) { $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } } } } public function contratosCanceladosAction() { $request = $this->getRequest(); $form = new Form_RelatorioContratosCancelados(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $this->view->contratos = (new Model_DbTable_Contrato())->getContratosCancelados($form->getValues()); } $this->view->form = $form; } public function valoresRecuperarAction() { $request = $this->getRequest(); $form = new Form_Filtro_ValoresRecuperarCorretor(); if ($request->isPost() && $form->isValid($request->getPost())) { $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); count($fields) <= 0 ? $this->_helper->flashMessenger(['error' => 'Atenção! Você deve informar pelo menos uma opção de busca.']) : $this->view->contratos = (new Model_ProtocoloContrato)->getValoresRecuperar($request->getParam('corretor_id'), $fields); } $this->view->form = $form; } public function producaoAnaliticoTipoAction() { $form = new Form_RelatorioProducaoAnalitico(true); $this->_helper->flashMessenger(['alert' => 'Atenção! Escolha pelo menos uma opção de filtragem.']); $this->view->form = $form; } public function processarProducaoAnaliticoTipoAction() { $request = $this->getRequest(); if (!$request->isXmlHttpRequest()) { $this->_helper->json(['alert' => "Forma de acesso inválida!"]); } $fields = array_filter($request->getPost()); if (empty($fields)) { $this->_helper->json(['alert' => 'Informe uma opção válida de filtro']); } try { $producao = (new Model_Contrato())->getProducaoAnalitico($fields, null, null, 'tipo'); } catch (Core_Exception $e) { $this->_helper->json(['alert' => $e->getMessage()]); } if (empty($producao)) { $this->_helper->json(['alert' => "Nenhuma informação retornada!"]); } if (!empty($request->getPost('page_excel'))) { $ns = new Zend_Session_Namespace("exportar_excel"); $ns->unsetAll(); $contrato = new Model_Contrato(); $contrato->exportarProducaoAnaliticaCabecalho(); $contrato->exportarProducaoAnalitica($producao); $this->_helper->json(['pages' => 1]); } $this->view->producao = $producao; $this->_helper->json([ 'relatorio' => $this->view->render("relatorio/producao-analitico-body-tipo.phtml") ]); } }
💾 保存文件
← 返回文件管理器