✏️ 正在编辑: WebService.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Service/Safra/WebService.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Service_Safra_WebService extends Core_Banco_Planilha { protected $_inicioLaco = 0; protected $_dateFormat = 'Y-m-d'; protected $colunas = array( //Dados do cliente 'nome_cliente' => 'nmCliente', 'cpf_cliente' => 'nrCpfCliente', 'data_nascimento' => 'dtNascimentoCliente', 'rg' => 'nrRgCliente', 'endereco' => 'dsEnderecoLogradouro', 'numero' => 'dsEnderecoNumero', 'complemento' => 'dsEnderecoComplemento', 'bairro' => 'dsEnderecoBairro', 'cidade' => 'dsEnderecoCidade', 'uf' => 'dsEnderecoUf', 'cep' => 'dsEnderecoCep', 'ddd_fone' => 'nrTelefoneDDD', 'fone' => 'nrTelefoneNumero', 'ddd_celular' => 'nrCelularDDD', 'celular' => 'nrCelularNumero', 'sexo' => 'dsSexoCliente', 'estado_civil' => 'dsEstadoCivilCliente', 'nome_pai' => 'nmMaeCliente', 'nome_mae' => 'nmPaiCliente', //Dados do contrato 'tipo' => 'cdProduto', 'codigo_convenio' => 'cdConvenio', 'convenio' => 'nmConvenio', 'cpf_agente' => 'nrCpfPromotor', 'status_proposta' => 'dsStatusContrato', 'produto' => 'cdProduto', 'tabela' => 'dsTabelaJuros', 'numero_proposta' => 'nrContrato', 'matricula' => 'cdMatricula', 'prazo' => 'qtPrestacao', 'valor_prestacao' => 'vlPrestacao', 'banco_beneficiado' => 'dsBancoCliente', 'agencia_beneficiado' => 'dsAgenciaCliente', 'conta_beneficiado' => 'dsContaCliente', 'numero_contrato' => 'nrContrato', 'data_emissao' => 'dtHoraInclusao', 'data_liberacao' => 'dtLiberacao', 'valor_emprestimo' => 'vlEmprestimo', 'valor_refinanciado' => 'vlRefinanciado', 'corretor_id' => '', 'digitador' => 'dsUsuarioInclusao', 'complemento' => 'dsEnderecoComplemento', 'rco' => 'vlRCO', 'valor_beneficio' => 'vlRendaMensalCliente', 'pendencia' => 'pendencias', 'tipo_formalizacao' => 'idTpFormalizacao', 'taxa_emprestimo' => 'pcTaxaJuros', 'obs' => 'obs' ); public function __construct($bancoId, $extensao = null) { $this->setArquivoOrigem("IMPORTACAO_WS_SAFRA"); parent::__construct($bancoId, $extensao); } public function importar(array $sheetData) { foreach ( $sheetData as $i => $proposta ) { $dados = array( 'banco_id' => $this->getBancoId(), 'corretor_id' => null, 'empresa_id' => null, 'convenio_id' => null, 'cliente_id' => null, 'produto' => null, 'prazo' => null, 'valor_bruto' => null, 'valor_liquido' => null, 'numero_contrato' => null, 'data_emissao' => null, 'data_liberacao' => null, 'data_recebimento_comissao' => null, 'data_primeiro_vencimento' => null, 'digitador' => Yuppie_Auth::getIdentity()->login, 'forma_liberacao' => null, 'status_proposta' => null, ); try { $this->_getNumeroContrato($proposta, $dados); $this->_getProdutoAndTipo($proposta, $dados); $this->_getConvenio($proposta, $dados); $this->_getCorretorId($proposta, $dados); $this->_getDigitador($proposta, $dados); $this->_getEmpresaId($proposta, $dados); $this->_getClienteId($proposta, $dados); $this->_getDataEmissao($proposta, $dados); $this->_getDataLiberacao($proposta, $dados); $this->_getFormaLiberacao($proposta, $dados); $this->_getStatusProposta($proposta, $dados); $this->_getAgenciaBeneficiado($proposta, $dados); $this->_getBancoBeneficiado($proposta, $dados); $this->_getContaBeneficiado($proposta, $dados); $this->_getValorBeneficio($proposta, $dados); $this->_getNumeroBeneficio($proposta, $dados); $this->_getPrazo($proposta, $dados); $this->_getValorBrutoLiquido($proposta, $dados); $this->_getValorParcela($proposta, $dados); $this->_getTabela($proposta, $dados); $this->_getTipoFormalizacao($proposta, $dados); $this->_getTaxaContrato($proposta, $dados); $this->_getPendencias($proposta, $dados); $this->_getObs($proposta, $dados); $this->contratosImportados[] = $dados['numero_contrato']; $this->salvarLinha($proposta, $dados); } catch ( Exception $e ) { $this->_addNaoImportado( $dados, $proposta, $this->naoImportados, $e->getMessage() ); } } return $this->naoImportados; } protected function _getDigitador(array $sheetData, array &$dados) { if (isset($sheetData[$this->getColuna('digitador')])) { $colDigitador = $sheetData[$this->getColuna('digitador')]; $dados['digitador'] = empty($colDigitador) ? null : $colDigitador; } } protected function _getCorretorId(array $sheetData, array &$dados) { $colCorretorId = isset($sheetData[$this->getColuna('corretor_id')]) ? $sheetData[$this->getColuna('corretor_id')] : null; $colCodigoCorretor = isset($sheetData[$this->getColuna('digitador')]) ? trim($sheetData[$this->getColuna('digitador')]) : null; $corretorIdComplemento = isset($sheetData[$this->getColuna('complemento')]) ? trim($sheetData[$this->getColuna('complemento')]) : null; $corretor = new Model_Corretor(); if( $colCorretorId ){ $dadosCorretor = $corretor->exibir($colCorretorId); if( $dadosCorretor ){ $dados['corretor_id'] = $dadosCorretor->id; return; } } if( empty($colCodigoCorretor) ) { $dados['corretor_id'] = null; return; } $corretorSenha = new Model_CorretorSenha(); $corretorBySenha = $corretorSenha->getCorretorBySenha($colCodigoCorretor, $dados['banco_id']); if( empty($corretorBySenha) ) { $dados['corretor_id'] = null; return; } $dados['corretor_id'] = $corretorBySenha->id; $modelBanco = new Model_DbTable_Banco(); $banco = $modelBanco->fetchRow("id = $this->_bancoId"); if( !empty($colCodigoCorretor) && $banco->obedecer_id && $corretorBySenha->obedecer_id && is_numeric($corretorIdComplemento) ){ $dadosCorretor = $corretor->exibir($corretorIdComplemento); if( $dadosCorretor ){ $dados['corretor_id'] = $dadosCorretor->id; } } } protected function _getConvenio(array $sheetData, array &$dados) { $colunaConvenio = htmlspecialchars($sheetData[$this->getColuna('convenio')]); $colunaCodigo = htmlspecialchars($sheetData[$this->getColuna('codigo_convenio')]); $dados['convenio_id'] = (new Model_Convenio())->getOrCreateConvenio($colunaConvenio, $colunaCodigo); } protected function _getBancoBeneficiado(array $sheetData, array &$dados) { $dados['banco_beneficiado'] = isset($sheetData[$this->getColuna('banco_beneficiado')]) ? $sheetData[$this->getColuna('banco_beneficiado')] : null; } protected function _getAgenciaBeneficiado(array $sheetData, array &$dados) { $dados['agencia_beneficiado'] = isset($sheetData[$this->getColuna('agencia_beneficiado')]) ? $sheetData[$this->getColuna('agencia_beneficiado')] : null; } protected function _getContaBeneficiado(array $sheetData, array &$dados) { $dados['conta_beneficiado'] = isset($sheetData[$this->getColuna('conta_beneficiado')]) ? $sheetData[$this->getColuna('conta_beneficiado')] : null; } protected function _getFormaLiberacao(array $sheetData, array &$dados) { $dados['forma_liberacao'] = 'C/C'; //Safra só faz crédito em conta } protected function _getNumeroBeneficio(array $sheetData, array &$dados) { $dados['numero_beneficio'] = isset($sheetData[$this->getColuna('matricula')]) ? $sheetData[$this->getColuna('matricula')] : null; } protected function _getValorBeneficio(array $sheetData, array &$dados) { $dados['valor_beneficio'] = trim($sheetData[$this->getColuna('valor_beneficio')]); } protected function _getProdutoAndTipo(array $sheetData, array &$dados) { $colunaCodigoProduto = $sheetData[$this->getColuna('produto')] ?? null; if( empty($colunaCodigoProduto) ){ return; } $isRefinPortabilidade = $sheetData['isRefinPortabilidade']; if( $colunaCodigoProduto == "2" && $isRefinPortabilidade ){ $tipo = 'REFIN DA PORTABILIDADE'; } elseif( $colunaCodigoProduto == "2" && !$isRefinPortabilidade ){ $tipo = "REFINANCIAMENTO"; } elseif( $colunaCodigoProduto == "1" ){ $tipo = "NOVO"; } elseif( $colunaCodigoProduto == "7" ){ $tipo = "PORTABILIDADE"; } $produto = new Model_Produto(); $codigoProduto = $produto->getOrCreateProdutoCodigo($colunaCodigoProduto, $tipo, $this->getBancoId(), $tipo); if( empty($codigoProduto) ){ $produto->setCodigo($colunaCodigoProduto); $produto->setDescricao($tipo); $produto->setTipo($tipo); $produto->setBancoId($this->getBancoId()); $produto->salvar($produto); } $dados['tipo'] = $tipo; $dados['produto'] = $codigoProduto; } protected function _getValorBrutoLiquido(array $sheetData, array &$dados) { $vlRefinanciado = isset($sheetData[$this->getColuna('valor_refinanciado')]) ? $sheetData[$this->getColuna('valor_refinanciado')] : 0; $dados['valor_liquido'] = trim($sheetData[$this->getColuna('valor_emprestimo')]) - $vlRefinanciado; $dados['valor_bruto'] = trim($sheetData[$this->getColuna('valor_emprestimo')]); if( isset($sheetData[$this->getColuna('valor_prestacao')]) ){ $dados['valor_prestacao'] = trim($sheetData[$this->getColuna('valor_prestacao')]); } } protected function _getNumeroContrato(array $sheetData, array &$dados) { if (isset($sheetData[$this->getColuna('numero_contrato')])) { $numeroContrato = String_Refatorar::soNumeros($sheetData[$this->getColuna('numero_contrato')]); $dados['numero_contrato'] = ltrim($numeroContrato, '0'); } } protected function _addNaoImportado(array $dados, array $sheetData, array &$naoImportados, $motivo = '') { array_push($naoImportados, array( 'numero_contrato' => $dados['numero_contrato'], 'tabela' => isset($sheetData[$this->getColuna('tabela')]) ? $sheetData[$this->getColuna('tabela')] : null, 'cpf' => isset($sheetData[$this->getColuna('cpf_cliente')]) ? $sheetData[$this->getColuna('cpf_cliente')] : null, 'cliente' => isset($sheetData[$this->getColuna('nome_cliente')]) ? $sheetData[$this->getColuna('nome_cliente')] : null, 'valor' => isset($sheetData[$this->getColuna('valor_bruto')]) ? $sheetData[$this->getColuna('valor_bruto')] : null, 'valor_liquido' => isset($sheetData[$this->getColuna('valor_liquido')]) ? $sheetData[$this->getColuna('valor_liquido')] : null, 'prazo' => isset($sheetData[$this->getColuna('prazo')]) ? $sheetData[$this->getColuna('prazo')] : null, 'codigo_atendente' => isset($sheetData[$this->getColuna('codigo_agente')]) ? $sheetData[$this->getColuna('codigo_agente')] : null, 'codigo_vendedor' => isset($sheetData[$this->getColuna('corretor_id')]) && isset($sheetData[$this->getColuna('corretor_id')]) ? $sheetData[$this->getColuna('corretor_id')] : null, 'motivo' => $motivo )); } protected function _getCamposAtualizacao(array &$dados) { $dadosAtualizacao = array( 'empresa_id' => $dados['empresa_id'], 'status_proposta' => $dados['status_proposta'], 'id' => $dados['id'] ); if (!empty($dados['data_liberacao'])) { $dadosAtualizacao['data_liberacao'] = $dados['data_liberacao']; } if( isset($dados['comissao_empresa']) && $dados['comissao_empresa'] > 0 ){ $dadosAtualizacao['comissao_empresa'] = $dados['comissao_empresa']; } if( isset($dados['bonus_empresa']) && $dados['bonus_empresa'] != NULL ){ $dadosAtualizacao['bonus_empresa'] = $dados['bonus_empresa']; } if( isset($dados['comissao_corretor']) && $dados['comissao_corretor'] > 0 && $this->_dadosContrato['verificar_contratos'] != 1){ $dadosAtualizacao['comissao_corretor'] = $dados['comissao_corretor']; } if( isset($dados['bonus_corretor']) && $dados['bonus_corretor'] > 0 && $this->_dadosContrato['verificar_contratos'] != 1){ $dadosAtualizacao['bonus_corretor'] = $dados['bonus_corretor']; } if (empty($this->_dadosContrato['corretor_id']) && !empty($dados['corretor_id'])) { $dadosAtualizacao['corretor_id'] = $dados['corretor_id']; } if( isset($dados['valor_bruto']) && $dados['valor_bruto'] > 0 ){ $dadosAtualizacao['valor_bruto'] = $dados['valor_bruto']; } if( isset($dados['valor_liquido']) && $dados['valor_liquido'] > 0 ){ $dadosAtualizacao['valor_liquido'] = $dados['valor_liquido']; } if( array_key_exists('cobranca_banco', $dados) ){ $dadosAtualizacao['descricao_pendencia'] = !empty($dados['descricao_pendencia']) ? $dados['descricao_pendencia'] : NULL; $dadosAtualizacao['cobranca_banco'] = $dados['cobranca_banco'] == 1 ? 1 : 0; } return $dadosAtualizacao; } protected function _getDataEmissao(array $sheetData, array &$dados) { $dataEmissao = isset($sheetData[$this->getColuna('data_emissao')]) ? $sheetData[$this->getColuna('data_emissao')] : null; $yearInDate = date('Y',strtotime($dataEmissao)); $dados['data_emissao'] = $yearInDate < 2010 ? null : $dataEmissao; } protected function _getDataLiberacao(array $sheetData, array &$dados) { $dataLiberacao = isset($sheetData[$this->getColuna('data_liberacao')]) ? $sheetData[$this->getColuna('data_liberacao')] : null; $yearInDate = date('Y',strtotime($dataLiberacao)); if( $yearInDate >= 2010 ){ $dados['data_liberacao'] = Core_Util::convertDate($dataLiberacao); } } 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; } else { // Se cidade e uf vierem num mesmo campo, separar $colunaCidadeUf = $this->getColuna('cidade_uf'); if ($colunaCidadeUf && (!$this->getColuna('cidade') || !$this->getColuna('uf'))) { $cidadeUf = explode('-', $sheetData[$colunaCidadeUf]); $sheetData[$this->getColuna('cidade')] = trim($cidadeUf[0]); $sheetData[$this->getColuna('uf')] = trim($cidadeUf[1]); } $dadosCliente = array( 'empresa_id' => $dados['empresa_id'], 'nome' => $sheetData[$this->getColuna('nome_cliente')], 'cpf' => $cpfCliente, 'orgao_expedidor' => isset($sheetData[$this->getColuna('orgao_expedidor')]) ? $sheetData[$this->getColuna('orgao_expedidor')] : null ); if ($this->getColuna('rg')) { $dadosCliente['rg'] = $sheetData[$this->getColuna('rg')]; } if ($this->getColuna('data_nascimento')) { $dadosCliente['data_nascimento'] = $sheetData[$this->getColuna('data_nascimento')]; } 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 (isset($sheetData[$this->getColuna('numero')])) { $dadosCliente['endereco'] .= ", " . $sheetData[$this->getColuna('numero')]; } } 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 (!empty($sheetData[$this->getColuna('fone')])) { $dadosCliente['fone'] = "({$sheetData[$this->getColuna('ddd_fone')]}){$sheetData[$this->getColuna('fone')]}"; } else { $dadosCliente['fone'] = "(00)0000-0000"; } if (!empty($sheetData[$this->getColuna('celular')])) { $dadosCliente['celular'] = "({$sheetData[$this->getColuna('ddd_celular')]}){$sheetData[$this->getColuna('celular')]}"; } else { $dadosCliente['celular'] = "(00)0000-0000"; } if ($this->getColuna('email')) { $dadosCliente['email'] = $sheetData[$this->getColuna('email')]; } $clienteId = $cliente->insert($dadosCliente); } $dados['cliente_id'] = $clienteId; } protected function _getPendencias(array $sheetData, array &$dados) { if (!empty($sheetData[$this->getColuna('qtPendencias')]) && $sheetData[$this->getColuna('qtPendencias')] > 0) { $dados['descricao_pendencia'] = $sheetData[$this->getColuna('pendencias')]; $dados['cobranca_banco'] = 1; } } protected function _getTabela(array $sheetData, array &$dados) { $colunaTabela = htmlspecialchars($sheetData[$this->getColuna('tabela')]); $codigoNomeTabela = explode("-",$colunaTabela); $codigoTabela = trim($codigoNomeTabela[0]); $modelTabela = new Model_Tabela(); if (!$codigoTabela) { if ($colunaTabela !== ' - ') { return; } $dados['tabela_id'] = $modelTabela->getOrCreateTabelaByNome(null, $colunaTabela, $dados['convenio_id'], $this->_bancoId); } else { $dados['tabela_id'] = $modelTabela->getOrCreateTabelaByCodigo($codigoTabela, $colunaTabela, $dados['convenio_id'], $this->_bancoId); } } protected function _getStatusProposta(array $sheetData, array &$dados) { $colunaStatusProposta = isset($sheetData[$this->getColuna('status_proposta')]) ? trim($sheetData[$this->getColuna('status_proposta')]) : null; $colunaSituacaoContrato = isset($sheetData['dsSituacaoContrato']) ? trim($sheetData['dsSituacaoContrato']) : null; $descricaoStatus = $colunaStatusProposta; if( $colunaStatusProposta == "Em Análise" && !empty($colunaSituacaoContrato) ){ $descricaoStatus = $colunaSituacaoContrato; } $status = new Model_StatusProposta(); $dadosStatus = $status->existe($descricaoStatus); // verifica se o status existe if ($dadosStatus == null) { // se não existir, cadastra $status->setDescricao($descricaoStatus); $statusId = $status->salvar($status); } else if ($dadosStatus['parent_id']) { $statusId = $dadosStatus['parent_id']; } else { $statusId = $dadosStatus['id']; } $dados['status_proposta'] = $statusId; } protected function _getTipoFormalizacao(array $sheetData, array &$dados) { $dados['tipo_formalizacao'] = 0; if (!empty($sheetData[$this->getColuna('tipo_formalizacao')]) && $sheetData[$this->getColuna('tipo_formalizacao')] == 1) { $dados['tipo_formalizacao'] = 1; } } }
💾 保存文件
← 返回文件管理器