private void btnSalvar_Click(object sender, EventArgs e)
        {
            SubFuncao   sub  = new SubFuncao();
            TipoUsuario tipo = new TipoUsuario();

            try
            {
                if (cbTipoUsuario.Text == "Selecione...")
                {
                    Validacoes.exibeMensagem("É necessário informar o Tipo de Usuário", Mensagem.tipo.Erro, false);
                    return;
                }

                if (cbSubFuncaoPrincipal.Text == "Selecione...")
                {
                    Validacoes.exibeMensagem("É necessário informar a Função Principal", Mensagem.tipo.Erro, false);
                    return;
                }

                if (cbTipoUsuario.SelectedValue != null && (int)cbTipoUsuario.SelectedValue == 3)
                {
                    if ((int)cbFuncaoSecundaria.SelectedValue != 3 || (int)cbFuncaoPrincipal.SelectedValue != 3)
                    {
                        Validacoes.exibeMensagem("O Tipo de Usuário 'Célula' só pode ter funções relacionadas a células", Mensagem.tipo.Erro, false);
                        return;
                    }
                }

                if (cbSubFuncaoPrincipal.Text == cbSubFuncaoSecundaria.Text)
                {
                    Validacoes.exibeMensagem("As funções não podem ser iguais", Mensagem.tipo.Erro, false);
                    return;
                }

                else
                {
                    if (string.IsNullOrEmpty(txtEmail.Text) || string.IsNullOrWhiteSpace(txtEmail.Text))
                    {
                        Validacoes.exibeMensagem("Informe um E-mail", Mensagem.tipo.Erro, false);
                        return;
                    }
                    if (string.IsNullOrEmpty(txtSobrenome.Text) || string.IsNullOrWhiteSpace(txtSobrenome.Text))
                    {
                        Validacoes.exibeMensagem("Informe o Sobrenome", Mensagem.tipo.Erro, false);
                        return;
                    }
                }

                pessoa.tipoUsuario = tipo.find((int)cbTipoUsuario.SelectedValue);
                pessoa.Nome        = txtNome.Text;
                pessoa.Sobrenome   = pessoa.tipoUsuario.idTipoUsuario == 3 ? null : txtSobrenome.Text;
                pessoa.Email       = pessoa.tipoUsuario.idTipoUsuario == 3 ? null : txtEmail.Text;

                if (!update)
                {
                    pessoa.Senha        = pessoa.tipoUsuario.idTipoUsuario == 3 ? null : gerarSenha();
                    pessoa.dataCadastro = DateTime.Today;
                    pessoa.Status       = "Ativo";
                }

                pessoa.funcaoPrincipal = sub.find((int)cbSubFuncaoPrincipal.SelectedValue);

                if (cbSubFuncaoSecundaria.Text != "Selecione...")
                {
                    pessoa.funcaoSecundaria = sub.find((int)cbSubFuncaoSecundaria.SelectedValue);
                    temFuncaoSecundaria     = true;
                }
                else
                {
                    temFuncaoSecundaria = false;
                }


                if (!string.IsNullOrEmpty(txtEmail.Text) || !string.IsNullOrWhiteSpace(txtEmail.Text))
                {
                    if (Validacoes.verificaUnico("email", "pessoa", txtEmail.Text, pessoa.idPessoa, "idPessoa") == true)
                    {
                        Validacoes.exibeMensagem("Este E-mail já está em uso", Mensagem.tipo.Erro, false);
                        return;
                    }
                }


                if (Validacoes.ValidarObjeto(pessoa) == true)
                {
                    if (update)
                    {
                        pessoa.update(pessoa, pessoa.idPessoa, temFuncaoSecundaria);
                        setPessoa(pessoa.idPessoa);
                    }
                    else
                    {
                        pessoa.create(pessoa, temFuncaoSecundaria);
                        setPessoa(pessoa.getId());

                        if (pessoa.tipoUsuario.idTipoUsuario != 3)
                        {
                            sendEmailComSenhaUsuario(pessoa.Nome, pessoa.Email, pessoa.Senha);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Validacoes.exibeMensagem("Erro: " + ex, Mensagem.tipo.Erro, false);
            }
        }