/// <summary> /// Búsqueda predictiva sobre las UADyCS y unidades médicas /// Tiene prioridad las unidades médicas sobre las UADyCS /// </summary> /// <param name="Concepto"></param> /// <param name="IdCatTipoTramite"></param> /// <returns></returns> public CalendarioDTO GetBusqueda(string Concepto, int IdCatTipoTramite) { var calendarioDto = new CalendarioDTO(); Concepto = Concepto.ToUpper(); using (var modelo = new ISSSTEEntities()) { var primerOcurrencia = (from a in modelo.UnidadMedica join b in modelo.TramiteUnidadAtencion on a.UnidadAtencionId equals b.UnidadAtencionId where a.Descripcion.ToUpper().Contains(Concepto) && b.CatTipoTramiteId == IdCatTipoTramite select new DuplaValoresDTO { Id = b.TramiteUnidadAtencionId, IdAux = a.UnidadMedicaId }).FirstOrDefault() ?? (from a in modelo.UnidadAtencion join b in modelo.TramiteUnidadAtencion on a.UnidadAtencionId equals b.UnidadAtencionId where a.Descripcion.ToUpper().Contains(Concepto) && b.CatTipoTramiteId == IdCatTipoTramite select new DuplaValoresDTO { Id = b.TramiteUnidadAtencionId }).FirstOrDefault(); if (primerOcurrencia != null) { calendarioDto.TramiteUnidadAtencionId = primerOcurrencia.Id; calendarioDto.UnidadMedicaId = primerOcurrencia.IdAux; } } return(calendarioDto); }
public JsonResult GetTramiteUnidadMedicaEspecial(CalendarioDTO CalendarioDto) { var catalogoService = new CatalogoService(); var combo = catalogoService.GetTramiteUnidadMedicaEspecial(CalendarioDto); var respuesta = Tag.GeneracionCuerpoSelect(true, combo); return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
/// <summary> /// combo de unidades por tipo de trámite /// </summary> /// <param name="CalendarioDto"></param> /// <returns></returns> public JsonResult GetTramiteUnidadMedica(CalendarioDTO CalendarioDto) { var catalogoService = new CatalogoService(); //CalendarioDto.CatTipoTramiteId = IdSesionTipoTramite; var combo = catalogoService.GetTramiteUnidadMedica(CalendarioDto); var respuesta = Tag.GeneracionCuerpoSelect(false, combo); return(Json(respuesta, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Calendario para agendar citas /// </summary> /// <param name="CalendarioDto"></param> /// <returns></returns> public ActionResult Calendario(CalendarioDTO CalendarioDto) { var catalogoService = new CatalogoService(); CalendarioDto.CatTipoTramiteId = IdSesionTipoTramite; CalendarioDto.IdFechaLimite = IdFechaLimite; TempData["Fecha"] = CalendarioDto.MesAnio; var respuesta = catalogoService.GetBusquedaHorario(CalendarioDto); return(PartialView(respuesta)); }
/// <summary> /// /// </summary> /// <param name="CalendarioDto"></param> /// <returns></returns> public List <DuplaValoresDTO> GetTramiteUnidadMedicaEspecial(CalendarioDTO CalendarioDto) { List <DuplaValoresDTO> duplaValoresDto; using (var modelo = new ISSSTEEntities()) { duplaValoresDto = (from a in modelo.UnidadMedica join b in modelo.UnidadAtencion on a.UnidadAtencionId equals b.UnidadAtencionId where a.EsActivo && a.UnidadAtencionId == CalendarioDto.UnidadAtencionId select new DuplaValoresDTO { Id = a.UnidadMedicaId, Valor = a.Descripcion }).Distinct() .ToList(); } return(duplaValoresDto); }
/// <summary> /// Catálogo de Unidades de Atención por tipo de trámite /// </summary> /// <param name="CalendarioDto"></param> /// <returns></returns> public List <DuplaValoresDTO> GetTramiteUnidadMedica(CalendarioDTO CalendarioDto) { List <DuplaValoresDTO> duplaValoresDto; using (var modelo = new ISSSTEEntities()) { var QueryBase = modelo.UnidadMedica .Join(modelo.TramiteUnidadAtencion, um => um.UnidadAtencionId, tua => tua.UnidadAtencionId, (um, tua) => new { um, tua }) .Where(s => s.tua.CatTipoTramiteId == CalendarioDto.CatTipoTramiteId) .AsQueryable(); if (!string.IsNullOrEmpty(CalendarioDto.PalabraBusqueda)) { CalendarioDto.PalabraBusqueda = CalendarioDto.PalabraBusqueda.ToUpper(); QueryBase = QueryBase .Where(S => (S.um.Descripcion).ToUpper().Contains(CalendarioDto.PalabraBusqueda)); } if (CalendarioDto.TramiteUnidadAtencionId != 0) { QueryBase = QueryBase.Where(s => s.tua.TramiteUnidadAtencionId == CalendarioDto.TramiteUnidadAtencionId); } duplaValoresDto = QueryBase.Select(s => new DuplaValoresDTO { Id = s.um.UnidadMedicaId, IdAux = s.tua.TramiteUnidadAtencionId, Valor = s.um.Descripcion }).ToList(); } return(duplaValoresDto); }
/// <summary> /// Horarios por mes y unidad UADyCS /// </summary> /// <param name="CalendarioDto"></param> /// <returns></returns> public List <HorarioDTO> GetBusquedaHorario(CalendarioDTO CalendarioDto) { var dias = new List <HorarioDTO>(); using (var modelo = new ISSSTEEntities()) { var hoy = DateTime.Now; var diasNoLaborables = (from a in modelo.TramiteUnidadAtencion join b in modelo.DiaNoLaborable on a.TramiteUnidadAtencionId equals b.TramiteUnidadAtencionId where a.TramiteUnidadAtencionId == CalendarioDto.TramiteUnidadAtencionId && b.EsActivo select b.Fecha).ToList(); try { for (var i = 1; i < 32; i++) { var valores = CalendarioDto.IdFechaLimite.Split(','); var fechaLimite = new DateTime(int.Parse(valores[0]), int.Parse(valores[1]), int.Parse(valores[2])); var fecha = (i < 10 ? "0" + i : "" + i) + "/" + CalendarioDto.MesAnio; var fechaDate = DateTime.ParseExact(fecha, "dd/MM/yyyy", CultureInfo.CurrentCulture); var esHoy = fechaDate.Year == DateTime.Now.Year && fechaDate.Month == DateTime.Now.Month && fechaDate.Day == DateTime.Now.Day; var horarioDto = new HorarioDTO { Fecha = fechaDate, EsFechaAcontecida = fechaDate < hoy && !esHoy, EsDiaNoLaboral = diasNoLaborables.Contains(fechaDate), EsHoy = esHoy }; if (horarioDto.Fecha > fechaLimite) { horarioDto.EsDiaNoLaboral = true; } dias.Add(horarioDto); } } catch { // ignored } dias = dias.Select(F => { if (!F.EsFechaAcontecida && !F.EsDiaNoLaboral) { var citasAgendadas = (from b in modelo.Solicitud where b.EsActivo && b.FechaCita.Day == F.Fecha.Day && b.FechaCita.Month == F.Fecha.Month && b.FechaCita.Year == F.Fecha.Year && b.TramiteUnidadAtencionId == CalendarioDto.TramiteUnidadAtencionId select b).Count(); try { F.Capacidad = (from b in modelo.Horario where b.EsActivo && b.EsDiaEspecial && b.DiaEspecial.Fecha.Day == F.Fecha.Day && b.DiaEspecial.Fecha.Month == F.Fecha.Month && b.DiaEspecial.Fecha.Year == F.Fecha.Year && b.TramiteUnidadAtencionId == CalendarioDto.TramiteUnidadAtencionId select b.Capacidad).Sum(); } catch { // ignored } if (F.Capacidad == 0) { var dia = (int)F.Fecha.DayOfWeek; try { F.Capacidad = (from b in modelo.Horario where b.EsActivo && b.CatTipoDiaSemanaId == dia && b.TramiteUnidadAtencionId == CalendarioDto.TramiteUnidadAtencionId select b.Capacidad).Sum(); } catch { // ignored } } F.Capacidad -= citasAgendadas; F.EsDiaDisponible = F.Capacidad > 0; } return(F); }) .ToList(); } return(dias); }
public List <HorarioDTO> GetBusquedaHorario(CalendarioDTO CalendarioDto) { var catalogoDao = new CatalogoDAO(); return(catalogoDao.GetBusquedaHorario(CalendarioDto)); }
public List <DuplaValoresDTO> GetTramiteUnidadMedicaEspecial(CalendarioDTO CalendarioDto) { var catalogoDao = new CatalogoDAO(); return(catalogoDao.GetTramiteUnidadMedicaEspecial(CalendarioDto)); }