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); }
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); }
internal static Pago CrearMatrícula(SMPorresEntities db, PlanPago planPago) { var p = new Pago(); p.Id = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1; p.IdPlanPago = planPago.Id; p.NroCuota = 0; var curso = CursosRepository.ObtenerCursoPorId(planPago.IdCurso); p.ImporteCuota = curso.ImporteMatricula; var vto = (from c in CuotasRepository.ObtenerCuotasActuales() where c.NroCuota == 0 select c.VtoCuota).First(); p.FechaVto = vto; p.Estado = (byte)EstadoPago.Impago; db.Pagos.Add(p); db.SaveChanges(); return(p); }