Пример #1
0
        /// <summary>
        ///     Se agrega al paciente
        /// </summary>
        /// <param name="GeneralCitaDto"></param>
        /// <param name="Modelo"></param>
        /// <returns></returns>
        private Persona AddPaciente(GeneralCitaDTO GeneralCitaDto, ISSSTEEntities Modelo)
        {
            var persona = (from a in Modelo.Persona
                           where a.CURP == GeneralCitaDto.CURPPaciente &&
                           a.Nombre == GeneralCitaDto.NombrePaciente &&
                           a.Paterno == GeneralCitaDto.Apellido1Paciente
                           //&& a.Materno == GeneralCitaDto.Apellido2Paciente
                           select a).FirstOrDefault() ?? new Persona();

            persona.Nombre          = GeneralCitaDto.NombrePaciente;
            persona.Paterno         = GeneralCitaDto.Apellido1Paciente;
            persona.Materno         = GeneralCitaDto.Apellido2Paciente;
            persona.CURP            = GeneralCitaDto.CURPPaciente;
            persona.Correo          = GeneralCitaDto.CorreoPaciente;
            persona.Telefono        = GeneralCitaDto.TelefonoPaciente;
            persona.TelefonoMovil   = GeneralCitaDto.CelularPaciente;
            persona.EsActivo        = true;
            persona.Lada            = GeneralCitaDto.LadaPaciente;
            persona.Edad            = Utilerias.GetEdad(GeneralCitaDto.CURPPaciente);
            persona.EsMasculino     = Utilerias.GetSexo(GeneralCitaDto.CURPPaciente);
            persona.FechaNacimiento = Utilerias.GetFechaNacimiento(GeneralCitaDto.CURPPaciente);

            if (persona.PersonaId == 0)
            {
                Modelo.Persona.Add(persona);
            }
            Modelo.SaveChanges();
            return(persona);
        }
Пример #2
0
        /// <summary>
        ///     Agregar involucrados
        /// </summary>
        /// <param name="Modelo"></param>
        /// <param name="SolicitudId"></param>
        /// <param name="PersonaId"></param>
        /// <param name="CatTipoPersona"></param>
        private void AddInvolucrado(ISSSTEEntities Modelo, int SolicitudId, int PersonaId, int CatTipoPersona)
        {
            var involucrado = new Involucrado
            {
                EsActivo             = true,
                SolicitudId          = SolicitudId,
                CatTipoInvolucradoId = CatTipoPersona,
                PersonaId            = PersonaId
            };

            Modelo.Involucrado.Add(involucrado);
            Modelo.SaveChanges();
        }
Пример #3
0
        //PEER_REV ver si puede reducirse la consulta
        /// <summary>
        ///     Bloqueo de una persona cuando se excede un número de intentos
        /// </summary>
        /// <param name="PersonaDto"></param>
        /// <returns></returns>
        public bool BloqueoPersona(PersonaDTO PersonaDto)
        {
            using (var modelo = new ISSSTEEntities())
            {
                var BaseQuery =
                    (from a in modelo.Persona
                     join b in modelo.Involucrado on a.PersonaId equals b.PersonaId
                     join s in modelo.Solicitud on b.SolicitudId equals s.SolicitudId
                     where s.TramiteUnidadAtencion.CatTipoTramiteId == PersonaDto.CatTipoTramiteId &&
                     a.CURP.Equals(PersonaDto.CURP) && a.Nombre.Equals(PersonaDto.Nombre) && a.Paterno.Equals(PersonaDto.Paterno)
                     select new { persona = a, involucrado = b, solicitud = s }).AsQueryable();

                var fechaDesbloqueo = BaseQuery
                                      .Select(A => A.persona.FechaDesbloqueo)
                                      .Max();

                BaseQuery = BaseQuery.Where(s =>
                                            s.involucrado.CatTipoInvolucradoId == Enumeracion.EnumTipoInvolucrado.Paciente &&
                                            s.involucrado.Solicitud.CatTipoEdoCitaId == Enumeracion.EnumTipoEdoCita.NoAsistio &&
                                            s.involucrado.Solicitud.EsActivo);

                if (fechaDesbloqueo.HasValue)
                {
                    BaseQuery = BaseQuery.Where(s => s.involucrado.Solicitud.FechaRegistro > fechaDesbloqueo);
                }

                var numeroIntentos     = GetNumeroIntentos();
                var numeroCitasPersona = BaseQuery.Count();

                if (numeroCitasPersona >= numeroIntentos)
                {
                    var personaInvolucrada = (from a in modelo.Persona join b in modelo.Involucrado
                                              on a.PersonaId equals b.PersonaId
                                              where a.CURP == PersonaDto.CURP select b).FirstOrDefault();

                    if (personaInvolucrada != null)
                    {
                        personaInvolucrada.Persona.EsUsuarioBloqueado = true;
                    }

                    modelo.SaveChanges();
                    return(true);
                }
                return(false);
            }
        }
Пример #4
0
        /// <summary>
        ///     Cancelación de una cita manualmente
        /// </summary>
        /// <param name="GeneralCitaDto"></param>
        /// <returns></returns>
        public string CancelarCita(GeneralCitaDTO GeneralCitaDto)
        {
            using (var modelo = new ISSSTEEntities())
            {
                CancelacionAutomatica(GeneralCitaDto.NumeroFolio, modelo, GeneralCitaDto.SolicitudId);

                var horarioDto = (from a in modelo.Solicitud
                                  where a.SolicitudId == GeneralCitaDto.SolicitudId &&
                                  a.CatTipoEdoCitaId == Enumeracion.EnumTipoEdoCita.Pendiente &&
                                  a.EsActivo
                                  select new HorarioDTO
                {
                    Fecha = a.FechaCita,
                    HoraInicio = a.Horario.HoraInicio,
                    EsActivo = a.EsActivo
                }).FirstOrDefault();

                if (horarioDto != null && horarioDto.EsActivo)
                {
                    double horasPrevias, horas;
                    DiferenciaHorario(horarioDto, out horasPrevias, out horas);
                    if (horasPrevias <= horas)
                    {
                        var citaAgendada = (from a in modelo.Solicitud
                                            where a.SolicitudId == GeneralCitaDto.SolicitudId
                                            select a).FirstOrDefault();
                        if (citaAgendada != null)
                        {
                            citaAgendada.CatTipoEdoCitaId = Enumeracion.EnumTipoEdoCita.Cancelado;
                            citaAgendada.EsActivo         = false;
                        }
                        modelo.SaveChanges();
                        return(Enumeracion.MensajesServidor[Enumeracion.EnumConstErrores.CitaCancelada]);
                    }
                    return(Enumeracion.EnumVarios.Prefijo +
                           Enumeracion.MensajesServidor[Enumeracion.EnumConstErrores.CitaNoEliminada]);
                }
                return(horarioDto == null
                    ? Enumeracion.EnumVarios.Prefijo +
                       Enumeracion.MensajesServidor[Enumeracion.EnumConstErrores.CitaEliminada]
                    : Enumeracion.EnumVarios.Prefijo +
                       Enumeracion.MensajesServidor[Enumeracion.EnumConstErrores.CitaNoEncontrada]);
            }
        }
Пример #5
0
        /// <summary>
        ///     Se agrega una nueva solicitud
        /// </summary>
        /// <param name="FechaCita"></param>
        /// <param name="GeneralCitaDto"></param>
        /// <param name="Modelo"></param>
        /// <param name="NumeroFolio"></param>
        /// <param name="HorarioId"></param>
        /// <returns></returns>
        private Solicitud AddSolicitud(
            string NumeroFolio, int HorarioId, DateTime FechaCita,
            GeneralCitaDTO GeneralCitaDto, ISSSTEEntities Modelo)
        {
            var solicitud = new Solicitud
            {
                EsActivo = true,
                TramiteUnidadAtencionId = GeneralCitaDto.TramiteUnidadAtencionId,
                NumeroFolio             = NumeroFolio,
                CatTipoEdoCitaId        = Enumeracion.EnumTipoEdoCita.Pendiente,
                HorarioId      = HorarioId,
                FechaCita      = FechaCita,
                FechaRegistro  = DateTime.Now,
                UnidadMedicaId = GeneralCitaDto.UnidadMedicaId
            };

            Modelo.Solicitud.Add(solicitud);
            Modelo.SaveChanges();
            return(solicitud);
        }
Пример #6
0
        /// <summary>
        ///     Contador por Unidad Administrativa y tipo de trámite
        /// </summary>
        /// <param name="TramiteUnidadAtencionId"></param>
        /// <returns></returns>
        private UnidadAtencion GetContadorUA(int TramiteUnidadAtencionId)
        {
            UnidadAtencion auxTua;

            using (var modelo = new ISSSTEEntities())
            {
                auxTua = (from a in modelo.TramiteUnidadAtencion
                          where a.TramiteUnidadAtencionId == TramiteUnidadAtencionId
                          select a.UnidadAtencion).FirstOrDefault();

                if (auxTua != null)
                {
                    auxTua.Contador++;
                }
                modelo.SaveChanges();
            }
            if (auxTua != null)
            {
                auxTua.Contador--;
            }
            return(auxTua);
        }
Пример #7
0
        /// <summary>
        ///     Cancelación automática de una cita vencida a no asistida
        /// </summary>
        /// <param name="NumeroFolio"></param>
        /// <param name="Modelo"></param>
        /// <param name="SolicitudId"></param>
        /// <returns></returns>
        private void CancelacionAutomatica(string NumeroFolio, ISSSTEEntities Modelo, int SolicitudId)
        {
            var solicitud = SolicitudId == 0
                ? (from c in Modelo.Solicitud
                   where c.EsActivo && c.NumeroFolio == NumeroFolio &&
                   c.EsActivo
                   select c).FirstOrDefault()
                : (from c in Modelo.Solicitud
                   where c.EsActivo && c.SolicitudId == SolicitudId &&
                   c.EsActivo
                   select c).FirstOrDefault();

            if (solicitud == null)
            {
                return;
            }

            if (solicitud.FechaCita.Date <= DateTime.Now.Date && solicitud.Horario.HoraInicio.Hours <= DateTime.Now.Hour &&
                solicitud.CatTipoEdoCitaId == Enumeracion.EnumTipoEdoCita.Pendiente)
            {
                solicitud.CatTipoEdoCitaId = Enumeracion.EnumTipoEdoCita.NoAsistio;
                Modelo.SaveChanges();
            }
        }