示例#1
0
        public static string ObtenerConceptoMatrícula(Int32 idPlanPago, PagoWeb pago) //Pago pago)
        {
            string concepto = "";

            using (var db = new SMPorresEntities())
            {
                var cuotas = db.PagosWeb.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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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();
        }
示例#4
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);
        }
示例#5
0
        private static decimal CalcularMoraPorTramo(DateTime fechaCompromiso, PagoWeb pago, decimal impBase,
                                                    decimal impBecado)
        {
            if (pago.FechaVto.Month == DateTime.Now.Month && pago.FechaVto.Year == DateTime.Now.Year)
            {
                return(0);
            }

            decimal recargoPorMora;
            var     tasas = from t in TasasMoraRepository.ObtenerTasas()
                            select new TasaMora
            {
                Tasa  = (t.Tasa / 100) / 30,
                Desde = t.Desde <pago.FechaVto?pago.FechaVto : t.Desde,
                                 Hasta = t.Hasta> fechaCompromiso ? fechaCompromiso : t.Hasta.AddDays(1)
            };

            tasas = tasas.Where(t => t.Desde <= t.Hasta);
            _log.Debug(String.Join("\n", tasas.Select(t => new { TasaDiaria = t.Tasa, t.Desde, t.Hasta })));
            _log.Debug("Tipo de beca: " + (TipoBeca)pago.TipoBeca);

            if (pago.TipoBeca == (byte)TipoBeca.AplicaSiempre)
            {
                _log.Debug("Importe becado: " + impBecado);
                _log.Debug(String.Join("\n", tasas.Select(t => new
                {
                    TotalDays = (t.Hasta - t.Desde).TotalDays,
                    Tasa      = t.Tasa,
                    DaysXTasa = (t.Hasta - t.Desde).TotalDays * t.Tasa,
                    Total     = impBecado * (decimal)((t.Hasta - t.Desde).TotalDays * t.Tasa)
                })));

                recargoPorMora = tasas.Sum(
                    t => Math.Round(impBecado * (decimal)((t.Hasta - t.Desde).TotalDays * t.Tasa), 2)
                    );
            }
            else
            {
                _log.Debug("Importe base: " + impBase);
                _log.Debug(String.Join("\n", tasas.Select(t => new
                {
                    TotalDays = (t.Hasta - t.Desde).TotalDays,
                    Tasa      = t.Tasa,
                    DaysXTasa = (t.Hasta - t.Desde).TotalDays * t.Tasa,
                    Total     = impBase * (decimal)((t.Hasta - t.Desde).TotalDays * t.Tasa)
                })));

                recargoPorMora = tasas.Sum(
                    t => Math.Round(impBase * (decimal)((t.Hasta - t.Desde).TotalDays * t.Tasa), 2)
                    );
            }

            return(recargoPorMora);
        }
示例#6
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);
        }
示例#7
0
        private DataTable GenerarDetalleCuota(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 p)
        {
            var    impBase  = p.ImporteCuota;
            var    importe  = impBase.ToString("$ 0,0.00");
            string concepto = String.Format("Cuota Nº {0}", p.NroCuota);

            cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                  carrera, curso, "", "", "1", concepto, importe);

            if (p.ImporteBeca > 0)
            {
                importe  = p.ImporteBeca.Value.ToString("$ -0,0.00");
                concepto = String.Format("Descuento por beca del %{0}", p.PorcentajeBeca);
                cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                      carrera, curso, "", "", "2", concepto, importe);
            }

            if (fechaCompromiso <= p.FechaVto)
            {
                if (p.ImportePagoTermino > 0)
                {
                    importe  = p.ImportePagoTermino.Value.ToString("$ -0,0.00");
                    concepto = "Descuento por pago a término";
                    cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                          carrera, curso, "", "", "3", concepto, importe);
                }
            }
            else
            {
                if (p.ImporteRecargo > 0)
                {
                    importe  = p.ImporteRecargo.Value.ToString("$ 0,0.00");
                    concepto = String.Format("Recargo por mora - Vencida el {0:dd/MM/yyyy}", p.FechaVto);
                    cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
                                          carrera, curso, "", "", "3", concepto, importe);
                }
            }

            var 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);
        }
示例#8
0
        private string ObtenerDetalle(PagoWeb item)
        {
            string detalle = "";

            if (item.NroCuota == 0)
            {
                PagosRepository.ObtenerConceptoMatrícula(item.IdPlanPago, item);
            }
            else
            {
                detalle = String.Format("Matrícula Cuota Nº {0}", item.NroCuota);
            }
            return(detalle);
        }
示例#9
0
        private DataTable GenerarDetalleTodas(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)
        {
            throw new NotImplementedException();

            //var pagos = PagosRepository.ObtenerPagos(pago.IdPlanPago).Where(p => p.Fecha == null && p.NroCuota > 0);
            //var min = pagos.Min(p => p.NroCuota);
            //var max = pagos.Max(p => p.NroCuota);

            //// CUOTAS *************************
            //var totalBase = pagos.Sum(p => p.ImporteCuota);
            //var importe = totalBase.ToString("$ 0,0.00");
            //string concepto = String.Format("Cuotas de {0} a {1} ", min, max);
            //cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
            //    carrera, curso, "", "", "1", concepto, importe);

            //// BECAS *************************
            //decimal totalBecas = 0, totalPagoATérmino = 0, totalRecargos = 0;
            //string cuotasBecadas = "", cuotasPagoATérmino = "", cuotasRecargoPorMora = "";
            //decimal descBeca = 0;
            //var cuotas = CuotasRepository.ObtenerCuotas();
            //var totalAPagar = (decimal)0;
            //foreach (var p in pagos)
            //{
            //    var impBase = pago.ImporteCuota;
            //    decimal beca = 0;

            //    var p1 = PagosRepository.ObtenerPago(p.Id);
            //    if (p1.PlanPago.PorcentajeBeca > 0)
            //    {
            //        descBeca = (decimal)p1.PlanPago.PorcentajeBeca;
            //        beca = p.ImporteCuota * (descBeca / 100);
            //        totalBecas += beca;
            //        cuotasBecadas += String.IsNullOrEmpty(cuotasBecadas) ? p.NroCuota.ToString() : "," + p.NroCuota;
            //    }

            //    var cuota = cuotas.Where(c => c.NroCuota == p.NroCuota).FirstOrDefault();
            //    if (cuota == null)
            //    {
            //        ShowError("Falta parametrizar la cuota " + p.NroCuota);
            //        return null;
            //    }
            //    var vtoCuota = cuota.VtoCuota;
            //    var impBecado = impBase - beca;
            //    if (fechaCompromiso <= vtoCuota)
            //    {
            //        var dpt = (decimal)(ConfiguracionRepository.ObtenerConfiguracion().DescuentoPagoTermino / 100);
            //        var descPagoTérmino = Math.Round(impBecado * dpt, 2);
            //        totalPagoATérmino += descPagoTérmino;
            //        totalAPagar += impBase - beca - descPagoTérmino;
            //        cuotasPagoATérmino += cuotasPagoATérmino == "" ? p.NroCuota.ToString() : "," + p.NroCuota;
            //    }
            //    else
            //    {
            //        var porcRecargo = (ConfiguracionRepository.ObtenerConfiguracion().InteresPorMora / 100) / 30.0;
            //        var díasAtraso = Math.Truncate((fechaCompromiso - vtoCuota).TotalDays);
            //        var porcRecargoTotal = (decimal)(porcRecargo * díasAtraso);
            //        var recargoPorMora = Math.Round(impBecado * porcRecargoTotal, 2);
            //        totalRecargos += recargoPorMora;
            //        totalAPagar += impBase - beca + recargoPorMora;
            //        cuotasRecargoPorMora += cuotasRecargoPorMora == "" ? p.NroCuota.ToString() : "," + p.NroCuota;
            //    }
            //}

            //if (totalBecas > 0)
            //{
            //    importe = totalBecas.ToString("$ -0,0.00");
            //    concepto = String.Format("Descuento de %{0} por becas de cuotas {1} ", descBeca, cuotasBecadas);
            //    cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
            //        carrera, curso, "", "", "2", concepto, importe);
            //}

            //if (totalPagoATérmino > 0)
            //{
            //    importe = totalPagoATérmino.ToString("$ -0,0.00");
            //    concepto = String.Format("Descuento por pago a término de cuotas {0} ", cuotasPagoATérmino);
            //    cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
            //        carrera, curso, "", "", "2", concepto, importe);
            //}

            //if (totalRecargos > 0)
            //{
            //    importe = totalRecargos.ToString("$ 0,0.00");
            //    concepto = String.Format("Recargo por mora de cuotas {0} ", cuotasRecargoPorMora);
            //    cupón.AddCupónPagoRow(idPago, fechaEmisión, fechaVencimiento, nombre, tipoDocumento, documento,
            //        carrera, curso, "", "", "2", concepto, importe);
            //}

            //var codBarra = GenerarCódigoBarras(idPago, totalAPagar);
            //foreach (dsImpresiones.CupónPagoRow row in cupón.Rows)
            //{
            //    row.Total = String.Format("{0:$ 0,0.00}", totalAPagar);
            //    row.CódigoBarra = codBarra;
            //}

            //return cupón;
        }