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); }
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); }