/// <summary> /// Elimina una cita de la base de datos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnCancelar_Click(object sender, EventArgs e) { string nombreTxt = nombre.Text.Trim(); string correoTxt = correo.Value.Trim(); string fechaTxt = fecha.Text.Trim(); string horaT = horaTxt.Text.Trim(); ManejadorCita manejador = new ManejadorCita(); string codigoMedico = Session["codigoMedico"].ToString(); string confirmacion = manejador.CancelarCita(codigoMedico, fechaTxt, horaT); if (!confirmacion.Contains("error")) { if (!correoTxt.Equals("")) { BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cancelación de cita", "Estimado usuario:\n\n" + "La Clínica Pediátrica Divino Niño le informa que se ha cancelado la " + "cita de atención médica con la siguiente descripción:\n" + "Paciente: " + nombreTxt + "\n" + "Médico: " + Session["nombreMedico"].ToString() + "\n" + "Fecha: " + (DateTime.Parse(fechaTxt)).ToLongDateString() + "\n" + "Hora: " + horaT); } } LimpiarCampos(); MostrarAgenda(diaSeleccionado, confirmacion); }
private void CargarCitas() { string cuenta = Session["Cuenta"].ToString(); ManejadorCita manejador = new ManejadorCita(); listaCitas.Clear(); string confirmacion = manejador.CargarCitasUsuario(listaCitas, cuenta); gridCitas.DataSource = listaCitas; gridCitas.DataBind(); if (confirmacion.Contains("error")) { MostrarMensaje(confirmacion); } else { if (listaCitas.Count == 0) { MostrarMensaje("No tiene citas pendientes"); } } }
/// <summary> /// Carga la lista de pacientes vinculados a la cuenta en un dropdownlist /// </summary> private void CargarPacientes() { try { listaPacientes.Clear(); ManejadorCita manejador = new ManejadorCita(); string cuenta = Session["Cuenta"].ToString(); string confirmacion = manejador.CargarPacientes(listaPacientes, cuenta); if (confirmacion.Contains("error")) { MostrarMensaje(confirmacion); } else { foreach (BLPacienteCita p in listaPacientes) { nombrePaciente.Items.Add(new ListItem(p.NombrePaciente)); } nombrePaciente.Items.Insert(0, new ListItem("Seleccionar")); nombrePaciente.SelectedIndex = 0; nombrePaciente.Items[0].Attributes.Add("disabled", "disabled"); } } catch (Exception ex) { Elog.save(this, ex); } }
/// <summary> /// Envia los datos del formulario a base de datos para almacenar una nueva cita /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnCrear_Click(object sender, EventArgs e) { if (ValidarDatos()) { // Recuperación de los campos de texto string nombreTxt = nombre.Text.Trim(); string edadTxt = edad.Text.Trim(); string correoTxt = correo.Value.Trim(); string telefonoTxt = telefono.Value.Trim(); string fechaTxt = fecha.Text.Trim(); string horaT = horaTxt.Text.Trim(); int numTel = 0; if (!telefonoTxt.Equals("")) { numTel = int.Parse(telefonoTxt); } // Enviar datos para guardar en la base de datos ManejadorCita manejador = new ManejadorCita(); string codigoMedico = Session["codigoMedico"].ToString(); string confirmacion = manejador.CrearCita(codigoMedico, nombreTxt, edadTxt, correoTxt, numTel, fechaTxt, horaT); if (!confirmacion.Contains("error")) { if (!correoTxt.Equals("")) { BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cita Médica", "Estimado usuario:\n\n" + "La Clínica Pediátrica Divino Niño le informa que se ha programado una " + "cita de atención médica. Los detalles de la misma se describen a continuación:\n" + "Paciente: " + nombreTxt + "\n" + "Médico: " + Session["nombreMedico"].ToString() + "\n" + "Fecha: " + (DateTime.Parse(fechaTxt)).ToLongDateString() + "\n" + "Hora: " + horaT); } } LimpiarCampos(); MostrarAgenda(diaSeleccionado, confirmacion); } }
/// <summary> /// Agenda una nueva cita para el paciente seleccionado /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void agendarCita_Click(object sender, EventArgs e) { if (ValidarEntradas()) { string nombreTxt = nombrePaciente.SelectedValue; string edadTxt = edad.Text.Trim(); string correoTxt = correo.Text.Trim(); string telefonoTxt = telefono.Text.Trim(); string fechaTxt = fecha.SelectedValue; string horaT = hora.SelectedValue; int numTel = 0; if (!telefonoTxt.Equals("")) { numTel = int.Parse(telefonoTxt); } // Enviar datos para guardar en la base de datos ManejadorCita manejador = new ManejadorCita(); string codigoMedico = medico.SelectedValue; string confirmacion = manejador.CrearCita(codigoMedico, nombreTxt, edadTxt, correoTxt, numTel, fechaTxt, horaT); if (!confirmacion.Contains("error")) { if (!correoTxt.Equals("")) { BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cita Médica", "Estimado usuario:\n\n" + "La Clínica Pediátrica Divino Niño le informa que se ha programado una " + "cita de atención médica. Los detalles de la misma se describen a continuación:\n" + "Paciente: " + nombreTxt + "\n" + "Médico: " + medico.SelectedItem.ToString() + "\n" + "Fecha: " + (DateTime.Parse(fechaTxt)).ToLongDateString() + "\n" + "Hora: " + horaT); } } Session["confirmacionCreacion"] = confirmacion; Response.Redirect("ListaCitas.aspx"); } else { MostrarMensaje("Favor completar los datos que se le solicitan"); } }
protected void gridCitas_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "cancelar") { ManejadorCita manejador = new ManejadorCita(); int indice = Convert.ToInt32(e.CommandArgument); GridViewRow filaSeleccionada = gridCitas.Rows[indice]; string nombrePaciente = Formato(filaSeleccionada.Cells[0].Text.Trim()); string nombreMedico = Formato(filaSeleccionada.Cells[1].Text.Trim()); string fecha = Formato(filaSeleccionada.Cells[2].Text.Trim()); string hora = Formato(filaSeleccionada.Cells[3].Text.Trim()); string correoTxt = Session["Cuenta"].ToString(); string confirmacion = ""; foreach (BLCita cita in listaCitas) { if (cita.Nombre.Equals(nombrePaciente) && cita.Fecha.Equals(fecha) && cita.Hora.Equals(hora)) { confirmacion = manejador.CancelarCita(cita.CodigoMedico, fecha, hora); if (!confirmacion.Contains("error")) { if (!correoTxt.Equals("")) { BLEnviarCorreo correo = new BLEnviarCorreo(correoTxt, "Cancelación de cita", "Estimado usuario:\n\n" + "La Clínica Pediátrica Divino Niño le informa que se ha cancelado la " + "cita de atención médica con la siguiente descripción:\n" + "Paciente: " + nombrePaciente + "\n" + "Médico: " + nombreMedico + "\n" + "Fecha: " + (DateTime.Parse(fecha)).ToLongDateString() + "\n" + "Hora: " + hora); } } break; } } MostrarMensaje(confirmacion); CargarCitas(); } }
/// <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); } }
/// <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); } } }