Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public double ObtenerDescuento()
        {
            double descuento = 0;

            CompraClientes.ToList().ForEach(x => {
                if (x.Compra_Id == Id)
                {
                    descuento += ObtenerDescuentoPorProductoCompra(x.Producto_Id, x.Cantidad);
                }
            });
            return(descuento);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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");
            }
        }