internal static List <DateTime> generarDiasQueTrabajaRango(Profesional prof, int id_especialidad, Rango_Atencion r) { List <DateTime> dias = Rango_Atencion.generarDiasRango(r); List <DayOfWeek> diasQueTrabaja = prof.diasQueTrabajaNormalmente(id_especialidad, r); dias.RemoveAll(dia => !diasQueTrabaja.Contains(dia.DayOfWeek)); return(dias); }
internal static bool SeSolapan(Int64 matricula, Rango_Atencion rango) { List <DateTime> diasRangosActuales = new List <DateTime>(); Rango_Atencion.rangosPorProfesional(matricula).ForEach(r => diasRangosActuales.AddRange(Rango_Atencion.generarDiasRango(r))); List <DateTime> diasRangoNuevo = Rango_Atencion.generarDiasRango(rango); return(diasRangoNuevo.Any(dia => diasRangosActuales.Select(d => d.Date).Contains(dia.Date))); }
public static List <DateTime> generarDiasRango(Rango_Atencion rango) //Devuelve todos los dias menos el domingo { List <DateTime> lista = new List <DateTime>(); DateTime fecha = rango.fecha_desde; if (ClinicaFrba.Utils.Fechas.getCurrentDateTime().Date > fecha) { fecha = ClinicaFrba.Utils.Fechas.getCurrentDateTime().Date; } while (fecha <= rango.fecha_hasta) { if (fecha.DayOfWeek != DayOfWeek.Sunday) { lista.Add(fecha); } fecha = fecha.AddDays(1); } return(lista); }
public static List <Rango_Atencion> rangosPorProfesional(Int64 matricula) { SqlCommand comando = new SqlCommand(); comando.Connection = DBConnector.ObtenerConexion(); comando.CommandText = "SELECT id_rango,matricula,fecha_desde,fecha_hasta FROM ELIMINAR_CAR.Rango_Atencion WHERE matricula=@matricula"; comando.Parameters.Add("@matricula", SqlDbType.BigInt).Value = matricula; SqlDataReader reader = comando.ExecuteReader(); List <Rango_Atencion> lista = new List <Rango_Atencion>(); while (reader.Read()) { Rango_Atencion rango = new Rango_Atencion(); rango.id_rango = reader.GetInt64(0); rango.matricula = reader.GetInt64(1); rango.fecha_desde = reader.GetDateTime(2); rango.fecha_hasta = reader.GetDateTime(3); lista.Add(rango); } reader.Close(); return(lista); }
public static Int64 rangoPorDia(Int64 matricula, int id_especialidad, DateTime dia) { List <Rango_Atencion> rangos = Rango_Atencion.rangosPorProfesional(matricula); return(rangos.Find(rango => Rango_Atencion.generarDiasRango(rango).Contains(dia)).id_rango); }
public List <DayOfWeek> diasQueTrabajaNormalmente(int id_especialidad, Rango_Atencion rango) // Sin sacarle los dias cancelados { List <Agenda_Diaria> agenda = Agenda_Diaria.getAgendaProfesional(this.matricula, id_especialidad, rango.id_rango); return(agenda.Select(a => a.dia).ToList <DayOfWeek>()); }