public ActionResult Solicitar(DateTime data, string email) { Funcionario func = new Funcionario(); func = FuncionarioRepository.PesquisaPeloEmail(email); //Pega lista para carregar no ponto var _ListaPontos = PontoRepository. Listar(). ToList(). Where(p => p.DataValida.Date == data.Date). Where(p => p.Funcionario.Id == func.Id). Where(p => p.Contabilizar == true). OrderBy(p => p.DataValida). Select(p => new SelectListItem { Value = p.Id.ToString(), Text = p.DataValida.ToString("HH:mm") }). ToList(); ViewBag.ListaBatidas = _ListaPontos; CultureInfo cult = new CultureInfo("pt-BR"); SolicitacaoCriar item = new SolicitacaoCriar() { DataSolicitacao = data.Date.ToString("dd/MM/yyyy"), Hora = data.TimeOfDay.ToString(), Funcionario = func.Email, Resposta = RespostaSolicitacao.Nenhuma }; return(View(item)); }
public ActionResult ApagarPonto(int id, int idTrabalho) { try { Ponto pontoBd = PontoRepository.recuperarPeloId(id); PontoRepository.excluirPeloId(id); Ponto.isEntrada = pontoBd.Tipo.Equals(EnumExtensions.TipoPontoToDescriptionString(TipoPonto.ENTRADA)) ? true : false; return(RedirectToAction("DetalheTrabalho", "Trabalho", new { id = idTrabalho }).Mensagem("Ponto Apagado com Sucesso!!!"));; } catch (Exception e) { return(RedirectToAction("DetalheTrabalho", "Trabalho", new { id = idTrabalho }).Mensagem("Ocorreu um erro inesperado. " + e.Message, "Erro")); } }
public ActionResult AprovarRejeitarSolicitacao(Guid Id, RespostaSolicitacao resposta) { var Solicitacao = Repository.PesquisarPeloId(Id); Ponto Pto = Solicitacao.Ponto; Solicitacao.Resposta = resposta; if (resposta == RespostaSolicitacao.Aprovado) { switch (Solicitacao.Tipo) { case TipoSolicitacao.Ajuste: if (resposta == RespostaSolicitacao.Aprovado) { Pto.DataValida = Solicitacao.DataHora; PontoRepository.Salvar(Pto); } break; case TipoSolicitacao.Inclusao: if (resposta == RespostaSolicitacao.Aprovado) { Ponto NewPto = new Ponto() { Id = Guid.NewGuid(), DataValida = Solicitacao.DataHora, Funcionario = Solicitacao.Funcionario, Contabilizar = true }; PontoRepository.Salvar(NewPto); Solicitacao.Ponto = NewPto; } break; case TipoSolicitacao.Desconsideracao: if (resposta == RespostaSolicitacao.Aprovado) { Pto.Contabilizar = false; PontoRepository.Salvar(Pto); } break; } } Repository.Salvar(Solicitacao); Context.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult AdicionarPonto(FormCollection form) { Ponto novoPonto = new Ponto(); novoPonto.IdTrabalho = Int32.Parse(form["Id"]); novoPonto.Hora = DateTime.Parse(form["pontoControle.Hora.TimeOfDay"]); novoPonto.Tipo = form["TipoPonto"]; try { PontoRepository.salvar(novoPonto); Ponto.isEntrada = Ponto.isEntrada ? false : true; return(RedirectToAction("DetalheTrabalho", "Trabalho", new { id = novoPonto.IdTrabalho }).Mensagem("Ponto Adicionado com Sucesso!!!")); } catch (Exception e) { return(RedirectToAction("DetalheTrabalho", "Trabalho", new { id = novoPonto.IdTrabalho }).Mensagem("Ocorreu um erro inesperado. " + e.Message, "Erro")); } }
public KadastroServiceHost() { //context var unit = new MainUnitOfWork(); //repositories var usuarioRepository = new UsuarioRepository(unit); var pontoRepository = new PontoRepository(unit); var intervaloRepository = new IntervaloRepository(unit); var tarefaRepository = new TarefaRepository(unit); //services var usuarioService = new UsuarioService(usuarioRepository); var tarefaService = new TarefaService(tarefaRepository); //var pontoRepository = new PontoService(pontoRepository, intervaloRepository); //applications _usuarioAppService = new UsuarioAppService(usuarioRepository, usuarioService); _tarefaAppService = new TarefaAppService(tarefaRepository, tarefaService); }
public ActionResult Criar(SolicitacaoCriar SolicitacaoNovo) { Solicitacao Solicitacao = new Solicitacao(); ConversorInsert.AplicarValores(SolicitacaoNovo, Solicitacao); //Pega o Funcionario pelo Email Solicitacao.Funcionario = FuncionarioRepository.PesquisaPeloEmail(SolicitacaoNovo.Funcionario); if (SolicitacaoNovo.Tipo != TipoSolicitacao.Inclusao) { //Pega ponto pelo GUID Solicitacao.Ponto = PontoRepository.PesquisarPeloId(SolicitacaoNovo.Ponto); } Repository.Salvar(Solicitacao); Context.SaveChanges(); TempData["Mensagem"] = "Solicitação criada com sucesso!"; return(RedirectToAction("Lista", "Ponto")); }
public ActionResult RelatorioMarcacoes(DateTime?Data) { DateTime _Data = DateTime.MinValue; if (Data != null) { _Data = Data.GetValueOrDefault(); ViewBag.Data = Data.GetValueOrDefault().ToString(); } else { ViewBag.Data = ""; } var temp_listaFull = PontoRepository. Listar(). ToList(). Where(p => p.DataMarcacao.HasValue). ToList(); var _listaFull = temp_listaFull.Where(p => p.DataMarcacao.GetValueOrDefault(DateTime.MaxValue).Date == _Data.Date).ToList(); Dictionary <Funcionario, List <Ponto> > Dicionario = new Dictionary <Funcionario, List <Ponto> >(); foreach (var a in _listaFull) { if (Sessao.PerfilFuncionarioLogado == PerfilAcesso.Administrador || a.Funcionario.Empresa.Id == Sessao.EmpresaLogada.Id) { if (!Dicionario.ContainsKey(a.Funcionario)) { var _lista = _listaFull.Where(p => p.Funcionario.Id == a.Funcionario.Id).ToList(); Dicionario.Add(a.Funcionario, _lista); } } } return(View(Dicionario)); }
public ActionResult DetalheTrabalho(int id) { try { Trabalho trabalho = TrabalhoRepository.recuperarPeloId(id); List <Ponto> pontos = PontoRepository.listAllByTrabalho(id).OrderBy(x => x.Hora).ToList(); Ponto ponto = new Ponto(); ViewBag.Pontos = pontos; ViewBag.active = "Trabalho"; ViewBag.Ponto = ponto; Ponto.atualizaEntrada(pontos.Count > 0 ? pontos[pontos.Count - 1] : null); ponto.atualizaPonto(); trabalho.HorasTrabalho = DataUtil.calculaHorasTrabalho(pontos); trabalho.Saldo = DataUtil.calculaSaldo(trabalho); TrabalhoRepository.salvar(trabalho); return(View(trabalho)); } catch (Exception e) { return(RedirectToAction("index", "Trabalho").Mensagem("Ocorreu um erro inesperado. " + e.Message, "Erro")); } }
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)); }