internal static IList <Alumno> ObtenerAlumnosPorCursoId(int idCurso)
        {
            var ciclo = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo;

            using (var db = new SMPorresEntities())
            {
                db.Database.Log = s => System.Diagnostics.Debug.Print(s);
                var query = (from a in db.Alumnos
                             join ca in db.CursosAlumnos on a.Id equals ca.IdAlumno
                             where
                             a.Estado == 1 &&
                             ca.IdCurso == idCurso &&
                             ca.CicloLectivo == ciclo
                             select a)
                            .ToList()
                            .Select(
                    a => new Alumno
                {
                    Id              = a.Id,
                    Nombre          = a.Nombre,
                    Apellido        = a.Apellido,
                    IdTipoDocumento = a.IdTipoDocumento,
                    TipoDocumento   = a.TipoDocumento,
                    NroDocumento    = a.NroDocumento,
                    FechaNacimiento = a.FechaNacimiento,
                    EMail           = a.EMail,
                    Direccion       = a.Direccion,
                    IdDomicilio     = a.IdDomicilio,
                    Estado          = a.Estado
                });
                return(query.OrderBy(a => a.NroDocumento).ToList());
            }
        }
Exemple #2
0
 public static BecaAlumno Insertar(int idAlumno, int idPago, short beca)
 {
     using (var db = new SMPorresEntities())
     {
         var trx = db.Database.BeginTransaction();
         try
         {
             var id = db.BecasAlumnos.Any() ? db.BecasAlumnos.Max(ba => ba.Id) + 1 : 1;
             var b  = new BecaAlumno
             {
                 Id             = id,
                 IdAlumno       = idAlumno,
                 PorcentajeBeca = beca
             };
             db.BecasAlumnos.Add(b);
             var p = db.Pagos.Find(idPago);
             p.BecaAlumno = b;
             db.SaveChanges();
             trx.Commit();
             return(b);
         }
         catch (Exception)
         {
             trx.Rollback();
             throw;
         }
     }
 }
 internal static Grupos ObtenerGrupoPorId(decimal id)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.Grupos.Find(id));
     }
 }
Exemple #4
0
        internal static List <PlanPago> ObtenerPlanesPago(int idAlumno, int idCurso)
        {
            using (var db = new SMPorresEntities())
            {
                var query = (from pp in db.PlanesPago
                             where pp.IdAlumno == idAlumno && pp.IdCurso == idCurso
                             select pp)
                            .ToList()
                            .Select(
                    pp => new PlanPago
                {
                    Id             = pp.Id,
                    CantidadCuotas = pp.CantidadCuotas,
                    NroCuota       = pp.NroCuota,
                    ImporteCuota   = pp.ImporteCuota,
                    PorcentajeBeca = pp.PorcentajeBeca,
                    Estado         = pp.Estado,
                    FechaGrabacion = pp.FechaGrabacion,
                    TipoBeca       = pp.TipoBeca
                }
                    );

                return((from pp in query orderby pp.Estado, pp.FechaGrabacion select pp).ToList());
            }
        }
Exemple #5
0
        public static PlanPago Insertar(int idAlumno, int idCurso, short porcentajeBeca, int modalidad,
                                        TipoBeca tipoBeca)
        {
            using (var db = new SMPorresEntities())
            {
                if (db.PlanesPago.Any(pp => pp.IdAlumno == idAlumno && pp.IdCurso == idCurso & pp.Estado == (short)EstadoPlanPago.Vigente))
                {
                    throw new Exception("El alumno ya tiene un plan de pago vigente en el curso seleccionado.");
                }

                db.Database.Log = s => _log.Debug(s);
                using (var trx = db.Database.BeginTransaction())
                {
                    try
                    {
                        var plan = CrearPlanPago(db, idAlumno, idCurso, porcentajeBeca, modalidad, tipoBeca);
                        PagosRepository.CrearMatrícula(db, plan);
                        PagosRepository.CrearCuotas(db, plan, modalidad);
                        trx.Commit();
                        return(plan);
                    }
                    catch (Exception ex)
                    {
                        _log.Error(ex);
                        trx.Rollback();
                        throw;
                    }
                }
            }
        }
Exemple #6
0
        internal static void ActualizarCuotas(int idCurso, decimal importe, bool esMatrícula)
        {
            var ciclo = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo;

            using (var db = new SMPorresEntities())
            {
                var pagos = from p in db.Pagos
                            join pp in db.PlanesPago on p.IdPlanPago equals pp.Id
                            join ca in db.CursosAlumnos on
                            new { pp.IdCurso, pp.IdAlumno } equals new { ca.IdCurso, ca.IdAlumno }
                where !p.Fecha.HasValue &&
                pp.IdCurso == idCurso &&
                ca.CicloLectivo == ciclo
                select p;
                db.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
                if (esMatrícula)
                {
                    pagos = pagos.Where(m => m.NroCuota == 0);
                }
                else
                {
                    pagos = pagos.Where(m => m.NroCuota > 0);
                }
                foreach (var m in pagos)
                {
                    m.ImporteCuota = importe;
                }
                db.SaveChanges();
            }
        }
Exemple #7
0
 public static IList <Pago> ObtenerDeudaPorAlumno(decimal nroDocumento)
 {
     using (var db = new SMPorresEntities())
     {
         var qry = (from pp in db.PlanesPago
                    join a in db.Alumnos on pp.IdAlumno equals a.Id
                    join p in db.Pagos on pp.Id equals p.IdPlanPago
                    join ca in db.CursosAlumnos on new { pp.IdCurso, pp.IdAlumno } equals
                    new { ca.IdCurso, ca.IdAlumno }
                    join c in db.Cuotas on new { cl = ca.CicloLectivo, p.NroCuota } equals
                    new { cl = c.CicloLectivo.Value, c.NroCuota }
                    where
                    a.NroDocumento == nroDocumento &&
                    pp.Estado == (short)EstadoPlanPago.Vigente &&
                    c.VtoCuota <= Configuration.CurrentDate &&
                    p.ImportePagado == null     //Impago
                    select p).ToList()
                   .Select(
             pa => new Pago
         {
             Id            = pa.Id,
             NroCuota      = pa.NroCuota,
             ImporteCuota  = pa.ImporteCuota,
             ImportePagado = pa.ImportePagado
         });
         return(qry.ToList());
     }
 }
Exemple #8
0
        public static IEnumerable <Models.InformesModels.AlumnoCursante> ObtenerAlumnosPorEstado(int idCarrera,
                                                                                                 int idCurso, EstadoAlumno estado)
        {
            using (var db = new SMPorresEntities())
            {
                var query = (
                    from ca in db.CursosAlumnos
                    join a in db.Alumnos on ca.IdAlumno equals a.Id
                    where a.Estado == (byte)estado
                    select new Models.InformesModels.AlumnoCursante
                {
                    IdCarrera = ca.Curso.IdCarrera,
                    Carrera = ca.Curso.Carrera.Nombre,
                    IdCurso = ca.IdCurso,
                    Curso = ca.Curso.Nombre,
                    Nombre = a.Nombre,
                    Apellido = a.Apellido,
                    EMail = a.EMail,
                    Estado = a.Estado,
                    Documento = a.TipoDocumento.Descripcion + " " + a.NroDocumento
                });

                if (idCarrera > 0)
                {
                    query = query.Where(a => a.IdCarrera == idCarrera);
                }
                if (idCurso > 0)
                {
                    query = query.Where(a => a.IdCurso == idCurso);
                }
                return(query.OrderBy(a => a.IdCarrera).ThenBy(a => a.IdCurso).ThenBy(a => a.Estado).ToList());
            }
        }
Exemple #9
0
 public static IList <Alumno> ObtenerAlumnos(string alumno)
 {
     using (var db = new SMPorresEntities())
     {
         var query = (from a in db.Alumnos
                      join td in db.TiposDocumento on a.IdTipoDocumento equals td.Id
                      where a.Nombre.Contains(alumno)
                      select a)
                     .ToList()
                     .Select(
             a => new Alumno
         {
             Id              = a.Id,
             Nombre          = a.Nombre,
             Apellido        = a.Apellido,
             IdTipoDocumento = a.IdTipoDocumento,
             TipoDocumento   = a.TipoDocumento,
             NroDocumento    = a.NroDocumento,
             FechaNacimiento = a.FechaNacimiento,
             EMail           = a.EMail,
             Direccion       = a.Direccion,
             IdDomicilio     = a.IdDomicilio,
             Domicilio       = a.Domicilio,
             Estado          = a.Estado,
             Sexo            = a.Sexo
         });
         return(query.OrderBy(a => a.NroDocumento).ToList());
     }
 }
Exemple #10
0
 public static void Eliminar(decimal id)
 {
     using (var db = new SMPorresEntities())
     {
         if (!db.Alumnos.Any(t => t.Id == id))
         {
             throw new Exception("No existe el alumno con Id " + id);
         }
         var alumno = db.Alumnos.Find(id);
         if (alumno.CursosAlumnos.Any())
         {
             var s = " - " + String.Join("\n - ", alumno.CursosAlumnos.Select(ca => String.Format("{0} de {1}", ca.Curso.Nombre, ca.Curso.Carrera.Nombre)));
             throw new Exception(String.Format("El alumno está asignado a los cursos:\n{1}", alumno.CursosAlumnos.Count(), s));
         }
         if (alumno.PlanesPago.Any())
         {
             var s = " - " + String.Join("\n - ", alumno.PlanesPago.Select(pp => pp.Curso.Nombre));
             throw new Exception(String.Format("El alumno tiene {0} planes de pago en los cursos:\n{1}", alumno.PlanesPago.Count(), s));
         }
         if (alumno.Domicilio != null && alumno.Domicilio.Alumnos.Count == 1)
         {
             var dom = db.Domicilios.Find(alumno.IdDomicilio);
             db.Domicilios.Remove(dom);
         }
         db.Alumnos.Remove(alumno);
         db.SaveChanges();
     }
 }
Exemple #11
0
 public static Alumno Insertar(string nombre, string apellido, int idTipoDocumento, decimal nroDocumento,
                               DateTime fechaNacimiento, string email, string dirección, Domicilio domicilio, byte estado, char sexo)
 {
     using (var db = new SMPorresEntities())
     {
         var trx = db.Database.BeginTransaction();
         try
         {
             var id = db.Alumnos.Any() ? db.Alumnos.Max(a1 => a1.Id) + 1 : 1;
             var a  = new Alumno
             {
                 Id              = id,
                 Nombre          = nombre,
                 Apellido        = apellido,
                 IdTipoDocumento = idTipoDocumento,
                 NroDocumento    = nroDocumento,
                 FechaNacimiento = fechaNacimiento,
                 EMail           = email,
                 Direccion       = dirección,
                 IdDomicilio     = DomiciliosRepository.ObtenerIdDomicilio(db, domicilio),
                 Estado          = estado,
                 Sexo            = sexo.ToString()
             };
             db.Alumnos.Add(a);
             db.SaveChanges();
             trx.Commit();
             return(a);
         }
         catch (Exception)
         {
             trx.Rollback();
             throw;
         }
     }
 }
Exemple #12
0
 internal static Domicilio ObtenerDomicilio(Int32?id)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.Domicilios.Find(id));
     }
 }
Exemple #13
0
 internal static Alumno BuscarAlumnoPorNroDocumento(decimal nroDocumento)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.Alumnos.FirstOrDefault(a => a.NroDocumento == nroDocumento));
     }
 }
 internal static List <CursosAlumno> ObtenerCursosPorAlumno(int idAlumno)
 {
     using (var db = new SMPorresEntities())
     {
         var query = (from ca in db.CursosAlumnos
                      where ca.IdAlumno == idAlumno
                      select new
         {
             ca.Id,
             IdCurso = ca.Curso.Id,
             ca.CicloLectivo,
             Curso = ca.Curso.Nombre,
             Carrera = ca.Curso.Carrera.Nombre
         })
                     .ToList()
                     .Select(
             c => new CursosAlumno
         {
             Id           = c.Id,
             IdCurso      = c.IdCurso,
             CicloLectivo = c.CicloLectivo,
             Curso        = new Curso {
                 Nombre = c.Curso, Carrera = new Carrera {
                     Nombre = c.Carrera
                 }
             },
         }
             );
         return(query.OrderBy(c => c.CicloLectivo).ThenBy(c => c.Curso.Nombre).ToList());
     }
 }
Exemple #15
0
        public static void InsertarPagosCuotas(SMPorresEntities db, Curso curso, int id)
        {
            short minC = CursosRepository.ObtieneMinCuota(curso.Modalidad);
            short maxC = CursosRepository.ObtieneMaxCuota(curso.Modalidad);

            var cuotas = from c in CuotasRepository.ObtenerCuotasActuales()
                         select new { c.NroCuota, c.VtoCuota };

            if (minC != maxC)
            {
                //for (short i = 0; i <= Configuration.MaxCuotas; i++)
                for (short i = minC; i <= maxC; i++)
                {
                    var p = new Pago();
                    p.Id           = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1;
                    p.IdPlanPago   = id;
                    p.NroCuota     = i;
                    p.ImporteCuota = (i == 0) ? curso.ImporteMatricula : curso.ImporteCuota;
                    p.Estado       = (byte)EstadoPago.Impago;
                    p.FechaVto     = cuotas.First(c => c.NroCuota == i).VtoCuota;
                    db.Pagos.Add(p);
                    db.SaveChanges();
                }
            }
        }
 public ConfiguracionWeb ObtenerConfiguracion()
 {
     using (var db = new SMPorresEntities())
     {
         return(db.ConfiguracionesWeb.FirstOrDefault());
     }
 }
Exemple #17
0
        internal static List <Pago> CrearCuotas(SMPorresEntities db, PlanPago planPago, int modalidad)
        {
            //leer modalidad y obtener minCuota y maxCuota
            short minC   = CursosRepository.ObtieneMinCuota(modalidad);
            short maxC   = CursosRepository.ObtieneMaxCuota(modalidad);
            var   result = new List <Pago>();

            if (minC != maxC)
            {
                var curso  = CursosRepository.ObtenerCursoPorId(planPago.IdCurso);
                var cuotas = from c in CuotasRepository.ObtenerCuotasActuales()
                             select new { c.NroCuota, c.VtoCuota };
                for (short i = minC; i <= maxC; i++)
                {
                    var p = new Pago();
                    p.Id           = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1;
                    p.IdPlanPago   = planPago.Id;
                    p.NroCuota     = i;
                    p.ImporteCuota = (i == 0) ? curso.ImporteMatricula : curso.ImporteCuota;
                    p.Estado       = (byte)EstadoPago.Impago;
                    p.FechaVto     = cuotas.First(c => c.NroCuota == i).VtoCuota;
                    db.Pagos.Add(p);
                    db.SaveChanges();
                    result.Add(p);
                }
            }
            return(result);
        }
 public CursoAlumnoWeb ObtenerCursoAlumnoPorId(int id)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.CursosAlumnosWeb.Find(id));
     }
 }
Exemple #19
0
        internal static void GeneraNuevaCuotaDeMatricula(int idPlanPago, decimal importeCuota, int orden)//idPlanPago, int i, decimal importeCuota, int idPago) //, Curso curso)
        {
            using (var db = new SMPorresEntities())
            {
                var cGen = db.Pagos.Where(x =>
                                          x.IdPlanPago == idPlanPago &
                                          x.NroCuota == 0).ToList();

                int loop = 1;
                foreach (var item in cGen)
                {
                    if (loop == orden)
                    {
                        var pa = db.Pagos.Find(item.Id);
                        pa.Estado             = (byte)EstadoPago.Impago;
                        pa.ImporteCuota       = importeCuota;
                        pa.ImportePagoTermino = 0;
                        db.SaveChanges();
                    }
                    loop++;
                }

                if (cGen.Count() == 1 && orden == 2)    // crea la segunda cuota
                {
                    GeneraNuevaCuotaDeMatricula(idPlanPago, 0, importeCuota);
                }
                if (cGen.Count() == 2 && orden == 3)    // crea la tercer cuota
                {
                    //GeneraNuevaCuota(idPlanPago, 0, cGen.FirstOrDefault().PlanPago.Curso);
                    GeneraNuevaCuotaDeMatricula(idPlanPago, 0, importeCuota);
                }
            }
        }
Exemple #20
0
        public void Actualizar(SMPorresEntities db, int idCursoAlumno, Models.WebServices.Pago pago)
        {
            var  p        = db.PagosWeb.Find(pago.Id);
            bool insertar = p == null;

            if (insertar)
            {
                p               = new PagoWeb();
                p.Id            = pago.Id;
                p.IdCursoAlumno = idCursoAlumno;
            }
            p.IdPlanPago          = pago.IdPlanPago;
            p.NroCuota            = (short)pago.NroCuota;
            p.ImporteCuota        = pago.ImporteCuota;
            p.ImporteBeca         = pago.ImporteBeca;
            p.ImporteRecargo      = pago.ImporteRecargo;
            p.ImportePagado       = pago.ImportePagado;
            p.Fecha               = (pago.Fecha == default(DateTime)) ? null : pago.Fecha;
            p.FechaVto            = pago.FechaVto;
            p.ImportePagoTermino  = pago.ImportePagoTérmino;
            p.PorcentajeBeca      = pago.PorcentajeBeca;
            p.FechaVtoPagoTermino = pago.FechaVtoPagoTérmino;
            p.TipoBeca            = pago.TipoBeca;
            p.Estado              = pago.Estado;
            if (insertar)
            {
                db.PagosWeb.Add(p);
            }
            db.SaveChanges();
        }
Exemple #21
0
        public static string ObtenerConcepto(Int32 idPlanPago, Pago pago)
        {
            string concepto = "";

            using (var db = new SMPorresEntities())
            {
                var cuotas = db.Pagos.Where(x => x.IdPlanPago == idPlanPago &&
                                            x.NroCuota == 0 &&
                                            x.Estado != (short)EstadoPago.Baja)
                             .OrderBy(x => x.Id);
                if (cuotas.Count() == 1)
                {
                    concepto = "Matrícula";
                }
                else
                {
                    short orden = 0;
                    foreach (var item in cuotas)
                    {
                        orden += 1;
                        if (item.Id == pago.Id)
                        {
                            concepto = "Matrícula Cuota Nº " + orden.ToString();
                        }
                    }
                }
            }
            return(concepto);
        }
Exemple #22
0
        public int ObtenerIdCuota(int nroCuota)
        {
            using (var db = new SMPorresEntities())
            {
                PagoWeb p2 = new PagoWeb();

                if (nroCuota > 0)
                {
                    p2 = (from p in db.PagosWeb
                          where p.CursoAlumnoWeb.AlumnoWeb.Id == Session.CurrentUserId &&
                          p.NroCuota == nroCuota &&
                          p.Estado != (byte)EstadoPago.Baja
                          select p).FirstOrDefault();
                }
                else
                {
                    p2 = (from p in db.PagosWeb
                          where p.CursoAlumnoWeb.AlumnoWeb.Id == Session.CurrentUserId &&
                          p.NroCuota == nroCuota &&
                          p.Estado != (byte)EstadoPago.Baja
                          select p)
                         .OrderBy(z => z.Id)
                         .FirstOrDefault();
                }
                return((p2 == null) ? 0 : p2.Id);
            }
        }
Exemple #23
0
 internal static PlanPago ObtenerPlanPagoPorId(int id)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.PlanesPago.Find(id));
     }
 }
Exemple #24
0
 internal Usuario ObtenerUsuario(string nombre)
 {
     using (var db = new SMPorresEntities())
     {
         return((from u in db.Usuarios where u.Nombre.ToLower() == nombre.ToLower() select u).FirstOrDefault());
     }
 }
Exemple #25
0
        private static PlanPago CrearPlanPago(SMPorresEntities db, int idAlumno, int idCurso,
                                              short porcentajeBeca, int modalidad, TipoBeca tipoBeca)
        {
            var curso = CursosRepository.ObtenerCursoPorId(idCurso);
            var plan  = new PlanPago
            {
                Id       = db.PlanesPago.Any() ? db.PlanesPago.Max(c1 => c1.Id) + 1 : 1,
                IdAlumno = idAlumno,
                IdCurso  = idCurso,
                //Curso = curso,
                CantidadCuotas  = CursosRepository.ObtieneMaxCuota(modalidad), //Configuration.MaxCuotas,
                NroCuota        = CursosRepository.ObtieneMinCuota(modalidad), //1,
                ImporteCuota    = curso.ImporteCuota,
                PorcentajeBeca  = porcentajeBeca,
                TipoBeca        = (byte)tipoBeca,
                Estado          = (short)EstadoPlanPago.Vigente,
                IdUsuarioEstado = Session.CurrentUser.Id,
                FechaGrabacion  = Configuration.CurrentDate,
                IdUsuario       = Session.CurrentUser.Id,
                Modalidad       = modalidad //curso.Modalidad
            };

            db.PlanesPago.Add(plan);
            db.SaveChanges();
            return(plan);
        }
Exemple #26
0
 public static IEnumerable <Usuario> ObtenerUsuarios()
 {
     using (var db = new SMPorresEntities())
     {
         return((from u in db.Usuarios orderby u.Nombre select u).ToList());
     }
 }
Exemple #27
0
 internal static IList <Pago> ObtenerCuotasAdeudadas(int idPlanPago, Int16 cuotaReferencia)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.Pagos.Where(x => x.IdPlanPago == idPlanPago && x.ImportePagado == null && x.NroCuota <= cuotaReferencia).ToList());
     }
 }
Exemple #28
0
 internal static Usuario ObtenerUsuarioPorId(decimal id)
 {
     using (var db = new SMPorresEntities())
     {
         return(db.Usuarios.Find(id));
     }
 }
 public void Actualizar(List <Models.WebServices.TasaMora> tasasMora)
 {
     using (var db = new SMPorresEntities())
     {
         using (var trx = db.Database.BeginTransaction())
             try
             {
                 db.TasasMoraWebs.RemoveRange(db.TasasMoraWebs);
                 for (int i = 0; i < tasasMora.Count; i++)
                 {
                     var item = tasasMora.ElementAt(i);
                     var t    = new TasasMoraWeb
                     {
                         Id     = i + 1,
                         Desde  = item.Desde,
                         Hasta  = item.Hasta,
                         Tasa   = item.Tasa,
                         Estado = item.Estado
                     };
                     db.TasasMoraWebs.Add(t);
                 }
                 db.SaveChanges();
                 trx.Commit();
             }
             catch (Exception ex)
             {
                 trx.Rollback();
                 throw ex;
             }
     }
 }
 public static Curso Insertar(string nombre, int idCarrera, decimal importeMatrícula, decimal descuentoMatrícula, DateTime descuentoHasta,
                              decimal cuota1, decimal cuota2, decimal cuota3, decimal importeCuota, int modalidad, short estado)
 {
     using (var db = new SMPorresEntities())
     {
         var id = db.Cursos.Any() ? db.Cursos.Max(c1 => c1.Id) + 1 : 1;
         var c  = new Curso
         {
             Id                 = id,
             Nombre             = nombre,
             IdCarrera          = idCarrera,
             ImporteMatricula   = importeMatrícula,
             DescuentoMatricula = descuentoMatrícula,
             FechaVencDescuento = descuentoHasta,
             Cuota1             = cuota1,
             Cuota2             = cuota2,
             Cuota3             = cuota3,
             ImporteCuota       = importeCuota,
             Modalidad          = modalidad,
             Estado             = (short)EstadoCurso.Activo //alta = estado activo
         };
         db.Cursos.Add(c);
         db.SaveChanges();
         return(c);
     }
 }