Exemple #1
0
        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.");
        }