Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public static Excepcion_Calendario InsertarExcepcion(Excepcion_Calendario excepcion)
 {
     using (var bd = new DescarEntity())
     {
         bd.Excepcion_Calendario.Add(excepcion);
         bd.SaveChanges();
     }
     return(excepcion);
 }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
 public static Excepcion_Calendario Insertar(Excepcion_Calendario excepcion)
 {
     return(CalendarioDB.InsertarExcepcion(excepcion));
 }
Ejemplo n.º 6
0
 public static void Eliminar(Excepcion_Calendario exce)
 {
     CalendarioDB.Eliminar(exce);
 }
Ejemplo n.º 7
0
 public static Excepcion_Calendario ActualizarExcepcion(Excepcion_Calendario excepcion)
 {
     return(CalendarioDB.ActualizarExcepcion(excepcion));
 }