internal static List <Pago> CrearCuotas(SMPorresEntities db, PlanPago planPago, int modalidad) { //leer modalidad y obtener minCuota y maxCuota short minC = CursosRepository.ObtieneMinCuota(modalidad); short maxC = CursosRepository.ObtieneMaxCuota(modalidad); var result = new List <Pago>(); if (minC != maxC) { var curso = CursosRepository.ObtenerCursoPorId(planPago.IdCurso); var cuotas = from c in CuotasRepository.ObtenerCuotasActuales() select new { c.NroCuota, c.VtoCuota }; for (short i = minC; i <= maxC; i++) { var p = new Pago(); p.Id = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1; p.IdPlanPago = planPago.Id; p.NroCuota = i; p.ImporteCuota = (i == 0) ? curso.ImporteMatricula : curso.ImporteCuota; p.Estado = (byte)EstadoPago.Impago; p.FechaVto = cuotas.First(c => c.NroCuota == i).VtoCuota; db.Pagos.Add(p); db.SaveChanges(); result.Add(p); } } return(result); }
private string CargarCuotasImpagas(Alumno alumno, int _cuotasimpagas) { string c = ""; if (_cuotasimpagas <= 0) { c = ", no registra cuotas adeudadas."; } if (_cuotasimpagas > 0) { c = ", se encuentra deudor"; if (alumno.Sexo == "F") { c += "a"; } c += " en las cuotas "; foreach (var item in CuotasRepository.CuotasImpagas(alumno)) { c += item + ", "; } c += "de su plan de pagos."; } return(c); }
private Models.Cuota ObtenerCuotaSeleccionada() { try { int rowindex = dgvDatos.CurrentCell.RowIndex; var id = (int)dgvDatos.Rows[rowindex].Cells[0].Value; var c = CuotasRepository.ObtenerCuotaPorId(id); return(c); } catch (Exception) { return(null); } }
private string CargarPróxVencimiento() { var prox = CuotasRepository.ObtenerCuotasActuales() .FirstOrDefault(c => c.VtoCuota >= Configuration.CurrentDate.Date); if (prox != null) { return("El próximo vencimiento de cuota es el día " + prox.VtoCuota.ToShortDateString() + "."); } else { return("No tiene cuotas próximas a vencer."); } }
private void ObtenerDatos(Alumno alumno, string cursoyCarrera) { _cuotasimpagas = CuotasRepository.CuotasVencidasImpagas(alumno); _situación = CargarSituación(_cuotasimpagas); _fecha = CargarFecha(DateTime.Today); _alumno = CargarAlumno(alumno); _cursoyCarrera = cursoyCarrera; _cuotas = CargarCuotasImpagas(alumno, _cuotasimpagas); _proxVencimiento = CargarPróxVencimiento(); }
internal static void GeneraNuevaCuotaDeMatricula(int idPlanPago, int i, decimal importeCuota) { using (var db = new SMPorresEntities()) { var p = new Pago(); p.Id = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1; p.IdPlanPago = idPlanPago; p.NroCuota = (short)i; p.ImporteCuota = importeCuota; p.Estado = (byte)EstadoPago.Impago; p.FechaVto = (from c in CuotasRepository.ObtenerCuotasActuales() where c.NroCuota == 0 select c.VtoCuota).First(); db.Pagos.Add(p); db.SaveChanges(); } }
internal static void GeneraNuevaCuota(int idPlanPago, int i, Curso curso) { using (var db = new SMPorresEntities()) { var p = new Pago(); p.Id = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1; p.IdPlanPago = idPlanPago; p.NroCuota = (short)i; p.ImporteCuota = (i == 0) ? curso.ImporteMatricula : curso.ImporteCuota; var vto = (from c in CuotasRepository.ObtenerCuotasActuales() where c.NroCuota == Convert.ToInt16(i) select c.VtoCuota).First(); p.FechaVto = vto; p.Estado = (byte)EstadoPago.Impago; db.Pagos.Add(p); db.SaveChanges(); } }
private void btnEliminar_Click(object sender, EventArgs e) { Models.Cuota m = ObtenerCuotaSeleccionada(); if (MessageBox.Show("¿Está seguro de que desea eliminar la cuota seleccionada?", "Eliminar cuota", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { try { CuotasRepository.Eliminar(m.Id); ConsultarDatos(); dgvDatos.SetRow(r => Convert.ToDecimal(r.Cells[0].Value) == m.Id); } catch (Exception ex) { ShowError(ex.Message); } } }
private void btnNuevo_Click(object sender, EventArgs e) { using (var f = new frmEdición()) { if (f.ShowDialog() == DialogResult.OK) { try { var c = CuotasRepository.Insertar(f.NroCuota, f.VtoCuota, f.CicloLectivo); ConsultarDatos(); dgvDatos.SetRow(r => Convert.ToDecimal(r.Cells[0].Value) == c.Id); } catch (Exception ex) { ShowError("Error al intentar grabar los datos: \n", ex); } } } }
internal static Pago CrearMatrícula(SMPorresEntities db, PlanPago planPago) { var p = new Pago(); p.Id = db.Pagos.Any() ? db.Pagos.Max(p1 => p1.Id) + 1 : 1; p.IdPlanPago = planPago.Id; p.NroCuota = 0; var curso = CursosRepository.ObtenerCursoPorId(planPago.IdCurso); p.ImporteCuota = curso.ImporteMatricula; var vto = (from c in CuotasRepository.ObtenerCuotasActuales() where c.NroCuota == 0 select c.VtoCuota).First(); p.FechaVto = vto; p.Estado = (byte)EstadoPago.Impago; db.Pagos.Add(p); db.SaveChanges(); return(p); }
private void btnEditar_Click(object sender, EventArgs e) { var c = ObtenerCuotaSeleccionada(); using (var f = new frmEdición(c)) { if (f.ShowDialog() == DialogResult.OK) { try { CuotasRepository.Actualizar(c.Id, f.NroCuota, f.VtoCuota, f.CicloLectivo); ConsultarDatos(); dgvDatos.SetRow(r => Convert.ToDecimal(r.Cells[0].Value) == c.Id); } catch (Exception ex) { ShowError("Error al intentar grabar los datos: \n" + ex.Message); } } } }
private void ConsultarDatos() { dgvDatos.SetDataSource(CuotasRepository.ObtenerCuotas()); }
private DataTable GenerarDetalleTodas(dsImpresiones.CupónPagoDataTable cupón, string idPago, string fechaEmisión, string fechaVencimiento, string nombre, string tipoDocumento, string documento, string curso, string carrera, DateTime fechaCompromiso, Pago pago) { 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); }