✏️ 正在编辑: PanXLS.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Planilha/Pan/PanXLS.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Planilha_Pan_PanXLS extends Core_Banco_Planilha { protected $_dateFormat = 'd/m/Y'; protected $colunas = array( 'agencia_beneficiado' => 'AU', 'bairro' => 'AB', 'banco_beneficiado' => 'AT', 'celular' => 'AG', 'cep' => 'AE', 'cidade' => 'AC', 'cidade_uf' => '', 'codigo_agente' => 'T', //o login no PAN é o cpf do agente 'codigo_convenio' => 'L', 'codigo_tabela' => 'AQ', 'complemento' => 'AA', 'conta_beneficiado' => 'AV', 'convenio' => 'M', 'corretor_id' => 'AA', 'cpf_cliente' => 'U', 'cpf_agente' => 'T', 'data_emissao' => 'K', 'data_expedicao' => '', 'data_liberacao' => 'J', 'data_nascimento' => 'W', 'digito_agencia_beneficiado' => '', 'digito_conta_beneficiado' => '', 'endereco' => 'Y', 'fone' => 'AF', 'forma_liberacao' => '', 'matricula' => 'AJ', 'nome_cliente' => 'V', 'nome_mae' => 'AH', 'nome_pai' => 'AI', 'nome_produto' => 'E', 'numero' => 'Z', 'numero_ade' => '', 'numero_beneficio' => '', 'numero_contrato' => 'A', 'orgao_expedidor' => '', 'prazo' => 'AL', 'produto' => 'D', 'rg' => 'X', 'status_proposta' => 'I', 'tabela' => 'AR', 'tipo_contrato' => 'C', 'uf' => 'AD', 'uf_expedidor' => '', 'valor_bruto' => 'AN', 'valor_liquido' => '', // Depende do LIB (100) 'valor_prestacao' => 'AM', 'valor_principal' => '', 'valor_refin' => '', 'tipo_formalizacao' => 'CU', 'com_seguro' => 'CQ', 'especie' => 'CY' ); protected $valoresLiquidos = array( 'AS' => 'AW', // LIB1 'AX' => 'BB', // LIB2 'BC' => 'BG', // LIB3 'BH' => 'BL', // LIB4 'BM' => 'BQ', // LIB5 'BR' => 'BV', // LIB6 'BW' => 'CA', // LIB7 'CB' => 'CF', // LIB8 'CG' => 'CK', // LIB9 'CL' => 'CP', // LIB10 ); protected function _getValorBrutoLiquido(array $sheetData, array &$dados) { $valorBruto = $sheetData[$this->getColuna('valor_bruto')]; $dados['valor_bruto'] = String_Refatorar::parseStringToFloat($valorBruto); $tiposCartoes = [ "SAQUE", "SAQUE COM SEGURO", "COMPLEMENTAR", "COMPLEMENTAR COM SEGURO", "CARTAO", "CARTAO COM SEGURO", "CARTAO BENEFICIO", "CARTAO BENEFICIO COM SEGURO" ]; foreach ($this->valoresLiquidos as $lib => $valor) { if ($dados['tipo'] == "PORTABILIDADE" && $sheetData[$lib] == '955') { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); break; } elseif ($dados['tipo'] == "REFIN DA PORTABILIDADE") { if (in_array($sheetData[$lib], [100, 164, 173])) { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); break; } } elseif (in_array($dados['tipo'], $tiposCartoes)) { if ($sheetData[$lib] == '177') { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "C/C"; break; } elseif (in_array($sheetData[$lib], [186, 187])) { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "O/P"; break; } elseif ($sheetData[$lib] == '249') { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "LIBERACAO VIA TED"; break; } } elseif ($sheetData[$lib] == '100') { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "C/C"; break; } elseif ($sheetData[$lib] == '164') { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "O/P"; break; } elseif ($sheetData[$lib] == '163' && $dados['tipo'] == "NOVO") { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "O/P"; break; } elseif (in_array($sheetData[$lib], [20, 24]) && $dados['tipo'] == "NOVO") { $dados['valor_liquido'] = String_Refatorar::parseStringToFloat($sheetData[$valor]); $dados['forma_liberacao'] = "C/C"; break; } } $dados['valor_bruto'] = number_format($dados['valor_bruto'], 2, ',', '.'); if(!empty($dados['valor_liquido'])){ $dados['valor_liquido'] = number_format($dados['valor_liquido'], 2, ',', '.'); } } protected function _getCorretorId(array $sheetData, array &$dados) { $colCorretorId = isset($sheetData[$this->getColuna('corretor_id')]) ? $sheetData[$this->getColuna('corretor_id')] : null; $colCodigoAgente = isset($sheetData[$this->getColuna('codigo_agente')]) ? $sheetData[$this->getColuna('codigo_agente')] : null; $colCpfCorretor = isset($sheetData[$this->getColuna('cpf_agente')]) ? $sheetData[$this->getColuna('cpf_agente')] : null; $dbTable = new Model_DbTable_Corretor(); $dbTableBanco = new Model_DbTable_Banco(); $corretor = new Model_Corretor(); $corretorId = 0; $banco = $dbTableBanco->fetchRow('id = ' . $this->getBancoId()); $corretorDados = NULL; Yuppie_Log::write("Busca do corretor do contrato {$dados['numero_contrato']}", $this); Yuppie_Log::write("Busca do corretor com os dados do banco: " . print_r($banco->toArray(), true), $this); if ($banco['obedecer_id'] == null || $banco['obedecer_id'] == 0) { if ($colCodigoAgente != null) { //pesquisa pelo codigo do usuario $corretorSenha = new Model_CorretorSenha(); $corretorId = $corretorSenha->getCorretorIdBySenha(String_Refatorar::formatarCpf($colCodigoAgente), $dados['banco_id']); Yuppie_Log::write("Localizado o corretor {$corretorId} para o contrato {$dados['numero_contrato']} pelo codigo_agente '{$colCodigoAgente}'", $this); } } elseif (!empty($colCodigoAgente)) { //pesquisa pelo codigo do usuario/agente $corretorSenha = new Model_CorretorSenha(); $corretorId = $corretorSenha->getCorretorIdBySenha(String_Refatorar::formatarCpf($colCodigoAgente), $dados['banco_id']); if ($corretorId != null) { $corretorDados = $dbTable->fetchRow("id = '" . $corretorId . "'"); $dados['empresa_id'] = $corretorDados['empresa_id']; $dados['verificar_contratos'] = 1; //verifica se o corretor localizado pelo código está com o obedecer id marcado if (!empty($corretorDados) && $corretorDados['obedecer_id'] == 1) { $dadosCorretor = $corretor->exibir($colCorretorId); if ($dadosCorretor != null) { Yuppie_Log::write("Localizado o corretor {$corretorId} para o contrato {$dados['numero_contrato']} pelo ID '{$colCorretorId}'", $this); $corretorId = $dadosCorretor['id']; $dados['empresa_id'] = $dadosCorretor['empresa_id']; } } } elseif (strlen($colCpfCorretor) >= 11 && Validators_Cpf::validate($colCpfCorretor)) { $dadosCorretor = $corretor->getByCpf($colCpfCorretor); if ($dadosCorretor != null) { Yuppie_Log::write("Localizado o corretor {$corretorId} para o contrato {$dados['numero_contrato']} pelo codigo_agente '{$colCodigoAgente}'", $this); $corretorId = $dadosCorretor['id']; $dados['empresa_id'] = $dadosCorretor['empresa_id']; } } } $dados['corretor_id'] = $corretorId; } protected function _getTipoContrato(array $sheetData, array &$dados) { $colunaTipoContrato = isset($sheetData[$this->getColuna('tipo_contrato')]) ? $sheetData[$this->getColuna('tipo_contrato')] : null; $colunaSeguro = $sheetData[$this->getColuna('com_seguro')] ?? 0; $tabela = $sheetData[$this->getColuna('tabela')] ?? ""; $dados['tipo'] = $colunaTipoContrato; if ($colunaTipoContrato == "Margem Livre") { $dados['tipo'] = "NOVO"; } elseif ($colunaTipoContrato == "Refinanciamento") { $dados['tipo'] = "REFINANCIAMENTO"; } elseif ($colunaTipoContrato == "Portabilidade Manual" || $colunaTipoContrato == "Portabilidade") { $dados['tipo'] = "PORTABILIDADE"; } elseif ($colunaTipoContrato == "Refinanciamento de Portabilidade") { $dados['tipo'] = "REFIN DA PORTABILIDADE"; } elseif ($colunaTipoContrato == "Cartão" && stristr($tabela, "BENEFICIO_CARTAO")) { $dados['tipo'] = "CARTAO BENEFICIO"; } elseif ($colunaTipoContrato == "Cartão" || $colunaTipoContrato == "Cart") { $dados['tipo'] = "CARTAO"; } elseif (stristr($colunaTipoContrato, "complementar")) { $dados['tipo'] = 'COMPLEMENTAR'; } if( $colunaSeguro == 1 ){ $dados['tipo'] .= " COM SEGURO"; } } protected function _getProduto(array $sheetData, array &$dados) { $colunaCodigoProduto = isset($sheetData[$this->getColuna('produto')]) ? $sheetData[$this->getColuna('produto')] : null ; $colunaDescricaoProduto = isset($sheetData[$this->getColuna('nome_produto')]) ? $sheetData[$this->getColuna('nome_produto')] : null; $codigoProduto = 0; if( $colunaCodigoProduto ){ $produto = new Model_Produto(); $dadosProduto = $produto->existe($colunaCodigoProduto, $this->getBancoId()); if( $dadosProduto ){ $codigoProduto = $dadosProduto['codigo']; $dados['tipo'] = $dados['tipo'] ?? $dadosProduto['tipo']; } elseif(!empty($dados['tipo'])) { $produto->setCodigo($colunaCodigoProduto); $produto->setTipo($dados['tipo']); $produto->setDescricao($colunaDescricaoProduto); $produto->setBancoId($this->getBancoId()); $result = $produto->salvar($produto); if( $result != null ){ $codigoProduto = $colunaCodigoProduto; } } else { $colunaTipoContrato = isset($sheetData[$this->getColuna('tipo_contrato')]) ? $sheetData[$this->getColuna('tipo_contrato')] : null; throw new Core_Exception("Tipo $colunaTipoContrato não identificado."); } } $dados['produto'] = $codigoProduto; } protected function _getDataLiberacao(array $sheetData, array &$dados) { //verifica se é operação finalizada if( $dados['status_proposta'] == 43 ){ parent::_getDataLiberacao($sheetData, $dados); } } protected function _getCamposAtualizacao(array &$dados) { $dadosAtualizacao = parent::_getCamposAtualizacao($dados); if( !empty($this->_dadosContrato) && !empty($dados['corretor_id']) && empty($this->_dadosContrato->corretor_id) ){ $dadosAtualizacao['corretor_id'] = $dados['corretor_id']; } $dadosAtualizacao['tipo_formalizacao'] = $dados['tipo_formalizacao']; return $dadosAtualizacao; } protected function _getConvenioIdTabelaId(array $sheetData, array &$dados) { // $colunaCodTabela = isset($sheetData[$this->getColuna('codigo_tabela')]) ? $sheetData[$this->getColuna('codigo_tabela')] : null; $colunaTabela = isset($sheetData[$this->getColuna('tabela')]) ? $sheetData[$this->getColuna('tabela')] : null; $colunaConvenio = $sheetData[$this->getColuna('convenio')]; if( !empty($colunaConvenio) ){ $convenio = new Model_Convenio(); $dados['convenio_id'] = $convenio->getOrCreateConvenio($colunaConvenio); } $colunaTipoFormalizacao = 0; if ( !empty($sheetData[$this->getColuna('tipo_formalizacao')]) && stristr($sheetData[$this->getColuna('tipo_formalizacao')], 'Digital') ) { $colunaTipoFormalizacao = 1; } if (empty($colunaTipoFormalizacao)) { $colunaTipoFormalizacao = Model_DbTable_BancoTiposFormalizacao::getTipoFormalizacaoBanco( $sheetData[$this->getColuna('tipo_formalizacao')], $dados['banco_id'] ); } $dados['tipo_formalizacao'] = $colunaTipoFormalizacao; if (!empty($colunaTabela)) { $tabela = new Model_Tabela(); $dados['tabela_id'] = $tabela->getOrCreateTabelaByNome(NULL, $colunaTabela, $dados['convenio_id'], $this->getBancoId(), $colunaTipoFormalizacao); } } /** * @param array $sheetData * @param array $dados */ protected function _getSubestabelecido(array $sheetData, array &$dados) { $dados['subestabelecido_id'] = $this->service->getSubestabelecido( $sheetData['P'], (int) $this->getSubestabelecidoId() ); } }
💾 保存文件
← 返回文件管理器