✏️ 正在编辑: Emprestimo.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Planilha/BB/Emprestimo.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Service_Exception_ImportacaoContratoException as ImportacaoContratoException; class Core_Banco_Planilha_BB_Emprestimo extends Core_Banco_Planilha { protected $colunas = [ 'mci_empresa' => 'A', 'data_movimento' => 'B', 'codigo_subestabelecido' => 'C', 'chavej' => 'D', 'produto' => 'E', 'codigo_convenio' => 'F', 'data_emissao' => 'G', 'numero_contrato' => 'H', 'prazo' => 'I', 'valor_bruto' => 'J', 'valor_liquido' => 'K', 'forma_liberacao' => 'L', 'data_liberacao' => 'M', 'data_cancelamento' => 'N', 'status_proposta' => 'O', 'taxa_mensal' => 'P', 'agencia_beneficiado' => 'Q', 'valor_seguro' => 'R', 'custo_convenio' => 'S', 'segmento_convneio' => 'T', 'cpf_cliente' => 'U', 'nome_cliente' => 'V', 'motivo_retorno' => 'W', 'descricao_pendencia' => 'X', 'canal_vendas' => 'Y', 'nao_comissionado_motivo' => 'Z' ]; protected $naoImportados = []; public function importar(array $sheetData) { $this->validarColunas($sheetData); $sheetData = $this->excluirLinhasVazias($sheetData); foreach ($sheetData as $linha) { $dados = [ 'banco_id' => $this->getBancoId(), 'empresa_id' => null, 'produto' => null, 'tipo' => null, 'convenio_id' => null, 'numero_contrato' => null, 'corretor_id' => null, 'status_proposta' => null, 'prazo' => null, 'valor_bruto' => null, 'valor_liquido' => null, 'forma_liberacao' => null, 'data_emissao' => null, 'data_liberacao' => null, 'cliente_id' => null, 'tabela_id' => 1 ]; try { $this->_getCorretor($linha, $dados); $this->_getEmpresaId($linha, $dados); $this->_getProduto($linha, $dados); $this->_getConvenioIdTabelaId($linha, $dados); $this->_getNumeroContrato($linha, $dados); $this->_getStatusProposta($linha, $dados); $this->_getPrazo($linha, $dados); $this->_getValorBrutoLiquido($linha, $dados); $this->getValorLiquido($linha, $dados); $this->_getFormaLiberacao($linha, $dados); $this->_getDataEmissao($linha, $dados); $this->_getDataLiberacao($linha, $dados); $this->_getClienteId($linha, $dados); $this->getTaxaMensal($linha, $dados); $this->_getComissaoCorretorAndEmpresa($linha, $dados); $this->_getAgenciaBeneficiado($linha, $dados); $this->getDescricaoPendencia($linha, $dados); $this->_getSrcc($linha, $dados); $this->_getValorSeguro($linha, $dados); $this->salvarLinha($linha, $dados); } catch ( ImportacaoContratoException $e) { $this->_addNaoImportado($dados, $linha, $this->naoImportados, $e->getMessage()); } catch ( Core_Exception $e) { $this->_addNaoImportado($dados, $linha, $this->naoImportados, $e->getMessage()); } catch ( Zend_Db_Exception $e){ $this->_addNaoImportado($dados, $linha, $this->naoImportados, "Erro na consulta SQL" . $e->getMessage()); } } return $this->naoImportados; } protected function salvarLinha($sheetData, &$dados) { $modelContrato = new Model_Contrato(); $dadosContrato = $modelContrato->existe($dados['numero_contrato'], $dados['banco_id']); if ($dadosContrato) $this->getDadosAtualizacao($dados, $dadosContrato); if (!empty($dadosContrato)) { $modelContrato->atualizandoContrato($dados, $dadosContrato); } else { $dadosContrato['id'] = $modelContrato->inserindoContrato($dados); } Model_Contrato::gravarEspelhoImportacao($dadosContrato['id'], $sheetData, $this->getArquivoOrigem()); } public function getValorLiquido($sheetData, &$dados) { if ($dados['tipo'] == 'PORTABILIDADE') { $dados['valor_liquido'] = number_format($sheetData[$this->getColuna('valor_bruto')], 2, ',', '.'); } else { $dados['valor_liquido'] = number_format($sheetData[$this->getColuna('valor_liquido')], 2, ',', '.'); } } public function getTaxaMensal($sheetData, &$dados) { $dados['taxa_contrato'] = number_format($sheetData[$this->getColuna('taxa_mensal')], 2, ',', '.'); } protected function getDadosAtualizacao(&$dados, $dadosContrato) { if (!empty($dadosContrato['agencia_beneficiado'])) { unset($dados['agencia_beneficiado']); } if (!empty($dadosContrato['conta_beneficiado'])) { unset($dados['conta_beneficiado']); } } public function _getCorretor($sheetData, &$dados) { $model = new Model_Corretor(); $corretor = $model->getByCodCorretor($sheetData[$this->getColuna('chavej')]); $corretor = current($corretor); if ($corretor) { $dados['corretor_id'] = $corretor['id']; return false; } } public function getDescricaoPendencia($sheetData, &$dados) { $dados['descricao_pendencia'] = $sheetData[$this->getColuna('descricao_pendencia')]? $sheetData[$this->getColuna('descricao_pendencia')]: ""; } protected function _getConvenioIdTabelaId(array $sheetData, array &$dados) { $colunaConvenio = (int)$sheetData[$this->getColuna('codigo_convenio')]; if (!empty($colunaConvenio) || $colunaConvenio === 0) { // verifica se o convenio existe $dbtConvenio = new Model_DbTable_Convenio(); $convenio = $dbtConvenio->fetchRow("codigo = '$colunaConvenio'"); if ($convenio) { if ($convenio->parent_id) { // verifica se o convenio tem parent_id, se tiver, usa o parent_id $parent = $dbtConvenio->fetchRow("id = $convenio->parent_id"); $convenio = $parent ? $parent : $convenio; } $convenioId = $convenio->id; } else { // se não existir cadastra $convenioId = $dbtConvenio->insert([ 'nome' => $colunaConvenio, 'codigo' => $colunaConvenio ]); } $dados['convenio_id'] = $convenioId; } $dados['tabela_id'] = (new Model_Tabela())->getOrCreateTabelaByNome(1, 'TABELA 1', $dados['convenio_id'], $this->getBancoId()); } protected function _getProduto(array $sheetData, array &$dados) { $colunaCodigoProduto = $sheetData[$this->getColuna('produto')] ?? null; if (empty($colunaCodigoProduto)) { throw new Core_Exception("Produto não informado"); } if ($colunaCodigoProduto) { $dadosProduto = (new Model_Produto()) ->existe($colunaCodigoProduto, $this->getBancoId()); if (empty($dadosProduto)) { throw new Core_Exception("Produto não localizado"); } $dados['produto'] = $dadosProduto['codigo']; $dados['tipo'] = $dadosProduto['tipo']; } } public function excluirLinhasVazias(array $sheetData, $coluna = 'numero_contrato') { $cont = 0; $newSheetData = []; foreach ($sheetData as $linha) { if (!empty(is_numeric($linha[$this->getColuna($coluna)]))) { $newSheetData[$cont++] = $linha; } } return $newSheetData; } public function _getSrcc(array $sheetData, array &$dados) { $dados['srcc'] = stristr($sheetData[$this->getColuna('nao_comissionado_motivo')], "sim") ? 1 : 0; } }
💾 保存文件
← 返回文件管理器