public ConsultasWeb.Alumno ObtenerAlumno(SMPorresEntities db, int idAlumno) { _log.Debug("Obteniendo datos de alumno para subir a la web"); var alumno = db.Alumnos.Find(idAlumno); db.Entry(alumno).Reference(t => t.TipoDocumento).Load(); db.Entry(alumno).Collection(t => t.CursosAlumnos).Load(); var a = new ConsultasWeb.Alumno { Id = alumno.Id, Nombre = alumno.Nombre, Apellido = alumno.Apellido, TipoDocumento = alumno.TipoDocumento.Descripcion, NroDocumento = alumno.NroDocumento, Contraseña = alumno.Contraseña }; var conf = ConfiguracionRepository.ObtenerConfiguracion(); var cicloLectivo = conf.CicloLectivo; var díasVtoPagoTermino = conf.DiasVtoPagoTermino ?? 0; a.CursosAlumnos = (from ca in db.CursosAlumnos where ca.IdAlumno == a.Id && ca.CicloLectivo == cicloLectivo select new CursoAlumno { Id = ca.Id, IdCurso = ca.IdCurso, Curso = ca.Curso.Nombre, IdCarrera = ca.Curso.IdCarrera, Carrera = ca.Curso.Carrera.Nombre }).ToArray(); foreach (var ca in a.CursosAlumnos) { ca.Pagos = ObtenerPagos(db, a.Id, ca.IdCurso, díasVtoPagoTermino); } //.ToList() ////select ca).ToList() //.Select( // ca => new CursoAlumno { // Id = ca.Id, // IdCurso = ca.IdCurso, // Curso = "", //ca.Curso.Nombre, // IdCarrera = 0, //ca.Curso.Carrera.Id, // Carrera = "", //ca.Curso.Carrera.Nombre, // Pagos = ObtenerPagos(db, a.Id, ca.IdCurso, díasVtoPagoTermino) // }).ToArray(); return(a); }
private static void SubirAWeb(SMPorresEntities db, int id) { var uploadData = Boolean.Parse(System.Configuration.ConfigurationManager.AppSettings["UploadData"]); if (uploadData) { var alumnoWeb = new WebRepository().ObtenerAlumno(db, id); var interés = ConfiguracionRepository.ObtenerConfiguracion().InteresPorMora; if (!new Lib.WebServices.Consultas().SubirAlumno(alumnoWeb, interés)) { throw new System.Web.HttpException("Se grabaron los datos del alumno pero no se pudo actualizar sus datos en la web."); } } }
internal static void Insertar(SMPorresEntities db, int idCurso, int idAlumno) { _log.Debug("Insertando alumno en curso"); var id = db.CursosAlumnos.Any() ? db.CursosAlumnos.Max(c1 => c1.Id) + 1 : 1; var ca = new CursosAlumno { Id = id, IdCurso = idCurso, IdAlumno = idAlumno, CicloLectivo = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo }; db.CursosAlumnos.Add(ca); db.SaveChanges(); }
public static IList <Cuota> ObtenerCuotasActuales() { var cl = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo; return(ObtenerCuotas().Where(c => c.CicloLectivo == cl).ToList()); }
public Pago ObtenerDetallePago(int idPago, DateTime fechaCompromiso) { Pago pago = ObtenerPago(idPago); if (pago == null) { return(null); } var impBase = pago.ImporteCuota; var cc = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo; pago.PorcBeca = 0; pago.ImporteBeca = 0; pago.PorcDescPagoTermino = 0; pago.ImportePagoTermino = 0; pago.PorcRecargo = 0; pago.ImporteRecargo = 0; pago.ImportePagado = pago.ImporteCuota; if (pago.NroCuota == 0) { pago.FechaVto = new DateTime(cc, 12, 31); var curso = CursosRepository.ObtenerCursoPorId(pago.PlanPago.Curso.Id); if (fechaCompromiso <= curso.FechaVencDescuento) { decimal descuentoMatrícula = Convert.ToDecimal(curso.DescuentoMatricula); pago.ImportePagoTermino = descuentoMatrícula; pago.ImportePagado = impBase - descuentoMatrícula; } return(pago); } var descBeca = (decimal)0; if (pago.BecaAlumno == null) { descBeca = (decimal)pago.PlanPago.PorcentajeBeca; } else { descBeca = (decimal)pago.BecaAlumno.PorcentajeBeca; } decimal beca = 0; if (descBeca > 0) { beca = Math.Round(impBase * (descBeca / 100)); } var cuota = CuotasRepository.ObtenerCuotas().Where(c => c.NroCuota == pago.NroCuota).FirstOrDefault(); if (cuota == null) { return(null); } pago.FechaVto = cuota.VtoCuota; var totalAPagar = (decimal)0; var impBecado = impBase - beca; var conf = ConfiguracionRepository.ObtenerConfiguracion(); if (fechaCompromiso <= pago.FechaVto) { var dpt = (decimal)(conf.DescuentoPagoTermino / 100); var descPagoTérmino = Math.Round(impBecado * dpt, 2); if (fechaCompromiso > pago.FechaVto.Value.AddDays(-conf.DiasVtoPagoTermino ?? 0)) { dpt = 0; descPagoTérmino = 0; } totalAPagar = impBase - beca - descPagoTérmino; pago.PorcDescPagoTermino = (double)Math.Truncate(dpt * 100); pago.ImportePagoTermino = descPagoTérmino; } else { var porcRecargo = (conf.InteresPorMora / 100) / 30.0; var díasAtraso = Math.Truncate((fechaCompromiso - pago.FechaVto.Value).TotalDays); var porcRecargoTotal = (decimal)(porcRecargo * díasAtraso); //impBecado = impBase; //var recargoPorMora = Math.Round(impBecado * porcRecargoTotal, 2); //totalAPagar = impBase - beca + recargoPorMora; decimal recargoPorMora = 0; if (pago.PlanPago.TipoBeca == (byte)TipoBeca.AplicaSiempre) { recargoPorMora = Math.Round(impBecado * porcRecargoTotal, 2); } else { recargoPorMora = Math.Round(pago.ImporteCuota * porcRecargoTotal, 2); beca = 0; } totalAPagar = impBase - beca + recargoPorMora; pago.PorcRecargo = porcRecargo; pago.ImporteRecargo = recargoPorMora; } pago.PorcBeca = (double)descBeca; pago.ImporteBeca = beca; pago.IdBecaAlumno = null; pago.ImportePagado = totalAPagar; return(pago); }