/// <summary> /// Método responsável por carregar o total de horas planejadas para o cronograma por oid /// </summary> /// <param name="oidCronograma">oid de identificação do cronograma selecionado</param> /// <returns>retorna o total de horas planejadas </returns> public static double ConsultarTotalHorasPlanejadasCronograma(Guid oidCronograma) { using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { var cronograma = CronogramaDao.ConsultarCronogramaPorOid(contexto, oidCronograma); if (cronograma == null) { return(0); } return((from cronogramaTarefa in contexto.CronogramaTarefa join historicoEstimativa in contexto.TarefaHistoricoEstimativa on cronogramaTarefa.OidTarefa equals historicoEstimativa.OidTarefa where cronogramaTarefa.OidCronograma == oidCronograma && historicoEstimativa.DtPlanejado.Year <= cronograma.DtInicio.Year && ((historicoEstimativa.DtPlanejado.Month < cronograma.DtInicio.Month) || (historicoEstimativa.DtPlanejado.Month <= cronograma.DtInicio.Month && historicoEstimativa.DtPlanejado.Day <= cronograma.DtInicio.Day)) && !cronogramaTarefa.CsExcluido && !cronogramaTarefa.Tarefa.CsExcluido orderby historicoEstimativa.DtPlanejado descending select historicoEstimativa) .ToList() .GroupBy(historicoEstimativa => historicoEstimativa.OidTarefa) .Select(historicoEstimativa => historicoEstimativa.FirstOrDefault()) .Sum(historicoEstimativa => (double?)historicoEstimativa.NbHoraRestante) ?? 0); } }
/// <summary> /// Método utilizado para criar uma configuração para um colaborador em um determinado cronograma /// </summary> /// <param name="contexto">contexto do banco</param> /// <param name="login"></param> /// <param name="oidCronograma">oid do cronograma atual</param> /// <returns>ColaboradorCronogramaConfig para armazenar as configurações do colaborador</returns> public static CronogramaColaboradorConfig SalvarCronogramaColaboradorConfig(WexDb contexto, string login, Guid oidCronograma) { Cronograma cronograma = CronogramaDao.ConsultarCronogramaPorOid(oidCronograma); if (cronograma == null) { return(null); } Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login); if (colaborador == null) { return(null); } CronogramaColaboradorConfig config = ConsultarCronogramaColaboradorConfig(contexto, login, oidCronograma); if (config != null) { return(config); } config = new CronogramaColaboradorConfig() { OidCronograma = cronograma.Oid, OidColaborador = colaborador.Oid }; contexto.CronogramaColaboradorConfig.Add(config); contexto.SaveChanges(); return(config); }