Ejemplo n.º 1
0
        /// <summary>
        /// Elimina el dia seleccionado en el grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void vistaAgenda_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Eliminar")
            {
                string          codigoMedico = Session["codigoMedico"].ToString();
                ManejadorAgenda manejador    = new ManejadorAgenda();
                int             indice       = Convert.ToInt32(e.CommandArgument);

                GridViewRow filaSeleccionada = vistaAgenda.Rows[indice];
                TableCell   nombreDia        = filaSeleccionada.Cells[0];
                string      dia = nombreDia.Text.Replace("&#233;", "é").Replace("&#225;", "á").Replace("&#237;", "í").Replace("&#250;", "ú").Replace("&#241;", "ñ");

                string confirmacion = manejador.EliminarHorario(codigoMedico, dia);
                string colorMensaje = "";

                if (confirmacion.Contains("error"))
                {
                    colorMensaje             = "danger";
                    mensajeConfirmacion.Text = "<div class=\"alert alert-" + colorMensaje + " alert-dismissible fade show\" " +
                                               "role=\"alert\"> <strong></strong>" + confirmacion + "<button" +
                                               " type = \"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">" +
                                               " <span aria-hidden=\"true\">&times;</span> </button> </div>";
                    mensajeConfirmacion.Visible = true;
                }
                else
                {
                    MostrarAgenda(new List <BLAgendaEstandar>(), codigoMedico, false);
                    ScriptManager.RegisterStartupScript(this, GetType(), "Limpiar campos de texto", "limpiar();", true);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Muestra el los dias laborales en el grid
        /// </summary>
        /// <param name="agenda"></param>
        /// <param name="codigo"></param>
        /// <param name="primeraVez"></param>
        private void MostrarAgenda(List <BLAgendaEstandar> agenda, string codigo, bool primeraVez)
        {
            ManejadorAgenda manejador    = new ManejadorAgenda();
            string          duracionCita = "";

            try
            {
                duracionCita = duracion.Value.Trim();
            }
            catch (Exception)
            {
                duracionCita = "";
            }

            string confirmacion = manejador.ActualizarAgenda(agenda, codigo, duracionCita);

            string colorMensaje = "success";

            if (confirmacion.Contains("error"))
            {
                colorMensaje = "danger";
            }
            else
            {
                // Si la agenda esta vacia no muestra el grid

                if (agenda.Count == 0)
                {
                    confirmacion           = "En este momento no cuenta un horario laboral";
                    vistaAgenda.DataSource = agenda;
                    vistaAgenda.DataBind();
                }
                else
                {
                    // Se muestra la agenda

                    vistaAgenda.DataSource = agenda;
                    vistaAgenda.DataBind();
                    vistaAgenda.HeaderRow.TableSection = TableRowSection.TableHeader;
                    Limpiar();
                    //UpdatePanel2.Update();


                    if (primeraVez)
                    {
                        confirmacion = "La agenda se cargó exitosamente";
                    }
                }
            }
            UpdatePanel1.Update();

            mensajeConfirmacion.Text = "<div class=\"alert alert-" + colorMensaje + " alert-dismissible fade show\" " +
                                       "role=\"alert\"> <strong></strong>" + confirmacion + "<button" +
                                       " type = \"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">" +
                                       " <span aria-hidden=\"true\">&times;</span> </button> </div>";
            mensajeConfirmacion.Visible = true;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Carga la lista fechas disponibles para el medico
        /// </summary>
        /// <param name="codigoMedico"></param>
        private void CargarFechas(string codigoMedico)
        {
            fecha.Items.Clear();

            hora.Items.Clear();

            agendaMedico.Clear();

            ManejadorAgenda manejadorAgenda = new ManejadorAgenda();


            string confirmacion = "";


            confirmacion = manejadorAgenda.CargaHorasDisponibilidad(agendaMedico, codigoMedico);

            if (!confirmacion.Contains("error"))
            {
                for (int i = 0; i < 7; i++)
                {
                    DateTime temporal = DateTime.Now.AddDays(i);

                    string nombreDia = temporal.ToString("dddd", new CultureInfo("es-ES")).ToUpperInvariant();

                    nombreDia = nombreDia.Substring(0, 1).ToUpper() + nombreDia.Substring(1).ToLower();

                    foreach (BLAgendaEstandar dia in agendaMedico)
                    {
                        if (dia.Dia.Equals(nombreDia))
                        {
                            fecha.Items.Add(new ListItem(temporal.ToString("dd/MM/yyy")));
                        }
                    }
                }

                string disponible = "Seleccionar";

                if (agendaMedico.Count == 0)
                {
                    disponible = "No disponible";
                }

                fecha.Items.Insert(0, new ListItem(disponible));
                fecha.SelectedIndex = 0;
                fecha.Items[0].Attributes.Add("disabled", "disabled");
            }
            else
            {
                MostrarMensaje(confirmacion);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Obtiene el horario del medico y las citas que estan agendadas para una fecha en particular
        /// </summary>
        /// <param name="fecha">Fecha</param>
        /// <param name="presionoBoton">Presiono boton</param>
        private void MostrarAgenda(DateTime fecha, string presionoBoton)
        {
            try
            {
                diaSeleccionado = fecha;

                string codigoMedico = Session["codigoMedico"].ToString();

                listaCitas.Clear();

                string fechaSeleccionada = diaSeleccionado.ToShortDateString();

                ManejadorCita manejadorCita = new ManejadorCita();

                string confirmacion = manejadorCita.CargarCitas(listaCitas, codigoMedico, fechaSeleccionada);



                // Si no hubo problema al cargar las citas se procede a cargar la disponibilidad

                if (!confirmacion.Contains("error"))
                {
                    // Se obtiene la agenda de disponibilidad del medico para el dia seleccionado

                    ManejadorAgenda manejadorAgenda = new ManejadorAgenda();

                    string nombreDia = diaSeleccionado.ToString("dddd", new CultureInfo("es-ES")).ToUpperInvariant();
                    string nombreMes = diaSeleccionado.ToString("MMMM", new CultureInfo("es-ES")).ToUpperInvariant();
                    int    numeroDia = diaSeleccionado.Day;

                    nombreDia = nombreDia.Substring(0, 1).ToUpper() + nombreDia.Substring(1).ToLower();
                    nombreMes = nombreMes.Substring(0, 1).ToUpper() + nombreMes.Substring(1).ToLower();


                    BLAgendaEstandar blDia = new BLAgendaEstandar();

                    blDia.CodigoMedico = codigoMedico;
                    blDia.Dia          = nombreDia;

                    confirmacion = manejadorAgenda.CargarDisponibilidad(blDia);



                    if (!confirmacion.Contains("error"))
                    {
                        // Se crea una lista de items a mostrar en el grid

                        List <ListaItem> agenda = new List <ListaItem>();

                        //  Si la lista de citas y de disponibilidad esta vacia

                        if ((listaCitas.Count == 0) && (blDia.HoraInicio == null))
                        {
                            confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " no hay eventos";
                        }
                        else
                        {
                            // Si no hay disponibilidad pero si hay citas pedientes

                            if ((listaCitas.Count > 0) && (blDia.HoraInicio == null))
                            {
                                confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " tiene citas pendientes";

                                foreach (BLCita cita in listaCitas)
                                {
                                    agenda.Add(new ListaItem(cita.Hora, "Ocupado"));
                                }
                            }

                            string segundaConfirmacion = manejadorAgenda.ObtenerDuracionCita(codigoMedico);

                            bool duracionCapturada = true;

                            int duracionCita = 0;

                            try
                            {
                                duracionCita = int.Parse(segundaConfirmacion);
                            }
                            catch (Exception)
                            {
                                duracionCapturada = false;
                            }

                            if ((!segundaConfirmacion.Contains("error")) && (duracionCapturada))
                            {
                                //////////////////////////////////////////////////

                                DateTime horaInicio = DateTime.Now;
                                DateTime horaFin    = DateTime.Now;
                                DateTime temporal   = DateTime.Now;

                                if (blDia.HoraInicio != null)
                                {
                                    horaInicio = DateTime.Parse(blDia.HoraInicio);
                                    horaFin    = DateTime.Parse(blDia.HoraFin);
                                    temporal   = horaInicio;
                                }

                                string t      = "";
                                string estado = "";


                                // Si la lista de citas esta vacia pero hay disponibilidad

                                if ((listaCitas.Count == 0) && (blDia.HoraInicio != null))
                                {
                                    confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " no tiene citas pendientes";


                                    while (temporal < horaFin)
                                    {
                                        t = ConvertirFormato(temporal);

                                        temporal = temporal.AddMinutes(duracionCita);

                                        agenda.Add(new ListaItem(t, "Disponible"));
                                    }
                                }


                                // Si hay disponibilidad y citas

                                if ((listaCitas.Count > 0) && (blDia.HoraInicio != null))
                                {
                                    confirmacion = "El día " + nombreDia + " " + numeroDia + " de " + nombreMes + " tiene citas pendientes";


                                    // Primero se incluye la disponibilidad

                                    while (temporal < horaFin)
                                    {
                                        t = ConvertirFormato(temporal);

                                        temporal = temporal.AddMinutes(duracionCita);

                                        agenda.Add(new ListaItem(t, "Disponible"));
                                    }


                                    // Luego se incluyen las citas

                                    bool existe = false;

                                    foreach (BLCita cita in listaCitas)
                                    {
                                        foreach (ListaItem elemento in agenda)
                                        {
                                            if (elemento.Hora.Equals(cita.Hora))
                                            {
                                                elemento.Estado = "Ocupado";
                                                existe          = true;
                                                break;
                                            }
                                            else
                                            {
                                                existe = false;
                                            }
                                        }
                                        if (existe == false)
                                        {
                                            agenda.Add(new ListaItem(cita.Hora, "Ocupado"));
                                        }
                                    }

                                    // Se ordena la lista

                                    agenda.Sort((x, y) => string.Compare(x.Hora, y.Hora));
                                }
                            }
                            else
                            {
                                confirmacion = "Ocurrió un error al cargar la duración de las citas o esta no se ha establecido";
                            }
                            /////////////////////////////////////////////
                        }

                        vistaAgenda.DataSource = agenda;
                        vistaAgenda.DataBind();
                        //  vistaAgenda.HeaderRow.TableSection = TableRowSection.TableHeader;
                    }
                }

                if (!presionoBoton.Equals(""))
                {
                    confirmacion = presionoBoton;
                }

                MostrarMensaje(confirmacion);
            }
            catch (Exception ex)
            {
                Elog.save(this, ex);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Cargar la lista de horas disponibles para el medico
        /// </summary>
        private void CargarHoras(string codigoMedico)
        {
            hora.Items.Clear();

            string fechaSeleccionada = fecha.SelectedValue;

            DateTime temporal = DateTime.Parse(fechaSeleccionada);

            string nombreDia = temporal.ToString("dddd", new CultureInfo("es-ES")).ToUpperInvariant();

            nombreDia = nombreDia.Substring(0, 1).ToUpper() + nombreDia.Substring(1).ToLower();

            BLAgendaEstandar dia = ObtenerDia(nombreDia);

            if (dia != null)
            {
                DateTime        horaInicio      = DateTime.Parse(dia.HoraInicio);
                DateTime        horaFin         = DateTime.Parse(dia.HoraFin);
                DateTime        i               = horaInicio;
                ManejadorAgenda manejadorAgenda = new ManejadorAgenda();

                string confirmacion = manejadorAgenda.ObtenerDuracionCita(codigoMedico);

                bool duracionCapturada = true;

                int duracionCita = 0;

                try
                {
                    duracionCita = int.Parse(confirmacion);
                }
                catch (Exception)
                {
                    duracionCapturada = false;
                }

                if ((!confirmacion.Contains("error")) && (duracionCapturada))
                {
                    string            t          = "";
                    List <ListaHoras> listaHoras = new List <ListaHoras>();

                    while (i < horaFin)
                    {
                        t = ConvertirFormato(i);

                        i = i.AddMinutes(duracionCita);

                        listaHoras.Add(new ListaHoras(t));
                    }

                    ManejadorCita manejadorCita = new ManejadorCita();

                    List <BLCita> horasCitas = new List <BLCita>();

                    confirmacion = manejadorCita.CargarHorasCita(horasCitas, codigoMedico, fechaSeleccionada);

                    if (!confirmacion.Contains("error"))
                    {
                        foreach (BLCita h in horasCitas)
                        {
                            for (int j = 0; j < listaHoras.Count; j++)
                            {
                                if (listaHoras[j].Hora.Equals(h.Hora))
                                {
                                    listaHoras.RemoveAt(j);
                                }
                            }
                        }
                        foreach (ListaHoras elemento in listaHoras)
                        {
                            hora.Items.Add(new ListItem(elemento.Hora));
                        }
                        string disponible = "Seleccionar";

                        if (listaHoras.Count == 0)
                        {
                            disponible = "No disponible";
                        }

                        hora.Items.Insert(0, new ListItem(disponible));
                        hora.SelectedIndex = 0;
                        hora.Items[0].Attributes.Add("disabled", "disabled");
                    }
                    else
                    {
                        MostrarMensaje(confirmacion);
                    }
                }
                else
                {
                    MostrarMensaje(confirmacion);
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Valida las entradas de la interfaz gráfica
        /// </summary>
        private string ValidarEntradas()
        {
            bool diaMarcado = false;

            if (lunes.Checked)
            {
                diaMarcado = true;
            }
            if (martes.Checked)
            {
                diaMarcado = true;
            }
            if (miercoles.Checked)
            {
                diaMarcado = true;
            }
            if (jueves.Checked)
            {
                diaMarcado = true;
            }
            if (viernes.Checked)
            {
                diaMarcado = true;
            }
            if (sabado.Checked)
            {
                diaMarcado = true;
            }
            if (domingo.Checked)
            {
                diaMarcado = true;
            }

            // Si selecciono un dia, entonces se procede a validar horas

            bool     formatoHoraCorrecto = true;
            string   confirmacion        = "Bien";
            DateTime horaInicio          = DateTime.Now;
            DateTime horaFin             = DateTime.Now;

            if (diaMarcado)
            {
                try
                {
                    horaInicio = DateTime.Parse(clockpicker.Value);
                    horaFin    = DateTime.Parse(clockpicker2.Value);
                }
                catch (Exception)
                {
                    formatoHoraCorrecto = false;
                }

                if (formatoHoraCorrecto)
                {
                    if (horaFin < horaInicio)
                    {
                        confirmacion = "La hora de inicio debe comenzar antes que la hora de fin";
                    }
                    else
                    {
                        bool vacio = false;
                        if (duracion == null)
                        {
                            vacio = true;
                        }
                        else
                        {
                            if (duracion.Value == "")
                            {
                                vacio = true;
                            }
                        }

                        if (!vacio)
                        {
                            double minutos = horaFin.Subtract(horaInicio).TotalMinutes;
                            if (minutos < (int.Parse(duracion.Value)))
                            {
                                confirmacion = "La duración de la cita no se ajusta al intervalo de horas laborales";
                            }
                        }
                        else
                        {
                            ManejadorAgenda manejador    = new ManejadorAgenda();
                            string          codigoMedico = Session["codigoMedico"].ToString();
                            string          obtenida     = manejador.ObtenerDuracionCita(codigoMedico);

                            if (obtenida.Contains("error"))
                            {
                                confirmacion = "Ocurrió un error al intentar obtener la duración de las citas";
                            }
                            else
                            {
                                int  min            = 0;
                                bool existeDuracion = true;
                                try
                                {
                                    min = int.Parse(obtenida);
                                }
                                catch (Exception)
                                {
                                    existeDuracion = false;
                                }

                                if (!existeDuracion)
                                {
                                    confirmacion = "Se requiere establecer el tiempo de duración para las citas";
                                }
                            }
                        }
                    }
                }
                else
                {
                    confirmacion = "El formato de hora no es correcto";
                }
            }
            else
            {
                confirmacion = "Al menos un día debe ser seleccionado";
            }
            return(confirmacion);
        }