public void pagarPrimeraCuota(double montoAabonar) { Pago pago = new Pago(this.vista.credito.Fecha, this.vista.credito.Empleado, this.vista.credito.Cliente); pago.LineaDePago.Add(new LineaDePago(montoAabonar)); pago.Vuelto = montoAabonar - this.vista.credito.Cuotas.First().Monto; List <Cuota> cuota = new List <Cuota>(); cuota.Add(this.vista.credito.Cuotas.First()); Vista.ReciboPago frm = new Vista.ReciboPago(cuota, pago); frm.Show(); }
public void confirmarPago(double montoApagar, bool sinSeleccionar) { List <Cuota> cuotasSeleccionadas = new List <Cuota>(); Pago pago = new Pago(DateTime.Now, BaseDatos.sesion, this.vista.cliente); if (sinSeleccionar == false) { cuotasSeleccionadas = this.vista.cuotasSeleccionadas; double vuelto = montoApagar - calcularCuotasSeleccionadas(); if (vuelto >= 0) { this.vista.vuelto = vuelto; foreach (Cuota c in cuotasSeleccionadas) { pago.LineaDePago.Add(new LineaDePago(c.APagar)); c.APagar = 0; c.pagar(c.APagar); } pago.Vuelto = vuelto; this.vista.vuelto = vuelto; } else { this.vista.vuelto = 0; }; } else { double saldo = montoApagar; List <Cuota> cuotasImpagas = this.vista.cuotas.FindAll(x => x.Pagada != true); int cantidadDeCuotasImpagas = cuotasImpagas.Count; foreach (Cuota c in cuotasImpagas) { double sum = 0; foreach (LineaDePago lp in c.LineaDePago) { sum += lp.MontoApagar; } if (sum == 0 && saldo >= c.Monto) { cuotasSeleccionadas.Add(c); pago.LineaDePago.Add(new LineaDePago(c.Monto)); c.APagar = 0; c.pagar(c.Monto); saldo = saldo - c.Monto; if (cantidadDeCuotasImpagas > 0) { cantidadDeCuotasImpagas--; if (cantidadDeCuotasImpagas == 0) { this.vista.vuelto = saldo - c.APagar; } pago.Vuelto = saldo - c.APagar; } continue; } else { c.APagar = c.Monto - sum; if (saldo > c.APagar) { //c.LineaDePago.Add(new LineaDePago(c.APagar)); //c.Pagada = true; cuotasSeleccionadas.Add(c); pago.LineaDePago.Add(new LineaDePago(c.APagar)); saldo = montoApagar - c.APagar; c.APagar = 0; c.pagar(c.APagar); if (cantidadDeCuotasImpagas > 0) { cantidadDeCuotasImpagas--; if (cantidadDeCuotasImpagas == 0) { this.vista.vuelto = saldo - c.APagar; } pago.Vuelto = saldo - c.APagar; } continue; } else { cuotasSeleccionadas.Add(c); //c.LineaDePago.Add(new LineaDePago(saldo)); pago.LineaDePago.Add(new LineaDePago(saldo)); c.APagar = c.APagar - saldo; c.pagar(saldo); saldo = 0; pago.Vuelto = 0; break; } } } } foreach (Credito credito in this.vista.creditosActivos) { if (credito.EstadoDelCredito == Credito.Estado.Activo) { int numcuotas = credito.Plan.NumeroCuotas; if (credito.Cuotas.Count(x => x.Pagada == true) == numcuotas) { credito.informarCreditoFinalizado(); } } } Vista.ReciboPago frm = new Vista.ReciboPago(cuotasSeleccionadas, pago); frm.Show(); }