✏️ 正在编辑: ExtratorQlikView.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Planilha/Itau/ExtratorQlikView.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Planilha_Itau_ExtratorQlikView extends Core_Banco_Planilha { protected $_dateFormat = 'Y-m-d'; protected $colunas = array( 'agencia_beneficiado' => 'AG', 'anterior_parcelas_pagas' => '', 'bairro' => 'R', 'banco_beneficiado' => 'AF', 'celular' => '', 'cep' => '', 'cidade' => 'S', 'codigo_agente' => 'D', 'codigo_barras_ade' => 'AT', 'codigo_convenio' => 'G', 'codigo_tabela' => 'AP', 'complemento' => 'Q', 'conta_beneficiado' => 'AI', 'convenio' => 'H', 'corretor_id' => '', 'cpf_cliente' => 'J', 'data_emissao' => 'AR', 'data_expedicao' => '', 'data_liberacao' => 'BD', 'data_nascimento' => 'K', 'data_ted_devolvida' => 'BA', // dd/MM 'digito_agencia_beneficiado' => 'AH', 'digito_conta_beneficiado' => 'AJ', 'endereco' => 'O', 'fone' => 'N', 'forma_liberacao' => 'AE', 'matricula' => 'L', 'nome_cliente' => 'I', 'nome_mae' => '', 'nome_pai' => '', 'nome_produto' => 'AQ', 'numero' => 'P', 'numero_ade' => 'AM', 'numero_contrato' => 'AM', //numero do contrato está vindo com ***** no início 'numero_beneficio' => 'L', 'orgao_expedidor' => '', 'prazo' => 'AC', 'produto' => 'AP', 'rg' => '', 'status_proposta' => 'AL', 'tabela' => 'AQ', 'tabela_info_adicional' => 'V', 'uf' => 'T', 'uf_expedidor' => '', 'valor_bruto' => 'X', //Valor Financiado 'valor_liquido' => 'AA', //Valor Liberado 'valor_prestacao' => 'AB', 'cpf_agente' => 'C', 'obs' => 'BK', 'tipo_operacao' => 'AO' ); protected function _contratoExiste($dbtable, $dados) { $params = array("banco_id = {$this->getBancoId()}"); //testa se o contrato existe pelo número do contrato, pela ADE ou se //a ADE não foi cadastrada no campo "numero_contrato" if( isset($dados['numero_contrato']) && isset($dados['numero_ade']) ){ $params[] = "(numero_contrato = '{$dados['numero_contrato']}' " . "OR numero_ade = '{$dados['numero_ade']}' " . "OR numero_contrato = '{$dados['numero_ade']}')"; }elseif( isset($dados['numero_contrato']) ){ //busca apenas pelo número do contrato $params[] = "numero_contrato = '{$dados['numero_contrato']}'"; }elseif( isset($dados['numero_ade']) ){ //busca apenas pelo número da ADE $params[] = "numero_ade = '{$dados['numero_ade']}'"; }else{ $this->_dadosContrato = null; return; } $where = implode(" AND ", $params); $this->_dadosContrato = $dbtable->fetchRow($where); //se o número do contrato estiver diferente, então atualiza o número do contrato if( $this->_dadosContrato && $this->_dadosContrato['numero_contrato'] != $dados['numero_contrato'] ){ $dbtable->updateNumeroContrato(array( 'numero_contrato' => $dados['numero_contrato'] ), $this->_dadosContrato->id); } } protected function _getConvenioIdTabelaId(array $sheetData, array &$dados) { $colunaCodConvenio = $sheetData[$this->getColuna('codigo_convenio')]; $colunaConvenio = $sheetData[$this->getColuna('convenio')]; $colunaCodigoTabela = $sheetData[$this->getColuna('codigo_tabela')]; $colunaTabela = !empty($sheetData[$this->getColuna('tabela')]) ? $sheetData[$this->getColuna('tabela')] : $colunaCodigoTabela; $colunaTabelaInfoAdicional = !empty($sheetData[$this->getColuna('tabela_info_adicional')]) ? $sheetData[$this->getColuna('tabela_info_adicional')] : null; $dados['tabela_id'] = 0; $dados['convenio_id'] = 0; $convenio = new Model_DbTable_Convenio(); $dadosConvenio = $convenio->fetchRow("nome='" . $colunaConvenio . "'"); if( $dadosConvenio == null ){ $dados['convenio_id'] = $convenio->insert(array( 'nome' => $colunaConvenio, 'codigo' => $colunaCodConvenio )); } else if( $dadosConvenio['parent_id'] ){ $dadosParent = $convenio->fetchRow("id='" . $dadosConvenio['parent_id'] . "'"); $dados['convenio_id'] = $dadosParent['id']; } else { $dados['convenio_id'] = $dadosConvenio['id']; } if( $colunaCodigoTabela != null ){ $tabela = new Model_Tabela(); $dadosTabela = $tabela->buscaTabelaPorCodigo($colunaCodigoTabela); if( $dadosTabela != null ){ if( $dadosTabela['parent_id'] ){ $dados['tabela_id'] = $dadosTabela['parent_id']; } else { $dados['tabela_id'] = $dadosTabela['id']; } } else { $tabela->setCodigo($colunaCodigoTabela); $tabela->setNome($colunaTabela); $tabela->setConvenioId($dados['convenio_id']); $tabela->setBancoId($this->getBancoId()); $tabela->setImportacao(true); $tabela->setInformacaoAdicional($colunaTabelaInfoAdicional); $dados['tabela_id'] = $tabela->salvar($tabela); } } } /** * * @param array $sheetData * @param array $dados * @return void */ protected function _getValorBrutoLiquido(array $sheetData, array &$dados) { $valorBruto = $this->getColuna('valor_bruto') ? String_Refatorar::parseStringToFloat($sheetData[$this->getColuna('valor_bruto')]) : null; $valorLiquido = $this->getColuna('valor_liquido') ? String_Refatorar::parseStringToFloat($sheetData[$this->getColuna('valor_liquido')]) : null; $dados['valor_bruto'] = number_format($valorBruto, 2, ',', '.'); $dados['valor_liquido'] = number_format($valorLiquido, 2, ',', '.'); } protected function _getCorretorId(array $sheetData, array &$dados) { $colCorretorId = isset($sheetData[$this->getColuna('complemento')]) ? $sheetData[$this->getColuna('complemento')] : null; $colCpfCorretor = isset($sheetData[$this->getColuna('cpf_agente')]) ? $sheetData[$this->getColuna('cpf_agente')] : null; $colCodigoAgente = isset($sheetData[$this->getColuna('codigo_agente')]) ? $sheetData[$this->getColuna('codigo_agente')] : null; $corretor = new Model_Corretor(); $dbtableCorretor = new Model_DbTable_Corretor(); $corretorId = 0; $dadosCorretor = null; $dbtableBanco = new Model_DbTable_Banco(); $banco = $dbtableBanco->fetchRow('id = ' . $dados['banco_id']); if( $banco['obedecer_id'] == null || $banco['obedecer_id'] == 0 ){ if( $colCodigoAgente != null && $dadosCorretor == null ){ //pesquisa pelo codigo do usuario $corretorSenha = new Model_CorretorSenha(); $corretorId = $corretorSenha->getCorretorIdBySenha($colCodigoAgente, $dados['banco_id']); $dadosCorretor = $corretor->exibir($corretorId); } if( $dadosCorretor == null && $colCpfCorretor != null && strlen($colCpfCorretor) >= 11 && Validators_Cpf::validate($colCpfCorretor) ){ //pesquisa pelo CPF $dadosCorretor = $corretor->getByCpf($colCpfCorretor); $corretorId = $dadosCorretor['id']; } if( $dadosCorretor != null ){ $corretorId = $dadosCorretor['id']; $dados['empresa_id'] = $dadosCorretor['empresa_id']; } } else { if( $colCodigoAgente != null && $dadosCorretor == null ){ //pesquisa pelo codigo do usuario $corretorSenha = new Model_CorretorSenha(); $corretorId = $corretorSenha->getCorretorIdBySenha($colCodigoAgente, $dados['banco_id']); $dadosCorretor = $corretor->exibir($corretorId); //pesquisa pelo cpf if( $dadosCorretor == null && $colCpfCorretor != null && strlen($colCpfCorretor) >= 11 && Validators_Cpf::validate($colCpfCorretor) ){ //pesquisa pelo CPF $dadosCorretor = $corretor->getByCpf($colCpfCorretor); $corretorId = $dadosCorretor['id']; } if( $corretorId != null && $corretorId > 0 ){ $corretorId = $dbtableCorretor->fetchRow("id = '" . $corretorId . "'"); //verifica se o corretor está marcado para ler pelo id //se sim, puxa o código do vendedor if( $corretorId['obedecer_id'] == 1 ){ if( strlen($colCorretorId) >= 11 && Validators_Cpf::validate($colCorretorId) ){ //pesquisa pelo CPF $dadosCorretor = $corretor->getByCpf($colCorretorId); $corretorId = $dadosCorretor['id']; } else { //pesquisa pelo ID $dadosCorretor = $corretor->exibir($colCorretorId); $corretorId = $dadosCorretor['id']; } if( $dadosCorretor != null ){ $corretorId = $dadosCorretor['id']; $dados['empresa_id'] = $dadosCorretor['empresa_id']; }else{ $corretorId = $corretorId['id']; } //se não usa o id do corretor encontrado pelo cod; } else { $corretorId = $corretorId['id']; $dados['empresa_id'] = $dadosCorretor['empresa_id']; } } } } $dados['corretor_id'] = $corretorId; } /** * * @param array $sheetData * @param array $dados * @return void */ protected function _getFormaLiberacao(array $sheetData, array &$dados) { if( $this->getColuna('forma_liberacao') ){ $colunaLiberacao = $sheetData[$this->getColuna('forma_liberacao')]; $dados['forma_liberacao'] = "C/C"; if( stristr($colunaLiberacao, "Ordem de Pagamento") ){ $dados['forma_liberacao'] = "O/P"; } } $this->_getDataTedDevolvida($sheetData, $dados); } protected function _getDigitador(array $sheetData, array &$dados) { $colCodigoAgente = isset($sheetData[$this->getColuna('codigo_agente')]) ? $sheetData[$this->getColuna('codigo_agente')] : null; $dados['digitador'] = $colCodigoAgente; } protected function _getCamposAtualizacao(array &$dados) { $dadosAtualizacao = parent::_getCamposAtualizacao($dados); unset($dadosAtualizacao['valor_liquido']); if( !empty($dados['data_liberacao']) ){ $dadosAtualizacao['data_liberacao'] = $dados['data_liberacao']; } if( $dados['data_emissao'] != NULL ){ $dadosAtualizacao['data_emissao'] = $dados['data_emissao']; } if( $dados['digitador'] != NULL ){ $dadosAtualizacao['digitador'] = $dados['digitador']; } if( !empty($dados['codigo_barras_ade']) ){ $dadosAtualizacao['codigo_barras_ade'] = $dados['codigo_barras_ade']; } return $dadosAtualizacao; } protected function _getCodigoBarrasAde(array $sheetData, array &$dados) { $colCodBarrasAde = !empty($sheetData[$this->getColuna('codigo_barras_ade')]) ? $sheetData[$this->getColuna('codigo_barras_ade')] : null; $dados['codigo_barras_ade'] = $colCodBarrasAde; } protected function _getTipoContrato(array $sheetData, array &$dados) { $tipoOperacao = $sheetData[$this->getColuna('tipo_operacao')]; switch ( $tipoOperacao) { case "MARGEM COMPLEMENTAR": $dados['tipo'] = "AUMENTO DE MARGEM"; break; case "EMPRÉSTIMO": $dados['tipo'] = "NOVO"; break; case "PORTABILIDADE COM TROCO": case "REFINANCIAMENTO PORTABILIDADE": $dados['tipo'] = "REFIN DA PORTABILIDADE"; break; case "PORTABILIDADE ATAQUE": $dados['tipo'] = "PORTABILIDADE"; break; default: $dados['tipo'] = $tipoOperacao; break; } } protected function _getDataNascimento(array $sheetData, array &$dados) { $colDtNascimento = trim($sheetData[$this->getColuna('data_nascimento')]); $dataNascimento = null; if(!empty($colDtNascimento)) { $dataNascimento = Core_Util::convertDate($colDtNascimento); if (is_array($dataNascimento)) { throw new Core_Exception("Não foi possível converter a data de nascimento para o banco de dados. ({$colDtNascimento}). Padrão esperado: {$this->_dateFormat}"); } } return $dataNascimento; } /** * Metodo que formata a data de ted devolvida. Espera que venha no padrão dd/MM * @param array $sheetData * @param array $dados * @throws Core_Exception */ protected function _getDataTedDevolvida(array $sheetData, array &$dados) { $colunaDtTedDevolvida = isset($sheetData[$this->getColuna('data_ted_devolvida')]) ? trim($sheetData[$this->getColuna('data_ted_devolvida')]) : null; $dataTedDevolvida = null; if ( !empty($colunaDtTedDevolvida) && !empty($dados['data_emissao'])) { $colunaDtTedDevolvida = str_replace("00", "", $colunaDtTedDevolvida); $colunaDtTedDevolvida .= "/" . substr($dados['data_emissao'], 0, 4); $dataTedDevolvida = Core_Util::convertDate($colunaDtTedDevolvida); if( is_array($dataTedDevolvida) ){ throw new Core_Exception("Não foi possível converter a data de devolução da TED para o banco de dados. ({$colunaDtTedDevolvida})"); } } $dados['data_ted_devolvida'] = $dataTedDevolvida; } protected function _getProduto(array $sheetData, array &$dados) { $colunaCodigoProduto = $sheetData[$this->getColuna('produto')]; $colunaDescricaoProduto = !empty($sheetData[$this->getColuna('nome_produto')]) ? $sheetData[$this->getColuna('nome_produto')] : null; $codigoProduto = 0; if ($colunaCodigoProduto) { $produto = new Model_Produto(); $codigoProduto = $produto->getOrCreateProdutoCodigo($colunaCodigoProduto, $colunaDescricaoProduto, $this->getBancoId(), $dados['tipo']); } $dados['produto'] = $codigoProduto; } }
💾 保存文件
← 返回文件管理器