public void GenerarPagoAutoNuevo(decimal?monto, FormaPago tipoPago) { if (Pagos.Count != 0) { foreach (var pago in Pagos) { if (pago.TipoPago == tipoPago) { pago.Importe = monto; GrillaPagos.DataSource = Pagos.ToList(); EliminarPagoCero(); RefrescarPagos(); return; } } } VentaPago pagoNuevo = new VentaPago(); pagoNuevo.TipoPago = tipoPago; pagoNuevo.Importe = monto; Pagos.Add(pagoNuevo); GrillaPagos.DataSource = Pagos.ToList(); RefrescarPagos(); }
public void GenerarPagoAuto(decimal?monto) { if (Pagos.Count == 0) { VentaPago pago = new VentaPago(); pago.TipoPago = FormaPago.Efectivo; pago.Importe = monto; Pagos.Add(pago); } else { foreach (var pago in Pagos) { switch (pago.TipoPago) { case FormaPago.Efectivo: pago.Importe = monto; break; } } } GrillaPagos.DataSource = Pagos.ToList(); RefrescarPagos(); }
public void GenerarPagoCuotas(decimal?monto) { if (Pagos.Count == 0) { VentaPago pago = new VentaPago(); pago.TipoPago = FormaPago.CuentaCorriente; pago.Importe = monto; monto = 0; Pagos.Add(pago); } else { foreach (var pago in Pagos) { if (pago.TipoPago == FormaPago.CuentaCorriente) { pago.Importe = monto; monto = 0; } } } if (monto != 0) { VentaPago pago = new VentaPago(); pago.TipoPago = FormaPago.CuentaCorriente; pago.Importe = monto; Pagos.Add(pago); } GrillaPagos.DataSource = Pagos.ToList(); RefrescarPagos(); }
public string Abonar(double valor) { var valorAbonar = valor; if (CanAbonar(valor).Count != 0) { throw new InvalidOperationException(); } var cuotasPendientesPorPagar = ObtenerCuotasPendientesPorPagar(); int i = 0; while (valor > 0) { if (cuotasPendientesPorPagar[i].ValorRestantePorPagar() <= valor) { valor -= cuotasPendientesPorPagar[i].ValorRestantePorPagar(); cuotasPendientesPorPagar[i].ValorPagado += cuotasPendientesPorPagar[i].ValorRestantePorPagar(); cuotasPendientesPorPagar[i].Estado = Estado.Pagado; } else { cuotasPendientesPorPagar[i].ValorPagado += valor; valor -= valor; } i++; } Pagos.Add(new Pago(valorAbonar)); return("Su cuota se registró correctamente por un valor " + valorAbonar + ", saldo del crédito restante " + SaldoRestante); }
public void AgregaPago(decimal monto, decimal descuento, decimal cft, decimal iva, TipoPago tipoPago, decimal porcentajeCft, string trajeta, int numeroCuotas, IEnumerable <Cheque> cheques, CuentaBancaria cuentaBancaria, bool habilitado = true) { if (VentaItems.Count == 0) { throw new NegocioException("Error al registrar el pago. No se encuentran productos registrados en la venta."); } if (EstaPaga) { throw new NegocioException("Error al registrar el pago. La venta ya cuenta con el/los pagos necesarios para ser finalizada."); } if (monto == 0 && descuento == 0 && cft == 0 && iva == 0) { throw new NegocioException("Error al registrar el pago. El monto o el descuento o el CFT o el IVA debe ser mayor a cero."); } int[] numeroOrdenCheques = cheques != null?cheques.Select(x => x.NumeroOrden).ToArray() : null; VentaPago pago = new VentaPago(Id, tipoPago, trajeta, numeroCuotas, porcentajeCft, numeroOrdenCheques, cuentaBancaria, monto, monto, descuento, cft, iva, habilitado); Cheques.AddRange(cheques); if (pago.MontoPago.Total < 0) { throw new NegocioException("Error al registrar el pago. El total debe ser mayor a cero."); } Pagos.Add(pago); Pagos = Pagos.OrderBy(x => x.TipoPago).ToList(); ActualizarPagos(); ActualizarTotalesPago(); }
public void AgregarPago(PagosTipo pago) { if (Pagos != null) { bool agregar = true; foreach (var p in Pagos) { if (pago.TipoPago != "Efectivo" && p.TipoPago == "Efectivo") { p.Importe -= pago.Importe; if (p.Importe < 0) { p.Importe = 0; } } else if (pago.TipoPago == "Efectivo" && p.TipoPago == "Efectivo") { p.Importe = pago.Importe; agregar = false; } } if (agregar) { Pagos.Add(pago); } } }
public void BtnAgregarPago_Click(object sender, EventArgs e) { using (var formAgregarPago = FormFactory.Create <FrmAgregarPago>(Guid.Empty, ActionFormMode.Create)) { formAgregarPago.PagoAgregado += (o, pago) => { Pagos.Add(pago); //Para intereses if (pago.TipoPago == FormaPago.Tarjeta) { _intereses = pago.Intereses ?? 0; OnInteresesChanged(); } // RefrescarPagos(); if (pago.TipoPago != FormaPago.Efectivo) { if (pago.Importe != TotalPagar) { OnPagosChanged(pago.Importe); } else { EliminarPagoEfectivo(); } } formAgregarPago.Close(); }; formAgregarPago.ShowDialog(); } }
public void ActualizarNuevoPago(string tipo, decimal importe) { Pagos.Clear(); _pago.TipoPago = tipo; _pago.Importe = importe; Pagos.Add(_pago); RefrescarPagos(); }
private void ActualizarPagos(VentaPago pago, decimal resto, decimal abonado) { if (Pagos.ContainsKey(pago)) { Pagos.Remove(pago); pago.ActualizarMontoRestante(resto); Pagos.Add(pago, abonado); } else { pago.ActualizarMontoRestante(resto); Pagos.Add(pago, abonado); } }
private void BtnAgregarPago_Click(object sender, EventArgs e) { using (var formAgregarPago = FormFactory.Create <FrmAgregarPago>(Guid.Empty, ActionFormMode.Edit)) { formAgregarPago.PagoAgregado += (o, pago) => { Pagos.Add(pago); RefrescarPagos(); formAgregarPago.Close(); }; formAgregarPago.ShowDialog(); } }
public void AgregaPago(decimal monto, decimal cft, TipoPago formaPagoSeleccionado, decimal cuotaCft, string tarjeta, int numeroCuota, IEnumerable <Cheque> cheques, CuentaBancaria cuentaBancaria) { if (monto == 0 && cft == 0) { throw new NegocioException("Error al registrar el pago. El monto o el CFT debe ser mayor a cero."); } int[] numeroOrdenCheques = cheques != null?cheques.Select(x => x.NumeroOrden).ToArray() : null; DocumentoDePagoPago pago = new DocumentoDePagoPago(Id, formaPagoSeleccionado, tarjeta, numeroCuota, cuotaCft, monto, cft, numeroOrdenCheques, cuentaBancaria); Cheques.AddRange(cheques); if (pago.MontoPago.Total < 0) { throw new NegocioException("Error al registrar el pago. El total debe ser mayor a cero."); } Pagos.Add(pago); ActualizarTotalesPago(); }
public void AgregaPago(Pago pago) { if (VentaItems.Count == 0) { throw new NegocioException("Error al registrar el pago. No se encuentran productos registrados en la venta."); } if (EstaPaga) { throw new NegocioException("Error al registrar el pago. La venta ya cuenta con el/los pagos necesarios para ser finalizada."); } decimal montoPago = pago.MontoPago.Total; foreach (VentaItem ventaItem in VentaItems.Where(x => x.PorcentajePago != 1)) { montoPago = ventaItem.Pagar(montoPago); } Pagos.Add(pago); ActualizarTotalesPago(); }