✏️ 正在编辑: Ftp.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Planilha/Bradesco/Ftp.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Planilha_Bradesco_Ftp extends Core_Banco_Planilha { protected $_inicioLaco = 0; protected $_dateFormat = 'dd/MM/yyyy'; protected $colunas = array( //cliente 'nome_cliente' => 'cliente', 'cpf_cliente' => 'cpf', 'data_nascimento' => 'data_nascimento', 'rg' => 'numero_documento', 'orgao_expedidor' => 'orgao_emissor', 'endereco' => 'endereco', 'complemento' => 'complemento', 'bairro' => 'bairro', 'cidade' => 'cidade', 'uf' => 'uf', 'cep' => 'cep', 'fone' => 'telefone', 'sexo' => 'sexo', 'estado_civil' => 'estado_civil', 'nome_pai' => 'pai', 'nome_mae' => 'mae', 'conjuge' => 'nome_conjuge', //contrato 'convenio' => 'convenio', 'tabela' => 'tabela_financiamento', 'corretor_id' => 'codigo_vendedor', 'cpf_agente' => '', 'codigo_agente' => 'codigo_usuario', 'status_proposta' => 'status_proposta', 'produto' => 'codigo_produto', 'descricao_produto' => 'nome_produto', 'tipo' => 'tipo_produto', 'numero_proposta' => 'numero_proposta', 'matricula' => 'matricula', 'prazo' => 'parcela', 'valor_prestacao' => 'valor_parcela', 'banco_beneficiado' => 'banco_credito', 'agencia_beneficiado' => 'agencia', 'conta_beneficiado' => 'conta', 'valor_bruto' => 'valor_financiado', 'valor_liquido' => 'valor_financiado', 'comissao_empresa' => 'percentual_comissao', 'numero_contrato' => 'numero_contrato', 'obs' => 'obs', 'data_emissao' => 'data_contrato', 'data_primeiro_vencimento' => 'data_1_vencimento', 'data_liberacao' => 'data_atualizacao', 'digitador' => '', 'forma_liberacao' => 'forma_liberacao', 'valor_tac' => 'valor_tac', 'codigo_promotora' => 'codigo_promotora', 'anterior_numero' => 'anterior_numero', 'anterior_prazo' => 'anterior_prazo', 'anterior_parcelas_pagas' => 'anterior_parcelas_pagas', 'anterior_sequencial_compra' => 'anterior_sequencial_compra', 'anterior_tipo_quitacao' => 'anterior_tipo_quitacao', ); public function importar(array $sheetData) { $linhas = $sheetData; $sheetData = array(); $file = new Core_File(); for ( $i = $this->_inicioLaco; $i < count($linhas); $i++ ) { $sheetData[$i] = $file->prepareNet($linhas[$i]); $dados = array( 'banco_id' => $this->getBancoId(), 'corretor_id' => null, 'empresa_id' => null, 'convenio_id' => null, 'tabela_id' => null, 'cliente_id' => null, 'produto' => null, 'prazo' => null, 'valor_bruto' => null, 'valor_liquido' => null, 'numero_contrato' => null, 'data_emissao' => null, 'data_recebimento_comissao' => null, 'digitador' => Yuppie_Auth::getIdentity()->login, 'forma_liberacao' => null, 'comissao_corretor' => null, 'diferimento_corretor' => null, 'comissao_empresa' => null, 'status_proposta' => null, 'subestabelecido_id' => null, ); $this->_getProduto($sheetData[$i], $dados); $this->_getPrazo($sheetData[$i], $dados); $this->_getValorBrutoLiquido($sheetData[$i], $dados); $this->_getValorParcela($sheetData[$i], $dados); $this->_getEstornado($sheetData[$i], $dados); $this->_getNumeroContrato($sheetData[$i], $dados); $this->_getFormaLiberacao($sheetData[$i], $dados); $this->_getConvenioIdTabelaId($sheetData[$i], $dados); $this->_getCorretorId($sheetData[$i], $dados); $this->_getEmpresaId($sheetData[$i], $dados); $this->_getClienteId($sheetData[$i], $dados); $this->_getDataEmissao($sheetData[$i], $dados); $this->_getComissaoCorretorAndEmpresa($sheetData[$i], $dados); $this->_getStatusProposta($sheetData[$i], $dados); $this->_getDataLiberacao($sheetData[$i], $dados); $this->_getOutros($sheetData[$i], $dados); $this->_getDigitador($sheetData[$i], $dados); $this->_getSubestabelecido($sheetData[$i], $dados); $this->_getContratoVerificado($sheetData[$i], $dados); $this->_getBancoBeneficiado($sheetData[$i], $dados); $this->_getContaBeneficiado($sheetData[$i], $dados); $this->_getAgenciaBeneficiado($sheetData[$i], $dados); $this->_getNumeroBeneficio($sheetData[$i], $dados); $this->_getObs($sheetData[$i], $dados); $this->_getAnteriorBanco($sheetData[$i], $dados); $this->_getAnteriorNumero($sheetData[$i], $dados); $this->_getAnteriorParcelasPagas($sheetData[$i], $dados); $this->_getAnteriorPrazo($sheetData[$i], $dados); $this->_getAnteriorSequencialCompra($sheetData[$i], $dados); $this->_getAnteriorTipoQuitacao($sheetData[$i], $dados); $this->_getTaxaContrato($sheetData[$i], $dados); $this->contratosImportados[] = $dados['numero_contrato']; $this->salvarLinha($sheetData[$i], $dados); } return $this->naoImportados; } /** * * @param array $sheetData * @param array $dados * @return void */ protected function _getConvenioIdTabelaId(array $sheetData, array &$dados) { $colunaTabela = $sheetData[$this->getColuna('tabela')]; $colunaConvenio = utf8_decode($sheetData[$this->getColuna('convenio')]); $tabela = new Model_Tabela(); $dadosTabela = $tabela->existe($colunaTabela); $convenio = new Model_Convenio(); if( ($dadosConvenio = $convenio->existe($colunaConvenio)) != null ){ if( $dadosConvenio['parent_id'] != null && $dadosConvenio['parent_id'] > 0 ){ $dados['convenio_id'] = $dadosConvenio['parent_id']; } else { $dados['convenio_id'] = $dadosConvenio['id']; } } else { $convenio->setNome($colunaConvenio); $dados['convenio_id'] = $convenio->salvar($convenio); } if( $dadosTabela != null ){ if( $dadosTabela['parent_id'] ){ $dados['tabela_id'] = $dadosTabela['parent_id']; } else { $dados['tabela_id'] = $dadosTabela['id']; } $dados['convenio_id'] = $dados['convenio_id'] <= 0 ? $dadosTabela['convenio_id'] : $dados['convenio_id']; } elseif( $dados['convenio_id'] ){ $tabela->setConvenioId($dados['convenio_id']); $tabela->setNome($colunaTabela); $tabela->setBancoId($this->_bancoId); $tabela->setImportacao(true); $dados['tabela_id'] = $tabela->salvar($tabela); } } 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; $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( $colCorretorId != null ){ 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( $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 ){ $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); if( $corretorId != null ){ $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']; } //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; } protected function _getClienteId(array $sheetData, array &$dados) { $cpfCliente = String_Refatorar::formatarCpf($sheetData[$this->getColuna('cpf_cliente')]); $cliente = new Model_DbTable_Cliente(); $dadosCliente = $cliente->fetchRow("cpf = '" . $cpfCliente . "'"); if( $dadosCliente ){ $clienteId = $dadosCliente->id; } elseif( Validators_Cpf::validate($cpfCliente) ){ $dadosCliente = array( 'empresa_id' => $dados['empresa_id'], 'nome' => $sheetData[$this->getColuna('nome_cliente')], 'cpf' => $cpfCliente ); if( $this->getColuna('rg') ){ $dadosCliente['rg'] = $sheetData[$this->getColuna('rg')]; } if( $this->getColuna('data_nascimento') ){ try { $data = new Zend_Date($sheetData[$this->getColuna('data_nascimento')], Zend_Date::DATES, 'pt'); $dataNascimento = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataNascimento = null; } $dadosCliente['data_nascimento'] = $dataNascimento; } if( $this->getColuna('nome_pai') ){ $dadosCliente['nome_pai'] = $sheetData[$this->getColuna('nome_pai')]; } if( $this->getColuna('nome_mae') ){ $dadosCliente['nome_mae'] = $sheetData[$this->getColuna('nome_mae')]; } if( $this->getColuna('endereco') ){ $dadosCliente['endereco'] = $sheetData[$this->getColuna('endereco')]; } if( $this->getColuna('complemento') ){ $dadosCliente['complemento'] = $sheetData[$this->getColuna('complemento')]; } if( $this->getColuna('bairro') ){ $dadosCliente['bairro'] = $sheetData[$this->getColuna('bairro')]; } if( $this->getColuna('cidade') ){ $dadosCliente['cidade'] = $sheetData[$this->getColuna('cidade')]; } if( $this->getColuna('uf') ){ $dadosCliente['uf'] = $sheetData[$this->getColuna('uf')]; } if( $this->getColuna('cep') ){ $dadosCliente['cep'] = $sheetData[$this->getColuna('cep')]; } if( $this->getColuna('fone') ){ $dadosCliente['fone'] = $sheetData[$this->getColuna('fone')]; } if( $this->getColuna('celular') ){ $dadosCliente['celular'] = $sheetData[$this->getColuna('celular')]; } $clienteId = $cliente->insert($dadosCliente); } $dados['cliente_id'] = $clienteId; } protected function _getStatusProposta(array $sheetData, array &$dados) { $colunaStatusProposta = isset($sheetData[$this->getColuna('status_proposta')]) ? utf8_encode($sheetData[$this->getColuna('status_proposta')]) : null; if( substr($colunaStatusProposta, 0, 5) == 'Opera' ){ $colunaStatusProposta = "Operação Finalizada"; } $status = new Model_StatusProposta(); $dadosStatus = $status->existe($colunaStatusProposta); // verifica se o status existe if( $dadosStatus == null && !empty($colunaStatusProposta) ){ // se não existir, cadastra $status->setDescricao($colunaStatusProposta); $statusId = $status->salvar($status); } // else if ($dadosStatus['parent_id']) { // //verifica se o status tem parent_id, se tiver, usa o parent_id // $dadosParent = $status->existe($dadosStatus['parent_id']); // $statusId = $dadosParent['id']; // } else { $statusId = $dadosStatus['id']; } $dados['status_proposta'] = $statusId; } protected function _getDataVencimento1(array $sheetData, array &$dados) { $colunaDtVencimento1 = $sheetData[$this->getColuna('data_primeiro_vencimento')]; $dataVencimento1 = null; if( !empty($colunaDtVencimento1) ){ try { $data = new Zend_Date($colunaDtVencimento1, $this->_dateFormat); $dataVencimento1 = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataVencimento1 = null; } } $dados['data_primeiro_vencimento'] = $dataVencimento1; } protected function _getDataLiberacao(array $sheetData, array &$dados) { //Se for operação finalizada if( isset($dados['status_proposta']) && $dados['status_proposta'] == 43 ){ $colunaDtLib = isset($sheetData[$this->getColuna('data_liberacao')]) ? $sheetData[$this->getColuna('data_liberacao')] : null; $dataLiberacao = null; if( !empty($colunaDtLib) ){ try { $data = new Zend_Date($colunaDtLib, $this->_dateFormat); $dataLiberacao = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataLiberacao = null; } } } else { $dataLiberacao = null; } $dados['data_liberacao'] = $dataLiberacao; } protected function _getSubestabelecido(array $sheetData, array &$dados) { $subestabelecidoId = 0; if( $sheetData[$this->getColuna('codigo_promotora')] ){ //verifica os dados do substabelecido $subestabelecido = new Model_Parceiro(); $dadosParceiro = $subestabelecido->getByCodigo($sheetData[$this->getColuna('codigo_promotora')]); if( $dadosParceiro != null ){ $subestabelecidoId = $dadosParceiro['empresa_id']; } } $dados['subestabelecido_id'] = $subestabelecidoId; } protected function _getValorBrutoLiquido(array $sheetData, array &$dados) { $valorBruto = $this->getColuna('valor_bruto') ? trim($sheetData[$this->getColuna('valor_bruto')]) : null; $valorLiquido = $this->getColuna('valor_liquido') ? trim($sheetData[$this->getColuna('valor_liquido')]) : null; $dados['valor_bruto'] = $valorBruto; $dados['valor_liquido'] = $valorLiquido; } protected function _getValorBruto(array $sheetData, array &$dados) { $dados['valor_bruto'] = $this->getColuna('valor_bruto') ? trim($sheetData[$this->getColuna('valor_bruto')]) : null; } protected function _getValorLiquido(array $sheetData, array &$dados) { $valorLiberado = $this->getColuna('valor_liberado') ? Core_FilterValor::filter(trim($sheetData[$this->getColuna('valor_liberado')])) : null; $saldoDevedor = $this->getColuna('saldo_devedor') ? Core_FilterValor::filter(trim($sheetData[$this->getColuna('saldo_devedor')])) : null; $valorLiquido = ($valorLiberado-$saldoDevedor); $dados['valor_liquido'] = number_format($valorLiquido, 2, ',', '.'); } protected function _getComissaoEmpresa(array $sheetData, array &$dados) { $dados['comissao_empresa'] = $sheetData[$this->getColuna('comissao_empresa')]; } protected function _getDigitador(array $sheetData, array &$dados) { $colCodigoAgente = isset($sheetData[$this->getColuna('codigo_agente')]) ? $sheetData[$this->getColuna('codigo_agente')] : null; if( !empty($colCodigoAgente) ){ $dados['digitador'] = $colCodigoAgente; } } protected function _getProduto(array $sheetData, array &$dados) { $tipo = trim($sheetData[$this->getColuna('tipo')]); $nomeProduto = trim($sheetData[$this->getColuna('descricao_produto')]); $codigoProduto = trim($sheetData[$this->getColuna('produto')]); $dados['produto'] = $codigoProduto; $dbTable = new Model_DbTable_Produto( ); if( $codigoProduto ){ $produto = $dbTable->fetchRow("codigo = '{$codigoProduto}' AND banco_id = {$this->getBancoId()}"); if( $produto ){ $dados['tipo'] = $produto->tipo; return; } } //cadastra o produto switch ( $tipo) { case strstr($nomeProduto, "PORTABILIDADE/REFIN"): $dados['tipo'] = "REFIN DA PORTABILIDADE"; break; case strstr($nomeProduto, "REFIN"): $dados['tipo'] = "REFINANCIAMENTO"; break; case strstr($nomeProduto, "PORTABILIDADE"): $dados['tipo'] = "PORTABILIDADE"; break; default: $dados['tipo'] = "NOVO"; break; } try{ $dbTable->insert([ 'tipo' => $dados['tipo'], 'codigo' => $dados['produto'], 'descricao' => $nomeProduto, 'banco_id' => $this->getBancoId() ]); } catch (Exception $e){ throw new Core_Exception("Erro ao cadastrar o produto. ({$dados['produto']}) - {$nomeProduto}"); } } protected function _getTaxaContrato(array $sheetData, array &$dados) { $colunaTaxa = $sheetData[$this->getColuna('taxa_financiamento')] ?? null; $dados['taxa_contrato'] = number_format(String_Refatorar::parseStringToFloat($colunaTaxa), 2, ',', '.'); } }
💾 保存文件
← 返回文件管理器