示例#1
0
        public Dto_SaleNode UpdateSales(Dto_SaleNode salesNode, Dto_ClientNode clientsNode, Dto_SellerNode sellersNode, Dto_ProductNode productsNode)
        {
            Dto_SaleNode     Head             = salesNode;
            LogicStoreSystem logicStoreSystem = new LogicStoreSystem();
            int selectedModeSale = logicStoreSystem.selectedModeSale("venta");
            int quantity;
            int availableStock;

            if (selectedModeSale == 1)
            {
                string   type = "false";
                Dto_Sale sale = new Dto_Sale();
                sale.Product = logicStoreSystem.selectItemsForSale("producto", clientsNode, sellersNode, productsNode).Item3;
                sale.Client  = logicStoreSystem.selectItemsForSale("cliente", clientsNode, sellersNode, productsNode).Item1;
                sale.Seller  = logicStoreSystem.selectItemsForSale("vendedor", clientsNode, sellersNode, productsNode).Item2;
                Console.WriteLine("\nCantidad: ");
                quantity = int.Parse(Console.ReadLine());

                while (type == "false")
                {
                    availableStock = ReviewStockProducts(sale, salesNode);

                    if (quantity <= availableStock)
                    {
                        sale.Quantity = quantity;
                        type          = "true";
                    }
                    else if (availableStock == 0)
                    {
                        Console.WriteLine("\nPor favor selecciona otro producto, ya que cuenta con " + availableStock + " unidades disponibles");
                        sale.Product = logicStoreSystem.selectItemsForSale("producto", clientsNode, sellersNode, productsNode).Item3;
                        Console.WriteLine("\nCantidad: ");
                        quantity = int.Parse(Console.ReadLine());
                        Console.WriteLine(" ");
                    }
                    else
                    {
                        Console.WriteLine("\nPor favor selecciona otra cantidad, el producto solo cuenta con " + availableStock + " unidades disponibles");
                        quantity = int.Parse(Console.ReadLine());
                    }
                }

                Dto_SaleNode newSaleNode = new Dto_SaleNode();
                newSaleNode.Sale = sale;

                Dto_SaleNode last = Head;
                while (last.Next != null)
                {
                    last = last.Next;
                }
                sale.Code        = last.Sale.Code + 1;
                sale.Total_Price = sale.Quantity * sale.Product.Price;
                last.Next        = newSaleNode;
            }

            return(salesNode);
        }
示例#2
0
        public int ReviewStockProducts(Dto_Sale sale, Dto_SaleNode saleNode)
        {
            int    countSales = 1;
            string productName;
            int    productCode;
            int    stockProdut;
            int    stock = 0;

            Dto_SaleNode last = saleNode;

            while (last.Next != null)
            {
                countSales++;
                last = last.Next;
            }

            last = saleNode;

            for (int i = 0; i < countSales; i++)
            {
                Dto_SaleNode iteratorNode = last;
                productName = saleNode.Sale.Product.Name;
                productCode = saleNode.Sale.Product.Code;
                stockProdut = saleNode.Sale.Product.Stock;

                for (int j = 0; j < countSales; j++)
                {
                    if (iteratorNode.Sale.Product.Name == productName)
                    {
                        stockProdut = stockProdut - iteratorNode.Sale.Quantity;
                    }

                    if (iteratorNode.Next != null)
                    {
                        iteratorNode = iteratorNode.Next;
                    }
                }

                if (saleNode.Next != null)
                {
                    saleNode = saleNode.Next;
                }

                if (productCode == sale.Product.Code)
                {
                    stock = stockProdut;
                }
            }
            return(stock);
        }
        public Dto_SaleNode AddSale(Dto_Sale sale)
        {
            Dto_SaleNode saleNode = new Dto_SaleNode();

            saleNode.Sale = sale;

            if (Head == null)
            {
                Head = saleNode;
            }
            else
            {
                Dto_SaleNode last = Head;
                while (last.Next != null)
                {
                    last = last.Next;
                }
                last.Next = saleNode;
            }

            return(Head);
        }