public ActionResult Marcar(string email, string senha, string parametro) { var funcionarioParaMarcar = new Funcionario(); funcionarioParaMarcar = FuncionarioRepository.PesquisaParaLogin(email, Criptografia.Encrypt(senha)); if (funcionarioParaMarcar != null) { PontoEletronicoService.EfetuarMarcacaoDePonto(funcionarioParaMarcar); TempData["Mensagem"] = "Marcação efetuada com sucesso!"; } else { TempData["MensagemAlerta"] = "Senha incorreta"; } if ((parametro != string.Empty) && (parametro != null)) { // Registro de ponto sem Login return(RedirectToAction("Index")); } else { return(RedirectToAction("Index", "Home")); } }
public ActionResult Lista(string Email, DateTime?Data) { // Pega email, ou default usuario logado string _Email = Sessao.FuncionarioLogado.Email; if ((Email != null) && (Email != String.Empty)) { _Email = Email; } ViewBag.EmailLogado = _Email; Funcionario _Funcionario = new Funcionario(); _Funcionario = FuncionarioRepository.PesquisaPeloEmail(_Email); // Pega a data, ou default data atual DateTime _Data = DateTime.Now; if (Data != null) { _Data = DateTime.Parse(Data.ToString()); } var ListaFuncionarios = FuncionarioRepository.ListarComPerfil(Sessao.FuncionarioLogado.PerfilDeAcesso).ToList(); switch (Sessao.PerfilFuncionarioLogado) { case PerfilAcesso.Funcionario: ListaFuncionarios = ListaFuncionarios.Where(p => p.Id == Sessao.FuncionarioLogado.Id).ToList(); break; case PerfilAcesso.Gerente: ListaFuncionarios = ListaFuncionarios.Where(p => p.Empresa.Id == Sessao.EmpresaLogada.Id).ToList(); break; } // Recupera a lista de pontos batidos var _ListaCompleta = PontoRepository. Listar(). ToList(). Where(p => p.DataValida.Month == _Data.Month). Where(p => p.DataValida.Year == _Data.Year). Where(p => p.Funcionario.Email == _Email). OrderBy(p => p.DataValida). ToList(); DateTime _PrimeiraData = new DateTime(_Data.Year, _Data.Month, 1); int _Dias = DateTime.DaysInMonth(_Data.Year, _Data.Month); Dictionary <DateTime, List <Ponto> > Dicionario = new Dictionary <DateTime, List <Ponto> >(); Dictionary <DateTime, TimeSpan> DicionarioHoras = new Dictionary <DateTime, TimeSpan>(); int Maior = 0; for (int i = 0; i < _Dias; i++) { var _ListaPorDia = _ListaCompleta.Where(p => p.DataValida.Date == _PrimeiraData.AddDays(i).Date).ToList(); int _QtdeBatidas = _ListaPorDia.Count(); if (_QtdeBatidas > Maior) { Maior = _QtdeBatidas; } Dicionario.Add(_PrimeiraData.AddDays(i), _ListaPorDia); DicionarioHoras.Add(_PrimeiraData.AddDays(i), PontoEletronicoService.QuantidadeDeHorasTrabalhadasPorFuncionarioPorDia(_Funcionario, _PrimeiraData.AddDays(i))); } ViewBag.MaiorBatidas = ((int)((Maior + 1) / 2)) * 2; ViewBag.DicionarioHoras = DicionarioHoras; ViewBag.ListaFuncionarios = ListaFuncionarios.Select(p => new SelectListItem() { Text = p.Email, Value = p.Email }); return(View(Dicionario)); }