✏️ 正在编辑: FinanceiroController.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/controllers/FinanceiroController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class FinanceiroController extends Zend_Controller_Action { protected $_bucketFolder = 'despesas'; public function init() { /* Initialize action controller here */ } public function indexAction() { // action body } public function visaoGeralAction() { $dataReferencia = date('Y-m-d'); $mesReferencia = date('Y-m'); $despesa = new Model_Despesa(); $empresa = new Model_Empresa(); $lancamento = new Model_Lancamento(); $this->view->despesas = $despesa->getLancamentosDia($dataReferencia); $this->view->despesas_mes = $despesa->getLancamentosMes($mesReferencia); $this->view->lancamentos_corretor_mes = $lancamento->getDebitosCorretores(); $this->view->movimentacao_comissao = $empresa->getMovimentacaoComissoes(); } //Selecionar vários corretores para gerar vários protocolos ou um; public function pagarComissaoAction() { header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); /** * A sessão foi criada pela action baixarPagamento, o unset serve * para remover os dados da sessão afim de evitar conflitos ao retornar * para tela de pagamentos do corretor */ $nsContratos = new Zend_Session_Namespace('contratos'); $nsProtocolos = new Zend_Session_Namespace('protocolos'); $nsContratosNaoGerados = new Zend_Session_Namespace('contratos_nao_gerados'); $nsTimestamp = new Zend_Session_Namespace('timestamp'); unset($nsContratos->contratos); unset($nsProtocolos->protocolos); unset($nsContratosNaoGerados->contratos_nao_gerados); unset($nsTimestamp->timestamp); $sessaoFiltros = new Zend_Session_Namespace('filtro_pagarcomissao'); $request = $this->getRequest(); $ns = new Zend_Session_Namespace(); $pagarFisicoAlemPrazo = $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'pagar-corretores-fisicos-pendentes'); $corretores = $request->getParam('corretores'); if (!isset($corretores)) { $dados = $sessaoFiltros->filtro_pagarcomissao == null ? [] : $sessaoFiltros->filtro_pagarcomissao; } else { $dados = $request->getParams(); $sessaoFiltros->unsetAll(); $sessaoFiltros->filtro_pagarcomissao = $dados; } if( !$request->isXmlHttpRequest() && !$pagarFisicoAlemPrazo ){ $this->_helper->flashMessenger(array( 'alert' => 'Corretores com contratos pendentes além do prazo ' . 'definido em seu cadastro, não serão exibidos.' )); } $form = new Form_Filtro_PagarComissao(); $form->populate($dados); $this->view->form = $form; $contrato = new Model_Contrato(); $contratosSemCorretor = $contrato->countContratosSemCorretor(); if( $request->isPost() && $form->isValid($request->getPost()) && $request->isXmlHttpRequest() ){ $fields = $request->getPost(); if( !isset($fields['corretores']) ){ $this->_helper->json(array('error' => 1, 'msg' => 'Atenção! Pelo menos um corretor deve ser informado.')); } else { try { $corretor_contratos = array(); $corretoresPendencia = (new Model_DbTable_CorretorPendenciaFisico()) ->selectCorretoresLista($fields['corretores'], $fields['maximo_atraso']); $corretoresIdsPendencia = array_column($corretoresPendencia, "id"); //sobrepoe o filtro de corretores para exibir apenas os corretores sem pendência if( !$pagarFisicoAlemPrazo || !empty($fields['maximo_atraso']) ){ $corretoresSelecionados = explode(",", $fields['corretores']); $corretoresSemPendencia = array_diff($corretoresSelecionados, $corretoresIdsPendencia); $fields['corretores'] = implode(",", $corretoresSemPendencia); } $contratos = $contrato->getComissaoPagar($fields); if(count($contratos)){ foreach ( $contratos as $contrato ) { $corretor_id = $contrato['corretor_id']; if ($contrato['pendente'] > 0) { $corretor_contratos[$corretor_id]['info']['pendente'] = $contrato['pendente']; } $index = array_search($corretor_id, $corretoresIdsPendencia); $corretor_contratos[$corretor_id]['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'], 'total_valor_fixo' => $contrato['valor_fixo_corretor'] ); array_push($corretor_contratos[$corretor_id], $contrato); foreach ( $totais as $total => $valor ) { if( !isset($corretor_contratos[$corretor_id]['info'][$total]) ){ $corretor_contratos[$corretor_id]['info'][$total] = $valor; } else { $corretor_contratos[$corretor_id]['info'][$total] += $valor; } } } } $this->view->corretores_pendencia = $corretoresIdsPendencia; $this->view->alterarComissaoEmpresa = $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'contrato', 'atualizar-comissao-empresa'); $this->view->omitir_comissao_negativa = isset($fields['ocultar_comissao_negativa']) && $fields['ocultar_comissao_negativa']; $this->view->pagamento_minimo = String_Refatorar::parseStringToFloat($fields['pagamento_minimo']); $this->view->corretor_contratos = $corretor_contratos; $this->_helper->getHelper('layout')->disableLayout(); $this->render('contratos-pagar-comissao'); } catch ( Exception $e ) { $this->_helper->getHelper('layout')->disableLayout(); $this->_helper->viewRenderer->setNoRender(); echo $e; } } } else { $form->populate(array( 'status_proposta' => 43 )); $form->populate(array('status_proposta' => 43)); if( $request->isPost() && !$form->isValid($request->getPost()) ) echo "not valid"; } $this->_helper->flashMessenger([ "alert" => "Atenção! Há {$contratosSemCorretor} contratos sem corretor vinculado." ]); } public function creditoCorretorAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $form = new Form_CreditoCorretor(); if( $request->isPost() ){ if( $form->isValid($request->getPost()) ){ $credito = new Model_CreditoCorretor($request->getPost()); try { $id = $credito->salvar($credito); $this->_helper->flashMessenger(array( 'success' => 'Dados salvos com sucesso.' )); $this->_helper->redirector('credito-corretor', 'financeiro', null, ['id' => $id]); } catch ( Zend_Exception $e ) { print_r($e->getMessage()); } } } if( $id > 0 ){ $credito = new Model_CreditoCorretor(); $dados = $credito->exibir($id); $dados['data_pagamento'] = $dados['data_pagamento'] != null ? date('d/m/Y', strtotime($dados['data_pagamento'])) : ""; $dados['valor_pago'] = number_format($dados['valor_pago'], 2, ',', '.'); $form->populate($dados->toArray()); } $this->view->form = $form; } public function listaCreditoCorretorAction() { $this->_helper->flashMessenger(array( 'alert' => "Nesta tela estão os valores que deverão ser descontados do corretor." )); $request = $this->getRequest(); $form = new Form_Filtro_CreditoCorretor(); $model = new Model_CreditoCorretor(); $ns = new Zend_Session_Namespace('filtro_lista_credito_corretor'); $fields = array(); if( $request->isPost() ){ $ns->unsetAll(); $ns->filtro_lista_credito_corretor = $request->getPost(); } if( isset($ns->filtro_lista_credito_corretor) && count($ns->filtro_lista_credito_corretor) > 0 ){ $fields = $ns->filtro_lista_credito_corretor; $form->populate($fields); } Zend_Paginator::setDefaultItemCountPerPage(50); $paginator = new Zend_Paginator($model->getPaginatorAdapter($fields, 'data_pagamento ASC')); $paginator->setCurrentPageNumber($this->_getParam('page', 1)); $this->view->paginator = $paginator; $this->view->form = $form; } public function deleteCreditoCorretorAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $lancamentos = $request->getPost("lancamentos"); if(isset($lancamentos)){ foreach($lancamentos as $lancamentosId){ $credito = new Model_CreditoCorretor(); $credito->excluir($lancamentosId); } }else { if( $id > 0 ){ $credito = new Model_CreditoCorretor(); $credito->excluir($id); } } $this->_redirect('/financeiro/lista-credito-corretor'); } public function notificarCreditoCorretorAction() { $request = $this->getRequest(); $lancamentos = $request->getPost("lancamentos"); $cont = 0; if (!empty($lancamentos)) { $credito = new Model_CreditoCorretor(); foreach ($lancamentos as $lancamentosId) { $lancamento = $credito->exibir($lancamentosId); $this->view->lancamento = $lancamento; $email = new Core_Mail(); try{ $email->enviarEmailCorretor( "Notificação de débito", $this->view->render("financeiro/notificar-credito-corretor.phtml"), $lancamento['corretor_id'], '' ); $cont++; } catch ( Exception $e ) { $this->_helper->flashMessenger(['error' => $e->getMessage()]); } } } if ($cont > 0) { $this->_helper->flashMessenger(['success' => "Notificação enviada com sucesso."]); } $this->_redirect('/financeiro/lista-credito-corretor'); } public function debitoCorretorAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); $form = new Form_DebitoCorretor(); if( $request->isPost() ){ if( $form->isValid($request->getPost()) ){ $debito = new Model_DebitoCorretor($request->getPost()); try { $id = $debito->salvar($debito); $this->_helper->flashMessenger(array( 'success' => 'Dados salvos com sucesso.' )); $this->_helper->redirector('debito-corretor', 'financeiro', null, ['id' => $id]); } catch ( Zend_Exception $e ) { print_r($e->getMessage()); } } } if( $id > 0 ){ $debito = new Model_DebitoCorretor(); $dados = $debito->exibir($id); $dados['data_pagamento'] = $dados['data_pagamento'] != null ? date('d/m/Y', strtotime($dados['data_pagamento'])) : ""; $dados['valor_pago'] = number_format($dados['valor_pago'], 2, ',', '.'); $form->populate($dados->toArray()); } $this->view->form = $form; } public function listaDebitoCorretorAction() { $this->_helper->flashMessenger(array( 'alert' => "Nesta tela estão os valores que foram descontados do corretor." )); $request = $this->getRequest(); $form = new Form_Filtro_DebitoCorretor(); $model = new Model_DebitoCorretor(); $ns = new Zend_Session_Namespace('filtro_lista_debito_corretor'); $fields = array(); if( $request->isPost() ){ $ns->unsetAll(); $ns->filtro_lista_debito_corretors = $request->getPost(); } if( isset($ns->filtro_lista_debito_corretors) && count($ns->filtro_lista_debito_corretors) > 0 ){ $fields = $ns->filtro_lista_debito_corretors; $form->populate($fields); } Zend_Paginator::setDefaultItemCountPerPage(50); $paginator = new Zend_Paginator($model->getPaginatorAdapter($fields, 'data_pagamento ASC')); $paginator->setCurrentPageNumber($this->_getParam('page', 1)); $this->view->paginator = $paginator; $this->view->form = $form; } public function deleteDebitoCorretorAction() { $request = $this->getRequest(); $id = (int) $request->getParam('id'); if( $id > 0 ){ $credito = new Model_DebitoCorretor(); $credito->excluir($id); } $this->_redirect('/financeiro/lista-debito-corretor'); } public function receberComissaoAction() { $formFiltro = new Form_Filtro_ReceberComissao(); $request = $this->getRequest(); if( $request->isPost() ){ $formFiltro->populate($request->getPost()); $contrato = new Model_Contrato(); $this->view->contratos = $contrato->getComissaoReceber($request->getPost()); } $this->view->form_filtro = $formFiltro; } public function pagarComissaoSupervisorAction() { $form = new Form_Filtro_PagarComissaoSupervisor(); $request = $this->getRequest(); $page = $request->getPost('page', 1); $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Físicos em atraso não serão pagos.' )); $this->_helper->flashMessenger(array( 'alert' => 'Corretores com comissões zeradas definidas em seu cadastro' . 'não serão contabilizados no cálculo da comissão do supervisor.' )); unset($_SESSION['contratos_supervisor']); unset($_SESSION['supervisor_id']); $contratos = array(); if( $request->isPost() ) { $fields = array_filter($request->getPost()); $form->populate($fields); if ($form->isValid($fields)) { try { unset($fields['btn_filtrar']); unset($fields['page']); $fields['comissao_apagar_supervisor'] = 1; $contrato = new Model_Contrato(); $contratos = $contrato->getComissaoPagarSupervisor($fields, $page, 100); } catch (Exception $error) { $this->_helper->json(array('alert' => $error->getMessage())); } } } if( $request->isXmlHttpRequest() && $contratos != null ){ $this->view->contratos = $contratos; $json = array( 'alert' => '', 'page' => $page, 'pages' => $contratos->count(), 'readCompleted' => $contratos->count() == $page, 'body' => true, ); if( $contratos->count() == $page ){ $this->view->supervisor_id = $fields['gerente_id']; $json['totalizador'] = true; } $json['content'] = $this->view->render('financeiro/pagar-comissao-supervisor-body.phtml'); $this->_helper->json($json); } $this->view->form = $form; } public function pagarComissaoGerenteAction() { $form = new Form_Filtro_PagarComissaoGerente(); $request = $this->getRequest(); $page = $request->getPost('page', 1); $contratos = array(); $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Físicos em atraso e situação diferente de "Operação Finalizada" ou "Pagamento Enviado", não serão pagos.' )); unset($_SESSION['contratos_gerente']); unset($_SESSION['gerente_id']); if( $request->isPost() ){ $fields = array_filter($request->getPost()); unset($fields['btn_filtrar']); unset($fields['page']); try { $contrato = new Model_Contrato(); $fields['comissao_apagar_gerente'] = 1; $contratos = $contrato->getComissaoPagarGerente($fields, $page, 100, 'corretores.nome ASC'); $form->populate($fields); if( $contratos->count() == $page ){ $this->view->totalizador = $contrato->getComissaoPagarGerenteTotalizador($fields); } } catch ( Exception $error ) { $this->_helper->json(array( 'alert' => $error->getMessage() )); } } $this->view->contratos = $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('financeiro/pagar-comissao-gerente-body.phtml'), 'body' => true )); } $this->view->form = $form; } public function transferenciaAction() { $form = new Form_Transferencia(); $request = $this->getRequest(); if( $request->isPost() && $form->isValid($request->getPost()) ){ $auth = Yuppie_Auth::getIdentity(); $dados = $request->getPost(); try { // tira o valor da conta $despesa = new Model_Despesa(); $despesa->setEmpresaId($auth->empresa_id); $despesa->setContaId($dados['conta_origem']); $despesa->setFormaPagamentoId(7); $despesa->setCategoriaId($dados['categoria_id']); $despesa->setDescricao($dados['descricao']); $despesa->setDataVencimento($dados['data_transferencia']); $despesa->setDataPagamento($dados['data_transferencia']); $despesa->setValor($dados['valor']); $despesa->setValorPago($dados['valor']); $despesa->setTransferencia(1); $despesa->salvar($despesa); // deposita na outra conta $receita = new Model_Receita(); $receita->setEmpresaId($auth->empresa_id); $receita->setContaId($dados['conta_destino']); $receita->setFormaPagamentoId(7); $receita->setCategoriaId($dados['categoria_id']); $receita->setDescricao($dados['descricao']); $receita->setDataVencimento($dados['data_transferencia']); $receita->setDataPagamento($dados['data_transferencia']); $receita->setValor($dados['valor']); $receita->setValorPago($dados['valor']); $receita->setTransferencia(1); $receita->salvar($receita); $this->_helper->flashMessenger(array( 'success' => 'Transferência realizada com sucesso.' )); } catch ( Zend_Exception $e ) { $this->_helper->flashMessenger(array( 'error' => 'Erro na transferência.' )); $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } } $this->view->form = $form; } public function importarExtratoAction() { $form = new Form_ImportarExtrato(); if( $this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost()) ){ $upload = new Zend_File_Transfer_Adapter_Http(); $upload->setDestination(UPLOAD_PATH); $dbtable = new Model_DbTable_Extrato(); $qtd = 0; libxml_use_internal_errors(true); try { $upload->receive(); } catch ( Zend_File_Transfer_Exception $e ) { $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); } $data = file($upload->getFileName()); $string = null; foreach ( $data as $line ) { if( strstr($line, "<") ){ $string .= $line; } } $isXml = simplexml_load_string($string); libxml_clear_errors(); if( !$isXml ){ $ofx = new Core_OFXFile($upload->getFileName(), OFXFILEREPORTLEVEL_VERBOSE); $ofx->parse(); $transactions = $ofx->getTransactions(); } else { //layout da caixa foreach ( $isXml->BANKMSGSRSV1->STMTTRNRS->STMTRS->BANKTRANLIST->STMTTRN as $xmls ) { $dtPosted = new Zend_Date(substr(current($xmls->DTPOSTED), 0, 8), 'yyyyMMdd'); $valor = str_replace(array( ',' ), array( '.' ), trim(current($xmls->TRNAMT))); $result = $dbtable->insert(array( 'data_importacao' => date('Y-m-d H:i:s'), 'trn_type' => current($xmls->TRNTYPE), 'dt_posted' => $dtPosted->get('yyyy-MM-dd'), 'trn_amt' => $valor, 'fit_id' => current($xmls->FITID), 'check_num' => current($xmls->CHECKNUM), 'payeeid' => current($xmls->PAYEEID), 'memo' => current($xmls->MEMO), 'conta_id' => $form->getValue('conta_id') )); if( $result != null ){ $qtd++; $dbtable->baixarLancamento($result, $form->getValue('conta_id')); } } } unlink($upload->getFileName()); if( !$isXml ){ foreach ( $transactions as $t ) { $dtPosted = new Zend_Date(substr($t['DTPOSTED'], 0, 8), 'yyyyMMdd'); $valor = str_replace(array( ',' ), array( '.' ), trim($t['TRNAMT'])); $result = $dbtable->insert(array( 'data_importacao' => date('Y-m-d H:i:s'), 'trn_type' => $t['TRNTYPE'], 'dt_posted' => $dtPosted->get('yyyy-MM-dd'), 'trn_amt' => $valor, 'fit_id' => $t['FITID'], 'check_num' => $t['CHECKNUM'], 'payeeid' => $t['PAYEEID'], 'memo' => $t['MEMO'], 'conta_id' => $form->getValue('conta_id') )); if( $result != null ){ $qtd++; $dbtable->baixarLancamento($result, $form->getValue('conta_id')); } } } if( $qtd > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Extrato importado com sucesso.' )); $this->_helper->redirector('extrato-para-analise'); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro importado.' )); } } $this->view->form = $form; } public function extratoParaAnaliseAction() { $form = new Form_ExtratoLancarItem(); if( $this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost()) ){ if( $this->getRequest()->getPost('btn_lancar') != null ){ $this->_forward('setar-importado', null, null, $this->getRequest()->getParams()); } else { $extratos = $this->getRequest()->getPost('extratos'); $dbtableExtrato = new Model_DbTable_Extrato(); foreach ( $extratos as $extrato ) { $dadosExtrato = $dbtableExtrato->fetchRow("id = {$extrato}"); if( $dadosExtrato != null ){ if( $dadosExtrato['trn_amt'] > 0 ){ $receita = new Model_Receita(); $receita->setCategoriaId($form->getValue('categoria_id')); $receita->setContaId($dadosExtrato['conta_id']); $receita->setDataPagamento($dadosExtrato['dt_posted']); $receita->setDataVencimento($dadosExtrato['dt_posted']); $receita->setDescricao($dadosExtrato['memo']); $receita->setEmpresaId($form->getValue('empresa_id')); $receita->setFornecedorId($form->getValue('fornecedor_id')); $receita->setNumeroDocumento($dadosExtrato['check_num']); $receita->setValor(number_format(abs($dadosExtrato['trn_amt']), 2, ',', '.')); $receita->setValorPago(number_format(abs($dadosExtrato['trn_amt']), 2, ',', '.')); $result = $receita->salvar($receita); if( $result != null ){ $dbtableExtrato->setarImportado($dadosExtrato['id']); } unset($receita); } else { $despesa = new Model_Despesa(); $despesa->setCategoriaId($form->getValue('categoria_id')); $despesa->setContaId($dadosExtrato['conta_id']); $despesa->setDataPagamento($dadosExtrato['dt_posted']); $despesa->setDataVencimento($dadosExtrato['dt_posted']); $despesa->setDescricao($dadosExtrato['memo']); $despesa->setEmpresaId($form->getValue('empresa_id')); $despesa->setFornecedorId($form->getValue('fornecedor_id')); $despesa->setNumeroDocumento($dadosExtrato['check_num']); $despesa->setValor(number_format(abs($dadosExtrato['trn_amt']), 2, ',', '.')); $despesa->setValorPago(number_format(abs($dadosExtrato['trn_amt']), 2, ',', '.')); $result = $despesa->salvar($despesa); if( $result != null ){ $dbtableExtrato->setarImportado($dadosExtrato['id']); } unset($despesa); } } } } } $dbtable = new Model_DbTable_Extrato(); $this->view->extratos = $dbtable->fetchAll("importado <> 1", "dt_posted ASC"); $this->view->form = $form; } public function setarImportadoAction() { if( $this->getRequest()->isPost() ){ $extratos = $this->getRequest()->getPost('extratos'); $qtd = 0; foreach ( $extratos as $extrato ) { $dbtableExtrato = new Model_DbTable_Extrato(); $result = $dbtableExtrato->setarImportado($extrato); if( $result != null ){ $qtd++; } } if( $qtd > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Operação realizada com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum item foi alteado.' )); } } $this->_helper->redirector('extrato-para-analise'); } public function associarLancamentoAction() { $extratoId = (int) $this->getRequest()->getParam('extrato_id'); if( $extratoId > 0 ){ $dbtableExtrato = new Model_DbTable_Extrato(); $dadosExtrato = $dbtableExtrato->fetchRow("id = {$extratoId}"); if( $dadosExtrato != null ){ $this->view->dados_extrato = $dadosExtrato; $tipoLancamento = $dadosExtrato['trn_amt'] > 0 ? "RECEITA" : "DESPESA"; $lancamento = new Model_Lancamento(); $lancamentos = $lancamento->getLancamentosAbertos(array( 'mes_ano' => date('m/Y'), 'tipo_lancamento' => $tipoLancamento )); $this->view->lancamentos = $lancamentos; } } else { $this->_helper->redirector('extrato-para-analise'); } } public function setarLancamentoExtratoAction() { $extratoId = (int) $this->getRequest()->getParam('extrato_id'); $lancamentoId = (int) $this->getRequest()->getParam('lancamento_id'); if( $extratoId > 0 && $lancamentoId > 0 ){ $dbtableExtrato = new Model_DbTable_Extrato(); $dbtableLancamento = new Model_DbTable_Lancamento(); $dadosExtrato = $dbtableExtrato->fetchRow("id = {$extratoId}"); $dadosLancamento = $dbtableLancamento->fetchRow("id = {$lancamentoId}"); if( $dadosLancamento != null && $dadosExtrato != null ){ $result = $dbtableLancamento->update(array( 'data_pagamento' => $dadosExtrato['dt_posted'], 'valor_pago' => number_format(abs($dadosExtrato['trn_amt']), 2, ',', '.') ), "id = {$lancamentoId}"); if( $result != null ){ $this->_helper->flashMessenger(array( 'success' => 'Registro associado com sucesso.' )); $dbtableExtrato->setarImportado($extratoId); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro associado.' )); } } } $this->_helper->redirector('extrato-para-analise'); } public function quitarProtocolosAction() { $request = $this->getRequest(); $form = new Form_Filtro_QuitarProtocolos(); $ns = new Zend_Session_Namespace('filtro_quitar_protocolos'); if ($request->isPost() && !$request->getPost("btn_filtrar")) { $action = $request->getPost("acao"); if ($action) { $controller = null; $params = $this->getRequest()->getParams(); switch ($action) { case "enviar-protocolo" : $controller = "contrato"; break; case "enviar-protocolo-sms" : $controller = "notificacao"; break; case "enviar-notificacao-bloqueio" : $action = "enviar-protocolo"; $controller = "contrato"; $params['bloqueio'] = true; break; case "gerar-remessa" : $action = "gerar-remessa"; $controller = "remessa"; break; case "exportar" : $action = "exportar-protocolos-a-quitar"; $controller = "financeiro"; break; } $this->_forward($action, $controller, null, $params); return; } else { $protocolos = $request->getPost('protocolos'); if (count($protocolos) > 0) { $fields = [ 'data_quitacao' => $request->getPost('data_quitacao') ]; try { Upload::save((new Zend_File_Transfer_Adapter_Http()), $fields, $this->_bucketFolder); } catch (Exception $ex) { $this->_helper->flashMessenger(['error' => $ex->getMessage()]); } $cont = 0; foreach ($protocolos as $protocoloId) { $protocolo = new Model_ProtocoloPagamento(); $result = $protocolo->quitar($fields['data_quitacao'], $protocoloId, $fields['arquivo']); if ($result) { $cont++; } } if ($cont > 0) { $this->_helper->flashMessenger(['success' => "$cont Protocolo(s) quitado(s) com sucesso."]); } else { $this->_helper->flashMessenger(['alert' => 'Atenção! Nenhum protocolo foi quitado']); } } else { $this->_helper->flashMessenger(['alert' => 'Atenção! Nenhum protocolo foi selecionado.']); } $this->_helper->redirector('quitar-protocolos'); } } elseif ( $request->isPost() ){ $ns->unsetAll(); $ns->filtro_quitar_protocolos = $request->getPost(); } if (isset($ns->filtro_quitar_protocolos) && count($ns->filtro_quitar_protocolos) > 0) { $fields = $ns->filtro_quitar_protocolos; $form->populate($fields); $protocolo = new Model_ProtocoloPagamento(); $this->view->protocolos = $protocolo->listarProtocolosParaQuitar($fields); } $this->view->form = $form; } public function protocolosQuitadosAction() { $request = $this->getRequest(); $form = new Form_Filtro_ProtocolosQuitados(); $ns = new Zend_Session_Namespace('filtro_protocolo_quitados'); if( $request->isPost() && !$request->getPost("btn_filtrar")) { $action = $request->getPost("acao"); if ($action == 'atualizar-quitacao') { $data = $request->getParam('data_quitacao'); if ($data) { $date = new Zend_Date(); $dbtable = new Model_DbTable_ProtocoloPagamento(); $protocolos = $request->getParam('protocolos'); $dataQuitacao = $date->set($data)->toString('yyyy-MM-dd'); $result = $dbtable->update(array('data_quitacao' => $dataQuitacao), "id IN (" . implode(',', $protocolos) . ")"); if($result) { $this->_helper->flashMessenger(array('success' => 'Operação realizada com sucesso.')); } else { $this->_helper->flashMessenger(array('alert' => 'Nenhum registro foi alterado.')); } } else { $this->_helper->flashMessenger(array('alert' => 'Data da quitação inválida.')); } $this->_helper->redirector('protocolos-quitados'); } $controller = null; if( $action == "enviar-protocolo" || $action == 'notifica-quitacao' ){ $controller = "contrato"; }elseif( $action == "enviar-protocolo-sms" ){ $controller = "notificacao"; } $this->_forward($action, $controller, null, $this->getRequest()->getParams()); return; } elseif( $request->isPost() ){ $ns->unsetAll(); $ns->filtro_protocolo_quitados = $request->getPost(); } $this->_helper->flashMessenger(array( 'alert' => 'Atenção! Caso já exista anexo para o protocolo selecionado, o mesmo será substituído.' )); $filtros = !empty($ns->filtro_protocolo_quitados) ? array_filter($ns->filtro_protocolo_quitados) : null; if (empty($filtros)) { $this->_helper->flashMessenger(array( 'alert' => "Informe pelo menos uma opção de busca." )); } elseif (count($filtros) > 1) { $form->populate($filtros); $protocolo = new Model_ProtocoloPagamento(); $this->view->protocolos = $protocolo->listarProtocolosQuitados($filtros); } $this->view->form = $form; } public function alterarContaProtocoloAction() { $request = $this->getRequest(); $protocolos = $request->getParam('protocolos'); $contaId = $request->getParam('conta_id'); $origem = $request->getParam('action'); if( !$protocolos ){ $this->_helper->flashMessenger(array( 'alert' => 'Selecione pelo menos um item' )); $this->_helper->redirector($origem); } if( !$contaId ){ $this->_helper->flashMessenger(array( 'alert' => 'Conta inválida.' )); $this->_helper->redirector($origem); } $protocoloPagamento = new Model_DbTable_ProtocoloPagamento(); $result = $protocoloPagamento->update(array( 'conta_id' => $contaId ), "id IN (" . implode(',', $protocolos) . ")"); if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => "$result protocolo(s) alterado(s) com sucesso." )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum protocolo foi alterado.' )); } $this->_helper->redirector($origem); } public function alterarDataPagamentoProtocoloAction() { $request = $this->getRequest(); $protocolos = $request->getParam('protocolos'); $dataPagamento = $request->getParam('data_pagamento'); $origem = $request->getParam('action'); if( !$protocolos ){ $this->_helper->flashMessenger(array( 'alert' => 'Selecione pelo menos um item' )); $this->_helper->redirector($origem); } if( !$dataPagamento || !Zend_Date::isDate($dataPagamento, 'dd/MM/yyyy')){ $this->_helper->flashMessenger(array( 'alert' => 'Informe uma data válida' )); $this->_helper->redirector($origem); } $dataPagamento = new Zend_Date($dataPagamento, 'dd/MM/yyyy'); $protocoloPagamento = new Model_DbTable_ProtocoloPagamento(); $result = $protocoloPagamento->update(array( 'data_pagamento' => $dataPagamento->get('yyyy-MM-dd') ), "id IN (" . implode(',', $protocolos) . ") AND data_quitacao IS NULL"); if( $result > 0 ){ $this->_helper->flashMessenger(array( 'success' => "$result protocolo(s) alterado(s) com sucesso." )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum protocolo foi alterado.' )); } $this->_helper->redirector($origem); } public function descontarTaxaTransfProtocoloAction() { $request = $this->getRequest(); $protocolos = $request->getParam('protocolos'); $controller = $request->getParam('controller'); $action = $request->getParam('action'); $caminho = null; switch ( $action ) { case 'liberar-protocolo-pagamentos': $caminho = 'protocolos-liberar'; break; case 'liberar-protocolo-pagamento': $caminho = 'view-protocolos'; break; case 'quitar-protocolos': $caminho = 'quitar-protocolos'; break; case 'protocolos-quitados': $caminho = 'protocolos-quitados'; break; } $protocoloPagamento = new Model_ProtocoloPagamento(); try { $result = $protocoloPagamento->descontarTaxaTransf($protocolos); } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); $this->_helper->redirector($caminho, $controller); } if( array_sum($result) > 0 ){ $result['descontada'] > 0 ? $this->_helper->flashMessenger(array( 'success' => "{$result['descontada']} taxa(s) de transferência descontada(s) do(s) protocolo(s) com sucesso." )) : null; $result['retirada'] > 0 ? $this->_helper->flashMessenger(array( 'success' => "{$result['retirada']} taxa(s) de transferência retirada(s) do(s) protocolo(s) com sucesso." )) : null; $result['nao_alterado'] > 0 ? $this->_helper->flashMessenger(array( 'alert' => "{$result['nao_alterado']} protocolo(s) não alterado(s), forma de pagamento não é por transferência" )) : null; } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum protocolo foi alterado.' )); } $this->_helper->redirector($caminho, $controller); } public function anexarComprovantePagamentoAction() { $protocolos = $this->getRequest()->getPost('protocolos'); $fields = []; $cont = 0; try{ Upload::save((new Zend_File_Transfer_Adapter_Http()), $fields, $this->_bucketFolder); } catch (Exception $ex) { $this->_helper->flashMessenger(['error' => $ex->getMessage()]); } if (count($protocolos) > 0 && !empty($fields['anexo'])) { foreach ( $protocolos as $p ) { $protocolo = new Model_ProtocoloPagamento(); $result = $protocolo->anexarComprovantePagamento($p, $fields['anexo']); if( $result != null ){ $cont++; } } } if ($cont > 0) { $this->_helper->flashMessenger(['success' => 'Arquivo anexado com sucesso.']); } else { $this->_helper->flashMessenger(['alert' => 'Atenção! Nenhum anexo foi adicionado.']); } $this->_helper->redirector('protocolos-quitados'); } public function saldosAction() { $form = new Form_Filtro_FinanceiroSaldos(); $request = $this->getRequest(); $mesReferencia = Zend_Date::now()->toString('yyyy-MM'); if( $request->isPost() ){ $form->populate($request->getPost()); if( $form->isValid($request->getPost()) ){ try { $data = new Zend_Date('01/' . $request->getPost('data_referencia'), Zend_Date::DATES, 'pt'); $mesReferencia = $data->toString('yyyy-MM'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); } } $empresa = new Model_Empresa(); $this->view->composicao_saldo = $empresa->getComposicaoSaldo($mesReferencia); } $this->view->form = $form; } public function alterarConciliacaoAction() { $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $request = $this->getRequest(); $lancamentos = $request->getParam('lancamentos'); if( $request->isPost() ){ if( count($lancamentos) > 0 ){ foreach ( $lancamentos as $lancamentoId ) { $lancamento = new Model_Lancamento(); $result = $lancamento->alterarConciliacao($lancamentoId); $cont = 0; if( $result > 0 ){ $cont++; } } if( $cont > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Dados alterados com sucesso.' )); } else { $this->_helper->flashMessenger(array( 'alert' => 'Nenhum registro foi alterado.' )); } } } $this->_helper->redirector('extrato-bancario', 'relatorio'); } public function imprimirVariosProtocolosAction() { $this->_helper->layout->setLayout('layout_impressao'); $request = $this->getRequest(); $protocolos = $request->getParam('protocolos'); $protocolo = new Model_ProtocoloPagamento(); $protocoloContrato = new Model_ProtocoloContrato(); $exibirProtocolo = $request->getPost("exibir_protocolo"); $exibirRecibo = $request->getPost("exibir_recibo"); if( !$protocolos){ $this->_helper->flashMessenger(array( 'alert' => 'Selecione pelo menos um item' )); $this->_helper->redirector('selecionar-quitados'); } if(count($protocolos)){ $ns = new Zend_Session_Namespace(); $this->view->acl = $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'contrato', 'enviar-protocolo') ? true : false; $this->view->contador = count($protocolos); $this->view->quebra_pagina = true; $this->view->protocolos = ''; foreach ( $protocolos as $count => $protocoloId ) { $this->view->recibo = !empty($exibirRecibo); $this->view->protocolo = $protocolo->exibir($protocoloId); $contratos = $protocoloContrato->getContratosPorProtocolo($protocoloId); $this->view->corretor = $this->view->protocolo->findParentRow('Model_DbTable_Corretor'); $banco = $this->view->protocolo->findParentRow('Model_DbTable_BancoFebraban'); $taxaTransf = isset($this->view->protocolo->taxa_transferencia_banco) && $this->view->protocolo->descontar_taxa_transf == 1 ? $this->view->protocolo->taxa_transferencia_banco : null; $totalComissao = $totalEstorno = 0; foreach ($contratos as $c) { $dadosContratoProtocolo = Model_ProtocoloContrato::getDadosProtocoloContrato($c['id'], $this->view->protocolo->id); if (!$dadosContratoProtocolo) { $valor = (($c['base_comissao_valor'] * ($c['comissao_corretor'] / 100)) + ($c['base_comissao_bonus'] * ($c['bonus_corretor'] / 100))); $valor -= $c['rco'] - $c['outras_despesas']; } else { $valor = $dadosContratoProtocolo['valor']; } if ($valor > 0) { $totalComissao += $valor; } else { $totalEstorno += $valor; } } if (isset($this->view->protocolo->forma_pagamento_id) && $this->view->protocolo->forma_pagamento_id != 7 || $totalComissao == 0) { $taxaTransf = 0; } $recuperados = $this->view->protocolo->findDependentRowset('Model_DbTable_ProtocoloValorRecuperado'); $totalRecuperado = 0; if ($recuperados) { $valoresRecuperados = array_map(function ($element) { return $element['valor']; }, $recuperados->toArray()); $totalRecuperado = array_sum($valoresRecuperados); } $this->view->banco = $banco; $this->view->taxaTransf = $taxaTransf; $this->view->totalComissao = $totalComissao; $this->view->totalEstorno = $totalEstorno; $this->view->totalRecuperado = $totalRecuperado; $this->view->totalRecibo = $totalComissao + $this->view->protocolo['acrescimo'] - ($this->view->protocolo['desconto'] - $totalEstorno) - $taxaTransf - $totalRecuperado; if($exibirProtocolo) { $this->view->contratos = $contratos; $this->view->protocolos .= $this->view->render('contrato/imprimir-protocolo-pagamento.phtml'); } if($exibirRecibo) { $this->view->protocolos .= $this->view->render('financeiro/recibo-protocolo-pagamento.phtml'); } } if(count($protocolos) == 1){ $this->view->protocolo_id = $protocoloId; } } } public function comporFinanceiroAction() { $request = $this->getRequest(); $lancamentos = $request->getPost("lancamentos"); if( !$lancamentos ){ $this->_helper->flashMessenger(array( 'alert' => 'Selecione pelo menos um item' )); $this->_helper->redirector('lista-credito-corretor'); } $cont = 0; $dbtable = new Model_DbTable_Lancamento(); foreach ( $lancamentos as $lancamentoId ) { $dados = $dbtable->fetchRow("id = {$lancamentoId}"); $convertDadosToArray = $dados->toArray(); $convertDadosToArray['data_vencimento'] = $convertDadosToArray['data_pagamento']; $convertDadosToArray['valor_pago'] = number_format($convertDadosToArray['valor_pago'], 2, ',', '.'); $despesa = new Model_Despesa($convertDadosToArray); $despesa->setId(null); try { $despesa->salvar($despesa); $cont++; } catch ( Exception $e ) { $this->_helper->flashMessenger(array( 'alert' => $e->getMessage() )); } } if( $cont > 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('lista-credito-corretor'); } public function recebimentoComissaoEmpresaAction() { $form = new Form_Filtro_RecebimentoComissaoEmpresa(); $contratoModel = new Model_Contrato(); $contratos[] = null; $request = $this->getRequest(); if( $request->isPost() ){ $params = $request->getParams(); $params['data_liberacao_require'] = true; $params['estornado'] = 2; $contratos = $contratoModel->getContratos($params); $form->isValid($params); $this->view->contratos = $contratos; } else { $element = $form->getElement('status_proposta'); $status = Model_Contrato::findByNameStatus(array( "Operação Finalizada", "Pagamento Enviado" )); $element->setValue($status); } $this->view->form = $form; } public function baixaRecebimentoComissaoEmpresaAction() { $recebimentoContrato = new Model_DbTable_RecebimentoContrato(); $request = $this->getRequest(); $contratos = $request->getPost('contratos'); foreach ($contratos as $id => $contrato) { if (empty($contrato['data_saldo'])) { unset($contratos[$id]); } } if( $request->isPost() && count($contratos) > 0 ){ $result = $recebimentoContrato->baixarRecebimentoComissaoEmpresaManual($contratos); if( $result['cont_success'] > 0 ){ $this->_helper->flashMessenger(array( 'success' => 'Operação realizada com sucesso!' )); } if( $result['cont_errors'] > 0 ){ $this->_helper->flashMessenger(array( 'alert' => 'Alguns contratos não foram baixados, pois o recebimento já possui saldo nesta data.' )); } if( $result['cont_not_select'] > 0 ){ $this->_helper->flashMessenger(array( 'alert' => 'Alguns contratos não foram baixados, pois nenhum dado foi preenchido.' )); } } else { $this->_helper->flashMessenger(array( 'alert' => "Nenhum contrato selecionado." )); } $this->_redirect('/financeiro/recebimento-comissao-empresa'); } /** * Permitir alterar comissao da empresa na tela de recebimento empresa */ public function atualizaComissaoEmpresaAction() { $request = $this->getRequest(); if( $request->isPost() ){ $id = String_Refatorar::soNumeros($request->getPost('id')); $contrato = new Model_Contrato(); $dadosContrato = $contrato->exibir($id); if( !$dadosContrato ){ $this->_helper->json(array( 'result' => 0, 'msg' => "Param inválido." )); } $data = array(); if( $request->getPost('comissao_recebida') != 'undefined' && $request->getPost('comissao_recebida') != "null" ){ $data['comissao_recebida'] = str_replace(array( '.', ',' ), array( '', '.' ), $request->getPost('comissao_recebida')); } $comissaoRecebida = $dadosContrato->valor_fixo_empresa + ($data['comissao_recebida'] * $dadosContrato->base_comissao_empresa_valor / 100); } $this->_helper->json(array( "result" => $comissaoRecebida )); } public function lancarDescontoCorretorAction() { $this->_helper->layout()->setLayout('layout_popup'); $request = $this->getRequest(); $form = new Form_CreditoCorretor(); $id = (int) $request->getParam('id'); $clienteId = (int) $request->getParam('cliente_id'); $acaoId = (int) $request->getParam('id_acao'); if( 0 === $id ){ $this->_helper->flashMessenger(array( 'error' => 'Contrato inválido!' )); } if( 0 === $clienteId ){ $this->_helper->flashMessenger(array( 'error' => 'Cliente inválido!' )); } if( 0 === $acaoId ){ $this->_helper->flashMessenger(array( 'error' => 'Ação inválida!' )); } if( 0 === $id || 0 === $clienteId || 0 === $acaoId ){ $this->_helper->redirector('save', 'contrato-juridico', null, $request->getParams()); } if( $request->isPost() ){ try { $model = new Model_CreditoCorretor($request->getPost()); $result = $model->salvar($model); if( $result ){ $this->_helper->flashMessenger(array( 'success' => 'Débito cadastrado com sucesso' )); } else { $this->_helper->flashMessenger(array( 'error' => 'Erro ao tentar cadastrar o débito do corretor' )); } $this->_redirect("financeiro/lancar-desconto-corretor/id/{$id}/cliente_id/{$clienteId}/id_acao/{$acaoId}"); } catch ( Zend_Exception $e ) { $this->_helper->flashMessenger(array( 'error' => $e->getMessage() )); $this->_redirect("financeiro/lancar-desconto-corretor/id/{$id}/cliente_id/{$clienteId}/id_acao/{$acaoId}"); } } $contratoModel = new Model_Contrato(); $contrato = $contratoModel->getAcoesJudiciais($request->getParam('id')); $valorPago = 0; switch ($contrato['descontar']) { case 1: $valorPago = $contrato['valor_comissao_paga']; break; case 2: $valorPago = $contrato['valor_comissao_paga'] + $contrato['valor_liquido']; break; case 3: $valorPago = $contrato['valor_comissao_paga'] + $contrato['valor_liquido'] + $contrato['valor_honorarios'] + $contrato['valor_tarifas']; break; } $form->populate(array( 'descricao' => 'DESCONTO AÇÃO JUDICIAL', 'corretor_id' => $contrato['corretor_id'], 'data_pagamento' => $contrato['data_pagamento_protocolo'], 'valor_pago' => number_format($valorPago, 2, ',', '.'), )); $form->removeElement('btn_new'); $form->getElement('btn_back')->setAttrib('onclick', 'javascript:history.back();'); $this->view->form = $form; } public function protocolosGeradosAction() { $protocolo = new Model_ProtocoloPagamento(); $form = new Form_Filtro_ProtocolosGerados(); if ($this->getRequest()->isPost()) { $protocolos = $protocolo->listarProtocolosGerados($this->getRequest()->getParams()); } $this->view->form = $form->populate($this->getRequest()->getParams()); $this->view->protocolos = isset($protocolos) ? $protocolos : []; } public function imprimirCreditoDebitoAction() { $this->_helper->layout->setLayout('layout_impressao'); $request = $this->getRequest(); $id = (int)$request->getParam('id'); if( $id > 0 ){ $credito = new Model_CreditoCorretor(); $dadosCreditoDebito = $credito->exibir($id); $this->view->dadosCreditoDebito = $dadosCreditoDebito; } } public function downloadComprovanteAction() { $anexoUrl = $this->getRequest()->getParam('anexo_url'); Upload::download($anexoUrl, $this->_bucketFolder); } public function exibirResumoComissoesAction() { $request = $this->getRequest(); $params = $request->getParams(); parse_str($params['filtros'], $filtros); $contrato = new Model_Contrato(); $this->view->corretores = $contrato->getResumoComissaoPagar($filtros); $this->_helper->json([ 'alert' => '', 'body' => true, 'content' => $this->view->render('financeiro/exibir-resumo-corretores.phtml'), ]); } public function pagarProtocoloPixAction() { $request = $this->getRequest(); $protocolos = $request->getPost("protocolos"); $certDir = CLIENT_PATH . "/configs/certs/"; $contaPagamento = 0; if (!is_dir($certDir) || !file_exists($certDir)) { if (!mkdir($certDir)) { $this->_helper->flashMessenger(['error' => "O diretório de certificado digital não existe e não pode ser criado"]); $this->_helper->redirector('quitar-protocolos'); } } foreach ($protocolos as $protocoloId) { $protocolo = (new Model_ProtocoloPagamento())->exibir($protocoloId); if (empty($protocolo->chave_pix)) { continue; } if (empty($protocolo->conta_id)) { $this->_helper->flashMessenger(['error' => "Protocolo {$protocolo->id} não tem conta setada para pagamento."]); continue; } $somaProtocolo = (new Model_ProtocoloContrato())->getSomaProtocoloContrato($protocoloId)['valor']; $somaProtocolo += $protocolo->taxa_transferencia_banco ?? 0; $valorPagamento = $somaProtocolo; $valorPagamento -= $protocolo->desconto ?? 0; $valorPagamento += $protocolo->acrescimo ?? 0; $conta = $protocolo->findParentRow('Model_DbTable_Conta'); if ($valorPagamento <= 0) { continue; } if ($contaPagamento != $protocolo->conta_id) { $contaPagamento = $protocolo->conta_id; if (empty($conta->pix_key_file) || empty($conta->pix_cert_file)) { $this->_helper->flashMessenger(['error' => "Conta {$conta->nome} não possui certificado SSL."]); continue; } try { $pixKeyFile = Upload::getRawData($conta->pix_key_file, 'certificados'); file_put_contents($certDir . "pix_key_file.key", $pixKeyFile); $pixCertFile = Upload::getRawData($conta->pix_cert_file, 'certificados'); file_put_contents($certDir . "pix_cert_file.crt", $pixCertFile); } catch (Exception $e) { $this->_helper->flashMessenger(['error' => "Não foi possível baixar o certificado SSL da conta {$conta->nome}."]); continue; } try { $yuppiePix = new Yuppie_Banco_Pix_Inter(); } catch (Yuppie_Exception $e) { $this->_helper->flashMessenger(['error' => $e->getMessage()]); continue; } } $corretor = $protocolo->findParentRow('Model_DbTable_Corretor'); try { $response = $yuppiePix->pagar($protocolo->chave_pix, $valorPagamento); if (empty($response->codigoSolicitacao)) { $this->_helper->flashMessenger(['alert' => "Transferência de " . $corretor->nome . " não executada"]); } else { (new Model_ProtocoloPagamento())->quitar(date('d/m/Y'), $protocoloId); $this->_helper->flashMessenger(['success' => "Transferência de " . $corretor->nome . " executada com sucesso"]); } } catch (Yuppie_Exception $e) { Yuppie_Log::write("Yuppie_Exception ao pagar via PIX: " . $e->getMessage() . $e->getTraceAsString(), $this); $this->_helper->flashMessenger(['error' => $e->getMessage()]); } catch (Exception $e) { Yuppie_Log::write("Exception ao pagar via PIX: " . $e->getMessage() . $e->getTraceAsString(), $this); $this->_helper->flashMessenger(['error' => "Falha na execução da transferência PIX"]); } } unlink($certDir . "pix_key_file.key"); unlink($certDir . "pix_cert_file.crt"); $this->_helper->redirector('quitar-protocolos'); } public function exportarProtocolosAQuitarAction() { $request = $this->getRequest(); $protocolos = $request->getParam('protocolos'); if (empty($protocolos)) { $this->_helper->flashMessenger(['error' => "Selecione os protocolos para exportação."]); $this->_helper->redirector('quitar-protocolos'); } $fileName = (new Model_ProtocoloPagamento())->exportarProtocolosAquitar([ 'protocolo_pagamento_id' => $protocolos ]); $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(getcwd() . "/downloads/" . $fileName); unlink(getcwd() . "/downloads/" . $fileName); exit; } }
💾 保存文件
← 返回文件管理器