✏️ 正在编辑: Fucador.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Service/Fucador.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Service_Fucador extends Core_Service_ConsultaConsignado { private $_usuario = null; private $_senha = null; private $_key = null; private $_url = 'http://fucador.com/ws2/rFucador.php?'; function __construct(array $options = null) { if( !$this->_verificaPermissoes() ){ $msgErro = 'Você não possui créditos para realizar consultas.'; throw new Core_Exception($msgErro); } if( !$options ){ $config = new Zend_Config_Ini( CLIENT_PATH . '/configs/application.ini', APPLICATION_ENV); if($config->fucador){ $options = $config->fucador->toArray(); } else { $msgErro = 'Fuçador não está configurado em seu sistema.'; throw new Core_Exception($msgErro); } } $this->setOptions($options); $this->_key = date('d')*1024+5; } public function setOptions(array $options) { $this->_usuario = $options['usuario']; $this->_senha = $options['senha']; return $this; } protected function getUrl() { $params = array( "u={$this->_usuario}", "s={$this->_senha}", "k={$this->_key}", ); $url = $this->_url; $url .= implode("&", $params); return $url; } protected function extractDados($nb, $xml) { $xmlData = $this->_isValidXml($xml); $dados = array( 'origem' => 'Fuçador', 'orgao_consulta' => 'INSS', 'cpf' => $this->getCpf() ); $this->_inicializaDados($dados); $informacoesBeneficio = $xmlData->dados_cadastrais; $dados['beneficio'] = $nb; $dados['situacao'] = current($informacoesBeneficio->situacaobeneficio); $dados['cpf'] = current($informacoesBeneficio->cpf); $dados['rg'] = current($informacoesBeneficio->rg); $dados['nit'] = current($informacoesBeneficio->nit); $dados['nome'] = current($informacoesBeneficio->nomecompleto); $dados['nascto'] = current($informacoesBeneficio->nascto); $dados['banco_pagto'] = current($informacoesBeneficio->codbanco); $dados['agencia_pagto'] = current($informacoesBeneficio->idagencia); $dados['conta_pagto'] = current($informacoesBeneficio->tipo_numero_conta); $dados['mae'] = current($informacoesBeneficio->mae); $dados['itens']['enderecos'][] = array( 'logradouro' => current($informacoesBeneficio->endereco), 'numero' => '', 'complemento' => '', 'bairro' => current($informacoesBeneficio->bairro), 'cep' => current($informacoesBeneficio->cep), 'cidade' => current($informacoesBeneficio->cidade), 'uf' => current($informacoesBeneficio->uf) ); $dados['especie'] = current($informacoesBeneficio->esp); $dados['especie_descricao'] = current($informacoesBeneficio->descesp); $dados['competencia'] = current($xmlData->resumo->competencia); $dados['dib'] = current($informacoesBeneficio->dib); $dados['cessado'] = null; $dados['obito'] = Zend_Date::isDate($informacoesBeneficio->dataobito, "dd/MM/yyyy") ? "SIM" : "NÃO"; $dados['rep_legal'] = current($informacoesBeneficio->procurador) == "N" ? "NÃO" : "SIM"; $dados['bloq_emp'] = current($informacoesBeneficio->bloqueio) == "N" ? "NÃO" : "SIM"; $dados['itens']['telefones'] = array(); foreach( $informacoesBeneficio->telefones as $fone ){ $dados['itens']['telefones'][] = $fone; } $dados['emails'] = array(); $this->_getContratos($xmlData, $dados); // $dados['mr'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($xmlData->resumo->mr) ? $xmlData->resumo->mr : 0); $dados['margem'] = str_replace(array( '.', ',' ), array( '', '.' ), current($xmlData->resumo->margem)); $dados['margem_cartao'] = str_replace(array( '.', ',' ), array( '', '.' ), current($xmlData->resumo->margemrmc)); $dados['margem_cartao_rmc'] = 0; $dados['complemento_acompanhamento'] = 0; $dados['descontos'] = str_replace(array( '.', ',' ), array( '', '.' ), current($xmlData->resumo->rubricasdebitos)); $dados['imposto_renda_retido'] = 0; $dados['contribuicao_contag'] = 0; $this->_getRubricas($xmlData, $dados); // $this->getDetalhamentoDataprev($nb, $dados); return $dados; } /** * Retorna um array com informações do cliente e do(s) empréstimo(s) * * @param string $cpf * @return array */ public function getConsignadoPorCpf($cpf) { if( !$cpf ) return; $this->setCpf($this->formatarCpf($cpf)); $params = array( "&tipo=CONSULTACPF", "doc={$this->getCpf()}" ); $url = $this->getUrl(); $url .= implode("&", $params); $result = $this->callCurlMethod($url); if( empty($result) ){ throw new Core_Exception("A consulta não retornou nenhuma informação. Tente novamente!"); } return $this->extractBeneficios($result); } protected function extractBeneficios($xml) { $xmlData = $this->_isValidXml($xml); if( !empty($xmlData->erro) ){ throw new Core_Exception("Fuçador: " . $xmlData->erro); } $dados = array(); foreach($xmlData->dadosPessoais as $registro){ $dados[] = array( 'cpf' => $this->getCpf(), 'beneficio' => current($registro->beneficio), 'nome' => current($registro->nome), 'data_nascimento' => null, 'especie' => null, 'dib' => null, 'cidade' => null, 'uf' => null, ); } return $dados; } /** * Retorna um array com informações do cliente e do(s) empréstimo(s) * * @param int $nBeneficio * @return array */ public function getConsignadoPorBeneficio($nBeneficio) { $params = array( "&tipo=CONSULTANB", "doc={$nBeneficio}" ); $url = $this->getUrl(); $url .= implode("&", $params); $result = $this->callCurlMethod($url); if( empty($result) ){ throw new Core_Exception("A consulta não retornou nenhuma informação. Tente novamente!"); } $dados = $this->extractDados($nBeneficio, $result); return $dados; } protected function _getContratos($xmlData, &$dados) { if( empty($xmlData->hiscon) ){ return; } $dados['itens']['emprestimos'] = array(); $totalConsignado = $totalCartao = 0; foreach( $xmlData->hiscon as $registro ){ $valorParcela = str_replace(array( '.', ',' ), array( '', '.' ), current($registro->vlparcela)); if( current($registro->tipo) == "CARTAO/RMC" ){ $valorReservado = str_replace(array( '.', ',' ), array( '', '.' ), current($registro->vlremprestimo)); $dados['itens']['reserva_cartao'][] = array( 'situacao' => null, 'tipo' => 'RESERVA CARTAO', 'banco' => current($registro->banco), 'contrato' => current($registro->contrato), 'nome_banco' => current($registro->nomebanco), 'limite_cartao' => 0, 'data_inclusao' => null, 'prazo' => current($registro->prazo), 'valor_reservado' => $valorReservado, 'valor_parcela' => $valorParcela, ); $totalCartao += $valorReservado; }else{ $dados['itens']['emprestimos'][] = array( 'situacao' => null, 'tipo' => "EMPRESTIMO", 'banco' => current($registro->banco), 'nome_banco' => current($registro->nomebanco), 'contrato' => current($registro->contrato), 'vlremprestimo' => str_replace(array( '.', ',' ), array( '', '.' ), current($registro->vlremprestimo)), 'inicio_contrato' => current($registro->inicio), 'fim_contrato' => current($registro->final), 'prazo' => current($registro->prazo), 'qtypagas' => current($registro->ppagas), 'valor_parcela' => $valorParcela, 'quitacao' => str_replace(array( '.', ',' ), array( '', '.' ), current($registro->saldodevedor)), 'tipo_emprestimo' => current($registro->tipo), 'taxa' => current($registro->taxa), //taxa de juros aproximada 'emp_bloq' => null, 'dt_averbacao' => null, ); $totalConsignado += $valorParcela; } } $dados['total_consignado'] = $totalConsignado; $dados['total_cartao'] = $totalCartao; } public function getDetalhamentoDataprev($nBeneficio, &$dados) { $params = array( "&tipo=DETALHAMENTO", "doc={$nBeneficio}" ); $url = $this->getUrl(); $url .= implode("&", $params); $result = $this->callCurlMethod($url); $dados['detalhamento'] = $result; } protected function _getMargem($nb, &$dados) { $params= array( "&tipo=MARGEMINSS", "doc={$nb}", ); $url = $this->getUrl(); $url .= implode("&", $params); $result = $this->callCurlMethod($url); if( !$result ){ return; } $dadosBeneficio = $result->dados; $dadosResumo = $result->resumo; $dados['situacao'] = !empty($dadosBeneficio->situacao) ? $dadosBeneficio->situacao : null; $dados['cessado'] = null; $dados['possuirepresentantelegal'] = null; $dados['bloq_emp'] = null; $dados['base_calculo'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosBeneficio->mr) ? $dadosBeneficio->mr : 0); $dados['margem'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosBeneficio->Margem) ? $dadosBeneficio->Margem : 0); $dados['mr'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosBeneficio->mr) ? $dadosBeneficio->mr : $dados['mr']); $dados['perc_consig'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosBeneficio->Percentual) ? $dadosBeneficio->Percentual : 0); $dados['margem_cartao'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosBeneficio->Margem_RMC) ? $dadosBeneficio->Margem_RMC : 0); $dados['perc_cartao'] = 0; $dados['parcela_suspensa'] = 0; $dados['margem_cartao_rmc'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosResumo->Margem_RMC) ? $dadosResumo->Margem_RMC : 0); $dados['complemento_acompanhamento'] = 0; $dados['descontos'] = str_replace(array( '.', ',' ), array( '', '.' ), !empty($dadosResumo->TotalDebitos) ? $dadosResumo->TotalDebitos : 0); $dados['imposto_renda_retido'] = 0; $dados['contribuicao_contag'] = 0; if( empty($dados['nome']) ){ $dados['nome'] = $dadosBeneficio->nome; } if( empty($dados['especie']) ){ $especie = explode("-", $dadosBeneficio->especie); $dados['especie'] = $especie[0]; $dados['especie_descricao'] = $especie[1]; } } protected function formatarCpf($value) { $value = str_replace(array( '-', '.' ), array( '', '' ), $value); while ( strlen($value) < 11 ) { $value = '0' . $value; } return trim($value); } protected function _getRubricas($xmlData, &$dados) { if( empty($xmlData->rubrica) ){ return; } foreach( $xmlData->rubrica as $rubrica ){ if( $rubrica->codigo == '101' ){ $dados['mr'] = (float)$rubrica->vlrub; } } } public function getSiape($matricula, $cpf) { throw new Core_Exception("Funcionalidade ainda não disponível para este serviço."); } }
💾 保存文件
← 返回文件管理器