public ActionResult ConfirmacaoExclusao(int id) { Medico medico = db.Medico.Find(id); Consulta consulta = db.Consulta.Where(p => p.MedicoId == id).FirstOrDefault(); if (consulta != null) { ModelState.AddModelError("", "O médico não pode ser excluído pois possui registro de consulta"); return(View(medico)); } Agenda agenda = db.Agenda.Where(p => p.MedicoId == id).FirstOrDefault(); if (agenda != null) { ModelState.AddModelError("", "O médico não pode ser excluído pois possui registro em agenda"); return(View(medico)); } AgendaConfiguracao agendaConf = db.AgendaConfiguracao.Where(p => p.MedicoId == id).FirstOrDefault(); if (agendaConf != null) { ModelState.AddModelError("", "O médico não pode ser excluído pois possui registro em configuração de agenda"); return(View(medico)); } db.Medico.Remove(medico); db.SaveChanges(); return(RedirectToAction("Listar")); }
public ActionResult ConfirmarExclusaoConfiguracao(int id) { AgendaConfiguracao confAgenda = db.AgendaConfiguracao.Find(id); db.AgendaConfiguracao.Remove(confAgenda); db.SaveChanges(); return(RedirectToAction("ConfListar")); }
public ActionResult Gerar(AgendaGerar model) { if (ModelState.IsValid) { bool configuracaoInvalida = false; if (model.MedicoId == 0) { configuracaoInvalida = true; ModelState.AddModelError("", "O médico é obrigatório"); } if (model.DataFinal < model.DataInicial) { configuracaoInvalida = true; ModelState.AddModelError("", "A data final não pode ser menor que a inicial"); } if (!configuracaoInvalida) { Agenda obj = db.Agenda.Where(p => p.MedicoId == model.MedicoId && p.Data >= model.DataInicial && p.Data <= model.DataFinal).FirstOrDefault(); if (obj != null) { ModelState.AddModelError("", "Há um conflito de agendas. Já existe agenda para o dia " + obj.Data); } else { DateTime firstSunday = new DateTime(1753, 1, 7); for (int i = 0; i < (model.DataFinal - model.DataInicial).TotalDays; i++) { //confere se o dia da semana/hora terá agenda criada AgendaConfiguracao agendaConfiguracao = db.AgendaConfiguracao.Where(p => p.MedicoId == model.MedicoId && (DbFunctions.DiffDays(firstSunday, DbFunctions.AddDays(model.DataInicial, i)) % 7) == (int)(p.DiaSemana)).FirstOrDefault(); if (agendaConfiguracao != null) { DateTime horaInicio = agendaConfiguracao.HorarioInicio; for (int j = 0; j < agendaConfiguracao.LimiteConsultas; j++) { Agenda agenda = new Agenda(); agenda.Data = model.DataInicial.AddDays(i); agenda.MedicoId = model.MedicoId; agenda.Horario = horaInicio; horaInicio = horaInicio.AddMinutes(agendaConfiguracao.TempoConsulta); //db.Agenda.Add(agenda); db.Entry(agenda).State = EntityState.Added; db.SaveChanges(); } } } return(RedirectToAction("Listar", "Agenda", new { tipoFiltro = 0 })); } } } ViewBag.MedicoId = new SelectList(db.Medico.Where(p => p.Ativo), "Id", "Nome", ""); return(View()); }
// GET: Posts/Delete/5 //[Authorize(Roles = "Administrador")] public ActionResult ConfExcluir(int id) { if (id == 0) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AgendaConfiguracao confAgenda = db.AgendaConfiguracao.Find(id); if (confAgenda == null) { return(HttpNotFound()); } return(View(confAgenda)); }
public ActionResult ConfEditar(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } AgendaConfiguracao agendaConf = db.AgendaConfiguracao.Find(id); if (agendaConf == null) { return(HttpNotFound()); } ViewBag.MedicoId = new SelectList(db.Medico.Where(p => p.Ativo), "Id", "Nome", ""); return(View(agendaConf)); }
public ActionResult ConfIncluir(AgendaConfiguracao model) { if (ModelState.IsValid) { if (model.MedicoId != 0) { AgendaConfiguracao obj = db.AgendaConfiguracao.Where(p => p.MedicoId == model.MedicoId && p.DiaSemana == model.DiaSemana).FirstOrDefault(); if (obj != null) { ModelState.AddModelError("", "Já existe uma configuração de agenda neste dia da semana para esse médico"); } else { db.AgendaConfiguracao.Add(model); db.SaveChanges(); return(RedirectToAction("ConfListar")); } } } ViewBag.MedicoId = new SelectList(db.Medico.Where(p => p.Ativo), "Id", "Nome", ""); return(View(model)); }