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')));
     }
 }
 /**
  * Atualiza os dados de um perfil informado
  */
 public function editarAction()
 {
     $iIdPerfil = $this->getRequest()->getParam('id');
     if ($iIdPerfil === null) {
         $this->_redirector->gotoSimple('index');
     }
     $oPerfil = Administrativo_Model_Perfil::getById($iIdPerfil);
     $oForm = $this->formPerfil('editar', $iIdPerfil);
     if ($oPerfil === null) {
         $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Perfil inválido.'));
         $this->_redirector->gotoSimple('index');
     }
     if ($this->getRequest()->isPost()) {
         $aDados = $this->getRequest()->getPost();
         if (!$oForm->isValidPartial($aDados)) {
             $this->view->form = $oForm;
         } else {
             $oPerfil->persist($aDados);
             $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Perfil modificado.'));
             $this->_redirector->gotoSimple('editar', 'perfil', 'administrativo', array('id' => $oPerfil->getId()));
         }
     } else {
         $aValues = array('tipo' => $oPerfil->getTipo(), 'nome' => $oPerfil->getNome(), 'administrativo' => $oPerfil->getAdministrativo());
         $this->view->form = $this->formPerfil('editar', $iIdPerfil, $aValues);
     }
     // busca permissões do perfil_perfis
     $aPerfilPerfis = array();
     $oListaPerfilPerfis = $oPerfil->getPerfis();
     foreach ($oListaPerfilPerfis as $aPerfil) {
         $aPerfilPerfis[] = $aPerfil->getId();
     }
     // busca permissões do perfil_perfis
     $aPerfilAcoes = array();
     $oListaPerfilAcoes = $oPerfil->getAcoes();
     foreach ($oListaPerfilAcoes as $aAcao) {
         $aPerfilAcoes[] = $aAcao->getId();
     }
     $this->view->aPerfis = Administrativo_Model_Perfil::getAll();
     $this->view->aPerfilPerfis = $aPerfilPerfis;
     $this->view->modulosAdm = Administrativo_Model_Modulo::getAll();
     $this->view->aPerfilAcoes = $aPerfilAcoes;
     $this->view->perfil = $oPerfil;
 }
 /**
  * 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;
 }