public ActionResult RemoverColaboradorProjeto(ProjetosColaborador projeto)
 {
     try
     {
         var projcolab  = ProjColaboradorDao.BuscarProjetoColaborador(projeto.IDPROJ_COLAB);
         var atividades = AtividadesDao.ListarPontosPorcolaborador(projcolab.IDPROJ_COLAB);
         if (!ModelState.IsValid)
         {
             return(View());
         }
         if (atividades.Count() > 0)
         {
             throw new Exception("Colaborador possui atividades registradas, não é possivel remover ele do projeto!");
         }
         else
         {
             ProjColaboradorDao.DeleteProjColab(projcolab);
             TempData["Mensagem"] = "Desvinculado com sucesso...";
             return(RedirectToAction("MostrarDetalhesProjeto", new { id = projcolab.IDPROJETO }));
         }
     }
     catch (Exception ex)
     {
         ViewBag.MensagemErro = ex.Message;
         return(View("_erro"));
     }
 }
        public ActionResult MostrarDetalhesProjeto(int id)
        {
            var    projeto                       = ProjetosDao.BuscarProjeto(id);
            var    horasTrabalhadas              = AtividadesDao.TotalHorasProjetos(id);
            var    colaboradores                 = ProjColaboradorDao.ListarColaboradoresProjeto(id);
            double valorPagoColaboradores        = 0;
            double valorPagoColaboradoresProjeto = 0;
            int    horas;

            foreach (var item in colaboradores)
            {
                horas = AtividadesDao.TotalHorasColaborador(item.IDPROJ_COLAB);
                valorPagoColaboradores        += (item.ValorColaborador * horas);
                valorPagoColaboradoresProjeto += (item.ValorHoraProjColab * horas);
            }
            double valorTotal = 0;

            if (projeto.Escopo == 1)
            {
                if (projeto.ValorDespesas != 0 || projeto.ValorDespesas != null)
                {
                    valorTotal += ((projeto.ValorProjeto * horasTrabalhadas) + valorPagoColaboradoresProjeto) - (double)projeto.ValorDespesas - valorPagoColaboradores;
                }
                else
                {
                    valorTotal += ((projeto.ValorProjeto * horasTrabalhadas) + valorPagoColaboradoresProjeto) - valorPagoColaboradores;
                }
            }
            else
            {
                if (projeto.ValorDespesas != 0 || projeto.ValorDespesas != null)
                {
                    valorTotal = projeto.ValorProjeto - valorPagoColaboradores - (double)projeto.ValorDespesas;
                }
                else
                {
                    valorTotal = projeto.ValorProjeto - valorPagoColaboradores;
                }
            }
            var valores = new ProjetoValoresViewModel()
            {
                NumHorasProj             = (int)projeto.NumHoras,
                HorasRestantes           = AtividadesDao.TotalHorasRestante(id),
                HorasTrabalhadas         = horasTrabalhadas,
                ValorTotal               = valorTotal,
                ValorPagoColaboradores   = valorPagoColaboradores,
                ValorPedidoColaboradores = valorPagoColaboradoresProjeto,
                ValorDespesas            = (double)projeto.ValorDespesas,
                ValorOrca = projeto.ValorProjeto
            };

            ViewBag.Valores       = valores;
            ViewBag.Colaboradores = colaboradores;
            return(View(projeto));
        }
        public ActionResult PontoColaborador(Atividade atividade)
        {
            try
            {
                var colabProjeto         = ProjColaboradorDao.BuscarProjetoColaborador(atividade.IDPROJ_COLAB);
                var listaAtividadesColab = AtividadesDao.ListarPontosPorcolaborador(colabProjeto.IDPROJ_COLAB);

                foreach (var item in listaAtividadesColab)
                {
                    if (atividade.HoraInicio == item.HoraInicio && atividade.HoraFim == item.HoraFim)
                    {
                        ModelState.AddModelError("HoraFim", "O calaborador já possui uma ativididade em andamento nesse horário no projeto " + item.ProjetoColaborador.Projeto.Descricao);
                        break;
                    }
                    else if (atividade.HoraInicio > atividade.HoraFim)
                    {
                        ModelState.AddModelError("HoraInicio", "O horário de entrada não pode ser maior que o horário de saída");
                        break;
                    }
                    else if (atividade.HoraInicio == atividade.HoraFim)
                    {
                        ModelState.AddModelError("HoraInicio", "O horário de entrada não pode ser igual ao horário de saída");
                        break;
                    }

                    else if (atividade.HoraInicio >= item.HoraInicio && atividade.HoraInicio <= item.HoraFim)//entrar no meio do projeto
                    {
                        ModelState.AddModelError("HoraInicio", "O calaborador já possui uma ativididade em andamento nesse horário no projeto " + item.ProjetoColaborador.Projeto.Descricao);
                        break;
                    }
                    else if ((atividade.HoraInicio < item.HoraInicio && atividade.HoraFim > item.HoraInicio && atividade.HoraFim <= item.HoraFim) || //entrar antes e saior no meio
                             (atividade.HoraInicio < item.HoraInicio && atividade.HoraFim > item.HoraFim))                                           //entrar antes e sair depois
                    {
                        ModelState.AddModelError("HoraFim", "O calaborador já possui uma ativididade em andamento nesse horário no projeto " + item.ProjetoColaborador.Projeto.Descricao);
                        break;
                    }
                }

                if (!ModelState.IsValid)
                {
                    return(PontoColaborador(atividade.IDPROJ_COLAB));
                }
                AtividadesDao.IncluirPonto(atividade);
                TempData["Mensagem"] = "Atividade registrada com sucesso";
                return(RedirectToAction("PontoColaborador", colabProjeto.IDCOLABORADOR));
            }
            catch (Exception ex)
            {
                ViewBag.MensagemErro = ex.Message;
                return(View("_Erro"));
            }
        }
        public ActionResult PontoColaborador(int id)
        {
            var colabProj   = ProjColaboradorDao.BuscarProjetoColaborador(id);
            var colaborador = ColaboradoresDao.BuscarColaborador(colabProj.IDCOLABORADOR);
            var projeto     = ProjetosDao.BuscarProjeto(colabProj.IDPROJETO);
            var atividade   = new Atividade()
            {
                IDPROJ_COLAB = id
            };

            ViewBag.Lista       = AtividadesDao.ListarPontosPorProjeto(id).ToList();
            ViewBag.Colaborador = ColaboradoresDao.BuscarColaborador(colabProj.IDCOLABORADOR);
            ViewBag.Colab       = new ColaboradorProjetoViewModel()
            {
                Id        = id,
                Descricao = projeto.Descricao + " / " + colaborador.Nome
            };
            return(View(atividade));
        }
 public ActionResult DetalhesColaborador(int id)
 {
     try
     {
         if (Request.IsAjaxRequest())
         {
             var projetoColab = ProjColaboradorDao.BuscarProjetoColaborador(id);
             var projeto      = ProjetosDao.BuscarProjeto(projetoColab.IDPROJETO);
             var horaTrab     = AtividadesDao.TotalHorasColaborador(projetoColab.IDPROJ_COLAB);
             if (projeto.NumHoras == null)
             {
                 projeto.NumHoras = 0;
             }
             var valores = new ProjetoValoresViewModel()
             {
                 ValorColaborador         = projetoColab.ValorColaborador,
                 HorasTrabalhadas         = horaTrab,
                 ValorPagoColaboradores   = projetoColab.ValorColaborador * horaTrab,
                 ValorPedidoColaboradores = projetoColab.ValorHoraProjColab * horaTrab,
                 HorasRestantes           = (int)projeto.NumHoras - horaTrab,
                 NumHorasProj             = (int)projeto.NumHoras
             };
             ViewBag.Projetos = ProjColaboradorDao.ListarProjetosColaborador(id);
             ViewBag.Skill    = ColaboradoresDao.BuscarSkillInfo(ColaboradoresDao.BuscarColaborador(projetoColab.IDCOLABORADOR).IDSKILL).Descricao;
             return(PartialView("_ValoresColaborador", valores));
         }
         else
         {
             ViewBag.Projetos = ProjColaboradorDao.ListarProjetosColaborador(id);
             ViewBag.Skill    = ColaboradoresDao.BuscarSkillInfo(ColaboradoresDao.BuscarColaborador(id).IDSKILL).Descricao;
             return(VerificarColaborador(id, "DetalhesColaborador"));
         }
     }
     catch (Exception ex)
     {
         ViewBag.MensagemErro = ex.Message;
         return(View("_erro"));
     }
 }