public bool CompletarCompras() { double descuentoTotal = 0; double precioVenta = 0; if (CompraClientes.Count() == 0) { throw new Exception("No hay productos para realizar la compra"); } CompraClientes.ToList().ForEach(x => { descuentoTotal += ObtenerDescuentoPorProductoCompra(x.Producto_Id, x.Cantidad); precioVenta += x.Producto.PrecioVenta * x.Cantidad; x.EstadoClienteArticulo = Enum.EstadoClienteArticulo.PAGADO; }); if (!DescontarTotalProductoEnSaldo((precioVenta - descuentoTotal))) { throw new Exception("No tien saldo suficiente para realizar la compra"); } return(true); }
public double ObtenerDescuento() { double descuento = 0; CompraClientes.ToList().ForEach(x => { if (x.Compra_Id == Id) { descuento += ObtenerDescuentoPorProductoCompra(x.Producto_Id, x.Cantidad); } }); return(descuento); }
public double ObtenerSubTotal() { double precioVenta = 0; if (CompraClientes != null) { CompraClientes.ToList().ForEach(x => { if (x.Compra_Id == Id) { precioVenta += x.Producto.PrecioVenta * x.Cantidad; } }); } return(precioVenta); }
public double ObtenerTotal() { double descuentoTotal = 0; double precioVenta = 0; if (CompraClientes != null) { CompraClientes.ToList().ForEach(x => { if (x.Compra_Id == Id) { descuentoTotal += ObtenerDescuentoPorProductoCompra(x.Producto_Id, x.Cantidad); precioVenta += x.Producto.PrecioVenta * x.Cantidad; } }); } return(precioVenta - descuentoTotal); }
public double ObtenerDescuentoPorProductoCompra(int producto_Id, int cantidad) { var sumaDescuento = 0.0; var valorProducto = 0.0; if (CompraClientes != null) { var producto = CompraClientes.ToList().Find(x => x.Producto_Id == producto_Id).Producto; if (producto != null) { if (producto.ProductoDescuentos != null) { producto.ProductoDescuentos.ToList().ForEach(x => { if (x.Descuento != null) { if (x.Descuento.DescuentoEsAplicable(x.Descuento.FechaYHoraInicio, x.Descuento.FechaYHoraTerminación)) { sumaDescuento += x.Descuento.Descu; } } }); } else { throw new Exception("Producto Descuento esta vacio"); } valorProducto = producto.PrecioVenta; } else { throw new Exception("Producto esta vacio"); } return(valorProducto * cantidad * sumaDescuento); } else { throw new Exception("Compra cliente esta vacio"); } }