コード例 #1
0
        /// <summary>
        /// traz uma lista de erros das validacoes do campos informados 02/04/2014
        /// </summary>
        /// <param name="pf">Obj pessoa fisica</param>
        /// <returns>Lista de Erros</returns>
        public List<Notificacao> ValidaCampos(PesFisica pf)
        {
            var list = new List<Notificacao>();
            if (pf.Nome.Length < 3)
                list.Add(new Notificacao("O Nome deve conter pelo menos 3 caracteres",'e'));

            if (pf.Nome.Length > 150)
                list.Add(new Notificacao("Nome muito extenso", 'e'));

            if (pf.Apelido.Length > 45)
                list.Add(new Notificacao("Apelido muito extenso", 'e'));

            if (pf.Cnh != null)
                if (pf.Cnh.Length > 0 && pf.Cnh.Length != 11)
                    list.Add(new Notificacao("Numero da CNH invalido, verifique", 'e'));

            if (pf.CnhCategoria.Length > 0)
                if (pf.CnhCategoria.Length > 3)
                    list.Add(new Notificacao("Categoria da CNH invalida, verifique", 'e'));

            if (pf.Cpf.Length > 0)
                if (!ValidaCpf(pf.Cpf))
                    list.Add(new Notificacao("Cpf informado inválido, verifique", 'e'));

            return list;
        }
コード例 #2
0
        //ultima modificacao/checagem 17/01/2014 by GM
        public bool Inserir(PesFisica pf)
        {
            _bd = new Persistencia();
            _bd.IniciarTransacao();
            try
            {
                _bd.Cmd.CommandText = @"INSERT INTO pessoas (nome, dtcad, status, tipo) VALUES (@nome, @dtCad, @status,@tipo); SELECT LAST_INSERT_ID()";
                _bd.Cmd.Parameters.AddWithValue("@nome", pf.Nome);

                _bd.Cmd.Parameters.AddWithValue("@dtCad", DateTime.Now);
                _bd.Cmd.Parameters.AddWithValue("@status", 1);//status ativo ja que cadastro novo
                _bd.Cmd.Parameters.AddWithValue("@tipo", 'f');//tipo f

                pf.Id = Convert.ToInt32(_bd.ExecuteScalar());//recupera id nova!

                _bd.Cmd.Parameters.Clear();

                _bd.Cmd.CommandText = @"INSERT INTO pessoaFisica
                        (pes_id, apelido, dtNascimento, rg, cpf, cnh_categoria, cnh_registro, cnh_validade, cnh_emissao)
                        VALUES (@pesId, @apelido, @dtNasc, @rg, @cpf, @cnh_cat, @cnh_num, @cnh_validade, @cnh_emissao)";

                _bd.Cmd.Parameters.AddWithValue("@pesId", pf.Id);
                _bd.Cmd.Parameters.AddWithValue("@apelido", pf.Apelido == "" ? (object)DBNull.Value : pf.Apelido);
                _bd.Cmd.Parameters.AddWithValue("@dtNasc", pf.DtNascimento.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.DtNascimento);
                _bd.Cmd.Parameters.AddWithValue("@rg", pf.Rg == "" ? (object)DBNull.Value : pf.Rg);
                _bd.Cmd.Parameters.AddWithValue("@cpf", pf.Cpf == "" ? (object)DBNull.Value : pf.Cpf);
                _bd.Cmd.Parameters.AddWithValue("@cnh_cat", pf.CnhLetra == "" ? (object)DBNull.Value : pf.CnhLetra);
                _bd.Cmd.Parameters.AddWithValue("@cnh_num", pf.Cnh == "" ? (object)DBNull.Value : pf.Cnh);
                _bd.Cmd.Parameters.AddWithValue("@cnh_validade", pf.CnhValidade.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.CnhValidade);
                _bd.Cmd.Parameters.AddWithValue("@cnh_emissao", pf.CnhEmissao.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.CnhEmissao);
                _bd.ExecuteNonQuery();

                _bd.ConfirmarTransacao();
            }
            catch (Exception)
            {

                _bd.CancelarTransacao();
                return false;
            }

            return true;
        }
コード例 #3
0
        /// <summary>
        /// Insere ou atualiza uma Pessoa fisica no sistema 02/04/2014
        /// </summary>
        /// <param name="pf">Dados pessoa fisca</param>
        /// <param name="notificacoes">Lista de erros </param>
        /// <returns>verdadeiro em caso de sucesso</returns>
        public bool Gravar(PesFisica pf, out List<Notificacao> notificacoes)
        {
            bool cadastro = pf.Id == 0;
            notificacoes = ValidaCampos(pf);

            if (notificacoes.Count > 0)
                return false;

            //abaixo retorna falso caso nao consiga gravar nem atualizar
            if (!(cadastro ? new DataBase.pessoa.PessoaFisicaBD().Inserir(pf) : new DataBase.pessoa.PessoaFisicaBD().Atualizar(pf)))
            {
                notificacoes.Add(new Notificacao("Problema com Banco de Dados, notifique o administrador", 'e'));
                return false;
            }

            notificacoes.Add(cadastro
                                 ? new Notificacao("Pessoa Fisica cadastrada com Sucesso", 's')
                                 : new Notificacao("Pessoa Fisica atualizada com Sucesso", 's'));
            return true;
        }
コード例 #4
0
        /// <summary>
        /// Atualiza no Banco de dados dados de uma pessoa fisica
        /// </summary>
        /// <param name="pf">pessoa fisica</param>
        /// <returns>verdadeiro em caso de sucesso</returns>
        public bool Atualizar(PesFisica pf)
        {
            _bd = new Persistencia();
            _bd.IniciarTransacao();
            try
            {
                _bd.Cmd.CommandText = @"UPDATE pessoas SET nome= @nome WHERE id=@pesId";
                _bd.Cmd.Parameters.AddWithValue("@pesId", pf.Id);
                _bd.Cmd.Parameters.AddWithValue("@nome", pf.Nome);
                if (!(_bd.ExecuteNonQuery() > 0))
                {
                    return false;
                }
                _bd.Cmd.Parameters.Clear();

                _bd.Cmd.CommandText = @"UPDATE pessoaFisica SET apelido = @apelido, dtNascimento= @dtNasc,
                        rg= @rg, cpf = @cpf, cnh_categoria = @cnh_cat, cnh_registro= @cnh_num,
                        cnh_validade=@cnh_validade WHERE pes_id=@pesId";

                _bd.Cmd.Parameters.AddWithValue("@pesId", pf.Id);
                _bd.Cmd.Parameters.AddWithValue("@apelido", pf.Apelido == "" ? (object)DBNull.Value : pf.Apelido);
                _bd.Cmd.Parameters.AddWithValue("@dtNasc", pf.DtNascimento.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.DtNascimento);
                _bd.Cmd.Parameters.AddWithValue("@rg", pf.Rg == "" ? (object)DBNull.Value : pf.Rg);
                _bd.Cmd.Parameters.AddWithValue("@cpf", pf.Cpf == "" ? (object)DBNull.Value : pf.Cpf);
                _bd.Cmd.Parameters.AddWithValue("@cnh_cat", pf.CnhCategoria == "" ? (object)DBNull.Value : pf.CnhCategoria);
                _bd.Cmd.Parameters.AddWithValue("@cnh_num", pf.Cnh == "" ? (object)DBNull.Value : pf.Cnh);
                _bd.Cmd.Parameters.AddWithValue("@cnh_validade", pf.CnhValidade.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.CnhValidade);
                _bd.Cmd.Parameters.AddWithValue("@cnh_emissao", pf.CnhEmissao.ToShortDateString() == "01/01/0001" ? (object)DBNull.Value : pf.CnhEmissao);

                _bd.ExecuteNonQuery();

                _bd.ConfirmarTransacao();
            }
            catch (Exception)
            {

                return false;
            }
            return true;
        }
コード例 #5
0
ファイル: busca.aspx.cs プロジェクト: MoraesGil/TERMO-4-2014
        public void PesOpcoes(object sender, CommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "editar":
                    {
                        Editar();
                    }
                    break;
                case "cadastrar":
                    {
                        Response.Redirect("cadastro.aspx");
                    }
                    break;
                case "cancelar":
                    {
                        Detalhar();
                    } break;
                case "remover":
                    {
                        Notificacao notificacao;
                       if(new PessoaCtrl().Excluir(new Pessoa(Convert.ToInt32(pesId.Value),Convert.ToChar(pesTipo.Value)), out notificacao))
                       {
                           ttbNomeBusca.Text = "";
                           boxEdicao.Visible = false;
                           boxDetalhes.Visible = false;
                       }
                       notificacoes.Add(notificacao);
                        ((Sistema)Master).ExibirNotificacoes(notificacoes);
                    } break;
                case "gravar":
                    {
                        bool gravou;
                        if (pesTipo.Value == "f")
                        {
                            DateTime dtNasc;
                            DateTime dtEmissaoCnh;
                            DateTime dtValidadeCnh;

                            DateTime.TryParse(ttbDataNascimento.Text, out dtNasc);
                            DateTime.TryParse(ttbEmissaoCnh.Text, out dtEmissaoCnh);
                            DateTime.TryParse(ttbValidadeCnh.Text, out dtValidadeCnh);

                            var pf = new PesFisica(Convert.ToInt32(pesId.Value),ttbNome.Text, ttbApelido.Text, dtNasc, ttbRg.Text, ttbCpf.Text,
                                                        ttbCnh.Text, ttbCategoriaCnh.Text, dtValidadeCnh, dtEmissaoCnh);

                            gravou = new PesFisicaCtrl().Gravar(pf, out notificacoes);
                        }
                        else
                        {
                            var pj = new PesJuridica(Convert.ToInt32(pesId.Value), ttbRazaoSocial.Text, ttbIe.Text, ttbCnpj.Text, ttbNomeFantasia.Text);

                            gravou = new PesJuridicaCtrl().Gravar(pj, out notificacoes);
                        }

                        if (!gravou)//exibe erros
                        {
                            ((Sistema) Master).ExibirNotificacoes(notificacoes);
                        }
                        else
                        {
                            Detalhar();
                        }
                    } break;

            }
        }
コード例 #6
0
ファイル: busca.aspx.cs プロジェクト: MoraesGil/TERMO-4-2014
        private void Editar()
        {
            boxEdicao.Visible = true;
            boxDetalhes.Visible = false;
            cadpf.Visible = false;
            cadpj.Visible = false;

            if (pesTipo.Value == "f")
            {
                var pf = new PesFisica(Convert.ToInt32(pesId.Value));
                if (new PesFisicaCtrl().Recuperar(pf))
                {
                    cadpf.Visible = true;
                    ttbNome.Text = !string.IsNullOrEmpty(pf.Nome) ? pf.Nome : "";
                    ttbApelido.Text = !string.IsNullOrEmpty(pf.Apelido) ? pf.Apelido : "";
                    ttbDataNascimento.Text = pf.DtNascimento.ToShortDateString().Replace("01/01/0001", "");
                    ttbRg.Text = !string.IsNullOrEmpty(pf.Rg) ? pf.Rg : "";
                    ttbCpf.Text = !string.IsNullOrEmpty(pf.Cpf) ? pf.Cpf : "";
                    ttbCnh.Text = !string.IsNullOrEmpty(pf.Cnh) ? pf.Cnh : "";
                    ttbCategoriaCnh.Text = !string.IsNullOrEmpty(pf.CnhCategoria) ? pf.CnhCategoria : "";
                    ttbEmissaoCnh.Text = pf.CnhEmissao.ToShortDateString().Replace("01/01/0001", "");
                    ttbValidadeCnh.Text = pf.CnhValidade.ToShortDateString().Replace("01/01/0001", "");

                }
            }
            else if (pesTipo.Value == "j")
            {
                var pj = new PesJuridica(Convert.ToInt32(pesId.Value));
                if (new PesJuridicaCtrl().Recuperar(pj))
                {
                    cadpj.Visible = true;
                    ttbRazaoSocial.Text = !string.IsNullOrEmpty(pj.Nome) ? pj.Nome : "";
                    ttbNomeFantasia.Text = !string.IsNullOrEmpty(pj.NomeFantasia) ? pj.NomeFantasia : "";
                    ttbCnpj.Text = !string.IsNullOrEmpty(pj.Ie) ? pj.Ie : "";
                    ttbIe.Text = !string.IsNullOrEmpty(pj.Cnpj) ? pj.Cnpj : "";
                }

            }
            else
            {

                notificacoes.Add(new Notificacao("Pessoa informada não foi encontrada no sistema", 'a'));
                boxDetalhes.Visible = false;
                boxEdicao.Visible = false;
                btnCadastrar.Visible = true;
            }

            ((Sistema)Master).ExibirNotificacoes(notificacoes);
        }
コード例 #7
0
ファイル: busca.aspx.cs プロジェクト: MoraesGil/TERMO-4-2014
        /// <summary>
        /// Detalha os dados com id da pessoa informada, tentando recuperar pessoa fisica ou juridica 
        /// </summary>
        private void Detalhar()
        {
            boxpf.Visible = false;
            boxpj.Visible = false;
            boxDetalhes.Visible = true;
            boxEdicao.Visible = false;
            btnCadastrar.Visible = false;

            if (pesTipo.Value == "f" && Convert.ToInt32(pesId.Value)>0)
            {
                var pf = new PesFisica(Convert.ToInt32(pesId.Value));

                if (new PesFisicaCtrl().Recuperar(pf))
                {
                    lblPesNome.Text = !string.IsNullOrEmpty(pf.Nome) ? pf.Nome : "N/A";
                    lblPesApelido.Text = !string.IsNullOrEmpty(pf.Apelido) ? pf.Apelido : "N/A";
                    lblDtNasc.Text = pf.DtNascimento.ToShortDateString().Replace("01/01/0001", "N/A");
                    lblRg.Text = !string.IsNullOrEmpty(pf.Rg) ? pf.Rg : "N/A";
                    lblCpf.Text = !string.IsNullOrEmpty(pf.Cpf) ? pf.Cpf : "N/A";
                    lblCnhRegistro.Text = !string.IsNullOrEmpty(pf.Cnh) ? pf.Cnh : "N/A";
                    lblCnhCategoria.Text = !string.IsNullOrEmpty(pf.CnhCategoria) ? pf.CnhCategoria : "N/A";
                    lblCnhDtEmissao.Text = pf.CnhEmissao.ToShortDateString().Replace("01/01/0001", "N/A");
                    lblCnhValidade.Text = pf.CnhValidade.ToShortDateString().Replace("01/01/0001", "N/A");
                    boxpf.Visible = true;
                }
            }
            else if (pesTipo.Value == "j" && Convert.ToInt32(pesId.Value) > 0)
            {
                var pj = new PesJuridica(Convert.ToInt32(pesId.Value));
                if (new PesJuridicaCtrl().Recuperar(pj))
                {
                    lblPesRazao.Text = !string.IsNullOrEmpty(pj.Nome) ? pj.Nome : "N/A";
                    lblPesNomeFantasia.Text = !string.IsNullOrEmpty(pj.NomeFantasia) ? pj.NomeFantasia : "N/A";
                    lblCnpj.Text = !string.IsNullOrEmpty(pj.Cnpj) ? pj.Cnpj : "N/A";
                    lblIe.Text = !string.IsNullOrEmpty(pj.Ie) ? pj.Ie : "N/A";
                    boxpj.Visible = true;

                }
            }
            else
            {

                notificacoes.Add(new Notificacao("Pessoa informada não existe no sistema, você pode cadastra-la clicando no botão cadastrar", 'a'));
                boxDetalhes.Visible = false;
                btnCadastrar.Visible = true;
            }

            ((Sistema)Master).ExibirNotificacoes(notificacoes);
        }
コード例 #8
0
        private void DetalhesDados(Pessoa pes)
        {
            if (pes.Tipo == 'f')
            {
                var pf = new PesFisica(pes);
                new PesFisicaCtrl().Recuperar(pf);

                max_cadpj.Attributes.Add("class", "hide");

                lblPesNome.Text = !string.IsNullOrEmpty(pf.Nome) ? pf.Nome : "N/A";
                lblPesApelido.Text = !string.IsNullOrEmpty(pf.Apelido) ? pf.Apelido : "N/A";
                lblDtNasc.Text = pf.DtNascimento.ToShortDateString().Replace("01/01/0001", "N/A");
                lblRg.Text = !string.IsNullOrEmpty(pf.Rg) ? pf.Rg : "N/A";
                lblCpf.Text = !string.IsNullOrEmpty(pf.Cpf) ? pf.Cpf : "N/A";
                lblCnhRegistro.Text = !string.IsNullOrEmpty(pf.Cnh) ? pf.Cnh : "N/A";
                lblCnhCategoria.Text = !string.IsNullOrEmpty(pf.CnhLetra) ? pf.CnhLetra : "N/A";
                lblCnhDtEmissao.Text = pf.CnhEmissao.ToShortDateString().Replace("01/01/0001", "N/A");
                lblCnhValidade.Text = pf.CnhValidade.ToShortDateString().Replace("01/01/0001", "N/A");
            }
            else
            {
                var pj = new PesJuridica(pes);
                new PesJuridicaCtrl().Recuperar(pj);

                max_cadpf.Attributes.Add("class", "hide");
                lblPesRazao.Text = !string.IsNullOrEmpty(pj.Nome) ? pj.Nome : "N/A";
                lblPesNomeFantasia.Text = !string.IsNullOrEmpty(pj.NomeFantasia) ? pj.NomeFantasia : "N/A";
                lblPesResponsavel.Text = !string.IsNullOrEmpty(pj.Responsavel) ? pj.Responsavel : "N/A";
                lblCnpj.Text = !string.IsNullOrEmpty(pj.Cnpj) ? pj.Cnpj : "N/A";
                lblIe.Text = !string.IsNullOrEmpty(pj.Ie) ? pj.Ie : "N/A";
            }
        }
コード例 #9
0
        //ultima modificacao/checagem 17/01/2014 by GM
        public bool Recuperar(PesFisica pf)
        {
            _bd = new Persistencia();

            try
            {
                _bd.Cmd.CommandText = @"Select pf.dtNascimento, pf.cnh_validade,pf.cnh_emissao,pf.apelido,
                                       pf.rg, pf.cpf, pf.cnh_registro, pf.cnh_categoria
                                       from  pessoaFisica pf where pes_id = @pesId";

                _bd.Cmd.Parameters.AddWithValue("@pesId", pf.Id);

                DataTable dadosBd = _bd.ExecuteReader();

                //conversao de datas para evitar erro
                DateTime dtNasc;
                DateTime cnhValidade;
                DateTime cnhEmissao;
                DateTime.TryParse(dadosBd.Rows[0]["dtNascimento"].ToString(), out dtNasc);
                DateTime.TryParse(dadosBd.Rows[0]["cnh_validade"].ToString(), out cnhValidade);
                DateTime.TryParse(dadosBd.Rows[0]["cnh_emissao"].ToString(), out cnhEmissao);

                pf.Apelido = dadosBd.Rows[0]["apelido"].ToString();
                pf.DtNascimento = dtNasc;

                pf.Rg = dadosBd.Rows[0]["rg"].ToString();
                pf.Cpf = dadosBd.Rows[0]["cpf"].ToString();

                pf.CnhLetra = dadosBd.Rows[0]["cnh_categoria"].ToString();//letra cnh
                pf.Cnh = dadosBd.Rows[0]["cnh_registro"].ToString();//numero do registro cnh
                pf.CnhValidade = cnhValidade;
                pf.CnhEmissao = cnhEmissao;

            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }
コード例 #10
0
        private void CarregaPesDados(EventArgs e)
        {
            Pessoa pes = new Pessoa(Convert.ToInt32(pesId.Value));
            if (new Controller.Pessoa.PessoaCtr().Recuperar(pes))
            {
                pesId.Value = pes.Id.ToString();
                rblPestipo.Visible = false;
                rblPestipo_SelectedIndexChanged(rblPestipo.SelectedValue = pes.Tipo.ToString(), e);

                #region LoadPesFisica

                if (pes.Tipo == 'f')
                {
                    var pf = new PesFisica(pes);
                    txtPesNome.Text = pf.Nome;
                    txtPesApelido.Text = pf.Apelido;
                    txtDtNasc.Text = pf.DtNascimento.ToShortDateString().Replace("01/01/0001", "");
                    //troca se for nulo
                    txtRg.Text = pf.Rg;
                    txtCpf.Text = pf.Cpf;
                    txtCnh.Text = pf.Cnh;
                    txtCatCnh.Text = pf.CnhLetra;
                    txtDtEmissaoCnh.Text = pf.CnhEmissao.ToShortDateString().Replace("01/01/0001", "");
                    //troca se for nulo;
                    txtDtValidadeCnh.Text = pf.CnhValidade.ToShortDateString().Replace("01/01/0001", "");
                    //troca se for nulo
                }
                #endregion
                #region LoadPesJuridica

                else
                {
                    var pj = new PesJuridica(pes);
                    txtRazaoSocial.Text = pj.Nome;
                    txtNomeFantasia.Text = pj.NomeFantasia;
                    txtResponsavel.Text = pj.Responsavel;
                    txtCnpj.Text = pj.Cnpj;
                    txtIe.Text = pj.Ie;
                }

                #endregion
            }
        }
コード例 #11
0
 /// <summary>
 /// popula um objeto pessoa fisica 02/04/2014
 /// </summary>
 /// <param name="pf">objeto pessoa fisica com Id</param>
 /// <returns>verdadeiro em caso de sucesso</returns>
 public bool Recuperar(PesFisica pf)
 {
     return new DataBase.pessoa.PessoaFisicaBD().Recuperar(pf);
 }
コード例 #12
0
        //render Erros/Avisos
        //opcoes de navegacao do cadastro
        public void Cadastro(object sender, CommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "seguir":
                    {
                        switch (etapa.Value)
                        {
                            case "1":
                                {
                                    //valida os campos para prosseguir,
                                    List<Notificacao> erros = new List<Notificacao>();
                                    if (rblPestipo.SelectedValue == "f")
                                    {
                                        erros = new Controller.Pessoa.PesFisicaCtrl().ValidaCampos(new PesFisica(ttbNome.Text, ttbApelido.Text, ttbCpf.Text, ttbCnh.Text, ttbCategoriaCnh.Text));
                                    }
                                    else
                                    {
                                        erros =
                                            new Controller.Pessoa.PesJuridicaCtrl().ValidaCampos(
                                                new PesJuridica(ttbRazaoSocial.Text, ttbIe.Text, ttbCnpj.Text,
                                                                ttbNomeFantasia.Text));
                                    }

                                    if (erros.Count == 0)//se nao houver erros pula etapa
                                    {
                                        et1.Visible = false;
                                        et2.Visible = true;
                                        btnVoltar.Visible = true;
                                        etapa.Value = "2";
                                        LimpaDadosEndereco();
                                    }
                                    ((Sistema)Master).ExibirNotificacoes(erros);

                                } break;
                            case "2":
                                {
                                    LimparDadosContato();
                                    et2.Visible = false;
                                    et3.Visible = true;
                                    BtnSeguir.Visible = false;
                                    btnConcluir.Visible = true;
                                    etapa.Value = "3";
                                }
                                break;
                        }
                    }
                    break;
                case "voltar":
                    {
                        switch (etapa.Value)
                        {
                            case "2":
                                {
                                    et2.Visible = false;
                                    et1.Visible = true;
                                    btnVoltar.Visible = false;
                                    etapa.Value = "1";
                                }
                                break;
                            case "3":
                                {
                                    LimpaDadosEndereco();
                                    et3.Visible = false;
                                    btnConcluir.Visible = false;
                                    BtnSeguir.Visible = true;
                                    et2.Visible = true;
                                    etapa.Value = "2";
                                }
                                break;
                        }
                    }
                    break;
                case "cancelar":
                    {
                        //Response.Redirect();
                    }
                    break;

                case "concluir":
                    {
                        //desabilita a navegacao e
                        et3.Visible = false;
                        navCadastro.Visible = false;
                        et4.Visible = true;

                        var notificacoes = new List<Notificacao>();
                        Pessoa pes;

                        if (rblPestipo.SelectedValue == "f")
                        {
                            DateTime dtNasc;
                            DateTime dtEmissaoCnh;
                            DateTime dtValidadeCnh;

                            DateTime.TryParse(ttbDataNascimento.Text, out dtNasc);
                            DateTime.TryParse(ttbEmissaoCnh.Text, out dtEmissaoCnh);
                            DateTime.TryParse(ttbValidadeCnh.Text, out dtValidadeCnh);

                            var pf = new PesFisica(ttbNome.Text, ttbApelido.Text, dtNasc, ttbRg.Text, ttbCpf.Text,
                                                        ttbCnh.Text, ttbCategoriaCnh.Text, dtValidadeCnh, dtEmissaoCnh);

                            new Controller.Pessoa.PesFisicaCtrl().Gravar(pf, out notificacoes);
                            //se gravar o pesId será maior que 0
                            pes = pf;
                        }
                        else
                        {
                            var pj = new PesJuridica(ttbRazaoSocial.Text, ttbIe.Text, ttbCnpj.Text, ttbNomeFantasia.Text);

                            new Controller.Pessoa.PesJuridicaCtrl().Gravar(pj, out notificacoes);
                            //se gravar o pesId será maior que 0
                            pes = pj;
                        }

                        if (pes.Id > 0)
                        {
                            var enderecos = (List<Endereco>)Session["ListaEnderecos"];
                            var contatos = (List<Contato>)Session["ListaContatos"];
                            List<Notificacao> tempNotificacoes;

                            int contadorN = 0;//negativos
                            int contadorP = 0;//positivos

                            if (enderecos != null)
                            {//grava endereços
                                foreach (var endereco in enderecos)
                                {

                                    endereco.Pessoa = new Pessoa(pes.Id);
                                    if (new Controller.Pessoa.EnderecoCtr().Gravar(endereco, out tempNotificacoes))
                                    {
                                        contadorP++;
                                    }
                                    else
                                    {
                                        contadorN++;
                                    }
                                }

                                if (contadorN == 1)
                                    notificacoes.Add(new Notificacao(contadorN + " Endereço não foi gravado, você poderá Gerenciar Endereços e adiciona-lo", 'a'));
                                if (contadorP == 1)
                                    notificacoes.Add(new Notificacao(contadorP + " Endereço foi gravado com Sucesso, você poderá modifica-lo em Gerenciar Endereços", 's'));
                                if (contadorN > 1)
                                    notificacoes.Add(new Notificacao(contadorN + " Endereços não foram gravados, você poderá Gerenciar Endereços e adiciona-los", 'a'));
                                if (contadorP > 1)
                                    notificacoes.Add(new Notificacao(contadorP + " Endereços foram gravados com Sucesso, você poderá modifica-los em Gerenciar Endereços", 's'));

                            }
                            if (contatos != null)
                            {
                                contadorN = 0;
                                contadorP = 0;

                                foreach (var contato in contatos)
                                {
                                    contato.Pessoa = new Pessoa(pes.Id);
                                    if (new Controller.Pessoa.ContatoCtr().Gravar(contato, out tempNotificacoes))
                                    {
                                        contadorP++;
                                    }
                                    else
                                    {
                                        contadorN++;
                                    }
                                }
                                if (contadorN == 1)
                                    notificacoes.Add(new Notificacao(contadorN + " Contato não foi gravado, você poderá Gerenciar Endereços e adiciona-lo", 'a'));
                                if (contadorP == 1)
                                    notificacoes.Add(new Notificacao(contadorP + " Contato foi gravado com Sucesso, você poderá modifica-lo em Gerenciar Endereços", 's'));
                                if (contadorN > 1)
                                    notificacoes.Add(new Notificacao(contadorN + " Contatos não foram gravados, você poderá Gerenciar Endereços e adiciona-los", 'a'));
                                if (contadorP > 1)
                                    notificacoes.Add(new Notificacao(contadorP + " Contatos foram gravados com Sucesso, você poderá modifica-los em Gerenciar Endereços", 's'));
                            }
                        }

                        ((Sistema)Master).ExibirNotificacoes(notificacoes);
                    }
                    break;
            }
            p1.Visible = et1.Visible;
            p2.Visible = et2.Visible;
            p3.Visible = et3.Visible;
            p4.Visible = et4.Visible;
        }