public void ActualizarPagos() { foreach (VentaItem ventaItems in VentaItems) { ventaItems.QuitarPagos(); } foreach (VentaPago pago in Pagos) { pago.ActualizarMontoRestante(pago.MontoPago.Monto); pago.ActualizarIva(0); pago.ActualizarDescuento(0); foreach (VentaItem ventaItems in VentaItems.Where(x => x.PorcentajePago < 1)) { decimal montoRestante = ventaItems.AgregarPago(pago, pago.PorcentajeRecargo, PorcentajeFacturacion, TipoCliente); ventaItems.ActualizarPorcentajePago(); if (montoRestante == 0) { break; } } } }
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(); }
private async Task <ModeloVenta.Producto> BuscarProducto() { if (string.IsNullOrWhiteSpace(CodigoDescripcion)) { throw new NegocioException(Resources.productoNoExiste); } VentaItem ventaItem = VentaItems.Where(x => x.Codigo == CodigoDescripcion || x.Descripcion == CodigoDescripcion).FirstOrDefault(); if (ventaItem != null) { return(ventaItem.Producto); } ModeloVenta.Producto producto = await ProductoService.Obtener(CodigoDescripcion); if (producto == null) { throw new NegocioException(Resources.productoNoExiste); } return(producto); }