✏️ 正在编辑: ServerSoap.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/services/ServerSoap.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Service_ServerSoap { private function _validarAcesso() { $config = new Zend_Config_Ini(CLIENT_PATH . '/configs/application.ini'); if( !isset($config->production->yuppie->webservice) || $config->production->yuppie->webservice != true ){ return false; } return true; } /** * Retorna os fisicos pendentes do supervisor * @param int $supervisorId * @param string $senha * @return string */ public function getFisicosPendentes($login, $senha) { if( !$this->_validarAcesso() ){ return ""; } $supervisor = new Model_GerenteRota(); /* * TO DO: * $auth = $supervisor->autenticar($login, $senha, 'tb_gerente_rota', 'Supervisor'); */ $auth = $supervisor->autenticar($login, $senha); $supervisorId = Yuppie_Auth::getIdentity()->id ? Yuppie_Auth::getIdentity()->id : 0; if( $auth && $supervisorId > 0 ){ try { $fields = array( 'supervisor_id' => $supervisorId, 'fisico_recebido' => 'NÃO RECEBIDO', 'status_proposta' => 43, ); $contrato = new Model_Contrato(); $result = $contrato->getFisicosPendentes($fields); $xml = new DOMDocument("1.0", "UTF-8"); $root = $xml->createElement("root"); $xml->appendChild($root); foreach ( $result as $value ) { $element = $xml->createElement("row"); $root->appendChild($element); $elementItem = $xml->createElement('contrato_id'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['id_contrato']); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('contrato'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['numero_contrato']); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('corretor_id'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['corretor_id']); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('corretor'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['corretor']); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('cpf_cliente'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['cpf_cliente']); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('dias_atraso'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode(Model_Contrato::getDiasAtraso($value['data_liberacao'], $value['data_recebimento_fisico'], $value['data_recebimento_previa'], $value['prazo_fisico'])); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('valor_liquido'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['valor_liquido']); $elementItem->appendChild($elementValue); $elementItem = $xml->createElement('pendencia'); $element->appendChild($elementItem); $elementValue = $xml->createTextNode($value['descricao_pendencia']); $elementItem->appendChild($elementValue); } echo $xml->saveXML(); } catch ( Exception $exception ) { echo $exception->getMessage(); } } else { echo 'Usuário não identificado.'; } } /** * Realiza a importação dos dados enviados por $xmlData * @param int $supervisorId * @param string $senha * @param string $xmlData * @return int */ public function previaRecebimento($login, $senha, $xmlData) { if( !$this->_validarAcesso() ){ return 0; } $supervisor = new Model_GerenteRota(); $auth = $supervisor->autenticar($login, $senha); $supervisorId = Yuppie_Auth::getIdentity()->id ? Yuppie_Auth::getIdentity()->id : 0; if( $auth && $supervisorId > 0 ){ $xmlData = new SimpleXMLElement($xmlData); if( count($xmlData->row) > 0 ){ foreach ( $xmlData->row as $item ) { $dbtableContrato = new Model_DbTable_Contrato(); $result = $dbtableContrato->previaRecebimento( $item->contrato_id, $item->data_recebimento_previa); if( $result != null ){ $cont++; } } } } return $cont; } public function getSituacaoContrato($token, $dadosApp) { $tbCorretor = new Model_DbTable_Corretor(); $corretor = $tbCorretor->fetchRow(array("token_aplicativo = ?" => $token)); $auth = $this->_autenticar($corretor->login, $corretor->token_aplicativo); if( $auth && $corretor ){ $model = new Model_Contrato(); $convertToArray = (array) $dadosApp; $fields = array_filter($convertToArray); unset($fields['token']); $fields['corretor_id'] = $corretor->id; $fields['empresa_id'] = $corretor->empresa_id; $fields['cartao_corretor'] = true; if( isset($fields['data_emissao_de']) ){ $dt = new Zend_Date($fields['data_emissao_de']); $fields['data_emissao_de'] = $dt->get('dd/MM/yyyy'); } if( isset($fields['data_emissao_a']) ){ $dt = new Zend_Date($fields['data_emissao_a']); $fields['data_emissao_a'] = $dt->get('dd/MM/yyyy'); } if( isset($fields['data_liberacao_de']) ){ $dt = new Zend_Date($fields['data_liberacao_de']); $fields['data_liberacao_de'] = $dt->get('dd/MM/yyyy'); } if( isset($fields['data_liberacao_a']) ){ $dt = new Zend_Date($fields['data_liberacao_a']); $fields['data_liberacao_a'] = $dt->get('dd/MM/yyyy'); } $adapter = $model->getContratos($fields, null, null, 'data_emissao ASC'); return $adapter; } } protected function _autenticar($login, $token) { if( !$this->_validarAcesso() ){ return ""; } if( !empty($token) ){ $db = Zend_Db_Table_Abstract::getDefaultAdapter(); $adapter = new Zend_Auth_Adapter_DbTable($db, 'tb_corretores', 'login', 'token_aplicativo', 'excluido<>1'); if( Yuppie_Auth::authenticateApp($adapter, $login, $token) ){ $data = $adapter->getResultRowObject(null, 'token_aplicativo'); $data->grupo = 'Corretor'; $grupo = new Model_GrupoUsuario(); $data->grupo_id = $grupo->getIdGrupo($data->grupo); $acessoTemporario = $this->acessoTemporarioCorretor($data->acesso_temporario, $data->data_temporario_app); if( !$acessoTemporario ){ return ""; } Yuppie_Auth::writeStorage($data); $acl = new Core_LibraryAcl($data->grupo); $ns = new Zend_Session_Namespace(); $ns->acl = $acl; return true; } } return false; } public function getProtocolosCorretor($token) { $tbCorretor = new Model_DbTable_Corretor(); $corretor = $tbCorretor->fetchRow(array("token_aplicativo = ?" => $token)); $auth = $this->_autenticar($corretor->login, $token); if( $auth && $corretor ){ $modelCorretor = new Model_Corretor(); $adapter = $modelCorretor->getProtocolos($corretor->id, 20); return $adapter; } } public function getFisicosPendentesCorretor($token, $pendencias, $params) { $tbCorretor = new Model_DbTable_Corretor(); $corretor = $tbCorretor->fetchRow(array("token_aplicativo = ?" => $token)); $auth = $this->_autenticar($corretor->login, $token); $result = null; if( $auth && $corretor ){ $modelContrato = new Model_Contrato(); $fields = array( 'corretor_id' => $corretor->id, 'cartao_corretor' => true, 'pendencia_fisicos' => $pendencias ); if( isset($fields['pendencia_fisicos']) && !empty($fields['pendencia_fisicos']) ){ if( $fields['pendencia_fisicos'] == 'RECEPCIONADO' ){ $fields['fisico_recebido'] = "EM TRANSITO"; } elseif( $fields['pendencia_fisicos'] == 'PENDENTE' ){ $fields['fisico_recebido'] = 'PENDENTE'; } } if( isset($params['numero_contrato']) && !empty($params['numero_contrato']) ){ $fields['numero_contrato'] = $params['numero_contrato']; } if( isset($params['numero_ade']) && !empty($params['numero_ade']) ){ $fields['numero_ade'] = $params['numero_ade']; } $fields = array_filter($fields); $result = $modelContrato->getFisicosPendentes($fields); return $result; } } public function preCadastroProposta($token, $dadosApp, $log) { $tbCorretor = new Model_DbTable_Corretor(); $corretor = $tbCorretor->fetchRow(array("token_aplicativo = ?" => $token)); $auth = $this->_autenticar($corretor->login, $token); $result = array(); if( $auth && $corretor ){ $propostas = array_filter($dadosApp['propostas']); if( is_array($propostas) && !empty($propostas) ){ foreach ( $propostas as $registros ) { $convert = (array) $registros; $log->log("CONVERSÂO DE ARRAY: " . print_r($convert, true), Zend_Log::INFO); $convert['corretor_id'] = $corretor->id; $convert['empresa_id'] = $corretor->empresa_id; $cliente = new Model_Cliente($convert); $proposta = new Model_Proposta($convert); $result[] = $this->_salvarProposta($proposta, $cliente); $log->log("RESULTADO: " . print_r($result, true), Zend_Log::INFO); } } return $result; } } protected function _salvarProposta(Model_Proposta $proposta, Model_Cliente $cliente = null) { $dbtable = new Model_DbTable_Proposta(); $dados = array(); if( $dbtable->existeTokenAplicativo($proposta->getTokenProposta(), $proposta->getCorretorId()) ){ return $dados = array( "token" => $proposta->getTokenProposta() ); } if( Yuppie_Auth::getIdentity()->grupo == 'Corretor' ){ $proposta->setEmpresaId(Yuppie_Auth::getIdentity()->empresa_id); $cliente->setEmpresaId(Yuppie_Auth::getIdentity()->empresa_id); } //atualiza os dados do cliente if( $cliente != null ){ if( ($dadosCliente = $cliente->existe($cliente->getCpf())) != null ){ $cliente->setId($dadosCliente['id']); $proposta->setClienteId($cliente->getId()); $dbtableCliente = new Model_DbTable_Cliente(); $dbtableCliente->update(array( 'empresa_id' => Yuppie_Auth::getIdentity()->empresa_id, 'nome' => $cliente->getNome(), 'cpf' => $cliente->getCpf(), 'rg' => $cliente->getRg(), 'orgao_expedidor' => $cliente->getOrgaoExpedidor(), 'uf_expedidor' => $cliente->getUfExpedidor(), 'data_expedicao' => $cliente->getDataExpedicao(), 'data_nascimento' => $cliente->getDataNascimento(), 'nome_pai' => $cliente->getNomePai(), 'nome_mae' => $cliente->getNomeMae(), 'conjuge' => $cliente->getConjuge(), 'endereco' => $cliente->getEndereco(), 'complemento' => $cliente->getComplemento(), 'bairro' => $cliente->getBairro(), 'cidade' => $cliente->getCidade(), 'uf' => $cliente->getUf(), 'cep' => $cliente->getCep(), 'email' => $cliente->getEmail(), 'celular' => $cliente->getCelular(), 'fax' => $cliente->getFax(), 'fone' => $cliente->getFone(), 'telefone_comercial' => $cliente->getTelefoneComercial(), 'naturalidade' => $cliente->getNaturalidade(), 'senha_contracheque' => $cliente->getSenhaContracheque(), 'renda' => $cliente->getRenda() ), 'id = ' . $cliente->getId()); } else { $proposta->setClienteId($cliente->salvar($cliente)); } } if( $proposta->getId() > 0 ){ $data = $proposta->_toArray(); $result = $dbtable->update($data, "id = " . $proposta->getId()); if( $result > 0 ){ return $dados = array( 'token' => $proposta->getTokenProposta() ); } return null; } else { $data = $proposta->_toArray(); //pegar a base de comissão $dbtable = new Model_DbTable_Contrato(); $dbtable->getComissaoCorretorAndEmpresa($data); if( $dbtable->insert($data) ){ return $dados = array( 'token' => $data['token_proposta'] ); } else { return $dados = array( 'error' => 'Nenhum registro foi inserido' ); } } } public function regularizarPendencia($token, $idContrato, $arquivo, $tipoDocumento, $log) { $tbCorretor = new Model_DbTable_Corretor(); $corretor = $tbCorretor->fetchRow(array("token_aplicativo = ?" => $token)); $auth = $this->_autenticar($corretor->login, $token); if( $auth && $corretor ){ $dbRegularizaPendencia = new Model_DbTable_PendenciaRegularizar(); return $dbRegularizaPendencia->insert(array( 'contrato_id' => $idContrato, 'tipo_documento' => $tipoDocumento, 'anexo' => $arquivo, 'validado' => 0, 'usuario_abertura' => Yuppie_Auth::getIdentity()->login, )); } } public function saveMobileToken($token = null, $params = null, $log = null) { $tbCorretor = new Model_DbTable_Corretor(); $corretor = $tbCorretor->fetchRow(array("token_aplicativo = ?" => $token)); $auth = $this->_autenticar($corretor->login, $token); $result = null; if( $auth && $corretor ){ $dbtable = new Model_DbTable_Corretor(); $exist = $dbtable->fetchRow("id_mobile_token = '{$params['id_mobile_token']}'"); if( !$exist ){ $result = $dbtable->update(array( "id_mobile_token" => $params['id_mobile_token'] ), "id = " . $corretor->id); } $log->log("MOBILE TOKEN: " . print_r($params['id_mobile_token'], true), Zend_Log::INFO); $log->log("CORRETOR TOKEN: " . print_r($token, true), Zend_Log::INFO); } return $result; } public function acessoTemporarioCorretor($flagAcessoTemporario = null, $dataTemporarioApp = null) { if( isset($flagAcessoTemporario) && !empty($flagAcessoTemporario) ){ $dateNow = Zend_Date::now()->get('yyyy-MM-dd'); if( $dateNow >= $dataTemporarioApp ){ return false; } } return true; } }
💾 保存文件
← 返回文件管理器