/** * Cria um novo protocolo * @param int $iTipo * @param string $sMensagem * @param null $sCaminhoSistema * @throws Exception */ public function criaProtocolo($iTipo = 3, $sMensagem, $sCaminhoSistema = NULL) { if (!$sMensagem) { throw new Exception('Informe uma mensagem!'); } if (empty(self::$aTiposProtocolo[$iTipo])) { throw new Exception('Tipo de Protocolo está inválido!'); } try { /** * Monta a rota executada pelo sistema */ if (empty($sCaminhoSistema)) { $sSistemaEmUso = Zend_Controller_Front::getInstance()->getRequest(); $sCaminhoSistema = $sSistemaEmUso->getModuleName() . '/' . $sSistemaEmUso->getControllerName() . '/' . $sSistemaEmUso->getActionName(); } $oDataProcessamento = new DateTime(); $sLoginUsuario = Zend_Auth::getInstance()->getIdentity(); $oUsuario = Administrativo_Model_Usuario::getByAttribute('login', $sLoginUsuario['login']); $sData = $oDataProcessamento->format('Y-m-d\\TH:i:s'); $sCodigoProtocolo = SHA1(rand() . $sData . $aCodigoUsuario['id'] . time()); $this->setProtocolo($sCodigoProtocolo); $this->setTipo($iTipo); $this->setMensagem(trim($sMensagem)); $this->setSistema(trim($sCaminhoSistema)); $this->setUsuario($oUsuario->getEntity()); $this->setDataProcessamento($oDataProcessamento); $this->getEm()->persist($this->getEntity()); $this->getEm()->flush(); } catch (Exception $oErro) { throw new Exception($oErro->getMessage()); } return $this->getEntity(); }
/** * Retorna o objeto do usuario * * @return ambiguos <Administrativo_Model_Usuario(), null> */ public static function getAuthData() { $oAuth = Zend_Auth::getInstance(); $sLogin = $oAuth->getIdentity(); if (isset($sLogin['login'])) { return Administrativo_Model_Usuario::getByAttribute('login', $sLogin['login']); } return NULL; }
/** * Busca no webservice todos os contadores cadastrados * @param boolean $com_usuario TRUE para buscar todos inclusive os que ja tem usuário cadastrado * @return Administrativo_Model_Contador */ public static function getAll($com_usuario = false) { $result = self::get(array()); $a = array(); foreach ($result as $r) { if (!$com_usuario) { $usuario = Administrativo_Model_Usuario::getByAttribute('cnpj', $r->cnpj); if ($usuario === null) { $a[] = new self($r); } } else { $a[] = new self($r); } } return $a; }
/** * Recursos / Previlegios */ protected function _setupResourcesPrivilegesUserAuth() { $aDadosLogin = Zend_Auth::getInstance()->getIdentity(); $oUsuario = Administrativo_Model_Usuario::getByAttribute('login', $aDadosLogin["login"]); $oContribuinte = new Zend_Session_Namespace('nfse'); if (!isset($oContribuinte->contribuinte)) { $aUsuarioAcoes = $oUsuario->getAcoes(); if (is_array($aUsuarioAcoes) && count($aUsuarioAcoes) > 0) { foreach ($aUsuarioAcoes as $oUsuarioAcao) { $sControle = $oUsuarioAcao->getControle()->getIdentidade(); $sModulo = $oUsuarioAcao->getControle()->getModulo()->getIdentidade(); $oResource = new Zend_Acl_Resource("{$sModulo}:{$sControle}"); if (!$this->_acl->has($oResource->getResourceId())) { $this->_acl->addResource($oResource); } $oAcoesExtra = explode(',', trim($oUsuarioAcao->getSubAcoes())); $aAcoesExtra = array_merge($oAcoesExtra, array($oUsuarioAcao->getAcaoAcl())); foreach ($aAcoesExtra as $sAcao) { if (empty($sAcao)) { continue; } $this->_acl->allow('Usuario', $oResource->getResourceId(), $sAcao); } } } } if (!empty($oContribuinte->contribuinte)) { $iCodigoUsuarioContribuinte = $oContribuinte->contribuinte->getIdUsuarioContribuinte(); $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getById($iCodigoUsuarioContribuinte); foreach ($oUsuarioContribuinte->getUsuarioContribuinteAcoes() as $oPermissoes) { $oAcoesExtra = explode(',', trim($oPermissoes->getAcao()->getSubAcoes())); $aAcoesExtra = array_merge($oAcoesExtra, array($oPermissoes->getAcao()->getAcaoAcl())); $sModulo = $oPermissoes->getAcao()->getControle()->getModulo()->getIdentidade(); $sControle = $oPermissoes->getAcao()->getControle()->getIdentidade(); $oResource = new Zend_Acl_Resource("{$sModulo}:{$sControle}"); if (!$this->_acl->has($oResource->getResourceId())) { $this->_acl->addResource($oResource); } foreach ($aAcoesExtra as $sAcao) { if (empty($sAcao)) { continue; } $this->_acl->allow('Usuario', $oResource->getResourceId(), $sAcao); } } } }
public function alteraUser() { // retorna os dados do fiscal para o sistema. if (isset($this->_session->iUsuarioEscolhido)) { // Seta os dados do usuário logado no sistema $aLogin = Zend_Auth::getInstance()->getIdentity(); $oUsuarioLogado = Administrativo_Model_Usuario::getByAttribute('login', $aLogin['login']); $this->user = $oUsuarioLogado; $this->view->user = $oUsuarioLogado; $this->view->layout()->user = $oUsuarioLogado; $this->_session->id = NULL; $this->_session->contribuinte = NULL; unset($this->_session->iUsuarioEscolhido); // Reseta permissões new DBSeller_Acl_Setup(TRUE); } }
public function init() { $this->view->messages = $this->_helper->getHelper('FlashMessenger')->getMessages(); $this->_redirector = $this->_helper->getHelper('Redirector'); $this->_ajaxContext = $this->_helper->getHelper('AjaxContext'); // pega login do usuario para mostrar no layout $login = Zend_Auth::getInstance()->getIdentity(); $this->view->user = Administrativo_Model_Usuario::getByAttribute('login', $login['login']); $this->view->moduleName = $this->getRequest()->getModuleName(); // inicializa variavel sessao $this->_session = new Zend_Session_Namespace('nfse'); $this->view->contribuinte = $this->_session->contribuinte; // verifica quantidade de notificações para o usuário logado if ($this->view->user !== null) { $notificacoes = Default_Model_Notificacao::getNotificacoesUsuario($this->view->user); $this->view->qtd_notif = count($notificacoes) == 0 ? '' : count($notificacoes); } }
/** * Alteração de usuário */ public function editarAction() { $usuario_id = $this->getRequest()->getParam('id'); $contribuinte = $this->getRequest()->getParam('cont'); if ($usuario_id == NULL) { $this->_redirector->gotoSimple('index'); } $usuario = Administrativo_Model_Usuario::getById($usuario_id); $form = $this->formUsuario('editar', array('id' => $usuario_id)); if ($usuario == NULL) { $aMensagem = array('error' => $this->translate->_('Usuário inválido.')); $this->_helper->getHelper('FlashMessenger')->addMessage($aMensagem); $this->_redirector->gotoSimple('index'); } if ($this->getRequest()->isPost()) { if (!$form->isValidPartial($_POST)) { $this->view->form = $form; } else { $aDados = $this->getRequest()->getPost(); $oUsuarioEmail = Administrativo_Model_Usuario::getByAttribute('email', $aDados['email']); if ($oUsuarioEmail != NULL && $oUsuarioEmail->getId() != $usuario->getId()) { $aMensagem = array('error' => $this->translate->_('Email já está cadastrado no sistema.')); $this->_helper->getHelper('FlashMessenger')->addMessage($aMensagem); $this->_redirector->gotoSimple('editar', 'usuario', 'administrativo', array('id' => $usuario->getId())); } $oPerfil = Administrativo_Model_Perfil::getByAttribute('id', $aDados['perfil']); $iTipoPerfil = $oPerfil->getEntity()->getTipo(); if ($usuario->getTipo() != $iTipoPerfil) { $aMensagem = array('error' => $this->translate->_('Perfil incorreto para o tipo selecionado.')); $this->_helper->getHelper('FlashMessenger')->addMessage($aMensagem); $this->_redirector->gotoSimple('editar', 'usuario', 'administrativo', array('id' => $usuario->getId())); } $usuario->persist($aDados); $aMensagem = array('success' => $this->translate->_('Usuário alterado com sucesso.')); $this->_helper->getHelper('FlashMessenger')->addMessage($aMensagem); $this->_redirector->gotoSimple('editar', 'usuario', 'administrativo', array('id' => $usuario->getId())); } } else { $aValues = array('id' => $usuario_id, 'login' => $usuario->getLogin(), 'nome' => $usuario->getNome(), 'email' => $usuario->getEmail(), 'fone' => $usuario->getTelefone(), 'administrativo' => $usuario->getAdministrativo(), 'perfil' => $usuario->getPerfil()->getId()); $this->view->formVincularContribuinte = $this->formVincularContribuinte($usuario_id); $this->view->form = $this->formUsuario('editar', $aValues); } if ($contribuinte !== NULL) { $contribuinte = Administrativo_Model_UsuarioContribuinte::getById($contribuinte); } if ($contribuinte != NULL) { $this->view->contribuinte_id = $contribuinte->getId(); } $usuarios_contribuintes = $usuario->getUsuariosContribuintes(); $paginatorAdapter = new Zend_Paginator_Adapter_Array($usuarios_contribuintes); $paginator = new Zend_Paginator($paginatorAdapter); $paginator->setItemCountPerPage(10); $paginator->setCurrentPageNumber($this->_request->getParam('page')); $empresas = array(); foreach ($paginator as $p) { $oRetorno = Administrativo_Model_UsuarioContribuinte::getContribuinte($p->getId()); if (empty($oRetorno)) { continue; } $empresas[$p->getId()] = $oRetorno; } // busca permissoes administrativas $aPermissoesADM = array(); $aAcoes = $usuario->getAcoesAdm(); foreach ($aAcoes as $oAcao) { $aPermissoesADM[] = $oAcao->getId(); } // formulario para vincular contribuinte $this->view->paginator = $paginator; $this->view->contribuintes = $empresas; $this->view->modulosAdm = Administrativo_Model_Modulo::getByAttribute('modulo', 'Administrativo'); $this->view->permissoesAdm = $aPermissoesADM; $this->view->modulosFiscal = Administrativo_Model_Modulo::getByAttribute('modulo', 'Fiscal'); $this->view->usuario = $usuario; }
/** * Método responsável pelo envio de email no cancelamento ou na solicitação do mesmo * * @param $oNota * @param $oSolicitacao * @param $sJustificativaFiscal * @return null|string */ public function enviarEmailRejeicao($oNota, $oSolicitacao, $sJustificativaFiscal) { //Retorna os usuarios do tipo fiscal $aUsuariosFiscal = Administrativo_Model_Usuario::getByAttribute('tipo', Administrativo_Model_Usuario::USUARIO_TIPO_FISCAL); //Remove o usuário admin do array if ($aUsuariosFiscal[0]->getAdministrativo()) { unset($aUsuariosFiscal[0]); } $aEmailBCC = array(); //Pega os emails cadastrados dos usuarios fiscais foreach ($aUsuariosFiscal as $oUsuarioFiscal) { $sEmail = $oUsuarioFiscal->getEmail(); if (!is_null($sEmail) && $sEmail != '') { $aEmailBCC[] = $sEmail; } } $oValidadorEmail = new Zend_Validate_EmailAddress(); $emailTO = $oNota->getT_email(); $sMensagemRetorno = NULL; $sEmailTomador = $oSolicitacao->getEmailTomador(); if ($oValidadorEmail->isValid($emailTO) || !empty($sEmailTomador) && $oValidadorEmail->isValid($sEmailTomador) || count($aEmailBCC) > 0) { $iInscricaoMunicipal = $oNota->getP_im(); $oContribuinte = Contribuinte_Model_Contribuinte::getByInscricaoMunicipal($iInscricaoMunicipal); $this->view->nota = $oNota; $this->view->justificativa_fiscal = $sJustificativaFiscal; $this->view->tomadorNome = $oNota->getT_razao_social(); $this->view->prestadorNome = $oContribuinte->getNome(); $this->view->prestadorCnpj = DBSeller_Helper_Number_Format::maskCPF_CNPJ($oContribuinte->getCgcCpf()); $this->view->nfseNumero = $oNota->getNota(); $this->view->nfseUrl = $oNota->getUrlVerificacaoNota(); $this->mensagem = $this->view->render('nota/email-rejeicao-cancelamento.phtml'); // Verifica se foi mudado o e-mail do Tomador para enviar uma cópia oculta do cancelamento if (!empty($sEmailTomador) && $sEmailTomador != $oNota->getT_email() && $oValidadorEmail->isValid($sEmailTomador)) { $emailTO = $sEmailTomador; if ($oValidadorEmail->isValid($oNota->getT_email())) { $aEmailBCC[] = $oNota->getT_email(); } $sMensagemRetorno = "Cancelamento rejeitado com sucesso.<br>Email foi enviado para {$emailTO}"; } // Caso não haja email cadastrado na nota e nem email informado no cancelamento, // ou se for uma solicitação de cancelamento, o primeiro email de fiscal é colocado // como destinatário principal para que seja possível o envio if (is_null($emailTO) || empty($emailTO)) { $emailTO = $aEmailBCC[0]; unset($aEmailBCC[0]); $sMensagemRetorno = "Cancelamento efetuado com sucesso.<br>Email foi enviado para {$emailTO}"; } // Envia Email DBSeller_Helper_Mail_Mail::send($emailTO, "Nota Fiscal Eletrônica nº {$oNota->getNota()}", $this->mensagem, 'utf-8', $aEmailBCC); } return $sMensagemRetorno; }
/** * Método construtor, será executado para todos os módulos do sistema */ public function init() { $this->aIniConfig = $this->getFrontController()->getParam('bootstrap')->getApplication()->getOptions(); self::maintenance(); $this->zendHelperUrl = new Zend_View_Helper_Url(); // Seta os dados do módulo, controller, action para os controllers, views e layouts $this->module = $this->getRequest()->getModuleName(); $this->controller = $this->getRequest()->getControllerName(); $this->action = $this->getRequest()->getActionName(); $this->view->moduleName = $this->getRequest()->getModuleName(); $this->view->controller = $this->getRequest()->getControllerName(); $this->view->action = $this->getRequest()->getActionName(); $this->view->layout()->module = $this->getRequest()->getModuleName(); $this->view->layout()->controller = $this->getRequest()->getControllerName(); $this->view->layout()->action = $this->getRequest()->getActionName(); // Tradutor $this->translate = Zend_Registry::get('Zend_Translate'); $this->view->translate = $this->translate; $this->view->layout()->translate = $this->translate; // Ambiente $this->view->messages = $this->_helper->getHelper('FlashMessenger')->getMessages(); $this->_redirector = $this->_helper->getHelper('Redirector'); $this->_ajaxContext = $this->_helper->getHelper('AjaxContext'); // Seta os dados do contribuinte para as views e layouts $this->_session = new Zend_Session_Namespace('nfse'); $this->view->contribuinte = $this->_session->contribuinte; $this->view->layout()->contribuinte = $this->_session->contribuinte; // Seta os dados da prefeitura nas views e layouts $oPrefeitura = self::getDadosPrefeitura(); $this->oPrefeitura = $oPrefeitura; $this->view->oPrefeitura = $oPrefeitura; $this->view->layout()->oPrefeitura = $oPrefeitura; // Dados do usuário logado (independente do perfil) $aLogin = Zend_Auth::getInstance()->getIdentity(); $oUsuarioLogado = Administrativo_Model_Usuario::getByAttribute('login', $aLogin['login']); $this->usuarioLogado = $oUsuarioLogado; $this->view->usuarioLogado = $oUsuarioLogado; $this->view->layout()->usuarioLogado = $oUsuarioLogado; // Seta o usuário que irá utilizar o sistema (usuários escolhido pelo fiscal ou contador) if (isset($this->_session->iUsuarioEscolhido)) { $oUsuarioLogado = Administrativo_Model_Usuario::getByAttribute('id', $this->_session->iUsuarioEscolhido); $this->user = $oUsuarioLogado; $this->view->user = $oUsuarioLogado; $this->view->layout()->user = $oUsuarioLogado; } else { // Seta os dados do usuário iguais aos do usuário logado no sistema $this->user = $oUsuarioLogado; $this->view->user = $oUsuarioLogado; $this->view->layout()->user = $oUsuarioLogado; } }
/** * 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()); } }
/** * Efetua o login */ public function postAction() { $oSessao = new Zend_Session_Namespace('captcha'); $oForm = new Auth_Form_login_FormLogin(); $aDados = $this->getRequest()->getParams(); $sLogin = $this->getRequest()->getParam('login', -1); $sSenha = $this->getRequest()->getParam('senha', -1); if ($oForm->isValid($aDados)) { $oEntityManager = Zend_Registry::get('em'); $oAuthAdapter = new Doctrine_Auth_Adapter($oEntityManager, 'Administrativo\\Usuario', 'login', 'senha'); $oAuthAdapter->setIdentity($sLogin); $oAuthAdapter->setCredential($sSenha); $oAuth = Zend_Auth::getInstance(); $iStatus = $oAuth->authenticate($oAuthAdapter)->getCode(); switch ($iStatus) { case 1: // Autenticacao Ok $sLogin = $oAuth->getIdentity(); $oUser = Administrativo_Model_Usuario::getByAttribute('login', $sLogin); if ($oUser->getHabilitado()) { Zend_Auth::getInstance()->getStorage()->write(array('id' => $oUser->getId(), 'login' => $sLogin)); $aRetornoJson['status'] = TRUE; $aRetornoJson['url'] = $this->view->baseUrl('/default/index'); $oSessao = new Zend_Session_Namespace('captcha'); $oSessao->unsetAll(); } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_('Usuário não habilitado para acessar o sistema.'); } break; case -1: // Usuario invalido // Usuario invalido case -2: // Usuario repetido // Usuario repetido case -3: // Senha invalida $oSessao->errors++; $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_('Usuário ou senha não conferem.'); break; default: $oSessao->errors++; $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_('Ocorreu um erro no sistema.'); } } else { $oSessao->errors++; $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } if ($oSessao->errors >= 3) { $aRetornoJson['url'] = 'index'; } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Método para confirmação do usuário eventual [json] * * @throws Exception * @return void */ public function confirmarAction() { $oFiltro = new Zend_Filter_Digits(); $aDados = $this->getRequest()->getParams(); $sCpfCnpj = DBSeller_Helper_Number_Format::unmaskCPF_CNPJ($aDados['cnpjcpf']); // Popula o formulario $oForm = new Default_Form_LiberacaoCadastro(); $oForm->populate($aDados); // Valida o formulario if ($oForm->isValid($aDados)) { if ($aDados['hash'] == NULL || $sCpfCnpj == NULL) { throw new Exception($this->translate->_('Campo(s) obrigatório(s) não informado(s).')); } $oDoctrine = Zend_Registry::get('em'); $oDoctrine->getConnection()->beginTransaction(); try { $oCadastroPessoa = Contribuinte_Model_CadastroPessoa::getByAttribute('hash', $aDados['hash']); if ($oCadastroPessoa == NULL) { $sMensagemErro = 'Dados informados não encontrados. Favor entrar em contato com o suporte da prefeitura.'; throw new Exception($this->translate->_($sMensagemErro)); } $iTipoLiberacaoUsuarioBloqueado = Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_BLOQUEADO; if ($oCadastroPessoa->getTipoLiberacao() == $iTipoLiberacaoUsuarioBloqueado) { $sMensagemErro = 'Cadastro foi recusado. Favor entrar em contato com o setor de fiscalização.'; throw new Exception($this->translate->_($sMensagemErro)); } if ($sCpfCnpj != $oCadastroPessoa->getCpfcnpj()) { throw new Exception($this->translate->_('CNPJ/CPF informado não é o mesmo informado no cadastro.')); } $oUsuarioCadastrado = Administrativo_Model_Usuario::getByAttribute('email', $oCadastroPessoa->getEmail()); if ($oUsuarioCadastrado instanceof Administrativo_Model_Usuario) { $sLink = '<a href="' . $this->view->serverUrl('/auth/login/esqueci-minha-senha/') . '">Clique Aqui</a>'; $sMensagemErro = "Já encontramos um cadastro com este email.<br>Caso tenha esquecido sua senha. {$sLink}"; throw new Exception($this->translate->_($sMensagemErro)); } $oCgm = Contribuinte_Model_Cgm::getDadosCgm($sCpfCnpj); if ($oCadastroPessoa->getTipoLiberacao() == Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO && $oCgm == NULL) { $sErro = $this->translate->_('Parametros estão inválidos (CGM não existe), '); $sErro .= $this->translate->_('favor entrar em contato com o setor de fiscalização.'); throw new Exception($sErro); } if ($oCadastroPessoa->getTipoLiberacao() == Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_CGM && $oCgm == NULL) { $oNovoCgm = new Contribuinte_Model_Cgm(); if (strlen($oCadastroPessoa->getCpfCnpj()) >= 14) { $oNovoCgm->setJuridico(TRUE); $oNovoCgm->setCNPJ($oCadastroPessoa->getCpfCnpj()); } else { $oNovoCgm->setJuridico(FALSE); $oNovoCgm->setCPF($oCadastroPessoa->getCpfCnpj()); } $sDescricaoMunicipio = Default_Model_Cadendermunicipio::getById($oCadastroPessoa->getCidade())->getNome(); $oNovoCgm->setNome($oCadastroPessoa->getNome()); $oNovoCgm->setEmail($oCadastroPessoa->getEmail()); $oNovoCgm->setCodigoIbgeCidade($oCadastroPessoa->getCidade()); $oNovoCgm->setDescricaoMunicipio($sDescricaoMunicipio); $oNovoCgm->setEstado($oCadastroPessoa->getEstado()); $oNovoCgm->setTelefone($oFiltro->filter($oCadastroPessoa->getTelefone())); $oNovoCgm->setCep($oFiltro->filter($oCadastroPessoa->getCep())); $oNovoCgm->setEnderecoEcidade(FALSE); if ($oCadastroPessoa->getCodBairro()) { $oNovoCgm->setEnderecoEcidade(TRUE); } $oNovoCgm->setCodigoBairro($oCadastroPessoa->getCodBairro()); $oNovoCgm->setCodigoLogradouro($oCadastroPessoa->getCodEndereco()); $oNovoCgm->setDescricaoBairro($oCadastroPessoa->getBairro()); $oNovoCgm->setDescricaoLogradouro($oCadastroPessoa->getEndereco()); $oNovoCgm->setNumeroLogradouro($oCadastroPessoa->getNumero()); $oNovoCgm->setComplemento($oCadastroPessoa->getComplemento()); $oCodigoCgm = $oNovoCgm->persist(); $iCodigoCgm = $oCodigoCgm->codigo_cgm; } else { $iCodigoCgm = $oCgm->getCodigoCgm(); } $aArraTipoLiberacao = array(Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_CGM, Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO); if (in_array($oCadastroPessoa->getTipoLiberacao(), $aArraTipoLiberacao)) { // Usuário do sistema $oUsuarioSistema = new Administrativo_Model_Usuario(); $oUsuarioSistema->setNome($oCadastroPessoa->getNome()); $oUsuarioSistema->setTelefone($oFiltro->filter($oCadastroPessoa->getTelefone())); $oUsuarioSistema->setLogin($oCadastroPessoa->getCpfCnpj()); $oUsuarioSistema->setSenha($aDados['senha']); $oUsuarioSistema->setEmail($oCadastroPessoa->getEmail()); $oUsuarioSistema->setHabilitado(TRUE); $oUsuarioSistema->setAdministrativo(FALSE); $oUsuarioSistema->setTipo(Administrativo_Model_TipoUsuario::$CONTRIBUINTE); $oUsuarioSistema->setCgm($iCodigoCgm); $oUsuarioSistema->setCnpj($oCadastroPessoa->getCpfCnpj()); $oUsuarioSistema->setPerfil($oCadastroPessoa->getPerfil()->getEntity()); $oUsuarioSistema->adicionaAcoes($oCadastroPessoa->getPerfil()->getAcoes()); $oUsuarioSistema->persist(); // Criamos o usuario eventual; $oUsuarioEventual = new Administrativo_Model_UsuarioContribuinte(); $oUsuarioEventual->setCGM($iCodigoCgm); $oUsuarioEventual->setHabilitado(TRUE); $oUsuarioEventual->setTipoContribuinte(2); $oUsuarioEventual->setCnpjCpf($oCadastroPessoa->getCpfCnpj()); $oUsuarioEventual->setUsuario($oUsuarioSistema->getEntity()); $oUsuarioEventual->copiaPerfilAcoes($oCadastroPessoa->getPerfil()); $oUsuarioEventual->persist(); // Cadastro de Pessoa $oCadastroPessoa->setHash(NULL); $oCadastroPessoa->persist(); } $oDoctrine->getConnection()->commit(); $aRetornoJson['status'] = TRUE; $aRetornoJson['success'] = $this->translate->_('Cadastro efetuado com sucesso.'); $aRetornoJson['url'] = $this->view->serverUrl(); } catch (Exception $oErro) { $oDoctrine->getConnection()->rollback(); if (isset($oCodigoCgm) && isset($oCodigoCgm->codigo_cgm) && Contribuinte_Model_Cgm::removerCgm($oCodigoCgm->codigo_cgm)) { $oLog = Zend_Registry::get('logger'); $oLog->log("Erro ao excluir o CGM: {$oCodigoCgm->codigo_cgm}", Zend_Log::INFO, ' '); } $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $oErro->getMessage(); } } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Execucao do cancelamento de NFSE via ajax */ public function cancelarPostAction() { $aDados = $this->getRequest()->getParams(); $oForm = new Contribuinte_Form_NotaCancelar(); $oForm->populate($aDados); if (!$oForm->isValid($aDados)) { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = 'Preencha os dados corretamente.'; } else { try { $oContribuinte = $this->_session->contribuinte; $oPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $aLoginUsuario = Zend_Auth::getInstance()->getIdentity(); $oUsuario = Administrativo_Model_Usuario::getByAttribute('login', $aLoginUsuario['login']); $oDataCancelamento = new DateTime(); $oNota = Contribuinte_Model_Nota::getById($aDados['id']); if ($oNota->podeCancelar($oContribuinte)) { //Retorna os usuarios do tipo fiscal $aUsuariosFiscal = Administrativo_Model_Usuario::getByAttribute('tipo', Administrativo_Model_Usuario::USUARIO_TIPO_FISCAL); //Remove o usuário admin do array if ($aUsuariosFiscal[0]->getAdministrativo()) { unset($aUsuariosFiscal[0]); } $aEmailBCC = array(); //Pega os emails cadastrados dos usuarios fiscais foreach ($aUsuariosFiscal as $oUsuarioFiscal) { $sEmail = $oUsuarioFiscal->getEmail(); if (!is_null($sEmail) && $sEmail != '') { $aEmailBCC[] = $sEmail; } } if ($oPrefeitura->getSolicitaCancelamento()) { $oSolicitacaoCancelamento = new Contribuinte_Model_SolicitacaoCancelamento(); $oSolicitacaoCancelamento->solicitar($oNota->getEntity(), $aDados, $oUsuario->getEntity()); $sJustificativa = $oSolicitacaoCancelamento->getJustificativa(); $sRetornoEmail = $this->enviarEmailCancelamento($oNota, $aDados, $aEmailBCC, TRUE, $sJustificativa); $sMensagemRetorno = "Cancelamento solicitado com sucesso!"; } else { $oCancelamentoNota = new Contribuinte_Model_CancelamentoNota(); $oCancelamentoNota->setUsuarioCancelamento($oUsuario); $oCancelamentoNota->setNotaCancelada($oNota); $oCancelamentoNota->setJustificativa($aDados['cancelamento_justificativa']); $oCancelamentoNota->setMotivoCancelmento($aDados['cancelamento_motivo']); $oCancelamentoNota->setDataHora($oDataCancelamento); $oCancelamentoNota->salvar(); $sRetornoEmail = $this->enviarEmailCancelamento($oNota, $aDados, $aEmailBCC, FALSE); $sMensagemRetorno = "Cancelamento efetuado com sucesso!"; } $sMensagemRetorno = is_null($sRetornoEmail) ? $sMensagemRetorno : $sRetornoEmail; $aRetornoJson['status'] = TRUE; $aRetornoJson['success'] = $sMensagemRetorno; } else { throw new Exception("Esta nota não pode mais ser cancelada!"); } } catch (Exception $oErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $oErro->getMessage(); } } echo $this->getHelper('json')->sendJson($aRetornoJson); }