✏️ 正在编辑: CorretorController.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/controllers/CorretorController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Modules\SimulacaoAberta\Service\SimulacaoAbertaService; class CorretorController extends Zend_Controller_Action { private $_mensagemCorretor = null; private $_bucketFolder = 'corretores'; private const LINKS_PROPOSTA = [ 'NOVO' => 'NOVO', 'SAQUE' => 'SAQUE', 'PORTABILIDADE' => 'PORTABILIDADE', 'REFINANCIAMENTO' => 'REFINANCIAMENTO' ]; private const LINKS_SIMULACAO = [ 'FGTS' => 'AUTO-CONTRATAÇÃO FGTS', 'INSS' => 'AUTO-CONTRATAÇÃO INSS', 'CAPTURA DE LEADS' => 'CAPTURA DE LEADS' ]; public function init() { if (Yuppie_Auth::getIdentity()->grupo == 'Corretor' || Yuppie_Auth::getIdentity()->grupo == 'Afiliado') { $this->_helper->layout->setLayout('layout_corretor'); } } public function indexAction() { $form = new Form_Filtro_Corretor(); $request = $this->getRequest(); $ns = new Zend_Session_Namespace('filtro_corretores'); if( $request->isPost() ){ $ns->unsetAll(); $ns->filtro_corretores = $request->getPost(); } if( count($ns->filtro_corretores) > 0 ){ $form->populate($ns->filtro_corretores); $dbtable = new Model_DbTable_Corretor(); try{ $this->view->paginator = $dbtable->fetchAllDependents($ns->filtro_corretores, array( "corretores.id", "corretores.nome", "corretores.celular", "corretores.cpf", "corretores.uf", "corretores.cidade", "corretores.email", "corretores.apelido", "corretores.grupo_comissao", "corretores.corretor_desativado" )); } catch( Zend_Db_Statement_Exception $e ){ $this->_helper->flashMessenger(array( 'error' => 'Erro na consulta! Verifique seus parâmetros de busca.' )); } catch( Core_Exception $e ){ $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } } $this->view->form = $form; $formUpdate = new Form_CorretorUpdate(); $this->view->formUpdateCorretor = $formUpdate; } /** * Salvar Corretor */ public function saveAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $form = new Form_Corretor(); if( $request->isPost() ){ $dadosPost = $request->getPost(); if( $form->isValid($request->getPost()) ){ if( isset($dadosPost['acesso_temporario']) && !empty($dadosPost['acesso_temporario']) ){ $dateNow = Zend_Date::now()->addDay(10)->get('dd/MM/yyyy'); $dadosPost['data_temporario_app'] = $dateNow; } try { $corretor = new Model_Corretor($dadosPost); $alterando = 0; if( $corretor->getId() > 0 ){ $alterando = 1; $corretor->setAttDadosCorretor(1); } $result = $corretor->salvar($corretor); if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Dados salvos com sucesso.' )); //faz o envio apenas se estiver cadastrando if( !$alterando ){ $this->_redirect('corretor/save-confirm/id/' . $result); } } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Os dados não foram salvos.' )); } } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Dados inválidos.' )); } } if( $id > 0 ){ $corretor = new Model_Corretor(); $dados = $corretor->exibir($id); $form->populate($dados->toArray()); //exibe o formulário para anexar documentos $formDocumento = new Form_CorretorDocumento(); $this->view->form_corretor_documento = $formDocumento; $documento = new Model_CorretorDocumento(); $documentos = $documento->listar(array( 'corretor_id' => $id )); $formSenha = new Form_CorretorSenha(); $this->view->form_corretor_senha = $formSenha; $senha = new Model_CorretorSenha(); $senhas = $senha->listar(array( 'corretor_id' => $id )); $formCredito = new Form_CorretorCredito(); $this->view->form_corretor_credito = $formCredito; $credito = new Model_CorretorCredito(); $creditos = $credito->listar(array( 'corretor_id' => $id )); $formEmailAdicional = new Form_CorretorEmailAdicional(); $this->view->form_corretor_email = $formEmailAdicional; $emailAdicional = new Model_CorretorEmail(); $emailAdicionais = $emailAdicional->listar(array( 'corretor_id' => $id )); $formMetas = new Form_CorretorMeta(); $this->view->form_corretor_meta = $formMetas; $meta = new Model_CorretorMeta(); $metas = $meta->stats($id); $formCorretorPrazoBanco = new Form_CorretorPrazoBanco(); $this->view->form_corretor_banco_prazo = $formCorretorPrazoBanco; $prazo = new Model_CorretorPrazoBanco(); $prazos = $prazo->listar("corretor_id = $id"); $formCorretorBancosAtribuidos = new Form_CorretorBancosAtribuidos(); $this->view->form_corretor_bancos_atribuidos = $formCorretorBancosAtribuidos; $atribuido = new Model_CorretorBancosAtribuidos(); $atribuidos = $atribuido->listar("corretor_id = $id"); $contratoModel = new Model_DbTable_Contrato(); $this->view->pendenciaFisico = $contratoModel->corretorComPendencia($id); $this->view->protocolos = $corretor->getProtocolos($id, 20); $this->view->dados_corretor = $dados; $campanha = new Model_Campanha(); $this->view->campanhas = $campanha->listar(null, array( "data_inicial ASC", "data_final ASC" )); //checa se existe corretor no cadastro de usuario, para exibir a aba de metas $usuario = new Model_Usuario(); $this->view->check_operador = $usuario->checkOperadorCorretor($id); $formMetasOperador = new Form_CorretorMetasOperador(); $this->view->form_metas_operador = $formMetasOperador; $metaOperador = new Model_CorretorMetaOperador(); $metasOperador = $metaOperador->listar('corretor_id=' . $id); //consulta benefícios $dbtable = new Model_DbTable_ConsultaHiscon(); $this->view->saldo_consultas = $dbtable->calculaCreditosAvulsosRestantes($id); $this->view->metas = $metas; $this->view->prazos = $prazos; $this->view->atribuidos = $atribuidos; $this->view->metas_operador = $metasOperador; $this->view->email_adicional = $emailAdicionais; $this->view->documentos = $documentos; $this->view->senhas = $senhas; $this->view->creditos = $creditos; } $this->view->form = $form; } /** * Atualizar Corretor */ public function updateAction() { $this->_helper->viewRenderer->setRender('save'); $this->saveAction(); } /** * Confirmar/Salvar Corretor para enviar mensagem de boas vindas */ public function saveConfirmAction() { $request = $this->getRequest(); $id = $request->getParam('id'); if( $request->isPost() ){ $corretor = (new Model_Corretor())->exibir($id); $corretor->senha = base64_encode($corretor->id); $corretor->mudar_senha = 1; $corretor->save(); $this->view->corretor = $corretor; $model = new Model_Corretor($corretor->toArray()); $result = $model->enviarMensagemBoasVindas($this->view->render('corretor/notificacao-cadastro.phtml'), $this->view); $this->_helper->flashMessenger([$result['status'] ? "success" : "error" => $result['msg']]); $this->_redirect('corretor/save/id/' . $id); } $this->view->reenvio = $request->getParam('reenvio'); $this->view->corretor = (new Model_Corretor())->exibir($id); } public function deleteAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); if( $id > 0 ){ $modelSenha = new Model_CorretorSenha(); $fields['corretor_id'] = $id; $corretorSenha = $modelSenha->listar($fields); if( $corretorSenha ){ foreach ( $corretorSenha as $senhas ) { $modelSenha->excluir($senhas->id); } } $corretor = new Model_Corretor(); $corretor->excluir($id); $this->_helper->flashMessenger(array( 'success' => 'Registro excluído com sucesso.' )); } $this->_redirect('/corretor'); } public function addDocumentoAction() { $request = $this->getRequest(); if ($request->isPost()) { $fields = $request->getPost(); try{ Upload::save((new Zend_File_Transfer_Adapter_Http()), $fields, $this->_bucketFolder); $documento = new Model_CorretorDocumento($fields); $result = $documento->salvar($documento); } catch (Zend_Db_Exception $ex) { $result = null; $this->_helper->flashMessenger(['error' => "Não foi possível gravar o anexo no banco de dados."]); } catch (Exception $e){ $result = null; $this->_helper->flashMessenger(['error' => $e->getMessage()]); } if ($result) { $this->_helper->flashMessenger(['success' => 'Documento adicionado com sucesso.']); } else { $this->_helper->flashMessenger(['alert' => 'Atenção! O documento não foi anexado.']); } } $this->_helper->redirector('save', null, null, array( 'id' => $request->getParam('corretor_id') )); } public function deleteDocumentoAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); if( $id > 0 ){ $documento = new Model_CorretorDocumento(); $anexo = $documento->exibir($id); try{ Upload::deleteObject($anexo['anexo'], $this->_bucketFolder); $result = $documento->excluir($id); } catch (Exception $ex) { $this->_helper->flashMessenger(['error' => $ex->getMessage()]); } if ($result) { $this->_helper->flashMessenger(['success' => 'Documento removido com sucesso.']); } else { $this->_helper->flashMessenger(['alert' => 'Atenção! O documento não foi removido.']); } } $this->_helper->redirector('save', null, null, array( 'id' => $request->getParam('corretor_id') )); } public function downloadDocumentoAction() { $anexoUrl = $this->getRequest()->getParam('anexo_url'); Upload::download($anexoUrl, $this->_bucketFolder); } public function addSenhaAction() { $request = $this->getRequest(); $form = new Form_CorretorSenha(); $result = null; if( $request->isPost() && $form->isValid($request->getPost()) ){ $corretorSenha = new Model_CorretorSenha($form->getValues()); try{ $result = $corretorSenha->salvar($corretorSenha); $this->_helper->flashMessenger($result); }catch (Core_Exception $e){ $this->_helper->flashMessenger(array("error" => $e->getMessage())); } } $this->_redirect('/corretor/save/id/' . $form->getValue('corretor_id') . '/#mytabcontainer-frag-4'); } public function deleteSenhaAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $result = null; if( $id > 0 ){ $corretorSenha = new Model_CorretorSenha(); $result = $corretorSenha->excluir($id); if( $result ){ $this->_helper->flashMessenger(array( 'success' => 'Registro excluido com sucesso!' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro foi alterado!' )); } } $this->_redirect('/corretor/save/id/' . $request->getParam('corretor_id') . '/#mytabcontainer-frag-4'); } public function meusProtocolosAction() { $ns = new Zend_Session_Namespace(); $acl = $ns->acl; $corretor = new Model_Corretor(); $corretorId = Yuppie_Auth::getIdentity()->id; if (Yuppie_Auth::getIdentity()->grupo == "Callcenter") { $corretorId = Yuppie_Auth::getIdentity()->corretor_id; } if (!$acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'pagar-corretores-fisicos-pendentes')) { $corretorPendencia = (new Model_DbTable_CorretorPendenciaFisico())->selectPendenciasAcessoCorretor(); if ($corretorPendencia && $corretorPendencia['prazo'] < $corretorPendencia['dias_atraso']) { $this->_helper->flashMessenger([ 'error' => 'Prezado Parceiro, você possui pendência de físico ' . 'ou reabertura banco que podem estar bloqueando comissões. ' . '(Verifique e regularize para recebimento).' ]); } } $this->view->protocolos = $corretor->getProtocolos($corretorId); } public function detalharProtocoloAction() { $this->_helper->layout->setLayout('layout_impressao'); $request = $this->getRequest(); $protocoloId = (int)$request->getParam('protocolo_id', 0); if( !$protocoloId ){ die("Protocolo inválido"); } $protocolo = new Model_ProtocoloPagamento(); $dadosProtocolo = $protocolo->exibir($protocoloId); try { $contratos = array(); if( $dadosProtocolo != null ){ if( $dadosProtocolo->corretor_id != Yuppie_Auth::getIdentity()->id ){ die("Protocolo inválido"); } $protocoloContrato = new Model_ProtocoloContrato(); $contratos = $protocoloContrato->getContratosPorProtocolo($protocoloId); } } catch ( Exception $ex ) { $this->_helper->flashMessenger(array( 'alert' => $ex->getMessage() )); } $this->view->protocolo = $dadosProtocolo; $this->view->contratos = $contratos; } public function meusContratosAction() { $form = new Form_Filtro_ContratosCorretor(); $request = $this->getRequest(); $fields = array(); $adapter = null; if( $request->isPost() && $form->isValid($request->getPost()) ){ $form->populate($request->getPost()); $fields = $request->getPost(); $dbtable = new Model_Contrato(); $fields['cartao_corretor'] = true; /** * @todo * Retatorar: criar método específico para realizar essa consulta */ $adapter = $dbtable->getContratos($fields, null, null, 'data_emissao ASC'); } $this->view->paginator = $adapter; $this->view->form = $form; } public function meusPontosAction() { $request = $this->getRequest(); $form = new Form_Filtro_PontosCorretor(); $producao = array(); if( $request->isPost() ){ $form->populate($request->getPost()); if( $form->isValid($request->getPost()) ){ $fields = $form->getValues(); $fields['corretor_id'] = Yuppie_Auth::getIdentity()->id; if( Yuppie_Auth::getIdentity()->grupo != "Corretor" ){ $fields['corretor_id'] = Yuppie_Auth::getIdentity()->corretor_id; } $campanha = new Model_Campanha(); $producao = $campanha->auditoriaCampanha($fields); $corretor = new Model_Corretor(); $this->view->resgates = $corretor->getResgates($form->getValue('campanha_id'), Yuppie_Auth::getIdentity()->id); $this->view->dados_campanha = $campanha->exibir($form->getValue('campanha_id')); } } $this->view->producao = $producao; $this->view->form = $form; } public function viewAction() { if( $this->_mensagemCorretor ){ $this->_helper->flashMessenger(array( 'alert' => $this->_mensagemCorretor )); } $request = $this->getRequest(); $id = (int) $request->getParam('id'); $form = new Form_Corretor(); $form->removeElement('btn_save'); $form->removeElement('btn_new'); $form->setAttrib('onsubmit', "return false;"); $documentos = array(); $senhas = array(); if( $id > 0 ){ $corretor = new Model_Corretor(); $dados = $corretor->exibir($id); $form->populate($dados->toArray()); //exibe o formulário para anexar documentos $this->view->form_corretor_documento = null; $documento = new Model_CorretorDocumento(); $documentos = $documento->listar(array( 'corretor_id' => $id )); $this->view->form_corretor_senha = null; $senha = new Model_CorretorSenha(); $senhas = $senha->listar(array( 'corretor_id' => $id )); $this->view->protocolos = $corretor->getProtocolos($id, 5); $this->view->dados_corretor = $dados; $campanha = new Model_Campanha(); $this->view->campanhas = $campanha->listar(null, array( 'data_inicial ASC', 'data_final ASC' )); } $this->view->documentos = $documentos; $this->view->senhas = $senhas; $this->view->form = $form; } public function addCreditoAction() { $request = $this->getRequest(); $form = new Form_CorretorCredito(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $corretorCredito = new Model_CorretorCredito($form->getValues()); $corretorCredito->salvar($corretorCredito); } $this->_redirect('/corretor/save/id/' . $form->getValue('corretor_id')); } public function deleteCreditoAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); if( $id > 0 ){ $corretorCredito = new Model_CorretorCredito(); try { $corretorCredito->excluir($id); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } } $this->_redirect('/corretor/save/id/' . $request->getParam('corretor_id')); } public function listarAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $model = new Model_Corretor(); $corretores = $model->getCorretores("nome LIKE '%" . $this->_getParam('term') . "%'"); echo Zend_Json::encode($corretores); } public function getCidadesAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $model = new Model_Corretor(); $corretores = $model->listar("cidade LIKE '%" . $this->_getParam('term') . "%'"); $values = array(); foreach ( $corretores as $value ) { if( !in_array($value['cidade'], $values) ) array_push($values, $value['cidade']); } echo Zend_Json::encode($values); } public function minhasPendenciasFisicoAction() { $request = $this->getRequest(); $form = new Form_Filtro_Fisicos(); $contratos = array(); $fields = $request->getParams(); if( $request->isPost() && $form->isValid($request->getParams()) ){ $contrato = new Model_Contrato(); $fields['cartao_corretor'] = true; $contratos = $contrato->getFormalizacaoFisicosPendentes($fields, null, null, array( 'contratos.data_liberacao ASC', 'clientes.nome ASC' )); } $this->view->form = $form; $this->view->fisicos_pendentes = $contratos; } public function minhasConsistenciasAction() { $request = $this->getRequest(); $form = new Form_Filtro_ConsistenciasCorretor(); $contratos = array(); $fields = $request->getParams(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $fields['corretor_id'] = Yuppie_Auth::getIdentity()->grupo == "Corretor" ? Yuppie_Auth::getIdentity()->id : (!empty(Yuppie_Auth::getIdentity()->corretor_id) ? Yuppie_Auth::getIdentity()->corretor_id : Yuppie_Auth::getIdentity()->id); $contrato = new Model_ContratoPendencia(); $contratos = $contrato->listar($fields); } $this->view->form = $form; $this->view->consistencias = $contratos; } public function simuladorAction() { $this->_helper->layout->setLayout('layout_popup'); $formSimulador = new Form_SimuladorTabelaFator(); $formSimulador->setAction( $this->view->url(array( 'action' => 'calcular-fator' ))); $this->view->form = $formSimulador; } public function calcularFatorAction() { $dados = $this->getRequest()->getPost(); $formSimulador = new Form_SimuladorTabelaFator(); if( $formSimulador->isValid($dados) ){ $result = $formSimulador->calculaAvulso($dados); if( !empty($result) && $result['emprestimo'] < 0){ $this->_helper->json([ 'status' => 0, 'msg' => 'Operação inviável. O valor liberado não pode ser negativo.' ]); }elseif( !empty($result) ){ $this->view->valores = $result; $this->_helper->json([ 'status' => 1, 'content' => $this->view->render('corretor/calcular-fator.phtml') ]); } else { $this->_helper->json([ 'status' => 0, 'msg' => 'Não foi possível calcular com os dados fornecidos' ]); } } $this->_helper->json([ 'status' => 0, 'msg' => 'Dados insuficientes para calcular' ]); } public function tabelaFatoresAction() { $banco = $this->_getParam('banco'); $convenio = $this->_getParam('convenio'); $fatores = array(); if( $banco || $convenio ){ $where = ''; if( $banco ){ $where .= "banco_id = {$banco}"; } if( $convenio ){ if( $where ){ $where .= ' AND '; } $where .= "convenio_id = {$convenio}"; } $dbtable = new Model_DbTable_TabelaFator(); $fatores = $dbtable->fetchAll($where); } $form = new Form_Filtro_CorretorTabelaFatores(); $form->populate($this->getRequest()->getPost()); $this->view->form = $form; $this->view->fatores = $fatores; } public function operadorCampanhasAction() { $this->_helper->layout->setLayout('layout_popup'); $usuarioId = $this->getRequest()->getParam('id'); $dbtable = new Model_DbTable_CallcenterCampanhaOperador(); $campanhas = $dbtable->fetchAll('operador_id = ' . $usuarioId); $this->view->campanhas = $campanhas; } public function minhasComissoesAction() { $form = new Form_Filtro_ComissoesCorretor(); $request = $this->getRequest(); $page = $request->getParam('page', 1); $fields = array_filter($request->getPost()); $comissoesCorretor = null; unset($fields['btn_filtrar']); unset($fields['page']); if( $request->isPost() ){ try { $comissaoCorretor = new Model_ComissionamentoCorretorPercentual(); $comissoesCorretor = $comissaoCorretor->listar($fields, $page, 100); $form->populate($fields); } catch ( Exception $e ) { $this->_helper->json(array( 'alert' => $e->getMessage() )); } } $this->view->comissoes = $comissoesCorretor; if( $request->isXmlHttpRequest() && $comissoesCorretor != null ){ $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $comissoesCorretor->count(), 'readCompleted' => ($comissoesCorretor->count() == $page) ? true : false, 'content' => $this->view->render('corretor/minhas-comissoes-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function minhasComissoesGrupoAction() { $request = $this->getRequest(); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); $comissoesGrupo = null; unset($fields['btn_filtrar']); unset($fields['page']); if( $request->isPost() ){ try { $comissaoGrupo = new Model_ComissionamentoGrupoPercentual(); $comissoesGrupo = $comissaoGrupo->listar($fields, $page, 100); } catch ( Exception $e ) { $this->_helper->json(array( 'alert' => $e->getMessage() )); } } $this->view->comissoes_grupo = $comissoesGrupo; if( $request->isXmlHttpRequest() && $comissoesGrupo != null ){ $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $comissoesGrupo->count(), 'readCompleted' => ($comissoesGrupo->count() == $page) ? true : false, 'content' => $this->view->render('corretor/minhas-comissoes-grupo-body.phtml'), 'body' => true )); } } public function listarPorCidadeAction() { $uf = $this->_getParam('uf'); $dbtable = new Model_DbTable_Corretor(); $corretores = $dbtable->listarPorCidade($uf); $this->view->corretores = $corretores; } /** * Visualizar o saldo atual do corretor (financeiro) */ public function getSaldoAtualCorretorAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $corretorId = (int) $this->getRequest()->getParam('corretor_id'); if( $corretorId > 0 ){ $corretor = new Model_Corretor(); $dados = $corretor->getSaldoCorretor(Zend_Date::now()->get('yyyy-MM')); if( $dados != null ){ $dados = $dados[0]; $saldo = ($dados['total_credito_anterior'] - $dados['total_debito_anterior']); $saldo += ($dados['total_credito'] - $dados['total_debito']); echo Zend_Json::encode(array( 'result' => $saldo )); } } } public function baixarProtocoloAction() { require_once("Dompdf/dompdf_config.inc.php"); $request = $this->getRequest(); $protocoloId = (int) $request->getParam('protocolo_id'); if( $protocoloId > 0 ){ $protocolo = new Model_ProtocoloPagamento(); $dadosProtocolos = $protocolo->exibir($protocoloId); } $contratos = array(); if( $dadosProtocolos != null ){ if( $dadosProtocolos->corretor_id != Yuppie_Auth::getIdentity()->id ){ die("Protocolo inválido"); } $protocoloContrato = new Model_ProtocoloContrato(); $contratos = $protocoloContrato->getContratosPorProtocolo($protocoloId); } $this->view->protocolo = $dadosProtocolos; $this->view->contratos = $contratos; //exportar pdf $protocoloHtml = $this->view->render("corretor/protocolo-pdf.phtml"); $filename = "protocolo-{$protocoloId}.pdf"; $pdf = new DOMPDF(); $pdf->load_html($protocoloHtml, "UTF-8"); //por padrão é A4 $tamanho_papel = array( 0, 0, 1100, 840 ); $pdf->set_paper($tamanho_papel); $pdf->render(); $pdf->stream($filename); exit(0); } public function baixarProtocoloExcelAction() { $request = $this->getRequest(); $protocoloId = (int) $request->getParam('protocolo_id'); if( $protocoloId > 0 ){ $protocolo = new Model_ProtocoloPagamento(); $dadosProtocolos = $protocolo->exibir($protocoloId); } $contratos = array(); if( $dadosProtocolos != null ){ if( $dadosProtocolos->corretor_id != Yuppie_Auth::getIdentity()->id ){ die("Protocolo inválido"); } $protocoloContrato = new Model_ProtocoloContrato(); $contratos = $protocoloContrato->getContratosPorProtocolo($protocoloId); } $modelCorretor = new Model_Corretor(); $fileName = $modelCorretor->exportarProtocoloCorretorExcel($contratos, $dadosProtocolos); $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; } public function alterarBancoUsuarioAction() { $request = $this->getRequest(); $result = null; if( $request->isPost() ){ $id = (int) $request->getPost('id'); $bancoId = $request->getPost('banco_id'); $model = new Model_CorretorSenha(); try { $result = $model->atualizarBancoUsuario($id, $bancoId); } catch ( Exception $e ) { $this->_helper->json(array( 'alert' => $e->getMessage() )); } } $this->_helper->json(array( 'result' => ($result != null ? 1 : 0), 'banco' => Model_Banco::bancoPorId($bancoId) )); } public function alterarGrupoCorretorAction() { $request = $this->getRequest(); $dbtable = new Model_DbTable_Corretor(); $result = null; $cont = 0; if( $request->isPost() ){ $corretores = $request->getPost('corretores'); $grupoComissao = $request->getPost('grupo_comissao'); if( $grupoComissao ){ foreach ( $corretores as $corretorId ) { $result = $dbtable->update(array( 'grupo_comissao' => $grupoComissao ), "id = " . $corretorId); $cont++; } } if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => "{$cont} Registro(s) alterado(s) com sucesso." )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro foi alterado.' )); } } $this->_helper->redirector('index'); } public function getValidarCpfCorretorAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $request = $this->getRequest(); $cpf = $request->getParam('cpf'); $exist = array(); if( $cpf != null ){ $model = new Model_Corretor(); $values = $model->listar("cpf = '$cpf'", "nome ASC"); if( $values->toArray() != null ) $exist = array( 'exist_cpf' => true ); echo Zend_Json::encode($exist); } } public function editarCorretoresAction() { $request = $this->getRequest(); if( $request->isPost() ){ $corretores = explode(', ', ltrim($request->getPost('corretores_updates'))); if( !$corretores || count($corretores) == 0 ){ $this->_helper->flashMessenger(array( 'error' => 'Selecione os corretores que deseja alterar' )); $this->_helper->redirector('index'); return; } $acoes = array_filter($request->getPost('fields'), function($value){return strlen($value); }); $prazos = $request->getPost('add_prazo'); $acoes = array_merge($acoes, $prazos); if( empty($acoes) ){ $this->_helper->flashMessenger(array( 'error' => 'Selecione uma ação a ser executada.' )); $this->_helper->redirector('index'); return; } try { $corretor = new Model_Corretor(); $result = $corretor->alterarVarios($corretores, $acoes); if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => "$result Registro(s) alterado(s) com sucesso." )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro foi alterado.' )); } } catch ( Zend_Exception $e ) { $this->_helper->flashMessenger($e->getMessage()); } } $this->_helper->redirector('index'); } public function regularizarPendenciaAction() { $request = $this->getRequest(); $contratoId = $request->getParam('id', 0); $form = new Form_RegularizarPendencia(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $upload = new Zend_File_Transfer_Adapter_Http(); $upload->setDestination(UPLOAD_PATH); $files = []; try { foreach ( $upload->getFileInfo() as $file => $info ) { $fname = time() . "-" . str_replace(" ", "_", $info['name']); $upload->addFilter(new Zend_Filter_File_Rename([ 'target' => UPLOAD_PATH . '/' . $fname, 'overwrite' => false ])); if ($upload->receive($file)){ $files[$file] = $fname; } } } catch ( Zend_File_Transfer_Exception $e ) { $this->_helper->flashMessenger(['error' => $e->getMessage()]); } try { $contrato = new Model_Contrato(); $result = $contrato->regularizarPendencia( $contratoId, $files['arquivo'], $form->getValue('tipo_documento') ); if( $result ){ $this->_helper->flashMessenger([ 'success' => "Documento enviado com sucesso. Aguarde nosso setor de formalização identificar." ]); // $dadosContrato = $contrato->exibir($request->getParam('id')); // Core_Notificacao_PushBrowser::notify( // "regularizarPendencias", // "Regularização de pendencias", // "Contrato: {$dadosContrato->numero_contrato}" // ); } else { $this->_helper->flashMessenger([ 'alert' => "Nenhuma informação foi adicionada." ]); } } catch ( Exception $e ) { $this->_helper->flashMessenger(['alert' => $e->getMessage()]); } } $dbDocumento = new Model_DbTable_PendenciaRegularizar(); $where = ["contrato_id = ?" => $contratoId]; $this->view->documentos = $dbDocumento->fetchAll($where); $this->view->form = $form; } public function borderoAction() { $request = $this->getRequest(); $form = new Form_Filtro_BorderoCorretor(); $fields = array_filter($request->getPost()); $contratos = array(); unset($fields['btn_filtrar']); $sess = new Model_YuppieSessionWrapper(); $carrinho = $sess->getSessVar('carrinho'); if( $request->getParam('new') == 1 ){ $sess->emptySess('carrinho'); } if( isset($carrinho) && !empty($carrinho) ){ $this->_helper->flashMessenger(array( 'alert' => "Para visualizar seu envelope <a href='visualizar-envelope' target='_blank'>clique aqui</a>." )); } if( $request->isPost() && $form->isValid($request->getPost()) ){ if( count(array_filter($form->getValues())) <= 0 ){ $this->_helper->flashMessenger(array( 'error' => "Informe pelo menos uma opção de busca." )); } else { $contrato = new Model_Contrato(); $fields['cartao_corretor'] = true; $contratos = $contrato->getFormalizacaoFisicosPendentes($fields, null, null, array( 'contratos.data_liberacao ASC', 'clientes.nome ASC' )); $form->populate($fields); } } $this->view->producao = $contratos; $this->view->form = $form; } public function borderoCarrinhoCorretorAction() { $request = $this->getRequest(); $sess = new Model_YuppieSessionWrapper(); $carrinho = $sess->getSessVar('carrinho'); $adicionarCarrinho = $request->getPost('adicionar_contrato'); $continuarProcesso = $request->getPost('continuar_processo'); //se clicou em continuar e não tem nada na sessão, ai trava. if( $continuarProcesso && !$carrinho && !$request->getPost('ck_contrato') ){ $this->_helper->flashMessenger(array( 'alert' => 'Não foi possível concluir, nenhum contrato foi adicionado.' )); $this->_helper->redirector("bordero", "corretor", null); } //adiciona itens no carrinho, ou verifica se tem item no carrinho para continuar a rotina. if( $adicionarCarrinho || (!$adicionarCarrinho && $continuarProcesso && $request->getPost('ck_contrato')) ){ $contratos = $request->getPost('ck_contrato'); $existe = false; //se existe não insere if( is_array($carrinho) ){ foreach ( $carrinho as $contratosId ) { if( $contratosId == $contratos ){ $existe = true; } } } //se não existe insere na sessão if( !$existe ){ if( is_array($contratos) ){ foreach ( $contratos as $contratosId ) { if( !empty($contratosId) ){ $carrinho[$contratosId] = $contratosId; } } } else { $carrinho[$contratos] = $contratos; } } $sess->emptySess('carrinho'); $sess->setSessVar('carrinho', $carrinho); if( !$continuarProcesso ){ $this->_helper->json(array( 'result' => true )); } } } public function imprimirBorderoAction() { $this->_helper->layout->setLayout('layout_impressao'); $sess = new Model_YuppieSessionWrapper(); $contratos = $sess->getSessVar("carrinho"); $borderoModel = new Model_Bordero(); if( count($contratos) > 0 ){ $contratosImpressao = array(); $corretores = array(); $numCodBarras = time(); $corretorId = !empty(Yuppie_Auth::getIdentity()->corretor_id) ? Yuppie_Auth::getIdentity()->corretor_id : Yuppie_Auth::getIdentity()->id; $borderoModel->setCorretorId($corretorId); $borderoModel->setTipo('normal'); $borderoModel->setNumCodBarras($numCodBarras); $idBordero = $borderoModel->salvar($borderoModel); if( $idBordero > 0 ){ foreach ( $contratos as $contratoId ) { $contrato = new Model_Contrato(); $dadosContrato = $contrato->exibir($contratoId); if( $dadosContrato ){ $cliente = $dadosContrato->findParentRow('Model_DbTable_Cliente'); $convenio = $dadosContrato->findParentRow('Model_DbTable_Convenio'); $banco = $dadosContrato->findParentRow('Model_DbTable_Banco'); $corretor = $dadosContrato->findParentRow('Model_DbTable_Corretor'); $dadosContrato = $dadosContrato->toArray(); $dadosContrato['num_cod_barras'] = $numCodBarras; $dadosContrato['cpf_cliente'] = $cliente->cpf; $dadosContrato['nome_cliente'] = $cliente->nome; $dadosContrato['banco_cliente'] = isset($banco->nome) ? $banco->nome : ""; $dadosContrato['convenio'] = isset($convenio->nome) ? $convenio->nome : ""; $contratosImpressao[$dadosContrato['corretor_id']][] = $dadosContrato; $dadosContrato['bordero_id'] = $idBordero; unset($dadosContrato['id']); $contratoBordero = new Model_ContratoBordero($dadosContrato); $contratoBordero->salvar($contratoBordero); if( !in_array($corretor, $corretores) ){ $corretores[] = $corretor; } } } } // $sess->emptySess('carrinho'); $this->view->contratos = $contratosImpressao; $this->view->corretores = $corretores; } } public function visualizarEnvelopeAction() { $this->_helper->layout->setLayout('layout_popup'); $sess = new Model_YuppieSessionWrapper(); $contratos = $sess->getSessVar("carrinho"); if( count($contratos) > 0 ){ $result = array(); foreach ( $contratos as $contratoId ) { $contrato = new Model_Contrato(); $dadosContrato = $contrato->exibir($contratoId); $cliente = $dadosContrato->findParentRow('Model_DbTable_Cliente'); $convenio = $dadosContrato->findParentRow('Model_DbTable_Convenio'); $banco = $dadosContrato->findParentRow('Model_DbTable_Banco'); $status = $dadosContrato->findParentRow('Model_DbTable_Tipos'); $dadosContrato = $dadosContrato->toArray(); $dadosContrato['cpf'] = $cliente->cpf; $dadosContrato['cliente'] = $cliente->nome; $dadosContrato['status_proposta'] = isset($status->descricao) ? $status->descricao : ""; $dadosContrato['banco'] = isset($banco->nome) ? $banco->nome : ""; $dadosContrato['convenio'] = isset($convenio->nome) ? $convenio->nome : ""; $result[] = $dadosContrato; } $this->view->producao = $result; } } public function addEmailAdicionalAction() { $request = $this->getRequest(); $form = new Form_CorretorEmailAdicional(); if( $request->isXmlHttpRequest() ){ $id = $request->getParam('id'); $campo = $request->getParam('campo'); $checked = $request->getParam('checked'); $campo = String_Refatorar::soLetra($campo); $dbtable = new Model_DbTable_CorretorEmail(); if( $id > 0 ){ $resultado = $dbtable->update(array( $campo => $checked ), "id = {$id}"); $this->_helper->json(array( 'result' => $resultado, 'check' => $checked )); } } if( $request->isPost() && $form->isValid($request->getPost()) ){ $emailAdicional = new Model_CorretorEmail(); $emailAdicional->setDescricao($request->getPost('descricao')); $emailAdicional->setEmailAdicional($request->getPost('email_adicional')); $emailAdicional->setCorretorId($request->getPost('corretor_id')); $emailAdicional->setReceberEmail(1); try { $result = $emailAdicional->salvar($emailAdicional); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Email adicionado com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! O email não foi adicionado.' )); } } elseif( !$form->isValid($request->getPost()) ){ $this->_helper->flashMessenger(array( 'alert' => 'E-mail incorreto.' )); } $this->_redirect('/corretor/save/id/' . $request->getParam('corretor_id') . '/#mytabcontainer-frag-3'); } public function deleteEmailAdicionalAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); if( $id > 0 ){ $corretorEmail = new Model_CorretorEmail(); $corretorEmail->excluir($id); $this->_helper->flashMessenger(array( 'success' => "Registro excluído com sucesso!" )); } $this->_redirect('/corretor/save/id/' . $request->getParam('corretor_id') . '/#mytabcontainer-frag-3'); } public function metasAction() { $request = $this->getRequest(); $form = new Form_CorretorMeta(); $dados = array_filter($request->getPost()); $result = null; if( $request->isPost() && $form->isValid($request->getPost()) ){ $meta = new Model_CorretorMeta(); try { $result = $meta->cadastrarProjecao($dados); } catch ( Exception $ex ) { $this->_helper->flashMessenger(array( 'alert' => $ex->getMessage() )); } if( $result['count_success'] > 0 ){ $this->_helper->flashMessenger(array( 'success' => "{$result['count_success']} Registro(s) salvo(s) com sucesso." )); } if( $result['count_conflitos'] > 0 ){ $this->_helper->flashMessenger(array( 'alert' => $result['count_conflitos'] . " Registro(s) não foram adicionados pois houve conflito entre faixas de projeção" )); } } $this->_helper->redirector('save', 'corretor', null, array( 'id' => $request->getParam('corretor_id'), 'tab' => 7 )); } public function deleteMetaAction() { $id = $this->_getParam('meta_id'); $corretorId = $this->_getParam('corretor_id'); $metas = $this->_getParam('metas'); $meta = new Model_CorretorMeta(); $metaStatus = new Model_DbTable_CorretorMetaStatus(); $cont = 0; if( empty($metas) && empty($id) ){ $this->_helper->flashMessenger(array( "alert" => "Selecione pelo menos um item." )); $pass = $corretorId ? $corretorId : $this->_getParam('id'); $this->_redirect('/corretor/save/id/' . $pass); } if( is_array($metas) ){ foreach ( $metas as $metaId ) { $meta->excluir($metaId); $metaStatus->delete("corretor_meta_id = {$metaId}"); $cont++; } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => "{$cont} Meta(s) excluída(s) com sucesso." )); } } else { if( $meta->excluir($id) ){ $metaStatus->delete("corretor_meta_id = {$id}"); $this->_helper->flashMessenger(array( 'success' => 'Meta excluída com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'error' => 'Erro ao excluir meta.' )); } } $this->_helper->redirector('save', 'corretor', null, array( 'id' => $corretorId, 'tab' => 7 )); } public function viewStatusMetaAction() { $this->_helper->layout->setLayout('layout_popup'); $request = $this->getRequest(); $corretorMetaId = (int) $request->getParam('id'); $statusProposta = array(); if( $corretorMetaId > 0 ){ $dbtable = new Model_DbTable_CorretorMetaStatus(); $statusProposta = $dbtable->fetchAll("corretor_meta_id = " . $corretorMetaId); } $this->view->status_proposta = $statusProposta; } public function deleteStatusAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $metaId = (int) $request->getParam('meta_id'); if( $id > 0 ){ $dbtable = new Model_DbTable_CorretorMetaStatus(); $dbtable->delete("id = {$id}"); $this->_helper->flashMessenger(array( 'success' => 'Registro excluído com sucesso' )); } $this->_redirect("gerente/view-status-meta/id/{$metaId}"); } public function fichaCorretorAction() { $request = $this->getRequest(); $form = new Form_Filtro_FichaCorretor(); $params = $request->getParams(); $windowExterno = isset($params['t']) ? $params['t'] : null; $grafico = new Model_Grafico(); if ($request->isPost() && $form->isValid($params) || $windowExterno) { if ($windowExterno) { $this->_helper->layout->setLayout('layout_popup'); $form->clearElements(); $form->addElement('button', 'btn_back', array( 'label' => 'Voltar', 'class' => 'bt_back', 'onclick' => 'window.close()' )); } $producaoUltimosMeses = array(); $pendenciaUltimosMeses = array(); $contratoModel = new Model_Contrato(); $corretorModel = new Model_Corretor(); $lancamento = new Model_Lancamento(); $corretor = $corretorModel->selectCorretorEmpresa($params['corretor_id']); $rankProduto = $contratoModel->getProducaoProduto($params); $mensal = $contratoModel->getProducaoCorretorMensal($params); $mensalConvenio = $contratoModel->getProducaoCorretorMensalConvenios($params); $params['status_formalizacao'] = 'fisico-pendente-dentro-prazo'; $params['contrato_pago'] = '1'; $fisicosNaoEntreguesPagos = $contratoModel->getFisicosPendentes($params); $params['status_proposta'] = '43'; $params['protocolo_pagamento'] = '-1'; unset($params['contrato_pago']); unset($params['status_formalizacao']); $fisicosNaoEntregues = $contratoModel->getFisicosPendentes($params, null, null); $params['status_formalizacao'] = 'doc-pendente'; $fisicosPendenciaDoc = $contratoModel->getContratos($params, null, null, null); $params['status_formalizacao'] = 'fisico-pendente-alem-prazo'; $fisicosBloqueadosPorPendencia = $contratoModel->getContratos($params, null, null, null); unset($params['status_proposta']); unset($params['status_formalizacao']); $params['cobranca_banco'] = '1'; unset($params['cobranca_banco']); unset($params['status_formalizacao']); unset($params['fisico_enviado']); $params['status_proposta'] = '43'; $params['contrato_pago'] = '-1'; $params['comissao_recebida'] = '1'; $lancamentos = $lancamento->getLancamentosPeriodo($params); $totalCredito = 0; $totalDebito = 0; foreach ($lancamentos as $lancamento) { if(substr($lancamento['tipo'], 0, 1) == 'C'){ $totalCredito += $lancamento['valor_pago']; }elseif (substr($lancamento['tipo'], 0, 1) == 'D'){ $totalDebito += $lancamento['valor_pago']; } } unset($params['status_proposta']); unset($params['contrato_pago']); unset($params['comissao_recebida']); $params['antifraude'] = true; $params['status'] = ''; $fraudes = $contratoModel->getContratosJuridicos(array('corretor_id' => $params['corretor_id'], 'resposta_analise' => 'FRAUDE')); $contratos = $contratoModel->getComissaoPagar(array( 'corretores' => $params['corretor_id'], 'status_proposta' => '43', )); $comissaoReceber = 0; foreach ($contratos as $contrato) { foreach ($contrato as $c) { if (empty($c['base_comissao_valor'])) { continue; } if ($c['estornado'] == 1) { continue; } if ($c['comissao_corretor'] > 0) { $comissaoReceber += ($c['base_comissao_valor'] * $c['comissao_corretor'] / 100); } } } $dataNow = new Zend_Date(); for ($i = 0; $i < 12; $i++) { $producaoUltimosMeses[$i]['liberacao'] = $dataNow->now()->subMonth($i)->get('MM/y'); $pendenciaUltimosMeses[$i]['liberacao'] = $dataNow->now()->subMonth($i)->get('MM/y'); foreach ($mensal as $m) { if ($producaoUltimosMeses[$i]['liberacao'] == str_replace('-', '/', $m['data_emissao'])) { $producaoUltimosMeses[$i]['valor'] = $m['total_producao']; $producaoUltimosMeses[$i]['pendencia'] = $m['pendencia']; $producaoUltimosMeses[$i]['contratos'] = $m['qtd_contratos']; } } } $producaoUltimosMeses = array_reverse($producaoUltimosMeses); $jsGraficos = $grafico->producaoCorretorMensal($producaoUltimosMeses); $jsGraficos .= $grafico->producaoCorretorMensalConvenios($mensalConvenio); $jsGraficos .= $grafico->producaoCorretorRankProduto($rankProduto); $this->view->output_js_gchart = $jsGraficos; $this->view->inicialize_js = Core_GChart::initializeScript(); $this->view->params = $params; $this->view->producaoUltimosMeses = $producaoUltimosMeses; $this->view->tabela_geral_corretor = $contratoModel->getTabelaGeralCorretor($params); $this->view->pendenciaUltimosMeses = $pendenciaUltimosMeses; $this->view->corretor = $corretor; // $this->view->qntFisicosNaoEntregues = count($fisicosNaoEntregues); // $this->view->qntFisicosPendenciaDoc = count($fisicosPendenciaDoc); // $this->view->qntFisicosBloqueadosPorPendencia = count($fisicosBloqueadosPorPendencia); $this->view->comissaoReceber = $comissaoReceber; $this->view->saldoDevedor = $totalDebito-$totalCredito; $this->view->fraudes = count($fraudes); } $this->view->form = $form; } public function alterarDescricaoUsuarioAction() { $request = $this->getRequest(); $result = null; if( $request->isPost() ){ $id = (int) $request->getPost('id'); $descricao = $request->getPost('descricao'); $model = new Model_CorretorSenha(); try { $result = $model->atualizarDescricaoUsuario($id, $descricao); } catch ( Exception $e ) { $this->_helper->json(array( 'alert' => $e->getMessage() )); } } $this->_helper->json(array( 'result' => ($result != null ? 1 : 0) )); } public function metasOperadorAction() { $request = $this->getRequest(); $form = new Form_CorretorMetasOperador(); $dados = array_filter($request->getPost()); $result = null; if( $request->isPost() && $form->isValid($request->getPost()) ){ $meta = new Model_CorretorMetaOperador($dados); try { $dataInicial = new Zend_Date($meta->getDataInicial()); $dataFinal = new Zend_Date($meta->getDataFinal()); if( $dataInicial != $dataFinal ){ if( $dataFinal->isEarlier($dataInicial) ){ throw new Exception("Período de datas inválido."); } } $result = $meta->salvar($meta); } catch ( Exception $ex ) { $this->_helper->flashMessenger(array( 'alert' => $ex->getMessage() )); } if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => "Registro salvo com sucesso." )); } else { $this->_helper->flashMessenger(array( 'alert' => "Nenhum registro foi alterado." )); } } $this->_redirect('/corretor/save/id/' . $request->getParam('corretor_id') . '/#mytabcontainer-frag-9'); } public function deleteMetaOperadorAction() { $id = $this->_getParam('meta_id'); $corretorId = $this->_getParam('corretor_id'); $metas = $this->_getParam('metas'); $meta = new Model_CorretorMetaOperador(); $cont = 0; if( empty($metas) && empty($id) ){ $this->_helper->flashMessenger(array( "alert" => "Selecione pelo menos um item." )); $pass = $corretorId ? $corretorId : $this->_getParam('id'); $this->_redirect('/corretor/save/id/' . $pass); } if( is_array($metas) ){ foreach ( $metas as $metaId ) { $meta->excluir($metaId); $cont++; } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => "{$cont} Meta(s) excluída(s) com sucesso." )); } } else { if( $meta->excluir($id) ){ $this->_helper->flashMessenger(array( 'success' => 'Meta excluída com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'error' => 'Erro ao excluir meta.' )); } } $this->_redirect("/corretor/save/id/$corretorId/#mytabcontainer-frag-9"); } public function addPrazoAction() { $request = $this->getRequest(); $form = new Form_CorretorPrazoBanco(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $ns = new Zend_Session_Namespace(); if( $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'alterar-prazo-fisico') ){ foreach ( $request->getPost("banco_id") as $bancoId ) { $prazo = new Model_CorretorPrazoBanco(); $prazo->setBancoId($bancoId); $prazo->setPrazo($request->getPost('prazo_fisico')); $prazo->setCorretorId($request->getPost('corretor_id')); try { $result = $prazo->salvar($prazo); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } if( isset($result) && $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Prazo adicionado com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! O prazo não foi adicionado.' )); } } } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Você não possui permissão para alterar prazo de físico.' )); } } $this->_redirect("/corretor/save/id/{$request->getParam('corretor_id')}/#mytabcontainer-frag-9"); } public function deletePrazoAction() { $request = $this->getRequest(); $prazos = $request->getParam('prazos'); $id = (int) $request->getParam('id'); $corretorId = (int) $request->getParam('corretor_id'); $dbtable = new Model_DbTable_CorretorPrazoBanco(); $count = 0; if( $prazos && count($prazos) > 0 ){ foreach ( $prazos as $prazo ) { $dbtable->delete("id = $prazo"); $count++; } } else if( $id > 0 ){ $dbtable->delete("id = $id"); $count++; } if( $count > 0 ){ $this->_helper->flashMessenger(array( 'success' => "$count registro(s) excluído(s) com sucesso" )); } else { $this->_helper->flashMessenger(array( 'warning' => "Nenhum registro alterado." )); } $this->_redirect("corretor/save/id/$corretorId/#mytabcontainer-frag-9"); } public function addBancoAction() { $request = $this->getRequest(); $form = new Form_CorretorBancosAtribuidos(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $ns = new Zend_Session_Namespace(); if( $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'alterar-prazo-fisico') ){ foreach ( $request->getPost("banco_id") as $bancoId ) { $banco = new Model_CorretorBancosAtribuidos(); $banco->setBancoId($bancoId); $banco->setCorretorId($request->getPost('corretor_id')); try { $result = $banco->salvar($banco); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } if( isset($result) && $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Banco adicionado com sucesso.' )); }else{ $this->_helper->flashMessenger(array( 'alert' => 'Atenção! O banco não foi adicionado.' )); } } } else { $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Você não possui permissão para alterar bancos atribuídos ao corretor.' )); } } $this->_redirect("/corretor/save/id/{$request->getParam('corretor_id')}/#mytabcontainer-frag-10"); } public function deleteBancoAction() { $request = $this->getRequest(); $bancos = $request->getParam('bancos'); $id = (int) $request->getParam('id'); $corretorId = (int) $request->getParam('corretor_id'); $dbtable = new Model_DbTable_CorretorBancosAtribuidos(); $count = 0; if( $bancos && count($bancos) > 0 ){ foreach ( $bancos as $banco ) { $dbtable->delete("id = $banco"); $count++; } } else if( $id > 0 ){ $dbtable->delete("id = $id"); $count++; } if( $count > 0 ){ $this->_helper->flashMessenger(array( 'success' => "$count registro(s) excluído(s) com sucesso" )); } else { $this->_helper->flashMessenger(array( 'warning' => "Nenhum registro alterado." )); } $this->_redirect("corretor/save/id/$corretorId/#mytabcontainer-frag-10"); } public function regularizarConsistenciaAction() { $request = $this->getRequest(); $form = new Form_RegularizarConsistencia(); $id = (int)$request->getParam('id'); if (!$id) { $this->_helper->flashMessenger(['error' => "Consistência não localizada!"]); $this->_helper->redirector("minhas-consistencias"); } if ($request->isPost() && $form->isValid($request->getPost())) { $contratoPendencia = new Model_ContratoPendencia(); $fields = $contratoPendencia->exibir($id)->toArray(); try{ Upload::save((new Zend_File_Transfer_Adapter_Http()), $fields, 'propostas'); $contrato = new Model_Contrato(); $result = $contrato->regularizarConsistencia( $fields['id'], $fields['contrato_id'], $fields['arquivo'], $form->getValue('tipo_documento'), $form->getValue('descricao') ); } catch (Exception $ex) { $this->_helper->flashMessenger(['error' => $ex->getMessage()]); } if( $result ){ $this->_helper->flashMessenger([ 'success' => "Documento enviado com sucesso. Aguarde nosso setor de formalização identificar." ]); } else { $this->_helper->flashMessenger(['alert' => "Nenhuma informação foi adicionada."]); } } $this->view->documentos = (new Model_DbTable_PendenciaRegularizar()) ->fetchAll("contrato_pendencia_id = {$id} AND tipo = 2"); $this->view->form = $form; } public function portabilidadeAction() { $request = $this->getRequest(); $form = new Form_Filtro_AcompanhamentoPortabilidade(); $form->getElement("status_portabilidade")->setValue(array('aguardando')); $page = $request->getPost('page', 1); $fields = array_filter($request->getPost()); $fields['corretor_id'] = Yuppie_Auth::getIdentity()->corretor_id ?? Yuppie_Auth::getIdentity()->id; $form->setAction($this->view->url(array( 'action' => 'portabilidade', 'id' => null))); $form->populate($fields); unset($fields['btn_filtrar']); unset($fields['page']); if( $request->isPost() ) { if ($form->isValid($fields)) { $fields['tipo_contrato'] = array('PORTABILIDADE'); $fields['possui_corretor'] = 1; $fields['contrato_portabilidade'] = 1; try { $contrato = new Model_Contrato(); $contratos = $contrato->getContratos($fields, $page, 100, array( 'corretores.nome ASC', 'contratos.data_liberacao ASC', 'clientes.nome ASC' )); $this->view->contratos = $contratos; if ($contratos && $request->isXmlHttpRequest()) { $this->_helper->json(array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'body' => true, 'readCompleted' => ($contratos->count() == $page) ? true : false, 'content' => $this->view->render('corretor/acompanhar-portabilidade-body.phtml'), )); } } catch (Exception $exception) { $this->_helper->json(array('alert' => $exception->getMessage())); } } else { $this->_helper->json(array('alert' => "Dados inválidos ou faltando.")); } } $this->view->form = $form; } public function validarPortabilidadeAction() { $request = $this->getRequest(); $validar = $request->getPost("validar"); $param = $request->getParam("param"); $params = explode('/', base64_decode($param)); $id = (int) $params[1]; $contratoId = (int) $params[3]; $resposta = (int) $params[5]; $corretorId = Yuppie_Auth::getIdentity()->corretor_id ?? Yuppie_Auth::getIdentity()->id; if($contratoId && $resposta && $id){ $validar = array($contratoId => array("id" => $id, "resposta_corretor" => $resposta)); } if($validar) { $success = $fail = $semResposta = 0; foreach($validar as $contratoId => $resposta) { if (empty($resposta['id'])) { continue; } if (empty($resposta['resposta_corretor'])) { $semResposta++; continue; } $contrato = new Model_DbTable_Contrato(); $contratoExiste = $contrato->fetchRow("id = $contratoId AND corretor_id = " . $corretorId); if (!$contratoExiste) { $fail++; continue; } $portabilidade = new Model_DbTable_ContratoPortabilidade(); $respondida = $portabilidade->fetchRow("id = {$resposta['id']} AND resposta_corretor IS NOT NULL AND resposta_corretor <> 0"); if ($respondida) { $fail++; continue; } $agora = Zend_Date::now(); $resposta['data_hora_corretor'] = $agora->get("yyyy-MM-dd HH:mm:ss"); $resposta['contrato_id'] = $contratoId; $resposta['usuario_corretor'] = (int)$corretorId; $validacao = $portabilidade->update($resposta, "id = {$resposta['id']}"); if (!empty($validacao)) { $success++; } else { $fail++; } } if($success == 1){ $this->_helper->flashMessenger(array('success' => "Uma simulação foi validada.")); } if($success > 1){ $this->_helper->flashMessenger(array('success' => "$success simulações foram validadas.")); } if($fail == 1){ $this->_helper->flashMessenger(array( 'alert' => "Um erro ocorreu. Uma simulação não foi validada.")); } if($fail > 1){ $this->_helper->flashMessenger(array( 'alert' => "Um erro ocorreu. $fail simulações não foram validadas.")); } if($semResposta == 1){ $this->_helper->flashMessenger(array( 'alert' => "Uma simulação não validada por estar com a resposta vazia.")); } if($semResposta > 1){ $this->_helper->flashMessenger(array( 'alert' => "$semResposta simulações não validadas por estarem com a resposta vazia.")); } } else { $this->_helper->flashMessenger(array('alert' => "Nenhum contrato selecionado.")); } $this->_redirect('corretor/portabilidade', array()); } public function atualizarValidadeCertificadoAction() { $modelCorretor = new Model_Corretor(); $result = $modelCorretor->atualizarValidadeCertificado($this->getRequest()->getParams()); $this->_helper->json($result); } public function baixarTermoAction() { try { $corretor = $this->getRequest()->getParam('id'); $termoDownload = model('corretor-assinatura')->getTermoAssinado($corretor); echo service('s3')->download($termoDownload['documento_assinado'], 'Termo Responsabilidade[assinado].pdf'); die(); } catch (Throwable $throwable) { $this->_helper->flashMessenger(['alert' => $throwable->getMessage()]); $this->_redirect('/corretor/update/id/' . $corretor); } } /** * Historico Corretor */ public function historicoCorretorAction() { $this->getHelper('Layout')->disableLayout(); $request = $this->getRequest(); $corretorId = $request->getParam('id'); $dataInicial = Zend_Date::now()->subDay(90)->get('yyyy-MM-dd'); try{ $model = new Model_Log(); $result = $model->listar("data_mudanca >= '{$dataInicial}' AND (chave = {$corretorId} OR clausula_where = 'id = {$corretorId}') AND tabela = 'tb_corretores'"); $this->view->result = $result; $this->view->corretor_id = $corretorId; $this->_helper->json([ 'alert' => '', 'body' => true, 'content' => $this->view->render('corretor/historico-corretor.phtml'), ]); } catch (Exception $e){ $this->_helper->flashMessenger([ 'alert' => 'Falha ao carregar o histórico.' ]); } } public function meusLinksAction() { $links = []; $modelCorretor = new Model_Corretor(); $config = include CLIENT_PATH . '/configs/callcenter.php'; $landingPage = !empty($config['html_autocontratacao']); // $modelCorretor->gerarMeusLinks(self::LINKS_PROPOSTA, $links, 'proposta-cliente'); $modelCorretor->gerarMeusLinks(self::LINKS_SIMULACAO, $links, 'simulacao-aberta', $landingPage); $this->view->links = $links; } public function meusLeadsCapturadosAction() { $request = $this->getRequest(); $form = new Form_Filtro_LeadsCapturadosCorretor(); $ns = new Zend_Session_Namespace('filtro_meus_leads'); $fields = ['status' => '']; if ($request->isPost() && $form->isValid($request->getPost())) { $fields = $request->getPost(); $ns->unsetAll(); $ns->filtro_meus_leads = $fields; } if (!empty($ns->filtro_meus_leads)) { $fields = $ns->filtro_meus_leads; try { $service = new SimulacaoAbertaService(); $dados = $service->getSimulacoesRelatorio($fields); } catch (Zend_Db_Exception $exception) { $this->_helper->flashMessenger(['error' => "Erro na consulta ao banco de dados"]); } catch (Exception $exception) { $this->_helper->flashMessenger(['error' => $exception->getMessage()]); } } $this->view->simulacoes = $dados; $this->view->form = $form->populate($fields); } public function meusUsuariosBancoAction() { $request = $this->getRequest(); $form = new Form_Filtro_MeusUsuariosBanco(); $modelSenhas = new Model_CorretorSenha(); $bancoId = null; if ($request->isPost()) { $bancoId = $request->getPost('banco_id'); $form->populate($request->getPost()); } if (Yuppie_Auth::getIdentity()->grupo == 'Corretor') { $corretorId = Yuppie_Auth::getIdentity()->id; } elseif (!empty(Yuppie_Auth::getIdentity()->corretor_id)) { $corretorId = Yuppie_Auth::getIdentity()->corretor_id; } if (empty($corretorId)) { $this->_helper->flashMessenger([ 'error' => "Dados de acesso não localizado! Você precisa ser um corretor ou estar vinculado a um." ]); $this->_helper->redirector('index'); } $this->view->codigos = $modelSenhas->getSenhasByCorretor($corretorId, $bancoId); $this->view->form = $form; } }
💾 保存文件
← 返回文件管理器