✏️ 正在编辑: WebServiceProducao.php
路径:
/srv/systems_dir/yuppiecred/library/Core/Banco/Service/Banrisul/WebServiceProducao.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Service_Banrisul_WebServiceProducao extends Core_Banco_Planilha { protected $_inicioLaco = 0; protected $_dateFormat = 'yyyy-MM-dd'; protected $colunas = array( //cliente 'nome_cliente' => 'Nome_Cliente', 'cpf_cliente' => 'CPF', 'data_nascimento' => 'Nascimento', 'rg' => 'Nro_Doc_Ident', 'orgao_expedidor' => 'Orgao_Emissor_Ident', 'data_expedicao' => 'Data_Emiss_Doc_Ident', 'uf_expedidor' => 'UF_Emiss_Doc_Ident', 'endereco' => 'Endereco', 'numero' => 'Numero', 'complemento' => 'Complemento', 'bairro' => 'Bairro', 'cidade' => 'Cidade', 'uf' => 'UF', 'cep' => 'CEP', 'fone' => 'Tipo_Fone_Adicional', 'celular' => 'Telefone', 'sexo' => 'Sexo', 'naturalidade' => 'Naturalidade', 'estado_civil' => 'Estado_Civil', 'nome_pai' => 'Nome_Mae', 'nome_mae' => 'Nome_Pai', 'conjuge' => '', //contrato 'convenio' => 'Conveniada', 'tabela' => 'Plano', 'corretor_id' => '', 'cpf_agente' => '', 'codigo_agente' => 'Digitador', 'status_proposta' => 'Desc_Situacao', 'produto' => 'Desc_Tipo_Operacao', 'descricao_produto' => 'Desc_Tipo_Operacao', 'tipo' => 'Desc_Tipo_Operacao', 'numero_proposta' => 'Proposta', 'matricula' => '', 'prazo' => 'Prazo', 'valor_prestacao' => 'Prestacao', 'banco_beneficiado' => 'Cod_Banco_Rendimento', 'agencia_beneficiado' => 'Cod_Agencia_Rendimento', 'conta_beneficiado' => 'Conta_Rendimento', 'valor_bruto' => 'Valor_Operacao', 'valor_liquido' => 'Valor_Operacao', 'valor_beneficio' => 'Renda_Liquida', 'saldo_devedor' => '', 'saldo_banco' => '', 'comissao_empresa' => '', 'numero_contrato' => 'Proposta', //numero da proposta 'numero_ade' => 'Contrato', //numero do contrato 'numero_beneficio' => 'Matricula', 'obs' => 'obs', 'data_emissao' => 'Data_Emissao', 'data_primeiro_vencimento' => 'Primeiro_Vencimento', 'data_liberacao' => 'Data_Pagamento_AF', 'data_inclusao' => 'Data_Inclusao', 'digitador' => 'Digitador', 'forma_liberacao' => 'Liberacao', 'valor_tac' => '', 'codigo_promotora' => 'Correspondente_Codigo', 'anterior_numero' => 'Contrato', 'anterior_prazo' => '', 'anterior_parcelas_pagas' => '', 'anterior_sequencial_compra' => '', 'anterior_tipo_quitacao' => '', ); public function getDados() { return [ '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_liberacao' => null, 'data_recebimento_comissao' => null, 'data_primeiro_vencimento' => null, 'digitador' => Yuppie_Auth::getIdentity()->login, 'forma_liberacao' => null, 'comissao_corretor' => null, 'diferimento_corretor' => null, 'comissao_empresa' => null, 'status_proposta' => null, 'subestabelecido_id' => null ]; } public function importar(array $sheetData) { foreach ( $sheetData as $i => $proposta ) { $dados = $this->getDados(); try { $this->_getNumeroContrato($proposta[key($proposta)], $dados); $this->_getProduto($proposta[key($proposta)], $dados); $this->_getPrazo($proposta[key($proposta)], $dados); $this->_getValorBrutoLiquido($proposta[key($proposta)], $dados); $this->_getEstornado($proposta[key($proposta)], $dados); $this->_getFormaLiberacao($proposta[key($proposta)], $dados); $this->_getConvenioIdTabelaId($proposta[key($proposta)], $dados); $this->_getCorretorId($proposta[key($proposta)], $dados); $this->_getEmpresaId($proposta[key($proposta)], $dados); $this->_getClienteId($proposta[key($proposta)], $dados); $this->_getDataEmissao($proposta[key($proposta)], $dados); $this->_getDataLiberacao($proposta[key($proposta)], $dados); $this->_getDataVencimento1($proposta[key($proposta)], $dados); $this->_getComissaoCorretorAndEmpresa($proposta[key($proposta)], $dados); $this->_getStatusProposta($proposta[key($proposta)], $dados); $this->_getOutros($proposta[key($proposta)], $dados); //método vazio $this->_getDigitador($proposta[key($proposta)], $dados); $this->_getSubestabelecido($proposta[key($proposta)], $dados); $this->_getContratoVerificado($proposta[key($proposta)], $dados); $this->_getAgenciaBeneficiado($proposta[key($proposta)], $dados); $this->_getBancoBeneficiado($proposta[key($proposta)], $dados); $this->_getContaBeneficiado($proposta[key($proposta)], $dados); $this->_getObs($proposta[key($proposta)], $dados); $this->_getTaxaContrato($proposta[key($proposta)], $dados); $this->_getEspecie($proposta[key($proposta)], $dados); $this->_getTipoFormalizacao($proposta[key($proposta)], $dados); $this->contratosImportados[] = $dados['numero_contrato']; $this->salvarLinha($proposta[key($proposta)], $dados); } catch ( Exception $e ) { $this->_addNaoImportado( $dados, $proposta[key($proposta)], $this->naoImportados, $e->getMessage() ); } } return $this->naoImportados; } /** * * @param array $sheetData * @param array $dados * @return void */ protected function _getConvenioIdTabelaId(array $sheetData, array &$dados) { //tabela info $colunaTabela = htmlspecialchars($sheetData[$this->getColuna('tabela')]); //convenio info $colunaConvenio = htmlspecialchars($sheetData[$this->getColuna('convenio')]); $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); } $tabela = new Model_Tabela(); $dadosTabela = $tabela->existe($colunaTabela); 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) { $colCodigoCorretor = trim($sheetData[$this->getColuna('codigo_agente')]) ?? null; $corretorIdComplemento = trim($sheetData[$this->getColuna('complemento')]) ?? null; $dados['corretor_id'] = null; if( empty($colCodigoCorretor) ) { return; } $corretorBySenha = (new Model_CorretorSenha)->getCorretorBySenha($colCodigoCorretor, $dados['banco_id']); if( empty($corretorBySenha) ) { return; } $dados['corretor_id'] = $corretorBySenha->id; $dados['empresa_id'] = $corretorBySenha->empresa_id; //verifica para fazer a busca pelo ID do corretor $banco = (new Model_DbTable_Banco)->fetchRow("id = $this->_bancoId"); if( $banco->obedecer_id && $corretorBySenha->obedecer_id && is_numeric($corretorIdComplemento) ){ $corretor = new Model_Corretor(); //buscar primeiro pelo codigo externo depois pelo ID $dadosCorretor = $corretor->exibirPorCodigoExtra($corretorIdComplemento); if ($dadosCorretor) { $dados['corretor_id'] = $dadosCorretor->id; $dados['empresa_id'] = $dadosCorretor->empresa_id; return; } $dadosCorretor = $corretor->exibir($corretorIdComplemento); if( $dadosCorretor ){ $dados['corretor_id'] = $dadosCorretor->id; $dados['empresa_id'] = $dadosCorretor->empresa_id; } } } protected function _getEmpresaId(array $sheetData, array &$dados) { if( !isset($dados['empresa_id']) ){ $dados['empresa_id'] = Yuppie_Auth::getIdentity()->empresa_id; } } protected function _getBancoBeneficiado(array $sheetData, array &$dados) { if( !isset($dados['banco_beneficiado']) ){ $dados['banco_beneficiado'] = $sheetData[$this->getColuna('banco_beneficiado')] ?? null; } } protected function _getAgenciaBeneficiado(array $sheetData, array &$dados) { if( !isset($dados['agencia_beneficiado']) ){ $dados['agencia_beneficiado'] = $sheetData[$this->getColuna('agencia_beneficiado')] ?? null; } } protected function _getContaBeneficiado(array $sheetData, array &$dados) { if( !isset($dados['conta_beneficiado']) ){ $dados['conta_beneficiado'] = $sheetData[$this->getColuna('conta_beneficiado')] ?? null; } } protected function _getProduto(array $sheetData, array &$dados) { $colunaInfoProduto = $sheetData[$this->getColuna('produto')]; $codTipoProduto = isset($sheetData[$this->getColuna('tipo')]) ? $sheetData[$this->getColuna('tipo')] : null; $codigoProduto = 0; if( $colunaInfoProduto ){ $produto = new Model_Produto(); $dadosProduto = (new Model_DbTable_Produto)->fetchRow("codigo = '" . $colunaInfoProduto . "'" . " AND banco_id = '" . $this->getBancoId() . "'"); if( $dadosProduto == null ){ $dicionarioTipos = array( 'Novo' => 'NOVO', //NOVO 'Refin' => 'REFINANCIAMENTO', //REFIN 'Compra' => 'COMPRA', //RECOMPRA 'Portabilidade' => 'PORTABILIDADE', 'Refin Portabilidade' => 'REFIN DA PORTABILIDADE' ); $tipo = $dicionarioTipos[$codTipoProduto] ?? null; $produto->setCodigo($colunaInfoProduto); $produto->setBancoId($this->getBancoId()); $produto->setTipo($tipo); $produto->setDescricao($colunaInfoProduto); $result = $produto->salvar($produto); if( $result != null ){ $codigoProduto = $colunaInfoProduto; $dados['tipo'] = $tipo; } } else { $codigoProduto = $dadosProduto['codigo']; $dados['tipo'] = $dadosProduto['tipo']; } } $dados['produto'] = $codigoProduto; } 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 _getSubestabelecido(array $sheetData, array &$dados) { $subestabelecidoId = 0; if( $sheetData[$this->getColuna('codigo_promotora')] ){ //verifica os dados do substabelecido $dadosParceiro = (new Model_Parceiro)->getByCodigo($sheetData[$this->getColuna('codigo_promotora')]); if( !empty($dadosParceiro) ){ $subestabelecidoId = $dadosParceiro['empresa_id']; } } $dados['subestabelecido_id'] = $subestabelecidoId; } protected function _getValorBrutoLiquido(array $sheetData, array &$dados) { $tipoOperacao = $sheetData[$this->getColuna('tipo')]; $valorLiquido = null; $valorBruto = null; $valorPrestacao = null; if( $this->getColuna('valor_liquido') ){ if( isset($sheetData[$this->getColuna('valor_liquido')]) ){ $valorLiquido = trim($sheetData[$this->getColuna('valor_liquido')]); } } if( $this->getColuna('valor_bruto') ){ if( isset($sheetData[$this->getColuna('valor_bruto')]) ){ $valorBruto = trim($sheetData[$this->getColuna('valor_bruto')]); } } if( $this->getColuna('valor_prestacao') ){ if( isset($sheetData[$this->getColuna('valor_prestacao')]) ){ $valorPrestacao = trim($sheetData[$this->getColuna('valor_prestacao')]); } } if( strstr($tipoOperacao, "Refin") ){ $valorBruto = $sheetData['valorOperacao']; $valorLiquido = $sheetData['valorLiquidoLiberado']; }elseif( $tipoOperacao == "Portabilidade" ){ //dados do contrato anterior (portado) $dados['anterior_saldo_devedor'] = $sheetData['saldoDevedorRefin']; $dados['anterior_banco'] = substr($sheetData['cnpjIfOriginadora'], strlen($sheetData['cnpjIfOriginadora']) - 3, 3); $dados['anterior_parcelas_restantes'] = $sheetData['prazo']; $dados['anterior_numero'] = $sheetData['contratoIfOriginadora']; $dados['anterior_valor_parcela'] = $sheetData['prestacaoOriginal']; $dados['anterior_prazo'] = $sheetData['prazoTotal']; } $dados['valor_prestacao'] = $valorPrestacao; $dados['valor_bruto'] = $valorBruto; $dados['valor_liquido'] = $valorLiquido; } protected function _getComissaoEmpresa(array $sheetData, array &$dados) { $colunaPrazo = $sheetData[$this->getColuna('prazo')]; //recupera a comissao da empresa $comissaoEmpresa = 0; if( $dados['empresa_id'] > 0 ){ $empresa = new Model_Empresa(); $comissaoEmpresa = $empresa->getComissao( $dados['empresa_id'], $dados['banco_id'] ?? 0, $dados['tabela_id'] ?? 0, $dados['convenio_id'] ?? 0, $dados['produto'] ?? 0, $colunaPrazo, $dados['data_emissao'] ?? null, $dados['base_comissao_empresa_valor'] ?? 0 ); } $dados['comissao_empresa'] = $comissaoEmpresa; } protected function _getDigitador(array $sheetData, array &$dados) { $colCodigoAgente = $sheetData[$this->getColuna('codigo_agente')] ?? null; if( $colCodigoAgente != null ){ $dados['digitador'] = $colCodigoAgente; } } protected function _getNumeroContrato(array $sheetData, array &$dados) { if( $this->getColuna('numero_contrato') ){ if( isset($sheetData[$this->getColuna('numero_contrato')]) ){ $dados['numero_contrato'] = String_Refatorar::soNumeros( $sheetData[$this->getColuna('numero_contrato')] ); } } if( $this->getColuna('numero_ade') ){ if( isset($sheetData[$this->getColuna('numero_ade')]) ){ $dados['numero_ade'] = String_Refatorar::soNumeros( $sheetData[$this->getColuna('numero_ade')] ); } } if( $this->getColuna('numero_beneficio') ){ if( isset($sheetData[$this->getColuna('numero_beneficio')]) ){ $dados['numero_beneficio'] = String_Refatorar::soNumeros( $sheetData[$this->getColuna('numero_beneficio')] ); } } } protected function _getFormaLiberacao(array $sheetData, array &$dados) { if( $this->getColuna('forma_liberacao') ){ if( isset($sheetData[$this->getColuna('forma_liberacao')]) ){ $colunaCodLiberacao = $sheetData[$this->getColuna('forma_liberacao')]; $dicionarioFormaLiberacao = array( 'TED' => 'LIBERACAO VIA TED', 'PORTABILIDADE' => 'PORTABILIDADE', 'CRÉDITO EM CONTA' => 'CRÉDITO EM CONTA' ); $dados['forma_liberacao'] = isset($dicionarioFormaLiberacao[$colunaCodLiberacao]) ? $dicionarioFormaLiberacao[$colunaCodLiberacao] : $colunaCodLiberacao; } } } /** * * @param array $naoImportados * @param string $motivo * @return void */ protected function _addNaoImportado(array $dados, array $sheetData, array &$naoImportados, $motivo = '') { array_push($naoImportados, array( 'numero_contrato' => $dados['numero_contrato'], 'tabela' => $sheetData[$this->getColuna('tabela')] ?? null, 'cpf' => $sheetData[$this->getColuna('cpf_cliente')] ?? null, 'cliente' => $sheetData[$this->getColuna('nome_cliente')] ?? null, 'valor' => $sheetData[$this->getColuna('valor_bruto')] ?? null, 'valor_liquido' => $sheetData[$this->getColuna('valor_liquido')] ?? null, 'prazo' => $sheetData[$this->getColuna('prazo')] ?? null, 'codigo_atendente' => $sheetData[$this->getColuna('codigo_agente')] ?? null, 'codigo_vendedor' => $sheetData[$this->getColuna('corretor_id')] ?? null, 'motivo' => $motivo )); } protected function _getCamposAtualizacao(array &$dados) { $dadosAtualizacao = array( 'empresa_id' => $dados['empresa_id'], 'subestabelecido_id' => $dados['subestabelecido_id'], 'status_proposta' => $dados['status_proposta'], 'estornado' => isset($dados['estornado']) ? $dados['estornado'] : '', 'verificar_contratos' => isset($dados['verificar_contratos']) ? $dados['verificar_contratos'] : 0, 'id' => $dados['id'] ); if( !empty($dados['comissao_empresa']) ){ $dadosAtualizacao['comissao_empresa'] = $dados['comissao_empresa']; } if( !empty($dados['bonus_empresa']) ){ $dadosAtualizacao['bonus_empresa'] = $dados['bonus_empresa']; } if( !empty($dados['comissao_corretor']) && $this->_dadosContrato['verificar_contratos'] != 1){ $dadosAtualizacao['comissao_corretor'] = $dados['comissao_corretor']; } if( !empty($dados['bonus_corretor']) && $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( !empty($dados['valor_bruto']) ){ $dadosAtualizacao['valor_bruto'] = $dados['valor_bruto']; } if( !empty($dados['valor_liquido']) ){ $dadosAtualizacao['valor_liquido'] = $dados['valor_liquido']; } if (!empty($dados['base_comissao_valor'])) { $dadosAtualizacao['base_comissao_valor'] = $dados['base_comissao_valor']; } if (!empty($dados['base_comissao_empresa_valor'])) { $dadosAtualizacao['base_comissao_empresa_valor'] = $dados['base_comissao_empresa_valor']; } if (!empty($dados['valor_prestacao'])) { $dadosAtualizacao['valor_prestacao'] = $dados['valor_prestacao']; } if (!empty($dados['data_liberacao'])) { $dadosAtualizacao['data_liberacao'] = $dados['data_liberacao']; } if (!empty($dados['tabela_id'])) { $dadosAtualizacao['tabela_id'] = $dados['tabela_id']; } if (!empty($dados['tipo_formalizacao'])) { $dadosAtualizacao['tipo_formalizacao'] = $dados['tipo_formalizacao']; } if (!empty($dados['obs'])) { $dadosAtualizacao['obs'] = $dados['obs']; } return $dadosAtualizacao; } protected function _getDataEmissao(array $sheetData, array &$dados) { $colunaDtEmissao = $sheetData[$this->getColuna('data_emissao')] ?? $sheetData[$this->getColuna('data_inclusao')]; /* Ajuste para corrigir importações das planilhas */ if( $this->_dateFormat != "yyyy-MM-dd" && strstr($colunaDtEmissao, "-") ){ $this->_dateFormat = "MM-dd-yy"; } $dataEmissao = null; if( !empty($colunaDtEmissao) ){ try { $data = new Zend_Date($colunaDtEmissao, $this->_dateFormat); if( $data->get('yyyy') < 1900 ){ throw new Core_Exception("Padrão de data emissão está errado. (" . $colunaDtEmissao . " -> " . $data->get('dd/MM/yyyy') . ")"); } $dataEmissao = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataEmissao = null; } } $dados['data_emissao'] = $dataEmissao; } protected function _getDataLiberacao(array $sheetData, array &$dados) { if( empty($sheetData['contrato']) ){ return; } $colunaDtLib = $sheetData['contrato']->{$this->getColuna('data_liberacao')}; $portabilidade = current($sheetData['portabilidades']); if( is_object($portabilidade) && !empty($portabilidade->dataLiquidacaoContrato) ){ $colunaDtLib = $portabilidade->dataLiquidacaoContrato; } $dataLiberacao = null; if ( !empty($colunaDtLib) ) { $dataLiberacao = Core_Util::convertDate($colunaDtLib); if( is_array($dataLiberacao) ){ throw new Core_Exception("Não foi possível converter a data de liberação para o banco de dados. ({$colunaDtLib})"); } } $dados['data_liberacao'] = $dataLiberacao; } protected function _getObs(array $sheetData, array &$dados) { $dados['obs'] = !empty($sheetData[$this->getColuna('obs')]) ? $sheetData[$this->getColuna('obs')] : null; } protected function _getClienteId(array $sheetData, array &$dados) { $cpfCliente = $sheetData[$this->getColuna('cpf_cliente')]; $cliente = new Model_DbTable_Cliente(); $dadosCliente = $cliente->fetchRow("cpf = '" . String_Refatorar::formatarCpf($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( $this->getColuna('fone') ){ $dadosCliente['fone'] = isset($sheetData[$this->getColuna('fone')]) ? $sheetData[$this->getColuna('fone')] : null; } if( $this->getColuna('celular') ){ $dadosCliente['celular'] = $sheetData[$this->getColuna('celular')]; } if( $this->getColuna('email') ){ $dadosCliente['email'] = $sheetData[$this->getColuna('email')]; } $clienteId = $cliente->insert($dadosCliente); } $dados['cliente_id'] = $clienteId; } protected function salvarLinha($sheetData, &$dados) { unset($dados['base_comissao']); unset($dados['base_comissao_empresa']); $dataLiberacao = null; /* Apenas para LOG */ $urlSistema = Yuppie_Auth::getSiteKey(); $writer = new Zend_Log_Writer_Stream("/var/log/sistemayuppie/zf_log_{$this->_source}_{$urlSistema}_" . Zend_Date::now()->get("ddMMyyyy") . ".txt"); $classeChamada = get_class($this); $log = new Zend_Log($writer); $log->log('#######################', Zend_Log::INFO); $log->log("IMPORTAÇÃO: " . $classeChamada, Zend_Log::INFO); $log->log('ARQUIVO IMPORTADO: ' . print_r($this->getArquivoOrigem(), true), Zend_Log::INFO); $log->log("Usuário logado: " . Yuppie_Auth::getIdentity()->login, Zend_Log::INFO); if( isset($sheetData[$this->getColuna('data_liberacao')]) ){ $dataLiberacao = $sheetData[$this->getColuna('data_liberacao')]; } $log->log('Formatação (Dt Liberacao): ' . $dataLiberacao, Zend_Log::INFO); $dataEmissao = $sheetData[$this->getColuna('data_emissao')] ?? $sheetData[$this->getColuna('data_inclusao')]; $log->log('Formatação (Dt Emissao): ' . $dataEmissao, Zend_Log::INFO); $newContrato = new Model_DbTable_Contrato(); $newContrato->closeConnection(); $result = 0; //verifica se o contrato existe $this->_contratoExiste($newContrato, $dados); $protocolos = null; if (is_null($this->_dadosContrato)) { try { $log->log("Tentativa de inserção do contrato: {$dados['numero_contrato']}", Zend_Log::INFO); foreach ( $dados as $key => $value ) { $log->log("[{$key}] => {$value}", Zend_Log::INFO); } $result = $newContrato->insert($dados); if( $result > 0 ){ $log->log("Contrato adicionado.", Zend_Log::INFO); } else { $log->log("Contrato não foi adicionado.", Zend_Log::INFO); } if( $result <= 0 ){ $this->_addNaoImportado( $dados, $sheetData, $this->naoImportados, 'Contrato não inserido.' ); } } catch ( Exception $e ) { $log->log("[Exception] Erro ao adicionar contrato. " . $e->getMessage(), Zend_Log::INFO); $this->_addNaoImportado( $dados, $sheetData, $this->naoImportados, $e->getMessage() ); } return; } $protocoloContrato = new Model_DbTable_ProtocoloContrato(); $protocolos = $protocoloContrato->fetchRow("contrato_id = " . $this->_dadosContrato['id'], 'id DESC'); if ($protocolos != null) { $log->log("Protocolos: " . print_r($protocolos->toArray(), true), Zend_Log::INFO); //verifica se é um estorno e não foi estornado do corretor if( is_numeric($dados['estornado']) && $dados['estornado'] == 1 && $protocolos['valor'] >= 0 ){ $log->log("Contrato está pago e no arquivo veio um estorno: {$dados['numero_contrato']}", Zend_Log::INFO); $dadosAtualizacao = array( 'id' => $this->_dadosContrato['id'], 'status_proposta' => $dados['status_proposta'], 'estornado' => 1, ); $result = $newContrato->update($dadosAtualizacao, "id = {$this->_dadosContrato['id']}"); if( $result > 0 ){ $log->log("Contrato sinalizado como estorno: {$dados['numero_contrato']}", Zend_Log::INFO); } else { $log->log("Contrato está pago, no arquivo veio um estorno mas não pode ser alterado no sistema: {$dados['numero_contrato']}", Zend_Log::INFO); $this->_addNaoImportado( $dados, $sheetData, $this->naoImportados, 'Contrato está pago, no arquivo veio um estorno mas não pode ser alterado no sistema.' ); } } else { $this->_addNaoImportado( $dados, $sheetData, $this->naoImportados, 'Contrato está pago e não pode ser alterado.' ); $log->log("Contrato está pago e nada foi alterado: {$dados['numero_contrato']}", Zend_Log::INFO); } return; } $dados['id'] = $this->_dadosContrato['id']; $dados = $this->_getCamposAtualizacao($dados); try { $log->log("Tentativa de atualizaçao do contrato: {$this->_dadosContrato['numero_contrato']}.", Zend_Log::INFO); foreach ( $dados as $key => $value ) { $log->log("[{$key}] => {$value}", Zend_Log::INFO); } $result = $newContrato->update($dados, "id = {$this->_dadosContrato['id']}"); if( $result > 0 ){ $log->log("Contrato atualizado.", Zend_Log::INFO); } else { $log->log("Contrato NAO foi foi atualizado.", Zend_Log::INFO); } } catch ( Exception $e ) { $log->log("[Exception] Erro ao atualizar contrato. " . $e->getMessage(), Zend_Log::INFO); $this->_addNaoImportado( $this->_dadosContrato->toArray(), $sheetData, $this->naoImportados, $e->getMessage() ); } } }
💾 保存文件
← 返回文件管理器