✏️ 正在编辑: DigitacaoAutomatica.php
路径:
/srv/systems_dir/yuppiecred/application/models/DbTable/DigitacaoAutomatica.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_DbTable_DigitacaoAutomatica extends Core_DbTable { protected $_primary = 'id'; protected $_name = 'tb_digitacao_automatica'; public function gravarParaDigitacao(array $clientes, int $convenioId, int $bancoId, $tipoOperacao = 'NOVO', ?float $margemFixa = 0.00) { $banco = Model_Banco::bancoPorId($bancoId); $convenio = (new Model_Convenio())->exibir($convenioId); if (empty($banco)) { throw new Core_Exception("Banco não localizado!"); } if (empty($convenio)) { throw new Core_Exception("Convênio não localizado!"); } $retorno = []; $config = service('config_callcenter')->get(); foreach ($clientes as $clienteId) { $dadosCliente = (new Model_Cliente())->exibir($clienteId); if (!$dadosCliente) { $retorno[] = [ 'status' => false, 'cliente_id' => $clienteId, 'descricao' => "Cliente não localizado para digitação" ]; continue; } $temDigitacaoAndamento = (new Model_DigitacaoAutomatica())->temDigitacaoAndamento($dadosCliente->cpf, $banco, $tipoOperacao); $digitacaoEmAndamento = $temDigitacaoAndamento['dados_digitacao_andamento']; $diasDigitado = $temDigitacaoAndamento['dias_digitado']; if (!empty($temDigitacaoAndamento['erro'])) { $retorno[] = $temDigitacaoAndamento; continue; } $dadosContrato = new stdClass(); (new Model_DigitacaoAutomatica())->temContrato($clienteId, $dadosContrato, $dadosCliente); if (!$dadosContrato) { $retorno[] = [ 'status' => false, 'cliente_id' => $clienteId, 'descricao' => "Contrato não possui informações suficientes para digitação" ]; continue; } $dadosHiscon = null; if ($config->consulta_beneficio && $config->consulta_beneficio_digitacao_automatica == 1 && !stristr($convenio->nome, 'FGTS') && ($diasDigitado > 30 || empty($digitacaoEmAndamento))) { $serviceClass = 'Core_Service_' . $config->consulta_beneficio; $consulta = new $serviceClass; try { if (!empty($dadosContrato->numero_beneficio)) { $consulta->setCpf($dadosCliente->cpf); $dadosHiscon = $consulta->getConsignadoPorBeneficio($dadosContrato->numero_beneficio); } else { $dadosHiscon = $consulta->getMaiorMargem($dadosCliente->cpf); } } catch (Core_Exception $erro) { Yuppie_Log::write("Erro ao consultar Hiscon! " . $erro->getMessage(), $this); } } if ($dadosHiscon) { $dadosContrato->valor_beneficio = !empty($dadosHiscon['mr']) ? $dadosHiscon['mr'] : $dadosContrato->valor_beneficio; $dadosCliente->data_nascimento = !empty($dadosHiscon['nascto']) ? $dadosHiscon['nascto'] : $dadosCliente->data_nascimento; $dadosCliente->sexo = !empty($dadosHiscon['sexo']) ? $dadosHiscon['sexo'] : $dadosCliente->sexo; $dadosContrato->numero_beneficio = !empty($dadosHiscon['beneficio']) ? $dadosHiscon['beneficio'] : $dadosContrato->numero_beneficio; $dadosContrato->especie = !empty($dadosHiscon['especie']) ? $dadosHiscon['especie'] : $dadosContrato->especie; $dadosContrato->banco_beneficiado = !empty($dadosHiscon['banco_pagto']) ? $dadosHiscon['banco_pagto'] : $dadosContrato->banco_beneficiado; $dadosContrato->agencia_beneficiado = !empty($dadosHiscon['agencia_pagto']) ? $dadosHiscon['agencia_pagto'] : $dadosContrato->agencia_beneficiado; $dadosContrato->conta_beneficiado = !empty($dadosHiscon['conta_pagto']) ? $dadosHiscon['conta_pagto'] : $dadosContrato->conta_beneficiado; $dadosContrato->recebe_pagto_cartao = $dadosHiscon['tipo_pagto'] == "CARTAO MAGNETICO" ? 1 : 0; $dadosCliente->rg = !empty($dadosHiscon['rg']) ? $dadosHiscon['rg'] : $dadosCliente->rg; $dadosCliente->orgao_expedidor = !empty($dadosHiscon['orgao_expedidor']) ? $dadosHiscon['orgao_expedidor'] : $dadosCliente->orgao_expedidor; $dadosCliente->uf_expedidor = !empty($dadosHiscon['uf']) ? $dadosHiscon['uf'] : $dadosCliente->uf_expedidor; $dadosCliente->data_expedicao = $dadosHiscon['ddb'] ? (new Zend_Date($dadosHiscon['ddb']))->get('yyyy-MM-dd') : $dadosCliente->data_expedicao; $dadosCliente->cep = $dadosHiscon['cep'] ? String_Refatorar::soNumeros($dadosHiscon['cep']) : String_Refatorar::soNumeros($dadosCliente->cep); $dadosCliente->endereco = !empty($dadosHiscon['logradouro']) ? $dadosHiscon['logradouro'] : $dadosCliente->endereco; $dadosCliente->bairro = !empty($dadosHiscon['bairro']) ? $dadosHiscon['bairro'] : $dadosCliente->bairro; $dadosCliente->cidade = !empty($dadosHiscon['cidade']) ? $dadosHiscon['cidade'] : $dadosCliente->cidade; $dadosCliente->uf = !empty($dadosHiscon['uf']) ? $dadosHiscon['uf'] : $dadosCliente->uf; $dadosCliente->representante_legal = $dadosHiscon['rep_legal'] ?: $dadosCliente->representante_legal; $dadosCliente->nome_representante = $dadosHiscon['rep_legal_nome'] ?: $dadosCliente->nome_representante; $dadosCliente->cpf_representante = $dadosHiscon['rep_legal_cpf'] ?: $dadosCliente->cpf_representante; $dadosCliente->celular = !empty($dadosCliente->celular) ? $dadosCliente->celular : $dadosHiscon['celular']; } //verifica se tem IN100 ligada // $configMaster = service('config_api')->get(); // if (!empty($configMaster->BANCO_MASTER->usuario)) { // try { // $service = new Core_Banco_Service_Master_Api(); // $consulta = $service->consultaIn100(['cpf' => $dadosCliente->cpf, 'beneficio' => $dadosContrato->numero_beneficio]); // $dadosContrato->banco_beneficiado = !empty($dadosContrato->banco_beneficiado) ? $dadosContrato->banco_beneficiado : $consulta->CbcIfPagadora; // $dadosContrato->agencia_beneficiado = !empty($dadosContrato->agencia_beneficiado) ? $dadosContrato->agencia_beneficiado : $consulta->AgenciaPagadora; // $dadosContrato->conta_beneficiado = !empty($dadosContrato->conta_beneficiado) ? $dadosContrato->conta_beneficiado : $consulta->ContaCorrente; // } catch (Exception $e) { // // // } // } if (!empty($margemFixa) && String_Refatorar::parseStringToFloat($margemFixa) > 0) { $margem = String_Refatorar::parseStringToFloat($margemFixa); } else { if ($tipoOperacao == "NOVO") { $margem = !empty($dadosHiscon['margem']) ? $dadosHiscon['margem'] : 0; // if (!empty($consulta->MargemDisponivel)) { // $margem = $consulta->MargemDisponivel; //IN100 // } } elseif (stristr($tipoOperacao, "AUMENTO")) { $perc = in_array($dadosContrato->especie, [87, 88]) ? 30 : 35; $margem = $dadosContrato->valor_beneficio > Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO ? ($dadosContrato->valor_beneficio*Model_DigitacaoAutomatica::PERC_REAJUSTE/100)*$perc/100 : (Model_DigitacaoAutomatica::DIFF_SALARIO_MINIMO*$perc/100); } elseif($tipoOperacao == "CREDCESTA") { $margem = $consulta->MargemDisponivelRcc; } } if ($margem == 0 && !stristr($convenio->nome, 'FGTS') && !stristr($tipoOperacao, 'REFIN')) { $retorno[] = [ 'status' => false, 'contrato_id' => $dadosContrato->id, 'descricao' => "Cliente sem margem para iniciar a digitação." ]; continue; } if ($digitacaoEmAndamento) { $result = $this->update([ 'status_digitacao' => "A Digitar", 'descricao_andamento' => null, 'tipo_operacao' => $tipoOperacao, 'sexo' => $dadosCliente->sexo ?: $digitacaoEmAndamento->sexo, 'celular' => String_Refatorar::formatarTelefone($dadosCliente->celular) ?: $digitacaoEmAndamento->celular, 'data_nascimento' => $dadosCliente->data_nascimento ?: $digitacaoEmAndamento->data_nascimento, 'numero_beneficio' => $dadosContrato->numero_beneficio ?: $digitacaoEmAndamento->numero_beneficio, 'especie' => $dadosContrato->especie ?: $digitacaoEmAndamento->especie, 'renda_valor' => $dadosContrato->valor_beneficio > 0 ? $dadosContrato->valor_beneficio : ($digitacaoEmAndamento->renda_valor > 0 ? $digitacaoEmAndamento->renda_valor : Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO), 'margem' => $margem ?: $digitacaoEmAndamento->margem, 'rg' => $dadosCliente->rg ?: $digitacaoEmAndamento->rg, 'orgao_emissor' => !empty($dadosCliente->orgao_expedidor) ? $dadosCliente->orgao_expedidor : $digitacaoEmAndamento->orgao_emissor, 'uf_emissor' => $dadosCliente->uf_expedidor ?: $digitacaoEmAndamento->uf_emissor, 'data_emissao_rg' => $dadosCliente->data_expedicao ?: $digitacaoEmAndamento->data_emissao_rg, 'nome_mae' => $dadosCliente->nome_mae ?: $digitacaoEmAndamento->nome_mae, 'possui_representante_legal' => $dadosCliente->representante_legal ?: $digitacaoEmAndamento->possui_representante_legal, 'nome_representante_legal' => $dadosCliente->nome_representante ?: $digitacaoEmAndamento->nome_representante_legal, 'cpf_representante_legal' => $dadosCliente->cpf_representante ?: $digitacaoEmAndamento->cpf_representante_legal, 'cep' => $dadosCliente->cep ?: $digitacaoEmAndamento->cep, 'endereco' => $dadosCliente->endereco ?: $digitacaoEmAndamento->endereco, 'bairro' => $dadosCliente->bairro ?: $digitacaoEmAndamento->bairro, 'cidade' => $dadosCliente->cidade ?: $digitacaoEmAndamento->cidade, 'uf' => $dadosCliente->uf ?: $digitacaoEmAndamento->uf, 'numero' => !empty($dadosCliente->numero) ? $dadosCliente->numero : $digitacaoEmAndamento->numero, 'banco_beneficiado' => $dadosContrato->banco_beneficiado ?: $digitacaoEmAndamento->banco_beneficiado, 'agencia_beneficiado' => $dadosContrato->agencia_beneficiado ?: $digitacaoEmAndamento->agencia_beneficiado, 'conta_beneficiado' => $dadosContrato->conta_beneficiado ?: $digitacaoEmAndamento->conta_beneficiado, // 'digito_conta_beneficiado' => $dadosContrato->conta_beneficiado, 'tipo_conta_beneficiado' => $dadosContrato->operacao_beneficiado != "001" ? "POUPANCA" : $digitacaoEmAndamento->tipo_conta_beneficiado, 'cod_oper_cef' => '001', 'recebe_pagto_cartao' => $dadosContrato->recebe_pagto_cartao ? $dadosContrato->recebe_pagto_cartao : $digitacaoEmAndamento->recebe_pagto_cartao ], "id = " . $digitacaoEmAndamento->id); } else { $result = $this->insert([ 'cliente_id' => $dadosCliente->id, 'corretor_id' => $dadosContrato->corretor_id, 'banco' => $banco, 'convenio' => $convenio->nome, 'tipo_operacao' => $tipoOperacao, 'nome' => $dadosCliente->nome, 'cpf' => $dadosCliente->cpf, 'sexo' => $dadosCliente->sexo, 'celular' => String_Refatorar::formatarTelefone($dadosCliente->celular), 'data_nascimento' => $dadosCliente->data_nascimento, 'numero_beneficio' => $dadosContrato->numero_beneficio, 'especie' => $dadosContrato->especie, 'renda_valor' => $dadosContrato->valor_beneficio > 0 ? $dadosContrato->valor_beneficio : Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO, 'margem' => $margem, 'rg' => $dadosCliente->rg, 'orgao_emissor' => !empty($dadosCliente->orgao_expedidor) ? $dadosCliente->orgao_expedidor : "SSP", 'uf_emissor' => $dadosCliente->uf_expedidor, 'data_emissao_rg' => $dadosCliente->data_expedicao, 'nome_mae' => $dadosCliente->nome_mae, 'possui_representante_legal' => $dadosCliente->representante_legal, 'nome_representante_legal' => $dadosCliente->nome_representante, 'cpf_representante_legal' => $dadosCliente->cpf_representante, 'cep' => $dadosCliente->cep, 'endereco' => $dadosCliente->endereco, 'bairro' => $dadosCliente->bairro, 'cidade' => $dadosCliente->cidade, 'uf' => $dadosCliente->uf, 'numero' => !empty($dadosCliente->numero) ? $dadosCliente->numero : "S/N", 'banco_beneficiado' => $dadosContrato->banco_beneficiado, 'agencia_beneficiado' => substr(String_Refatorar::soNumeros($dadosContrato->agencia_beneficiado), 0, 4), 'conta_beneficiado' => String_Refatorar::soNumeros($dadosContrato->conta_beneficiado), // 'digito_conta_beneficiado' => substr($dadosContrato->conta_beneficiado, strlen($dadosContrato->conta_beneficiado)-1, 1), 'tipo_conta_beneficiado' => $dadosContrato->operacao_beneficiado != "001" ? "POUPANCA" : "CORRENTE", 'cod_oper_cef' => '001', 'recebe_pagto_cartao' => (int)$dadosContrato->recebe_pagto_cartao ]); } if ($result) { $retorno[] = [ 'status' => true, 'contrato_id' => $dadosContrato->id, 'descricao' => "Enviado para digitação" ]; continue; } $retorno[] = [ 'status' => false, 'contrato_id' => $dadosContrato->id, 'descricao' => "Não inserido para digitação." ]; } return $retorno; } public function viewEsteira(array $params) { $where = []; if (!empty($params['convenio'])) { $where['convenio = ?'] = $params['convenio']; } if (!empty($params['banco'])) { $where['banco = ?'] = $params['banco']; } if (!empty($params['status_digitacao'])) { $where['status_digitacao = ?'] = $params['status_digitacao']; } if (!empty($params['data_digitacao_de'])) { $where['data_cadastro >= ?'] = (new Zend_Date($params['data_digitacao_de']))->get('yyyy-MM-dd') . " 00:00:00"; } if (!empty($params['data_digitacao_a'])) { $where['data_cadastro <= ?'] = (new Zend_Date($params['data_digitacao_a']))->get('yyyy-MM-dd') . " 23:59:59"; } if (!empty($params['corretor_id'])) { $where['corretor_id = ?'] = $params['corretor_id']; } return $this->fetchAll($where); } public static function complementarDados(&$dados) { $banco = ucfirst(strtolower($dados['banco'])); $dados['banco'] = $banco; $dados['consulta_banco'] = '_consultar' . String_Refatorar::removerEspacos($banco); $dados['tipo_operacao'] = $dados['tipo_operacao'] ?? "NOVO"; $dados['codigo_orgao'] = $dados['convenio'] == 'FGTS' ? 'FGTS' : 'INSS'; $dados['valor_solicitado'] = $dados['margem']; $dados['uf_emissao_documento'] = $dados['uf_emissor']; $dados['data_emissao_documento'] = $dados['data_emissao_rg']; $dados['fone'] = $dados['celular']; $dados['numero_banco'] = $dados['banco_beneficiado']; $dados['operacao_beneficiado'] = $dados['cod_oper_cef']; $dados['numero_agencia'] = $dados['agencia_beneficiado']; $dados['numero_conta'] = $dados['conta_beneficiado']; $dados['margem_complementar'] = stristr($dados['tipo_operacao'], "AUMENTO") ? true : false; unset($dados['id']); } public function update(array $data, $where) { $this->closeConnection(); return parent::update($data, $where); } public function gravarParaDigitacaoCampanha(array $base, int $convenioId, int $bancoId, $tipoOperacao = 'NOVO') { $banco = Model_Banco::bancoPorId($bancoId); $convenio = (new Model_Convenio())->exibir($convenioId); if (empty($banco)) { throw new Core_Exception("Banco não localizado!"); } if (empty($convenio)) { throw new Core_Exception("Convênio não localizado!"); } foreach ($base as $cliente) { $beneficios = (new Model_DbTable_CallcenterBeneficio())->fetchRow('base_cliente_id = ' . $cliente['id'], 'margem_livre DESC'); $telefones = (new Model_DbTable_CallcenterTelefone())->fetchRow('cliente_id = ' . $cliente['id'], 'whatsapp DESC'); $enderecos = (new Model_DbTable_CallcenterEndereco())->fetchRow('cpf_cliente = ' . $cliente['cpf'], 'cep DESC'); if ($tipoOperacao == "NOVO") { $margem = $beneficios['margem_livre'] ?: 0; } elseif (stristr($tipoOperacao, "AUMENTO")) { $perc = in_array($beneficios['especie'], [87, 88]) ? 30 : 35; $margem = $beneficios['mr'] > Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO ? ($beneficios['mr']*Model_DigitacaoAutomatica::PERC_REAJUSTE/100)*$perc/100 : (Model_DigitacaoAutomatica::DIFF_SALARIO_MINIMO*$perc/100); } if ($margem == 0 && !stristr($convenio->nome, 'FGTS') && !stristr($tipoOperacao, 'REFIN')) { continue; } if ($this->fetchRow(["base_id = ?" => $cliente['id'], "banco = ?" => $banco, "tipo_operacao = ?" => $tipoOperacao])) { continue; } $this->insert([ 'base_id' => $cliente['id'], 'banco' => $banco, 'convenio' => $convenio->nome, 'tipo_operacao' => $tipoOperacao, 'nome' => $cliente['nome'] ?: 'CLIENTE AUTO-CONTRATAÇÃO', 'cpf' => $cliente['cpf'], 'sexo' => $cliente['sexo'], 'celular' => String_Refatorar::formatarTelefone($telefones->fone), 'data_nascimento' => $cliente['data_nascimento'], 'numero_beneficio' => $beneficios->beneficio, 'especie' => $beneficios->especie, 'renda_valor' => !empty($beneficios->mr) ? $beneficios->mr : Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO, 'margem' => $margem, 'rg' => $cliente['rg'], 'orgao_emissor' => "SSP", 'uf_emissor' => $enderecos->uf, 'data_emissao_rg' => (new Zend_Date($cliente['data_nascimento']))->addYear(1)->get('yyyy-MM-dd'), 'nome_mae' => $cliente['nome_mae'], 'possui_representante_legal' => $cliente['rep_legal'], 'nome_representante_legal' => $cliente['nome_responsavel'], 'cpf_representante_legal' => $cliente['cpf_responsavel'], 'cep' => $enderecos->cep, 'endereco' => $enderecos->endereco, 'bairro' => $enderecos->bairro, 'cidade' => $enderecos->cidade, 'uf' => $enderecos->uf, 'numero' => !empty($enderecos->numero) ? $enderecos->numero : "S/N", 'banco_beneficiado' => $beneficios->banco_pagto, 'agencia_beneficiado' => $beneficios->agencia_pagto, 'conta_beneficiado' => $beneficios->conta_pagto, 'tipo_conta_beneficiado' => $beneficios->tipo_pagto != "Conta Corrente" ? "POUPANCA" : "CORRENTE", 'cod_oper_cef' => '001' ]); } } public function gravarPropostaParaDigitacao(int $propostaId) { $tbProposta = new Model_DbTable_Proposta(); $proposta = $tbProposta->fetchRow(['id = ?' => $propostaId]); $banco = Model_Banco::bancoPorId($proposta->banco_id); $convenio = (new Model_Convenio())->exibir($proposta->convenio_id); $tabela = (new Model_Tabela())->exibir($proposta->tabela_id); $dadosCliente = (new Model_Cliente())->exibir($proposta->cliente_id); if (empty($banco)) { throw new Core_Exception("Banco não localizado!"); } if (empty($convenio)) { throw new Core_Exception("Convênio não localizado!"); } if (empty($tabela)) { throw new Core_Exception("Tabela não localizada!"); } if (empty($dadosCliente)) { throw new Core_Exception("Cliente não localizado para digitação!"); } $dadosProposta = new stdClass(); $dadosProposta->valor_beneficio = !empty($proposta->valor_beneficio) ? $proposta->valor_beneficio : Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO; $dadosProposta->numero_beneficio = !empty($proposta->numero_beneficio) ? $proposta->numero_beneficio : ""; $dadosProposta->especie = !empty($proposta->especie) ? $proposta->especie : ""; $dadosProposta->corretor_id = !empty($proposta->corretor_id) ? $proposta->corretor_id : ""; $dadosCliente->cep = !empty($proposta->cep) ? $proposta->cep : $dadosCliente->cep; $dadosCliente->endereco = !empty($proposta->endereco) ? $proposta->endereco : $dadosCliente->endereco; $dadosCliente->bairro = !empty($proposta->bairro) ? $proposta->bairro : $dadosCliente->bairro; $dadosCliente->cidade = !empty($proposta->cidade) ? $proposta->cidade : $dadosCliente->cidade; $dadosCliente->uf = !empty($proposta->uf) ? $proposta->uf : $dadosCliente->uf; if (!$dadosProposta) { throw new Core_Exception("Proposta não possui informações suficientes para digitação!"); } $margem = !empty($proposta->valor_prestacao) ? $proposta->valor_prestacao : 0; if ($proposta->tipo == "NOVO") { $margem = !empty($proposta->valor_prestacao) ? $proposta->valor_prestacao : 0; } elseif (stristr($proposta->tipo, "AUMENTO") && (empty($proposta->valor_prestacao) || $proposta->valor_prestacao == 0)) { $perc = in_array($proposta->especie, [87, 88]) ? 30 : 35; $margem = $proposta->valor_beneficio > Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO ? ($proposta->valor_beneficio*Model_DigitacaoAutomatica::PERC_REAJUSTE/100)*$perc/100 : (Model_DigitacaoAutomatica::DIFF_SALARIO_MINIMO*$perc/100); //margem 2026 } if ($margem == 0 && !stristr($proposta->tipo, 'REFIN')) { throw new Core_Exception("Proposta sem valor de parcela para iniciar a digitação!"); } if ($this->fetchRow(["cliente_id = ?" => $dadosCliente->id, "banco = ?" => $banco, "proposta_id = ?" => $propostaId, 'tipo_operacao =?' => $proposta->tipo])) { throw new Core_Exception("Já existe uma digitação para esta proposta neste banco!"); } $result = $this->insert([ 'cliente_id' => $dadosCliente->id, 'corretor_id' => $dadosProposta->corretor_id, 'proposta_id' => $propostaId, 'banco' => $banco, 'convenio' => $convenio->nome, 'tabela' => !empty($tabela->codigo) ? $tabela->codigo : $tabela->nome, 'tipo_operacao' => $proposta->tipo, 'nome' => $dadosCliente->nome, 'cpf' => $dadosCliente->cpf, 'sexo' => $dadosCliente->sexo ?: 'M', 'celular' => String_Refatorar::formatarTelefone($dadosCliente->celular), 'data_nascimento' => $dadosCliente->data_nascimento, 'numero_beneficio' => $dadosProposta->numero_beneficio, 'especie' => $dadosProposta->especie, 'renda_valor' => $dadosProposta->valor_beneficio > 0 ? $dadosProposta->valor_beneficio : Model_DigitacaoAutomatica::VLR_SALARIO_MINIMO, 'margem' => $margem, 'rg' => $dadosCliente->rg, 'orgao_emissor' => !empty($dadosCliente->orgao_expedidor) ? $dadosCliente->orgao_expedidor : "SSP", 'uf_emissor' => $dadosCliente->uf_expedidor, 'data_emissao_rg' => $dadosCliente->data_expedicao, 'nome_mae' => $dadosCliente->nome_mae, 'possui_representante_legal' => $dadosCliente->representante_legal, 'nome_representante_legal' => $dadosCliente->nome_representante, 'cpf_representante_legal' => $dadosCliente->cpf_representante, 'cep' => $dadosCliente->cep, 'endereco' => $dadosCliente->endereco, 'bairro' => $dadosCliente->bairro, 'cidade' => $dadosCliente->cidade, 'uf' => $dadosCliente->uf, 'numero' => !empty($dadosCliente->numero) ? $dadosCliente->numero : "S/N", 'banco_beneficiado' => $proposta->banco_beneficiado, 'agencia_beneficiado' => $proposta->agencia_beneficiado, 'conta_beneficiado' => $proposta->conta_beneficiado, 'tipo_conta_beneficiado' => $proposta->operacao_beneficiado != "001" ? "POUPANCA" : "CORRENTE", 'cod_oper_cef' => '001', 'tipo_pix' => $proposta->tipo_pix ?? "", 'chave_pix' => $proposta->chave_pix ?? "" ]); if ($result) { return true; } return false; } public function gravarParaDigitacaoPorConsulta(array $dadosCliente, int $convenioId, int $bancoId, $tipoOperacao = 'NOVO', ?float $margemFixa = 0.00) { $banco = Model_Banco::bancoPorId($bancoId); $convenio = (new Model_Convenio())->exibir($convenioId); $corretorId = $dadosCliente['corretor_id'] ?: 0; if (empty($banco)) { throw new Core_Exception("Banco não localizado!"); } if (empty($convenio)) { throw new Core_Exception("Convênio não localizado!"); } if (empty($dadosCliente)) { throw new Core_Exception("Dados do cliente inválidos."); } if (empty($dadosCliente['numero_beneficio']) && !empty($dadosCliente['beneficio'])) { $dadosCliente['numero_beneficio'] = $dadosCliente['beneficio']; } $digitacaoAutomatica = new Model_DigitacaoAutomatica(); $digitacaoEmAndamento = $digitacaoAutomatica->temDigitacaoAndamento($dadosCliente['cpf'], $banco, $tipoOperacao); if ($digitacaoEmAndamento['erro']) { throw new Core_Exception($digitacaoEmAndamento['descricao']); } //busca dados do cliente // $clienteExiste = $digitacaoAutomatica->clienteExiste($dadosCliente['cpf'], $dadosCliente); // if (!$clienteExiste) { // $callcenterExiste = $digitacaoAutomatica->clienteExisteCallcenter($dadosCliente['cpf'], $dadosCliente); // if ($callcenterExiste) { // $digitacaoAutomatica->clienteTemBeneficioCallcenter($dadosCliente['cpf'], $dadosCliente); // } // } if (!empty($margemFixa) && String_Refatorar::parseStringToFloat($margemFixa) > 0) { $margem = String_Refatorar::parseStringToFloat($margemFixa); } elseif ($tipoOperacao == "NOVO") { $margem = !empty($dadosCliente['margem']) ? $dadosCliente['margem'] : 0; } if ($margem == 0 && !stristr($convenio->nome, 'FGTS') && !stristr($tipoOperacao, 'REFIN')) { return [ 'status' => false, 'descricao' => "Cliente sem margem para iniciar a digitação." ]; } if ($digitacaoEmAndamento) { $this->delete(['id = ?' => $digitacaoEmAndamento['id']]); } if (Yuppie_Auth::getIdentity()->grupo == "Corretor") { $corretorId = Yuppie_Auth::getIdentity()->id; } elseif (Yuppie_Auth::getIdentity()->corretor_id > 0) { $corretorId = Yuppie_Auth::getIdentity()->corretor_id; } $digitacaoAutomatica->tratarDadosCliente($dadosCliente); return $this->insert([ 'corretor_id' => $corretorId, 'banco' => $banco, 'convenio' => $convenio->nome, 'tipo_operacao' => $tipoOperacao, 'nome' => $dadosCliente['nome'], 'cpf' => $dadosCliente['cpf'], 'sexo' => $dadosCliente['sexo'], 'celular' => String_Refatorar::formatarTelefone($dadosCliente['celular']), 'data_nascimento' => $dadosCliente['nascto'], 'numero_beneficio' => $dadosCliente['numero_beneficio'], 'especie' => $dadosCliente['especie'], 'renda_valor' => $dadosCliente['mr'], 'margem' => $margem, 'prazo' => $dadosCliente['prazo'] ?: 96, 'rg' => $dadosCliente['rg'], 'orgao_emissor' => !empty($dadosCliente['orgao_expedidor']) ? $dadosCliente['orgao_expedidor'] : "SSP", 'uf_emissor' => $dadosCliente['uf_expedidor'], 'data_emissao_rg' => $dadosCliente['data_expedicao'], 'nome_mae' => $dadosCliente['nome_mae'], 'possui_representante_legal' => $dadosCliente['representante_legal'], 'nome_representante_legal' => $dadosCliente['nome_representante'], 'cpf_representante_legal' => $dadosCliente['cpf_representante'], 'cep' => $dadosCliente['cep'], 'endereco' => $dadosCliente['endereco'], 'bairro' => $dadosCliente['bairro'], 'cidade' => $dadosCliente['cidade'], 'uf' => $dadosCliente['uf'], 'numero' => !empty($dadosCliente['numero']) ? $dadosCliente['numero'] : "S/N", 'banco_beneficiado' => $dadosCliente['banco_pagto'], 'agencia_beneficiado' => substr(String_Refatorar::soNumeros($dadosCliente['agencia_pagto']), 0, 4), 'conta_beneficiado' => String_Refatorar::soNumeros($dadosCliente['conta_pagto']), // 'digito_conta_beneficiado' => substr($dadosContrato->conta_beneficiado, strlen($dadosContrato->conta_beneficiado)-1, 1), 'tipo_conta_beneficiado' => "001", 'cod_oper_cef' => '001', 'recebe_pagto_cartao' => (int)$dadosCliente['recebe_pagto_cartao'] ]); } }
💾 保存文件
← 返回文件管理器