✏️ 正在编辑: Producao.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Service/Credfranco/Producao.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use Modules\Contrato\Service\SRCCService; class Core_Banco_Service_Credfranco_Producao extends Core_Banco_Planilha { protected $colunas = [ 'banco' => 'Banco', 'agencia_beneficiado' => 'AgenciaRecebimento', 'bairro' => 'Bairro', 'banco_beneficiado' => 'BancoRecebimento', 'bonus_empresa' => 'PercentualBonusCorretor', 'celular' => 'telefone', 'cidade' => 'Cidade', 'comissao_empresa' => 'PercentualComissaoCorretor', 'complemento' => 'Complemento', 'conta_beneficiado' => 'ContaRecebimento', 'convenio' => 'Convenio', 'codigo_agente' => 'CodDigitadorBanco', 'corretor_id' => '', 'cpf_cliente' => 'CPF_Cliente', 'data_emissao' => 'Data_Proposta', 'data_liberacao' => 'Data_Averbacao', 'data_nascimento' => 'DtNascimento', 'data_recebimento_comissao' => 'Data_Pagamento_Corretor', 'digitador' => 'CodDigitadorBanco', 'digito_agencia_beneficiado' => 'AgenciaDigito', 'digito_conta_beneficiado' => 'ContaDigito', 'email' => 'Email', 'endereco' => 'Endereco', 'especie' => '', 'fone' => 'telefone', 'forma_liberacao' => '', 'nome_cliente' => 'Nome_Cliente', 'nome_mae' => 'NomeMae', 'nome_pai' => 'NomePai', 'nome_produto' => 'Produto', 'numero' => 'NumeroResidencia', 'numero_ade' => 'Codigo_Proposta_Webcred', 'numero_contrato' => 'Codigo_Proposta_Banco', 'prazo' => 'Parcelas', 'produto' => 'ProductCode', 'tipo_contrato' => 'ProductType', 'rg' => 'RG', 'status_proposta' => 'Desc_Status_Proposta', 'tabela' => 'Produto', 'uf' => 'UF', 'valor_bruto' => 'Valor_Bruto', 'valor_comissao' => 'ValorComissaoCorretor', 'valor_bonus' => 'ValorBonusCorretor', 'valor_liquido' => 'Valor_Liquido', 'valor_prestacao' => '', 'valor_principal' => 'Valor_Producao', 'tipo_formalizacao' => 'FormatoFisico', 'taxa_emprestimo' => '', ]; public function __construct($bancoId = null, $extensao = null) { $this->authService = service('auth_service'); $this->service = service('importacao'); $this->SRCCService = new SRCCService(); } public function importar(array $sheetData, $config = null) { if (count($sheetData) <= 0) { return $this->naoImportados; } foreach ($sheetData as $contrato) { $contrato = (array) $contrato; $dados = [ 'banco_id' => null, 'corretor_id' => null, 'empresa_id' => null, 'convenio_id' => null, 'tabela_id' => null, 'cliente_id' => null, 'produto' => null, 'prazo' => 0, 'valor_bruto' => null, 'valor_liquido' => null, 'valor_prestacao' => null, 'numero_contrato' => null, 'data_emissao' => null, 'data_liberacao' => null, 'data_recebimento_comissao' => null, 'digitador' => Yuppie_Auth::getIdentity()->login, 'forma_liberacao' => null, 'comissao_corretor' => null, 'comissao_empresa' => null, 'diferimento_corretor' => null, 'status_proposta' => null, 'subestabelecido_id' => null, 'verificar_contratos' => null, 'seguranca' => null, 'cartao' => 0, 'tipo_formalizacao' => 0 ]; try { $contrato['cpf'] = String_Refatorar::formatarCpf($contrato['cpf']); $this->_getBancoId($contrato, $dados); $this->_getTipoContrato($contrato, $dados); $this->_getProduto($contrato, $dados); $this->_getPrazo($contrato, $dados); $this->_getValorBrutoLiquido($contrato, $dados); $this->_getValorParcela($contrato, $dados); $this->_getNumeroContrato($contrato, $dados); $this->_getNumeroAde($contrato, $dados); $this->_getConvenioIdTabelaId($contrato, $dados); $this->_getDigitador($contrato, $dados); $this->_getCorretorId($contrato, $dados); $this->_getEmpresaId($contrato, $dados); $this->_getClienteId($contrato, $dados, $config); $this->_getDataEmissao($contrato, $dados); $this->_getComissaoCorretorAndEmpresa($contrato, $dados); $this->_getBonusEmpresa($contrato, $dados); $this->_getStatusProposta($contrato, $dados); $this->_getDataLiberacao($contrato, $dados); $this->_getSubestabelecido($contrato, $dados); $this->_getBancoBeneficiado($contrato, $dados); $this->_getContaBeneficiado($contrato, $dados); $this->_getAgenciaBeneficiado($contrato, $dados); $this->_getDataRecebimentoComissao($contrato, $dados); $this->_getTipoFormalizacao($contrato, $dados); $this->_getIdadeCliente($contrato, $dados); $this->contratosImportados[] = $dados['numero_contrato']; $this->salvarLinha($contrato, $dados); } catch ( Core_Exception $e) { $this->_addNaoImportado($dados, $contrato, $this->naoImportados, $e->getMessage()); } catch ( Zend_Db_Exception $e){ $this->_addNaoImportado($dados, $contrato, $this->naoImportados, "Erro na consulta SQL. " . $e->getMessage()); } } return $this->naoImportados; } protected function _getBancoId(array $sheetData, array &$dados) { $bancoId = null; $banco = !empty($sheetData[$this->getColuna('banco')]) ? $sheetData[$this->getColuna('banco')] : null; if (!$banco) { throw new Core_Exception("O Banco do contrato está vazio, favor inserir."); } $bancoId = Model_Banco::bancoPorNome($banco); if (!$bancoId) { throw new Core_Exception("Banco: '{$banco}' não encontrado no sistema."); } $this->_bancoId = $bancoId; $dados['banco_id'] = $bancoId; } protected function _getNumeroContrato(array $sheetData, array &$dados) { if ($this->getColuna('numero_contrato')) { $dados['numero_contrato'] = $sheetData[$this->getColuna('numero_contrato')]; } } protected function _getDataRecebimentoComissao(array $sheetData, array &$dados) { $colunaDtRecebimentoComissao = $sheetData[$this->getColuna('data_recebimento_comissao')]; $dataRecebimentoComissao = null; if (!empty($colunaDtRecebimentoComissao)) { $dataRecebimentoComissao = Core_Util::convertDate($colunaDtRecebimentoComissao); if (is_array($dataRecebimentoComissao)) { throw new Core_Exception("Não foi possível converter a data de recebimento para o banco de dados. ({$colunaDtRecebimentoComissao})"); } } $dados['data_recebimento_comissao'] = $dataRecebimentoComissao; } protected function _getTipoFormalizacao(array $sheetData, array &$dados) { $dados['tipo_formalizacao'] = 0; if (!empty($sheetData[$this->getColuna('tipo_formalizacao')]) && stristr($sheetData[$this->getColuna('tipo_formalizacao')], 'eletronico' )) { $dados['tipo_formalizacao'] = 1; } } protected function _getBonusEmpresa(array $sheetData, array &$dados) { $colunaComissao = String_Refatorar::parseStringToFloat( str_replace('%', '', $sheetData[$this->getColuna('bonus_empresa')])); $dados['bonus_empresa'] = $colunaComissao; } protected function _receberComissao(array $sheetData, array &$dados) { $this->_getDataRecebimentoComissao($sheetData, $dados); $this->_getComissaoEmpresa($sheetData, $dados); $dados['tipo_remuneracao'] = 1; //à vista $dados['natureza'] = 1; $valorComissao = $this->getColuna('valor_comissao') ? String_Refatorar::parseStringToFloat($sheetData[$this->getColuna('valor_comissao')]) : 0; $valorBonus = $this->getColuna('valor_bonus') ? String_Refatorar::parseStringToFloat($sheetData[$this->getColuna('valor_bonus')]) : 0; if ($this->_dadosContrato) { if ( !empty($dados['data_recebimento_comissao']) && empty($this->_dadosContrato->data_recebimento_comissao) && !empty($valorComissao) ) { $this->_dadosContrato->data_recebimento_comissao = $dados['data_recebimento_comissao']; $this->_dadosContrato->save(); } $recebimento = [ 'contrato_id' => $this->_dadosContrato->id, 'data_recebimento_comissao' => $dados['data_recebimento_comissao'], 'parcelas' => 0, 'comissao_empresa' => String_Refatorar::parseStringToFloat($dados['comissao_empresa']), 'data_saldo' => $dados['data_recebimento_comissao'], 'tipo_remuneracao' => $dados['tipo_remuneracao'], 'valor_lancamento' => $valorComissao, 'natureza' => $dados['natureza'], 'descricao' => 'Comissão' ]; try { $dbtableRecebimento = new Model_DbTable_RecebimentoContrato(); $dbtableRecebimento->receberComissao($recebimento); } catch (\Throwable $th) { //throw $th; } if ( !empty($dados['data_recebimento_comissao']) && empty($this->_dadosContrato->data_recebimento_bonus) && !empty($valorBonus) ) { $bonusEmpresa = String_Refatorar::parseStringToFloat($dados['bonus_empresa']); $this->_dadosContrato->data_recebimento_bonus = $dados['data_recebimento_comissao']; $this->_dadosContrato->bonus_recebido = $bonusEmpresa; $this->_dadosContrato->save(); $recebimentoBonus = [ 'contrato_id' => $this->_dadosContrato->id, 'data_recebimento_comissao' => $dados['data_recebimento_comissao'], 'parcelas' => 0, 'comissao_empresa' => $bonusEmpresa, 'data_saldo' => $dados['data_recebimento_comissao'], 'tipo_remuneracao' => 4, 'valor_lancamento' => $valorBonus, 'natureza' => 1, 'descricao' => 'Bônus' ]; $dbtableRecebimento->receberComissao($recebimentoBonus); } } } protected function _getTipoContrato(array $sheetData, array &$dados) { $colunaTipo = !empty($sheetData[$this->getColuna('tipo_contrato')]) ? $sheetData[$this->getColuna('tipo_contrato')] : null; if ($colunaTipo) { $dados['tipo'] = strtoupper($colunaTipo); } if ($dados['tipo'] == "REFIN / PORTABILIDADE") { $dados['tipo'] = "REFIN DA PORTABILIDADE"; } } protected function _getProduto(array $sheetData, array &$dados) { @$colunaCodigoProduto = $sheetData[$this->getColuna('produto')]; $colunaDescricaoProduto = isset($sheetData[$this->getColuna('nome_produto')]) ? $sheetData[$this->getColuna('nome_produto')] : null; $dados['produto'] = (new Model_Produto())->getOrCreateProdutoCodigo($colunaCodigoProduto, $colunaDescricaoProduto, $this->getBancoId(), $dados['tipo']); } }
💾 保存文件
← 返回文件管理器