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));
        }
Пример #2
0
 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"));
        }
Пример #4
0
        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"));
        }
Пример #7
0
        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));
        }
Пример #8
0
        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"));
            }
        }
Пример #9
0
        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));
        }