Beispiel #1
0
        public List <Periodo_activa_por> ObtenerFormulariosDisponibles(DateTime?inicio, DateTime?fin)
        {
            List <Periodo_activa_por> formularios = new List <Periodo_activa_por>();

            String correo = HttpContext.User.Identity.Name;

            var formsDB = db.ObtenerFormulariosDeEstudiante(correo, inicio, fin).ToList();

            foreach (var form in formsDB)
            {
                Periodo_activa_por periodo = new Periodo_activa_por
                {
                    CSigla      = form.SiglaCurso,
                    FCodigo     = form.Codigo,
                    GAnno       = form.Anno,
                    GNumero     = form.NumGrupo,
                    GSemestre   = form.Semestre,
                    FechaInicio = form.FechaInicio,
                    FechaFin    = form.FechaFin,
                };

                formularios.Add(periodo);
            }

            return(formularios);
        }
Beispiel #2
0
        public List <Periodo_activa_por> ObtenerFormulariosSemestre()
        {
            List <Periodo_activa_por> formularios = new List <Periodo_activa_por>();

            String correo = HttpContext.User.Identity.Name;

            var formsDB = db.ObtenerFormulariosPorSemestre(correo, DateTime.Now.Year, SemestreActual);

            foreach (var form in formsDB)
            {
                Periodo_activa_por periodo = new Periodo_activa_por
                {
                    CSigla      = form.SiglaCurso,
                    FCodigo     = form.Codigo,
                    GAnno       = form.Anno,
                    GNumero     = form.NumGrupo,
                    GSemestre   = form.Semestre,
                    FechaInicio = form.FechaInicio,
                    FechaFin    = form.FechaFin,
                };

                formularios.Add(periodo);
            }

            return(formularios);
        }
        public FechasSolapadasInfo VerificarFechasSolapadas(string FCodigo,
                                                            int GAnno,
                                                            byte GSemestre,
                                                            byte GNumero,
                                                            DateTime fechaInicio,
                                                            DateTime fechaFin)
        {
            // Verificar si se solapa la fecha de inicio del form
            var inicioSolapada = from p in db.Periodo_activa_por
                                 where p.FCodigo == FCodigo &&
                                 p.GAnno == GAnno &&
                                 p.GSemestre == GSemestre &&
                                 p.GNumero == GNumero &&
                                 (fechaInicio <= p.FechaInicio && p.FechaInicio <= fechaFin)
                                 select p.FechaInicio;

            // Verificar si se solapa la fecha de fin del form
            var finSolapada = from p in db.Periodo_activa_por
                              where p.FCodigo == FCodigo &&
                              p.GAnno == GAnno &&
                              p.GSemestre == GSemestre &&
                              p.GNumero == GNumero &&
                              (fechaInicio <= p.FechaFin && p.FechaFin <= fechaFin)
                              select p.FechaFin;


            FechasSolapadasInfo fechas   = new FechasSolapadasInfo();
            Periodo_activa_por  original = new Periodo_activa_por();

            if (!inicioSolapada.Any() && !finSolapada.Any())
            {
                return(null);
            }

            // Si la fecha se solapa
            if (inicioSolapada.Any())
            {
                // Guardo la original
                original.FechaInicio = inicioSolapada.FirstOrDefault();
                // Guardo la nueva
                fechas.FechaInicioNueva = fechaInicio;

                if (!finSolapada.Any())
                {
                    original.FechaFin = (from p in db.Periodo_activa_por
                                         where p.FCodigo == FCodigo &&
                                         p.GAnno == GAnno &&
                                         p.GSemestre == GSemestre &&
                                         p.GNumero == GNumero &&
                                         p.FechaInicio == original.FechaInicio
                                         select p.FechaFin).FirstOrDefault();
                }
            }

            // Si la fecha se solapa
            if (finSolapada.Any())
            {
                // Guardo la original
                original.FechaFin = finSolapada.FirstOrDefault();
                // Guardo la nueva
                fechas.FechaFinNueva = fechaFin;

                if (!inicioSolapada.Any())
                {
                    original.FechaInicio = (from p in db.Periodo_activa_por
                                            where p.FCodigo == FCodigo &&
                                            p.GAnno == GAnno &&
                                            p.GSemestre == GSemestre &&
                                            p.GNumero == GNumero &&
                                            p.FechaFin == original.FechaFin
                                            select p.FechaInicio).FirstOrDefault();
                }
            }

            fechas.PeriodoOriginal = original;

            return(fechas);
        }