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); }
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); } }
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(); }
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); }
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); }
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); }
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); }
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); }
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; }