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()); } }
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)); } }
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()); } }
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; } } } }
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(); } }
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()); } }
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()); } }
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()); } }
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(); } }
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; } } }
internal static Domicilio ObtenerDomicilio(Int32?id) { using (var db = new SMPorresEntities()) { return(db.Domicilios.Find(id)); } }
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()); } }
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()); } }
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)); } }
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); } } }
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(); }
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); }
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); } }
internal static PlanPago ObtenerPlanPagoPorId(int id) { using (var db = new SMPorresEntities()) { return(db.PlanesPago.Find(id)); } }
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()); } }
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); }
public static IEnumerable <Usuario> ObtenerUsuarios() { using (var db = new SMPorresEntities()) { return((from u in db.Usuarios orderby u.Nombre select u).ToList()); } }
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()); } }
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); } }