✏️ 正在编辑: BoletoController.php
路径:
/srv/systems_dir/contemax/application/modules/financeiro/controllers/BoletoController.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php /** * Boletos */ class Financeiro_BoletoController extends Zend_Controller_Action { protected $title = 'Boletos'; protected $titleIcon = 'glyphicon-reg glyphicon-reg-barcode'; public function init() { if( $this->title ){ $this->view->title = $this->title; } if( $this->titleIcon ){ $this->view->titleIcon = $this->titleIcon; } } public function retornoAction() { $alerts = $this->getHelper('Alerts'); $request = $this->getRequest(); $form = new Financeiro_Form_Retorno(); $banco = $request->getPost('banco_id'); $parcelasBaixadas = array(); $parcelasNaoBaixadas = array(); $boletosNaoEncontrados = array(); if( $request->isPost() ){ if( !$banco ){ $alerts->addWarning('Selecione o banco correspondente ao arquivo.'); $this->_helper->redirector('retorno'); } if( $form->isValid($request->getPost()) ){ $cont = 0; $adapter = new Zend_File_Transfer_Adapter_Http(); $destination = PUBLIC_PATH . '/files/retorno/'; $adapter->setDestination($destination); if( $adapter->receive() ){ try { $boleto = Yuppie_Banco_Boleto::factory($banco); $file = basename($adapter->getFileName()); $numeroRetorno = substr($file, 0, strpos($file, '.')); $boletosBaixados = $boleto->retorno($file, $destination); } catch ( Exception $e ) { $alerts->addDanger($e->getMessage()); $this->_helper->redirector('retorno'); } if( count($boletosBaixados) > 0 ){ foreach ( $boletosBaixados as $dados ) { try { $dados['numero_retorno'] = $numeroRetorno; $dados['banco'] = $banco; $arquivoRetorno = Financeiro_Model_Container::getArquivoRetorno()->createRow($dados); $arquivoRetorno->save(); } catch ( Exception $e ) {} $mLancamento = Financeiro_Model_Container::getLancamento(); if (in_array($banco, array('001', 'BancoBrasil', 'BB', '237', 'Bradesco'))){ $lancamento = $mLancamento->findById($dados['nossonumero']); } else { $lancamento = $mLancamento->findByNossoNumeroVencimento($dados['nossonumero'], $dados['data_vencimento']); } $baixar = true; if(isset($dados['codigo_movimento']) && $dados['codigo_movimento'] != '' && !in_array($dados['codigo_movimento'], $boleto->getCodigosBaixa()) ){ $baixar = false; } if( $lancamento && $baixar ){ unset($dados['codigo_movimento']); $result = $lancamento->baixarPagamento($dados, $banco); if( $result ){ $cont++; $parcelasBaixadas[] = $lancamento; } else { $parcelasNaoBaixadas[] = $lancamento; } } else { $boletosNaoEncontrados[] = (object) $dados; } } //foreach } } if( $cont > 0 ){ if( $cont == 1 ){ $alerts->addSuccess('Um título foi baixado com sucesso.'); } else { $alerts->addSuccess("{$cont} títulos foram baixados com sucesso."); } } else { $alerts->addWarning('Atenção! Nenhum título foi baixado.'); } } else { $alerts->addDanger('Erro ao tentar baixar retorno.'); } } $this->view->form = $form; $this->view->parcelasBaixadas = $parcelasBaixadas; $this->view->parcelasNaoBaixadas = $parcelasNaoBaixadas; $this->view->boletosNaoEncontrados = $boletosNaoEncontrados; } /** * Impressão Externa de Boleto */ public function impressaoBoletoAction() { $this->_helper->layout->setLayout('boleto'); $request = $this->getRequest(); $alerts = $this->getHelper('Alerts'); $lancamento = Financeiro_Model_Container::getLancamento() ->findOne(array( 'order' => 'id', 'where' => array( 'md5(id) = ?' => $request->getParam('boleto'), 'data_pagamento IS NULL OR data_pagamento <> ?' => '0000-00-00', 'excluido <> ?' => 1 ) )); if( count($lancamento) <= 0 ){ $this->_helper->layout->setLayout('popup'); $alerts->addDanger('Nenhum boleto encontrado. Este boleto já pode ter sido pago.'); return; } $conta = $lancamento->getConta(); if( !$conta ){ $this->_helper->layout->setLayout('popup'); $alerts->addDanger('Nenhuma conta encontrada para esse boleto.'); return; } $codigoBanco = $lancamento->getConta()->getBanco()->codigo; $inscricao = $lancamento->getInscricao(); $concurso = $inscricao->getConcurso(); $cargo = $inscricao->getCargo(); if( !$inscricao ){ $this->_helper->layout->setLayout('popup'); $alerts->addDanger('Inscrição não identificada'); return; } $candidato = $inscricao->getCandidato(); if (md5($candidato->nome) != $request->getParam('candidato')) { $this->_helper->layout->setLayout('popup'); $alerts->addDanger('Candidato não autorizado neste boleto'); return; } if( !$candidato ){ $this->_helper->layout->setLayout('popup'); $alerts->addDanger('Candidato não identificado'); return; } $empresa = $inscricao->getConcurso()->getCliente()->getEmpresa(); try { $boleto = Yuppie_Banco_Boleto::factory($codigoBanco, array( 'sacado_nome' => $candidato->nome, 'sacado_cpf' => $candidato->cpf, 'sacado_endereco' => $candidato->endereco . ($candidato->numero ? ', ' . $candidato->numero : '') . ($candidato->bairro ? ' - ' . $candidato->bairro : ''), 'sacado_cidade' => $candidato->cidade, 'sacado_uf' => $candidato->uf, 'sacado_cep' => $candidato->cep, 'agencia' => $conta->agencia, 'agencia_dv' => $conta->agencia_dv, 'conta' => $conta->conta, 'conta_dv' => $conta->conta_dv, 'convenio' => $conta->convenio, 'carteira' => $conta->carteira, 'cedente' => $empresa->razao_social, 'cedente_codigo' => $conta->codigo_cedente, 'cedente_endereco' => $empresa->endereco . ($empresa->complemento ? ', ' . $empresa->complemento : ''), 'cedente_cidade' => $empresa->cidade, 'cedente_uf' => $empresa->uf, 'cedente_cep' => $empresa->cep, 'cpf_cnpj' => $empresa->cnpj, 'endereco' => $empresa->endereco . ', ' . $empresa->bairro, 'cidade_uf' => $empresa->cidade . '/' . $empresa->uf, 'data_documento' => $lancamento->data_lancamento, 'instrucoes1' => $conta->mensagem_1, 'instrucoes2' => $conta->mensagem_2, 'instrucoes3' => "Concurso: {$concurso->nome}", 'instrucoes4' => "Cargo: {$cargo->nome}", 'taxa_boleto' => $conta->tarifa_boleto, 'nosso_numero' => $lancamento->id, 'numero_documento' => $lancamento->id, 'data_vencimento' => $lancamento->getDataVencimento()->get('dd/MM/yyyy'), 'valor_cobrado' => $lancamento->valor )); } catch ( Zend_Exception $ex ) { $this->_helper->layout->setLayout('popup'); $alerts->addDanger($ex->getMessage()); return; } $dados = $boleto->gerar(); $this->view->path = 'https://s3-sa-east-1.amazonaws.com/seguradora/lib/yuppie/boletos/'; $this->view->boleto = $boleto; $this->view->dadosboleto = $dados; $filter = new Zend_Filter_Word_CamelCaseToDash(); $bancoNome = strtolower($filter->filter(str_replace( 'Yuppie_Banco_Boleto_', '', get_class($boleto)))); $template = "boleto/boleto/{$bancoNome}.phtml"; $this->view->boletos = $this->view->render($template); } /** * Impressão Interna de Boleto */ public function imprimirAction() { $request = $this->getRequest(); $inscricaoId = $request->getParam('inscricao'); $lancamento = Financeiro_Model_Container::getLancamento()->findByInscricao($inscricaoId); $lancamentoId = md5($lancamento->id); $inscricao = $lancamento->getInscricao(); $candidato = $inscricao->getCandidato(); $candidatoHash = md5($candidato->nome); $this->_redirect('/impressao-boleto/' . $lancamentoId . '/' . $candidatoHash); } }
💾 保存文件
← 返回文件管理器