public static Excepcion_Calendario ActualizarExcepcion(Excepcion_Calendario excepcion) { using (var bd = new DescarEntity()) { var pro = (from p in bd.Excepcion_Calendario where p.id_exception_calendario == excepcion.id_exception_calendario select p).Single(); pro.fecha_comienzo = excepcion.fecha_comienzo; pro.fecha_fin = excepcion.fecha_fin; pro.hora_fin_1 = excepcion.hora_fin_1; pro.hora_inicio_1 = excepcion.hora_inicio_1; pro.hora_inicio_2 = excepcion.hora_inicio_2; pro.hora_fin_2 = excepcion.hora_fin_2; pro.hora_inicio_3 = excepcion.hora_inicio_3; pro.hora_fin_3 = excepcion.hora_fin_3; pro.hora_fin_4 = excepcion.hora_fin_4; pro.hora_inicio_4 = excepcion.hora_inicio_4; pro.hora_inicio_5 = excepcion.hora_inicio_5; pro.hora_fin_5 = excepcion.hora_fin_5; pro.laborable = excepcion.laborable; pro.patron_repeticion = excepcion.patron_repeticion; pro.freq_interval = excepcion.freq_interval; pro.freq_recurrence_factor = excepcion.freq_recurrence_factor; pro.freq_relative_interval = excepcion.freq_relative_interval; pro.freq_subday_interval = excepcion.freq_subday_interval; pro.freq_subday_type = excepcion.freq_subday_type; pro.freq_type = excepcion.freq_type; bd.SaveChanges(); return(pro); } }
public static Excepcion_Calendario InsertarExcepcion(Excepcion_Calendario excepcion) { using (var bd = new DescarEntity()) { bd.Excepcion_Calendario.Add(excepcion); bd.SaveChanges(); } return(excepcion); }
public static void Eliminar(Excepcion_Calendario exce) { using (var bd = new DescarEntity()) { var sub = (from s in bd.Excepcion_Calendario where s.id_exception_calendario == exce.id_exception_calendario select s).Single(); bd.Excepcion_Calendario.Remove(sub); bd.SaveChanges(); } }
/// <summary> /// INCOMPLETO. VERIFICAR LABORAL Y COMPLETAR SWITCH /// Devuelve una lista de los días que corre la excepcion /// </summary> /// <param name="exc"></param> /// <returns></returns> private static List <DateTime> CalcularExcepciones(Excepcion_Calendario exc) { List <DateTime> fechasExcepcion = new List <DateTime>(); DateTime fecha_actual = exc.fecha_comienzo.Value; switch (exc.freq_type) { //Única vez, se usa en las fechas indicadas case 1: fechasExcepcion.Add(fecha_actual); return(fechasExcepcion); break; //Diario case 4: //Se usa cada freq_interval dias do { fechasExcepcion.Add(fecha_actual); fecha_actual = fecha_actual.AddDays((double)exc.freq_interval == 0 ? 1 : (double)exc.freq_interval); } while (fecha_actual <= exc.fecha_fin.Value); break; //Semanal case 8: // 1: Domingo, 2: Lunes, 4: Martes, 8: Miercoles, // 16: Jueves, 32: Viernes, 64: Sábado do { char[] dias = Convert.ToString(exc.freq_interval.Value, 2).PadLeft(7, '0').ToCharArray().Reverse().ToArray(); if (dias[(int)fecha_actual.DayOfWeek] == '1') { fechasExcepcion.Add(fecha_actual); } fecha_actual = fecha_actual.AddDays(1); } while (fecha_actual <= exc.fecha_fin.Value); break; //Mensual case 16: // El dia freq_interval del mes do { if ((int)fecha_actual.Day == exc.freq_interval) { fechasExcepcion.Add(fecha_actual); fecha_actual = fecha_actual.AddMonths(1); } else { fecha_actual = fecha_actual.AddDays(1); } } while (fecha_actual <= exc.fecha_fin.Value); break; //Mensual relativo case 32: //TODOOO break; //Anual case 64: //La fecha en formato ddMM String aux = exc.freq_interval.ToString().PadLeft(4, '0').Insert(2, "/") + "/" + exc.fecha_comienzo.Value.Year; DateTime fecha_aux = DateTime.Parse(aux, CultureInfo.CreateSpecificCulture("es-ES")); if (fecha_aux < exc.fecha_comienzo) { fecha_aux = fecha_aux.AddYears(1); } while (fecha_aux >= exc.fecha_comienzo & fecha_aux <= exc.fecha_fin) { fechasExcepcion.Add(fecha_aux); fecha_aux = fecha_aux.AddYears(1); } break; } return(fechasExcepcion); }
public static Excepcion_Calendario Insertar(Excepcion_Calendario excepcion) { return(CalendarioDB.InsertarExcepcion(excepcion)); }
public static void Eliminar(Excepcion_Calendario exce) { CalendarioDB.Eliminar(exce); }
public static Excepcion_Calendario ActualizarExcepcion(Excepcion_Calendario excepcion) { return(CalendarioDB.ActualizarExcepcion(excepcion)); }