/** * 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; }
/** * Adiciona permissões para o perfil */ public function setPerfilPerfisAction() { $iCodigoPerfil = $this->getRequest()->getParam('id'); $aPerfis = $this->getRequest()->getParam('perfilperfis'); $oPerfil = Administrativo_Model_Perfil::getById($iCodigoPerfil); $oPerfil->limparPerfis(); $aPerfilPerfis = array(); foreach ($aPerfis as $id => $sPerfil) { if ($sPerfil === 'on') { $aPerfilPerfis[] = Administrativo_Model_Perfil::getById($id); } } if ($aPerfilPerfis !== null) { $iCodigoPerfil = $oPerfil->getId(); $oPerfil->adicionaPerfis($aPerfilPerfis); } $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Permissões para perfis modificadas para o Perfil.')); $this->_redirector->gotoSimple('editar', 'perfil', 'administrativo', array('id' => $oPerfil->getId())); }
public function init() { $this->setAction('/default/index/cadastro')->setMethod('post'); $oElm = $this->createElement('hidden', 'id'); $this->addElement($oElm); $aTipos = array(1 => 'Contador', 2 => 'Contribuinte Prestador', 3 => 'Contribuinte Tomador', 4 => 'Gráfica'); $oElm = $this->createElement('select', 'tipo', array('multiOptions' => $aTipos)); $oElm->setLabel('Tipo:'); $oElm->setAttrib('class', 'span3'); $oElm->setOptions($aTipos); $oElm->setRequired(TRUE); $this->addElement($oElm); $oElm = $this->createElement('text', 'cpfcnpj'); $oElm->setLabel('CPF / CNPJ:'); $oElm->setAttrib('class', 'span3 mask-cpf-cnpj'); $oElm->setAttrib('maxlength', '14'); $oElm->setRequired(TRUE); $oElm->addValidator(new E2Tecnologia_Validator_Cpf()); $oElm->addValidator(new E2Tecnologia_Validator_Cnpj()); $oElm->addFilter(new Zend_Filter_Digits()); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'nome'); $oElm->setLabel('Nome / Razão Social:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'nome_fantasia'); $oElm->setLabel('Nome Fantasia:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'login'); $oElm->setLabel('Login:'******'class', 'span3'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('password', 'senha'); $oElm->setLabel('Senha:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 6))); $oElm->addValidator(new Zend_Validate_Identical('senha_confirma')); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('password', 'senha_confirma'); $oElm->setLabel('Confirme a Senha:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 6))); $oElm->addValidator(new Zend_Validate_Identical('senha')); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'cep'); $oElm->setLabel('CEP:'); $oElm->setAttrib('class', 'span3 mask-cep'); $oElm->setAttrib('campo-ref', 'cep'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = new Zend_Form_Element_Hidden('pais'); $oElm->setValue('01058'); $this->addElement($oElm); $aEstados = Default_Model_Cadenderestado::getEstados($this->pais->getValue()); $oElm = $this->createElement('select', 'estado', array('multiOptions' => $aEstados)); $oElm->setLabel('Estado:'); $oElm->setAttrib('class', 'span3 select-estados'); $oElm->setAttrib('ajax-url', '/endereco/get-municipios/'); $oElm->setAttrib('campo-ref', 'uf'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('select', 'cidade'); $oElm->setAttrib('class', 'span3'); $oElm->setAttrib('ajax-url', '/endereco/get-bairros/'); $oElm->setAttrib('campo-ref', 'municipio'); $oElm->setLabel('Cidade:'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('select', 'cod_bairro'); $oElm->setLabel('Bairro:'); $oElm->setAttrib('class', 'span3 campo-oculto'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'bairro'); $oElm->setLabel('Bairro:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('select', 'cod_endereco'); $oElm->setLabel('Endereço:'); $oElm->setAttrib('class', 'span3 campo-oculto'); $oElm->setAttrib('campo-ref', 'logradouro'); $oElm->setAttrib('ajax-url', '/endereco/get-enderecos/'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'endereco'); $oElm->setLabel('Endereço:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'numero'); $oElm->setLabel('Número:'); $oElm->setAttrib('class', 'span3'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $e = $this->createElement('text', 'complemento'); $e->setLabel('Complemento:'); $e->setAttrib('class', 'span3'); $this->addElement($e); $oElm = $this->createElement('text', 'telefone'); $oElm->setLabel('Telefone:'); $oElm->setAttrib('class', 'span3 mask-fone'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'email'); $oElm->setLabel('Email:'); $oElm->setAttrib('class', 'span3'); $oElm->addValidator(new Zend_Validate_EmailAddress()); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $this->addDisplayGroup(array('tipo', 'cpfcnpj', 'nome', 'nome_fantasia', 'login', 'senha', 'senha_confirma', 'cep', 'estado', 'cidade', 'cod_bairro', 'bairro', 'cod_endereco', 'endereco', 'numero', 'complemento', 'telefone', 'email'), 'dados_nota', array('legend' => 'Dados do Usuário')); if ($this->confirmacao) { // Carrega perfis tem que ver como vai ser controlado qual perfil pode vincular usuarios com quais perfis $aPerfis = array('' => ''); $aListaPerfis = Administrativo_Model_Perfil::getAll(); foreach ($aListaPerfis as $oPerfil) { $aPerfis[$oPerfil->getId()] = $oPerfil->getNome(); } $oElm = $this->createElement('select', 'id_perfil', array('multiOptions' => $aPerfis)); $oElm->setLabel('Perfil:'); $oElm->setRequired(TRUE); $oElm->setOrder(1); $this->addElement($oElm); $this->addElement('submit', 'submit', array('label' => 'Confirmar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS)); $this->addElement('submit', 'cancel', array('label' => 'Recusar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_DANGER)); $this->addDisplayGroup(array('submit', 'cancel'), 'actions', array('disableLoadDefaultDecorators' => TRUE, 'decorators' => array('Actions'))); } else { $this->addElement('submit', 'submit', array('label' => 'Salvar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS)); $this->addDisplayGroup(array('submit'), 'actions', array('disableLoadDefaultDecorators' => TRUE, 'decorators' => array('Actions'))); } }
/** * Copia ações definidas no perfil para o usuário * * @param Administrativo_Model_Perfil $perfil */ public function copiaAcoesPerfil(Administrativo_Model_Perfil $perfil) { $this->setAdministrativo($perfil->getAdministrativo()); foreach ($perfil->getAcoes() as $a) { $this->addAcao($a->getEntity()); } $this->em->persist($this->entity); $this->em->flush(); }
/** * Seta os dados para gravar a entidade * @param array $aDados dados para definir os dados da entidade */ public function setDadosEventual(array $aDados) { $oFiltro = new Zend_Filter_Digits(); if (!empty($aDados['id_perfil'])) { $this->setPerfil(Administrativo_Model_Perfil::getById($aDados['id_perfil'])); } if (!empty($aDados['cnpjcpf'])) { $this->setCpfcnpj($oFiltro->filter($aDados['cnpjcpf'])); } if (!empty($aDados['nome'])) { $this->setNome($aDados['nome']); } if (!empty($aDados['nome_fantasia'])) { $this->setNomeFantasia($aDados['nome_fantasia']); } if (!empty($aDados['cep'])) { $this->setCep($oFiltro->filter($aDados['cep'])); } if (!empty($aDados['estado'])) { $this->setEstado($aDados['estado']); } if (!empty($aDados['cidade'])) { $this->setCidade($aDados['cidade']); } if (!empty($aDados['bairro'])) { $this->setBairro($aDados['bairro']); } if (!empty($aDados['cod_bairro'])) { $this->setCodBairro($aDados['cod_bairro']); } if (!empty($aDados['endereco'])) { $this->setEndereco($aDados['endereco']); } if (!empty($aDados['cod_endereco'])) { $this->setCodEndereco($aDados['cod_endereco']); } if (!empty($aDados['numero'])) { $this->setNumero($aDados['numero']); } if (!empty($aDados['complemento'])) { $this->setComplemento($aDados['complemento']); } if (!empty($aDados['telefone'])) { $this->setTelefone($oFiltro->filter($aDados['telefone'])); } if (!empty($aDados['email'])) { $this->setEmail($aDados['email']); } if (!empty($aDados['hash'])) { $this->setHash($aDados['hash']); } if (!empty($aDados['tipo_liberacao'])) { $this->setTipoLiberacao($aDados['tipo_liberacao']); } if (!empty($aDados['data_cadastro'])) { $this->setDataCadastro($aDados['data_cadastro']); } else { $this->setDataCadastro(new DateTime()); } return true; }
public static function atualizaTipoEmissao($aContribuintesAtualizar) { if (!is_array($aContribuintesAtualizar) && count($aContribuintesAtualizar) <= 0) { throw new Exception('Problemas ao atualizar tipo de emissão dos contribuintes!'); } foreach ($aContribuintesAtualizar as $aUsuarioContribuinteAtualizar) { $aUsuarioContribuinte = NULL; $iTipoEmissaoWeb = NULL; $iWebServiceUsuarioTipoEmissao = NULL; if ($aUsuarioContribuinteAtualizar == NULL) { throw new Exception('Problemas ao atualizar tipo de emissão dos contribuintes!'); } if (in_array('attr', get_class_methods($aUsuarioContribuinteAtualizar))) { $iTipoEmissaoWeb = $aUsuarioContribuinteAtualizar->attr('tipo_emissao'); $iWebServiceUsuarioTipoEmissao = !empty($iTipoEmissaoWeb) ? $iTipoEmissaoWeb : 9; $aUsuarioContribuintes = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $aUsuarioContribuinteAtualizar->attr('cnpj')); $iCgm = $aUsuarioContribuinteAtualizar->attr('cgm'); } else { // quando o usuario é tomador que não tem inscrição os dados vem de outro metodo webservice if (empty($aUsuarioContribuinteAtualizar->cgccpf) || empty($aUsuarioContribuinteAtualizar->tipo_emissao)) { $aUsuarioContribuinteAtualizar->cgccpf = $aUsuarioContribuinteAtualizar->iCnpj; $aUsuarioContribuinteAtualizar->tipo_emissao = 9; //tipo emissao tomador $aUsuarioContribuinteAtualizar->numero_cgm = $aUsuarioContribuinteAtualizar->iCodigoCgm; } $iTipoEmissaoWeb = $aUsuarioContribuinteAtualizar->tipo_emissao; $iWebServiceUsuarioTipoEmissao = !empty($iTipoEmissaoWeb) ? $iTipoEmissaoWeb : 9; $aUsuarioContribuintes = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $aUsuarioContribuinteAtualizar->cgccpf); $iCgm = $aUsuarioContribuinteAtualizar->numero_cgm; } if (!is_array($aUsuarioContribuintes)) { $aUsuarioContribuintes = array($aUsuarioContribuintes); } foreach ($aUsuarioContribuintes as $oContribuinte) { if (!$oContribuinte instanceof Administrativo_Model_UsuarioContribuinte) { continue; } if ($iTipoEmissaoWeb == $oContribuinte->getTipoEmissao()) { continue; } $aTiposEmissao = array(Contribuinte_Model_ContribuinteAbstract::TIPO_EMISSAO_DMS, Contribuinte_Model_ContribuinteAbstract::TIPO_EMISSAO_NOTA); $iTipoContribuinte = Administrativo_Model_UsuarioContribuinte::CONTRIBUINTE_MUNICIPAL; $iCgmAtualizar = NULL; if (!in_array($iWebServiceUsuarioTipoEmissao, $aTiposEmissao)) { $iTipoContribuinte = Administrativo_Model_UsuarioContribuinte::CONTRIBUINTE_EVENTUAL; $iCgmAtualizar = $iCgm; } $aDados = array('usuario' => $oContribuinte->getUsuario(), 'contribuinte' => $oContribuinte->getIm(), 'cnpj_cpf' => $oContribuinte->getCnpjCpf(), 'tipo_emissao' => $iWebServiceUsuarioTipoEmissao, 'tipo_contribuinte' => $iTipoContribuinte, 'cgm' => $iCgmAtualizar); $oContribuinte->persist($aDados); $oContribuinte->limparAcoes(TRUE); $oTipoEmissaoPerfil = $oContribuinte->getPerfilTipoEmissao($iWebServiceUsuarioTipoEmissao); $oPerfil = Administrativo_Model_Perfil::getById($oTipoEmissaoPerfil->iCodigoPerfil); $oContribuinte->adicionaAcoes($oPerfil->getAcoes()); } } }
/** * Renderiza o formulário * * @see Zend_Form::init() * @return Zend_form */ public function init() { $oBaseUrlHelper = new Zend_View_Helper_BaseUrl(); $this->setName('formCadastroUsuario'); $this->setAction($oBaseUrlHelper->baseUrl('/administrativo/usuario')); $this->setMethod('post'); $oElm = $this->createElement('hidden', 'id'); $oElm->setValue(NULL); $this->addElement($oElm); $aTipos = Administrativo_Model_TipoUsuario::getLista(); $oElm = $this->createElement('select', 'tipo', array('multiOptions' => $aTipos)); $oElm->setLabel('Tipo:'); $oElm->setAttrib('url-buscador', $oBaseUrlHelper->baseUrl('/administrativo/usuario/get-contadores')); $oElm->setRequired(TRUE); $this->addElement($oElm); $oElm = $this->createElement('hidden', 'cnpj'); $this->addElement($oElm); $aContadores = Administrativo_Model_Contador::getAll(); $aListaContadores = array(); foreach ($aContadores as $oContador) { $sNome = utf8_encode($oContador->attr('nome')); $aListaContadores[$oContador->attr('cnpj')] = $sNome . ' - ' . $oContador->attr('cnpj'); } $oElm = $this->createElement('select', 'contador', array('multiOptions' => $aListaContadores)); $oElm->setLabel('Contador:'); $this->addElement($oElm); $oElmBuscar = $this->createElement('button', 'buscador', array('label' => '', 'icon' => 'search', 'iconPosition' => Twitter_Bootstrap_Form_Element_Button::ICON_POSITION_LEFT)); $oElm = $this->createElement('hidden', 'insc_municipal'); $this->addElement($oElm); $oElm = $this->createElement('text', 'cnpj', array('append' => $oElmBuscar, 'class' => 'numerico', 'description' => '-')); $oElm->setAttrib('url-buscador', $oBaseUrlHelper->baseUrl('administrativo/usuario/get-contribuinte-cnpj')); $oElm->setLabel('CNPJ:'); $this->addElement($oElm); $oElm = $this->createElement('text', 'login'); $oElm->setLabel('Login:'******'errors'); $oElm->setRequired(TRUE); $this->addElement($oElm); $oElm = $this->createElement('text', 'nome'); $oElm->setLabel('Nome:'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'email'); $oElm->setLabel('Email:'); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'fone'); $oElm->setLabel('Telefone:'); $oElm->setAttrib('class', 'telefone'); $oElm->setValidators(array(new Zend_Validate_Alnum(), new Zend_Validate_StringLength(array('max' => 13)))); $this->addElement($oElm); $aPerfis = array(); $oPerfilUsuario = $this->_view->user->getPerfil(); if ($this->_view->user->getAdministrativo()) { $aDadosPerfis = Administrativo_Model_Perfil::getAll(); foreach ($aDadosPerfis as $oPerfil) { $aPerfis[$oPerfil->getEntity()->getId()] = $oPerfil->getEntity()->getNome(); } } else { $aDadosPerfis = $oPerfilUsuario->getPerfis(); foreach ($aDadosPerfis as $oPerfil) { $aPerfis[$oPerfil->getId()] = $oPerfil->getNome(); } } $oElm = $this->createElement('select', 'perfil', array('multiOptions' => $aPerfis)); $oElm->removeDecorator('errors'); $oElm->setLabel('Perfil:'); $oElm->setRequired(TRUE); $this->addElement($oElm); $this->addElement('submit', 'submit', array('label' => 'Salvar', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS)); return $this; }