예제 #1
0
        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);
        }
예제 #2
0
        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.");
                }
            }
        }
예제 #3
0
        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();
        }
예제 #4
0
        public static IList <Cuota> ObtenerCuotasActuales()
        {
            var cl = ConfiguracionRepository.ObtenerConfiguracion().CicloLectivo;

            return(ObtenerCuotas().Where(c => c.CicloLectivo == cl).ToList());
        }
예제 #5
0
        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);
        }