// Mostrar dados quando um filho está selecionado private void listViewFilhos_SelectedIndexChanged(object sender, EventArgs e) { try { Filhos filhoSelecionado = (Filhos)listViewFilhos.SelectedItems[0].Tag; if (filhoSelecionado != null) { tbNomeFilho.Text = filhoSelecionado.Nome; dateTimePickerDataNascimento.Value = filhoSelecionado.DataNascimento; if (filhoSelecionado.Sexo == "Feminino") { radioButtonF.Checked = true; } else { radioButtonM.Checked = true; } cbEscola.Text = filhoSelecionado.Escolas.Nome; tbProgenitor.Text = ((Clientes)listViewClientes.SelectedItems[0].Tag).Nome; } } catch { } }
// Função que permite verificar se já existe essa inscrição private bool inscrito(Eventos eventoSelecionado, Filhos filho) { var inscrito = (from p in bookidsContainer.InscricoesSet where p.IdFilho == filho.IdPessoa && p.NrEvento == eventoSelecionado.NrEvento select p).ToList(); if (inscrito.Count == 0) { return(false); } return(true); }
// Permitir adicionar um filho se o cliente estiver selecionado private void buttonAdicionarFilho_Click(object sender, EventArgs e) { try { Clientes clienteSelecionado = (Clientes)listViewClientes.SelectedItems[0].Tag; if (clienteSelecionado != null) { if (dadosPreenchidosFilho()) { if (dateTimePickerDataNascimento.Value < DateTime.Today) { Filhos novo = new Filhos() { Nome = tbNomeFilho.Text, Morada = clienteSelecionado.Morada, Localidade = clienteSelecionado.Localidade, CodPostal = clienteSelecionado.CodPostal, Telefone = clienteSelecionado.Telefone, Telemovel = clienteSelecionado.Telemovel, Mail = clienteSelecionado.Mail, DataNascimento = dateTimePickerDataNascimento.Value, Sexo = radioButtonF.Checked ? radioButtonF.Text : radioButtonM.Text, IdEscola = ((Escolas)cbEscola.SelectedItem).IdEscola, IdProgenitor = clienteSelecionado.IdPessoa, }; // Adicionar à base de dados bookidsContainer.FilhosSet.Add(novo); // Guardar as alterações feitas bookidsContainer.SaveChanges(); adicionaFilho(novo); carregaTodosFilhos(clienteSelecionado.Filhos.ToList <Filhos>()); limparDadosFilho(); MessageBox.Show("Filho adicionado com sucesso!", "Informação", MessageBoxButtons.OK); } else { MessageBox.Show("Certifique-se de selecionar uma data válida!", "Atenção", MessageBoxButtons.OK); } } } } catch { MessageBox.Show("Certifique-se de selecionar o cliente para adicionar o filho", "Atenção", MessageBoxButtons.OK); } }
/// <summary> /// Adiciona os dados do filho na list View /// </summary> /// <param name="filho"></param> private void adicionaFilho(Filhos filho) { var row = new string[] { filho.Nome, (filho.DataNascimento).ToString("dd/mm/yyyy"), filho.Sexo, filho.Escolas.Nome }; var lvi = new ListViewItem(row); lvi.Tag = filho; listViewFilhos.Items.Add(lvi); }
// <--------------- Inscrições ---------------> // Para increver um filho num Evento private void buttonInscrever_Click(object sender, EventArgs e) { try { Eventos eventoSelecionado = (Eventos)listViewEventos.SelectedItems[0].Tag; if (eventoSelecionado != null) { Filhos filhoSelecionado = (Filhos)cbFilhos.SelectedItem; if (filhoSelecionado.Idade() > eventoSelecionado.IdadeInferior && filhoSelecionado.Idade() < eventoSelecionado.IdadeSuperior) { if (!inscrito(eventoSelecionado, ((Filhos)cbFilhos.SelectedItem))) { if (cbFilhos.Text == "") { cbFilhos.Focus(); return; } else { Inscricoes nova = new Inscricoes() { Confirmada = false, IdFilho = ((Filhos)cbFilhos.SelectedItem).IdPessoa, NrEvento = eventoSelecionado.NrEvento }; bookidsContainer.InscricoesSet.Add(nova); bookidsContainer.SaveChanges(); checkedListBoxFilhos.DataSource = eventoSelecionado.Inscricoes.ToList <Inscricoes>(); MessageBox.Show("Inscrição adicionada com sucesso!", "Informação", MessageBoxButtons.OK); } } else { MessageBox.Show("Esse Filho já foi inscrito!", "Informação", MessageBoxButtons.OK); } } else { MessageBox.Show("Esse Filho não tem idade para o evento!", "Informação", MessageBoxButtons.OK); } } } catch { MessageBox.Show("Certifique-se de selecionar o Evento que pretende fazer modificações, ou, verifique se esse Filho já foi inscrito!", "Aviso", MessageBoxButtons.OK); } }
// Alterar dados do filho selecionado private void buttonAlterarFilho_Click(object sender, EventArgs e) { try { Clientes cliente = (Clientes)listViewClientes.SelectedItems[0].Tag; if (cliente != null) { Filhos filhoSelecionado = (Filhos)listViewFilhos.SelectedItems[0].Tag; if (filhoSelecionado != null) { if (dateTimePickerDataNascimento.Value < DateTime.Today) { filhoSelecionado.Nome = tbNomeFilho.Text; filhoSelecionado.Morada = tbMoradaCliente.Text; filhoSelecionado.Localidade = tbLocalidadeCliente.Text; filhoSelecionado.CodPostal = tbCodPostalCliente.Text; filhoSelecionado.Telefone = tbTelefoneCliente.Text; filhoSelecionado.Telemovel = tbTelemovelCliente.Text; filhoSelecionado.Mail = tbMailCliente.Text; filhoSelecionado.DataNascimento = dateTimePickerDataNascimento.Value; filhoSelecionado.Sexo = radioButtonF.Checked ? radioButtonF.Text : radioButtonM.Text; filhoSelecionado.IdEscola = ((Escolas)cbEscola.SelectedItem).IdEscola; filhoSelecionado.IdProgenitor = cliente.IdPessoa; bookidsContainer.SaveChanges(); carregaTodosFilhos(cliente.Filhos.ToList <Filhos>()); limparDadosFilho(); MessageBox.Show("Dados do filho alterados com sucesso!", "Informação", MessageBoxButtons.OK); } else { MessageBox.Show("Certifique-se de selecionar uma data válida!", "Atenção", MessageBoxButtons.OK); } } } } catch { MessageBox.Show("Selecione primeiro o filho para alterar os seus dados!", "Aviso", MessageBoxButtons.OK); } }
// Butão que permite apagar o filho selecionado do cliente selecionado private void buttonApagarFilho_Click(object sender, EventArgs e) { try { Clientes cliente = (Clientes)listViewClientes.SelectedItems[0].Tag; if (cliente != null) { Filhos filhoSelecionado = (Filhos)listViewFilhos.SelectedItems[0].Tag; if (filhoSelecionado != null) { if (MessageBox.Show("Esta operação puderá não ser possível pois, o filho pode estar inscrito em eventos. Se for o caso, terá de apagar as inscrições primeiro.\n\nMesmo assim quer tentar?", "Atenção", MessageBoxButtons.YesNo) == DialogResult.Yes) { List <Inscricoes> listaInscricoes = filhoSelecionado.Inscricoes.ToList <Inscricoes>(); if (listaInscricoes.Count == 0) { bookidsContainer.FilhosSet.Remove(filhoSelecionado); bookidsContainer.SaveChanges(); carregaTodosFilhos(cliente.Filhos.ToList <Filhos>()); limparDadosFilho(); MessageBox.Show("Filho apagado com sucesso!", "Informação", MessageBoxButtons.OK); } else { MessageBox.Show("Não foi possível apagar o filho!", "Aviso", MessageBoxButtons.OK); } } } } } catch { MessageBox.Show("Selecione primeiro o filho que pretende apagar!", "Aviso", MessageBoxButtons.OK); } }