public PartialViewResult SalvarCronograma(CronogramaPactoViewModel model)
        {
            if (ValidarCronograma(model))
            {
                ModelState.Clear();
                _cronogramaService.LimparDiasZerados(model.Cronogramas);
                TempData[PactoController.GetNomeVariavelTempData("Cronogramas", model.IdPacto)] = model;
            }

            return(PartialView("_CronogramasPartial", model));
        }
        public JsonResult AtualizarCronograma(CronogramaPactoViewModel modelCronograma)
        {
            var pacto = _pactoService.BuscarPorId(modelCronograma.IdPacto);
            CronogramaPactoViewModel cronogramaExistente;

            if (modelCronograma.CalcularCronogramaAPartirBanco && pacto != null)
            {
                cronogramaExistente = new CronogramaPactoViewModel()
                {
                    DataInicial         = pacto.DataPrevistaInicio,
                    Cronogramas         = pacto.Cronogramas,
                    HorasTotais         = Convert.ToDouble(pacto.CargaHorariaTotal),
                    HorasDiarias        = pacto.CargaHorariaDiaria,
                    DataInicioSuspensao = pacto.SuspensoAPartirDe,
                    DataFimSuspensao    = DateTime.Today,
                    IdPacto             = pacto.IdPacto,
                    CPFUsuario          = pacto.CpfUsuario
                };
            }
            else
            {
                cronogramaExistente = (CronogramaPactoViewModel)TempData[PactoController.GetNomeVariavelTempData("Cronogramas", modelCronograma.IdPacto)];
            }

            if (pacto == null || pacto.IdSituacaoPacto != (int)eSituacaoPacto.Interrompido)
            {
                modelCronograma.Cronogramas = _cronogramaService.CalcularCronogramas(
                    modelCronograma.HorasTotais,
                    modelCronograma.HorasDiarias,
                    modelCronograma.DataInicial,
                    modelCronograma.CPFUsuario,
                    getUserLogado(),
                    modelCronograma.IdPacto,
                    modelCronograma.DataInicioSuspensao,
                    modelCronograma.DataFimSuspensao,
                    cronogramaExistente,
                    modelCronograma.QuantidadeHorasDiasSuspensao);
            }
            else
            {
                modelCronograma.Cronogramas = pacto.Cronogramas;
            }


            modelCronograma.PodeRemoverDias = PodeRemoverDia(modelCronograma);

            //Só de abrir, já tenho que salvar
            TempData[PactoController.GetNomeVariavelTempData("Cronogramas", modelCronograma.IdPacto)] = modelCronograma;

            return(Json(new { Mensagem = "Cronograma atualizado com sucesso", DataTermino = modelCronograma.Cronogramas.OrderBy(c => c.DataCronograma).LastOrDefault()?.DataString ?? "" }));
        }