private void AddRegisto(object sender, RoutedEventArgs e) { using (var m = new ModelPnt()) { _registos = m.Registos.ToList().OrderBy(r => r.Data).Where(r => r.IdColaborador == StaticVar.CurrentUtilizador.Id).ToList(); var reg = _registos.Last(); var newRegisto = new Registos(); newRegisto.IdColaborador = StaticVar.CurrentUtilizador.Id; newRegisto.Data = DateTime.Now; var btn = (Button)sender; if (btn == btnLogin && reg.Tipo == Enums.Tipo.LogOut) { newRegisto.Tipo = Enums.Tipo.LogIn; } else { newRegisto.Tipo = Enums.Tipo.LogOut; } if (btn == btnLogin && reg.Tipo == Enums.Tipo.PausaOut) { newRegisto.Tipo = Enums.Tipo.PausaIn; } else { newRegisto.Tipo = Enums.Tipo.PausaOut; } if (btn == btnLogin && reg.Tipo == Enums.Tipo.FormacaoOut) { newRegisto.Tipo = Enums.Tipo.FormacaoIn; } else { newRegisto.Tipo = Enums.Tipo.FormacaoOut; } if (btn == btnLogin && reg.Tipo == Enums.Tipo.IndisponibilidadeOut) { newRegisto.Tipo = Enums.Tipo.IndisponiblidadeIn; } else { newRegisto.Tipo = Enums.Tipo.IndisponibilidadeOut; } m.Registos.Add(newRegisto); m.SaveChanges(); EnableButtons(newRegisto.Tipo); } }
/// <summary> /// /// </summary> static void ListaPorObrigacao() { // Variáveis auxiliares Obrigacao obrigacao; string nomeObrigacao; List<Registo> listagemRegistos; // Perguntar ao utilizador o nome da obrigação Console.WriteLine("Insira o nome da obrigação associada: "); nomeObrigacao = Console.ReadLine(); // Obter obrigação obrigacao = Obrigacoes.EnviaObrigacao(nomeObrigacao); // Verificar se a obrigação não existe if (obrigacao == null) { Console.WriteLine("Essa obrigação não se encontra registada"); return; } // Obter registos associados à obrigação listagemRegistos = Registos.ListarPorObrigacao(obrigacao); // Verificar se existem registos if (listagemRegistos.Count == 0) { Console.WriteLine("Não existem registos nessa obrigação."); return; } Console.WriteLine($"Nome da obrigação: {obrigacao.Nome}"); // Listar registos da obrigação foreach (Registo r in listagemRegistos) { Console.WriteLine($"Mês: {r.Mes}"); Console.WriteLine($"Ano: {r.Ano}"); Console.WriteLine($"Estado: {r.Estado}"); Console.WriteLine($"Cliente: {r.Cliente.Nome} | NIF: {r.Cliente.Nif}"); Console.WriteLine($"Funcionário: {r.Funcionario.Username}"); Console.WriteLine("########\n"); } }
/// <summary> /// /// </summary> static void ListaPorCliente() { // Variáveis auxiliares Cliente cliente; int nifCliente; List<Registo> listagemRegistos; // Perguntar ao utilizador o nif do cliente Console.WriteLine("Insira o nif do cliente: "); nifCliente = RegrasGerais.LeInteiro(); // Obter cliente cliente = Clientes.EnviaCliente(nifCliente); // Verificar se o cliente não existe if (cliente == null) { Console.WriteLine("Esse cliente não se encontra registado"); return; } // Obter registos do cliente listagemRegistos = Registos.ListarPorCliente(cliente); // Verificar se tem registos associados if (listagemRegistos.Count == 0) { Console.WriteLine("Não existem registos nessa obrigação."); return; } Console.WriteLine($"Nome do cliente: {cliente.Nome}"); // Listar registos do cliente foreach (Registo r in listagemRegistos) { Console.WriteLine($"Obrigação: {r.Obrigacao.Nome}"); Console.WriteLine($"Mês: {r.Mes}"); Console.WriteLine($"Ano: {r.Ano}"); Console.WriteLine($"Estado: {r.Estado}"); Console.WriteLine($"Funcionário: {r.Funcionario.Username}"); Console.WriteLine("########\n"); } }
// Opção 7 do menu /// <summary> /// Método para registar tarefas efetuadas /// </summary> /// <returns></returns> static void RegistaRegisto() { // Variáveis auxiliares Cliente cliente; Funcionario funcionario; Obrigacao obrigacao; Registo registo; Estado estadoRegisto; int mes, ano, nif, tentativas; string username, nomeObrigacao; // Inicializar variáveis cliente = null; funcionario = null; obrigacao = null; tentativas = 0; mes = 0; ano = 0; Console.WriteLine("Cria registo!"); // Ciclo que pergunta o cliente até ser válido while (cliente == null) { if (tentativas > 0) Console.WriteLine("Esse cliente não existe!"); Console.WriteLine("Insira o NIF do cliente associado: "); nif = RegrasGerais.LeInteiro(); cliente = Clientes.EnviaCliente(nif); tentativas++; } tentativas = 0; // Ciclo que pergunta o cliente até ser válido while (funcionario == null) { if (tentativas > 0) Console.WriteLine("Esse funcionário não existe!"); Console.WriteLine("Insira o username do funcionário associado: "); username = Console.ReadLine(); funcionario = Funcionarios.EnviaFuncionario(username); tentativas++; } tentativas = 0; // Ciclo que pergunta a obrigação até ser válida while (obrigacao == null) { if (tentativas > 0) Console.WriteLine("Essa obrigação não existe!"); Console.WriteLine("Insira o nome da obrigação associada: "); nomeObrigacao = Console.ReadLine(); obrigacao = Obrigacoes.EnviaObrigacao(nomeObrigacao); tentativas++; } tentativas = 0; // Pede ao utilizador o estado do registo estadoRegisto = RegrasGerais.LeEstado(); // Ciclo para verificar se o mês é válido while (mes > 12 || mes < 1) { if (tentativas > 0) Console.WriteLine("Esse mês não existe!"); Console.WriteLine("Insira o mês do registo: "); mes = RegrasGerais.LeInteiro(); tentativas++; } tentativas = 0; // Ciclo para verificar se o ano é válido while (ano < 2000 || ano > DateTime.Now.Year) { if (tentativas > 0) Console.WriteLine("Esse ano não é aceite!"); Console.WriteLine("Insira o ano do registo: "); ano = RegrasGerais.LeInteiro(); tentativas++; } // Cria o registo registo = new Registo(cliente, funcionario, obrigacao, mes, ano, estadoRegisto); // Verificar se o registo não foi adicionado if (!Registos.RegistaRegisto(registo)) { Console.WriteLine("O registo não foi registado."); return; } Console.WriteLine("O registo foi registado."); }