Пример #1
0
        public DataTable ObtenerDatos(bool todas, int idPago, DateTime fechaCompromiso)
        {
            var cupón            = new dsConsultas.CupónPagoDataTable();
            var idPagoStr        = String.Format("{0:0000000}", idPago);
            var fechaEmisión     = String.Format("{0:dd/MM/yyyy}", Lib.Configuration.CurrentDate);
            var fechaVencimiento = String.Format("{0:dd/MM/yyyy}", fechaCompromiso);
            var pago             = PagosRepository.ObtenerDetallePago(idPago, fechaCompromiso);
            var nombre           = String.Format("{0} {1}", pago.CursoAlumnoWeb.AlumnoWeb.Nombre, pago.CursoAlumnoWeb.AlumnoWeb.Apellido);
            var tipoDocumento    = pago.CursoAlumnoWeb.AlumnoWeb.TipoDocumento;
            var documento        = pago.CursoAlumnoWeb.AlumnoWeb.NroDocumento.ToString("N0");
            var curso            = pago.CursoAlumnoWeb.Curso;
            var carrera          = pago.CursoAlumnoWeb.Carrera;

            if (todas)
            {
                return(GenerarDetalleTodas(cupón, idPagoStr, fechaEmisión, fechaVencimiento, nombre, tipoDocumento,
                                           documento, curso, carrera, fechaCompromiso, pago));
            }
            else if (pago.NroCuota > 0)
            {
                return(GenerarDetalleCuota(cupón, idPagoStr, fechaEmisión, fechaVencimiento, nombre, tipoDocumento,
                                           documento, curso, carrera, fechaCompromiso, pago));
            }
            else
            {
                return(GenerarMatrícula(cupón, idPagoStr, fechaEmisión, fechaVencimiento, nombre, tipoDocumento,
                                        documento, curso, carrera, fechaCompromiso, pago));
            }
        }
Пример #2
0
        private DataTable GenerarMatrícula(dsConsultas.CupónPagoDataTable cupón, string idPago, string fechaEmisión,
                                           string fechaVencimiento, string nombre, string tipoDocumento, string documento, string curso, string carrera,
                                           DateTime fechaCompromiso, PagoWeb pago)
        {
            var p       = PagosRepository.ObtenerDetallePago(pago.Id, fechaCompromiso);
            var importe = String.Format("{0:$ 0,0.00}", p.ImporteCuota);

            cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                  //carrera, curso, "", "", "1", "Matrícula", importe);
                                  carrera, curso, "", "", "1", PagosRepository.ObtenerConceptoMatrícula(p.IdPlanPago, p), importe);

            if (DescuentoMatrículaPagoTermino(p, fechaCompromiso))
            {
                importe = p.ImportePagoTermino.Value.ToString("$ -0,0.00");
                string concepto = "Descuento por pago a término";
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            //string codBarra = GenerarCódigoBarras(idPago, p.ImportePagado.Value);
            string codBarra = GenerarCódigoBarras(idPago, p.ImportePagado.Value, fechaCompromiso);

            foreach (dsConsultas.CupónPagoRow row in cupón.Rows)
            {
                row.Total       = String.Format("{0:$ 0,0.00}", p.ImportePagado.Value);
                row.CódigoBarra = codBarra;
            }
            return(cupón);
        }
Пример #3
0
        private bool DescuentoMatrículaPagoTermino(PagoWeb pago, DateTime fechaCompromiso)
        {
            bool pagoTermino = false;
            int  cc          = PagosRepository.CantidadCuotasMatrícula(pago.IdPlanPago);

            if (cc == 1 && fechaCompromiso <= pago.FechaVtoPagoTermino && pago.ImportePagoTermino > 0)
            {
                pagoTermino = true;
            }
            return(pagoTermino);
        }
Пример #4
0
        private void ActualizarDatos(Models.WebServices.Alumno alumno)
        {
            using (var db = new SMPorresEntities())
            {
                var idRol = db.RolesUsuariosWeb.First().Id;
                var trx   = db.Database.BeginTransaction();
                try
                {
                    var  a        = db.AlumnosWeb.Find(alumno.Id);
                    bool insertar = a == null;
                    if (insertar)
                    {
                        a = new AlumnoWeb();
                    }
                    a.Id              = alumno.Id;
                    a.Nombre          = alumno.Nombre;
                    a.Apellido        = alumno.Apellido;
                    a.TipoDocumento   = alumno.TipoDocumento;
                    a.NroDocumento    = alumno.NroDocumento;
                    a.Estado          = (byte)alumno.Estado;
                    a.Contraseña      = alumno.Contraseña;
                    a.IdRolUsuarioWeb = idRol;
                    if (insertar)
                    {
                        db.AlumnosWeb.Add(a);
                    }
                    db.SaveChanges();

                    var caRepo    = new CursosAlumnosRepository();
                    var pagosRepo = new PagosRepository();
                    pagosRepo.EliminarPagos(db, alumno.CursosAlumnos);
                    foreach (var ca in alumno.CursosAlumnos)
                    {
                        var id = caRepo.Actualizar(db, a.Id, ca).Id;
                        foreach (var p in ca.Pagos)
                        {
                            pagosRepo.Actualizar(db, id, p);
                        }
                    }
                    trx.Commit();
                }
                catch (Exception ex)
                {
                    _log.Error("Error al intentar actualizar los datos:", ex);
                    trx.Rollback();
                    throw ex;
                }
            }
        }
Пример #5
0
        public static PagoWeb ObtenerDetallePago(int idPago, DateTime fechaCompromiso)
        {
            var pago = new PagosRepository().ObtenerPago(idPago);

            pago.ImporteRecargo = 0;
            pago.ImportePagado  = pago.ImporteCuota;

            var totalAPagar = (decimal)0;

            //var impBecado = pago.ImporteCuota - pago.ImporteBeca ?? 0;
            if (fechaCompromiso <= pago.FechaVto)
            {
                //Los becados no tienen descuento por pago a término
                _log.Debug($"fechaCompromiso = {fechaCompromiso}|pago.FechaVtoPagoTermino = {pago.FechaVtoPagoTermino}||pago.ImporteBeca = {pago.ImporteBeca}");
                if (fechaCompromiso > pago.FechaVtoPagoTermino || pago.ImporteBeca > 0)
                {
                    pago.ImportePagoTermino = 0; //la beca y el pago a término son excluyentes
                    totalAPagar             = pago.ImporteCuota - pago.ImporteBeca ?? 0;
                }
                else
                {
                    _log.Debug($"fechaCompromiso > pago.FechaVtoPagoTermino - {fechaCompromiso} > {pago.FechaVtoPagoTermino}");
                    pago.ImporteBeca = 0;
                    totalAPagar      = pago.ImporteCuota - pago.ImportePagoTermino ?? 0;
                }
            }
            else
            {
                _log.Debug($"fechaCompromiso <= pago.FechaVto - {fechaCompromiso} > {pago.FechaVto}");

                var     impBecado      = pago.ImporteCuota - pago.ImporteBeca ?? 0;
                decimal recargoPorMora = 0;

                #region Modelo de cálculo de recargo anterior
                //var porcRecargo = (new ConfiguracionRepository().ObtenerConfiguracion().InteresPorMora / 100) / 30.0;
                //var díasAtraso = Math.Truncate((fechaCompromiso - pago.FechaVto).TotalDays);
                //var porcRecargoTotal = (decimal)(porcRecargo * díasAtraso);
                //if (pago.TipoBeca == (byte)TipoBeca.AplicaSiempre)
                //{
                //    recargoPorMora = Math.Round(impBecado * porcRecargoTotal, 2);
                //}
                //else
                //{
                //    recargoPorMora = Math.Round(pago.ImporteCuota * porcRecargoTotal, 2);
                //    pago.ImporteBeca = 0;
                //}
                //totalAPagar = pago.ImporteCuota - (pago.ImporteBeca ?? 0) + recargoPorMora;
                //pago.ImporteRecargo = recargoPorMora;
                #endregion

                decimal beca = 0;
                recargoPorMora = CalcularMoraPorTramo(fechaCompromiso, pago, pago.ImporteCuota, impBecado);
                totalAPagar    = pago.ImporteCuota - beca + recargoPorMora;
                if (recargoPorMora > 0 && (pago.TipoBeca != (byte)TipoBeca.AplicaSiempre))
                {
                    pago.ImporteBeca = beca;
                }
                pago.ImporteRecargo = recargoPorMora;
                _log.Debug($"totalAPagar = {totalAPagar}|pago.ImporteBeca = {pago.ImporteBeca}|pago.ImporteRecargo = {pago.ImporteRecargo}");
            }

            pago.ImportePagado = totalAPagar;
            return(pago);
        }