/** * Método construtor */ public function __construct() { $oSessao = Zend_Session::namespaceGet('sessao'); if (isset($oSessao['acl'])) { $this->_auth = Zend_Auth::getInstance(); self::$_acl = $oSessao['acl']; } }
/** * Carrega a autenticação do usuario de acordo com o retorno da validação do certificado * * @param string $sLoginUsuario * @throws Exception * @return boolean */ public function autenticaUsuario($sLoginUsuario) { try { $oEntityManager = Zend_Registry::get('em'); $oAuthAdapter = new Doctrine_Auth_Adapter($oEntityManager, 'Administrativo\\Usuario', 'login', 'senha'); $oAuthAdapter->setIdentity($sLoginUsuario); $oAuthAdapter->setCredential(''); $oAuth = Zend_Auth::getInstance(); $iStatus = $oAuth->authenticate($oAuthAdapter)->getCode(); if (in_array($iStatus, array(1, -3))) { $sLogin = $oAuth->getIdentity(); $oUser = Administrativo_Model_Usuario::getByAttribute('login', $sLoginUsuario); if ($oUser && $oUser->getHabilitado()) { Zend_Auth::getInstance()->getStorage()->write(array('id' => $oUser->getId(), 'login' => $sLoginUsuario)); } else { $this->oModeloImportacao->setMensagemErro('E157', 'Usuário não habilitado'); } } else { $this->oModeloImportacao->setMensagemErro('E157', 'Usuário Inválido'); } /** * Verifica se ocorreu algum erro no processamentos dos dados na importacao */ if ($this->oModeloImportacao->getErro()) { return $this->oModeloImportacao->processaErroWebService(NULL); } /** * Reecreve os dados e permissões de sessão na ACL */ new DBSeller_Acl_Setup(TRUE); /** * Verifica a permissão de execução da ação conforme liberação do usuário */ $sAmbiente = Zend_Controller_Front::getInstance()->getRequest()->getActionName(); if (!DBSeller_Plugin_Auth::checkPermission("webservice/{$sAmbiente}/recepcionar-lote-rps")) { return FALSE; } return TRUE; } catch (Exception $oErro) { throw new Exception($oErro->getMessage(), $oErro->getCode()); } }
/** * Prepara os dados para o cancelamento da nota * @param string $sParametroArquivo */ public function preparaDados($sParametroArquivo) { $this->oDadosXML = $this->validaXML($sParametroArquivo); /** * Verifica se existe inconsistencias */ if (count($this->aInconsistencias) == 0) { $sCnpj = (string) $this->oDadosXML->IdentificacaoNfse->Cnpj; $sNumero = (string) $this->oDadosXML->IdentificacaoNfse->Numero; $iInscricaoMunicipal = (string) $this->oDadosXML->IdentificacaoNfse->InscricaoMunicipal; $iNumero = (int) substr($sNumero, 4, 11); $aAtributosContriobuinte = array("cnpj_cpf" => $sCnpj, "im" => $iInscricaoMunicipal); $sAmbiente = Zend_Controller_Front::getInstance()->getRequest()->getActionName(); if (DBSeller_Plugin_Auth::checkPermissionWebservice($sCnpj, "webservice/{$sAmbiente}/recepcionar-lote-rps")) { $aContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttributes($aAtributosContriobuinte); foreach ($aContribuinte as $oContribuinte) { $this->oContribuinte = $oContribuinte; } /** * Verifica se existe contribuinte com o CNPJ e Inscrição Municipal informado */ if (empty($this->oContribuinte)) { $this->adicionarInconsistencia('E44'); $this->adicionarInconsistencia('E50'); } else { $iIdContribuinte = $this->oContribuinte->getId(); $aAtributosNota = array("id_contribuinte" => $iIdContribuinte, "nota" => $iNumero); /** * Retornar a entidade do array de notas */ $aNotas = Contribuinte_Model_Nota::getByAttributes($aAtributosNota); foreach ($aNotas as $oNota) { $this->oNota = $oNota; } /** * Verifica se existe nota */ if (empty($this->oNota)) { $this->adicionarInconsistencia('E78'); } else { $bNotaCancelada = $this->oNota->getCancelada(); /** * Verifica se a nota já está cancelada */ if ($bNotaCancelada) { $this->adicionarInconsistencia('E79'); } } } } else { $this->adicionarInconsistencia('E157'); $this->adicionarInconsistencia('Usuário sem permissão!'); } } }