/// <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; }
//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; }
/// <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; }
/// <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; }
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; } }
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); }
/// <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); }
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"; } }
//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; }
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 } }
/// <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); }
//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; }