public void PrintProducts(Dto_ProductNode productNode) { int countProducts = 1; int Code; string Name; double Price; if (productNode != null) { Dto_ProductNode last = productNode; while (last.Next != null) { countProducts++; last = last.Next; } Console.WriteLine(" "); for (int i = 0; i < countProducts; i++) { Code = productNode.Product.Code; Name = productNode.Product.Name; Price = productNode.Product.Price; Console.WriteLine("Code: " + Code + " Name: " + Name + " Precio: " + Price); productNode = productNode.Next; } } else { Console.WriteLine(" "); Console.WriteLine("No cuentas con ningun Vendedor"); } }
public Dto_ProductNode CreateProductsNodes(List <Dto_Product> Product) { for (int i = 0; i < Product.Count; i++) { productsNode = AddProduct(Product[i]); } return(productsNode); }
public Dto_ProductNode AddProduct(Dto_Product product) { Dto_ProductNode productNode = new Dto_ProductNode(); productNode.Product = product; if (Head == null) { Head = productNode; } else { Dto_ProductNode last = Head; while (last.Next != null) { last = last.Next; } last.Next = productNode; } return(Head); }
public Dto_ProductNode returnPoint7(Dto_ProductNode productsNode) { string type = "false"; LogicStoreSystem logicStoreSystem = new LogicStoreSystem(); logicStoreSystem.PrintProducts(productsNode); while (type == "false") { Console.WriteLine("\nEscribe 1 para volver a elegir una opcion u otro numero para continuar "); int selectedMode = int.Parse(Console.ReadLine()); if (selectedMode == 1) { productsNode = logicStoreSystem.UpdateProducts(productsNode); logicStoreSystem.PrintProducts(productsNode); } else { type = "true"; } } return(productsNode); }
static void Main(string[] args) { //Creación de Lista de clients CreateClients createClients = new CreateClients(); List <Dto_Client> clients = createClients.CreateClient(); //Creación de lista de sellers CreateSellers createSellers = new CreateSellers(); List <Dto_Seller> sellers = createSellers.CreateSeller(); //Creación de Lista de products CreateProducts createProducts = new CreateProducts(); List <Dto_Product> products = createProducts.CreateProduct(); //Creación de Lista de sales CreateSales createSales = new CreateSales(); List <Dto_Sale> sales = createSales.CreateSale(clients, sellers, products); //Creación de Nodos de clients Dao_ClientNode dao_ClientNode = new Dao_ClientNode(); Dto_ClientNode clientsNode = dao_ClientNode.CreateClientsNodes(clients); //Creación de Nodos de sellers Dao_SellerNode dao_SellerNode = new Dao_SellerNode(); Dto_SellerNode sellersNode = dao_SellerNode.CreateSellersNodes(sellers); //Creación de Nodos de products Dao_ProductNode dao_ProductNode = new Dao_ProductNode(); Dto_ProductNode productsNode = dao_ProductNode.CreateProductsNodes(products); //Creación de Nodos de sales Dao_SaleNode dao_SaleNode = new Dao_SaleNode(); Dto_SaleNode salesNode = dao_SaleNode.CreateSalesNodes(sales); LogicStoreSystem logicStoreSystem = new LogicStoreSystem(); //Console.WriteLine("---- Punto 1: Importe total de ventas ----"); //logicStoreSystem.TotalAmountSales(salesNode); //Console.WriteLine("\n---- Punto 2: Nombre del cliente que ha realizado la compra más importante ----"); //logicStoreSystem.SaleMoreImportant(salesNode); //Console.WriteLine("\n---- Punto 3: Producto que está obteniendo más ventas ----"); //logicStoreSystem.BestSellingProduct(salesNode); //Console.WriteLine("\n---- Punto 4: Promedio de ventas ----"); //logicStoreSystem.SalesAverage(salesNode); //Console.WriteLine("\n---- Punto 5: Stock de productos: Informar existencias de cada producto ----"); //logicStoreSystem.StockProducts(salesNode); //Console.WriteLine("\n---- Punto 6: Insertar y eliminar clientes ----"); //logicStoreSystem.PrintClients(clientsNode); //clientsNode = logicStoreSystem.UpdateClients(clientsNode); //clientsNode = logicStoreSystem.returnPoint6(clientsNode); //Console.WriteLine("\n---- Punto 7: Insertar y eliminar productos ----"); //logicStoreSystem.PrintProducts(productsNode); //productsNode = logicStoreSystem.UpdateProducts(productsNode); //productsNode = logicStoreSystem.returnPoint7(productsNode); //Console.WriteLine("\n---- Punto 8: Insertar y eliminar vendedores ----"); //logicStoreSystem.PrintSellers(sellersNode); //sellersNode = logicStoreSystem.UpdateSellers(sellersNode); //sellersNode = logicStoreSystem.returnPoint8(sellersNode); Console.WriteLine("\n---- Punto 9: Crear nuevas ventas (se debe tener en cuenta la cantidad de productos) ----"); Console.WriteLine(""); logicStoreSystem.PrintSales(salesNode); salesNode = logicStoreSystem.UpdateSales(salesNode, clientsNode, sellersNode, productsNode); salesNode = logicStoreSystem.returnPoint9(salesNode, clientsNode, sellersNode, productsNode); }
public Dto_SaleNode returnPoint9(Dto_SaleNode salesNode, Dto_ClientNode clientsNode, Dto_SellerNode sellersNode, Dto_ProductNode productsNode) { string type = "false"; LogicStoreSystem logicStoreSystem = new LogicStoreSystem(); logicStoreSystem.PrintSales(salesNode); while (type == "false") { Console.WriteLine("\nEscribe 1 para volver a elegir una opcion u otro numero para finalizar "); int selectedMode = int.Parse(Console.ReadLine()); if (selectedMode == 1) { salesNode = logicStoreSystem.UpdateSales(salesNode, clientsNode, sellersNode, productsNode); logicStoreSystem.PrintSales(salesNode); } else { type = "true"; } } return(salesNode); }
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 Tuple <Dto_Client, Dto_Seller, Dto_Product> selectItemsForSale(string typeNode, Dto_ClientNode clientsNode, Dto_SellerNode sellersNode, Dto_ProductNode productsNode) { string type = "false"; int countProducts = 1; int countClients = 1; int countSellers = 1; Dto_Client client = null; Dto_Seller seller = null; Dto_Product product = null; Dto_ProductNode lastProductsCount = productsNode; Dto_ClientNode lastClientsCount = clientsNode; Dto_SellerNode lastSellersCount = sellersNode; while (lastProductsCount.Next != null) { countProducts++; lastProductsCount = lastProductsCount.Next; } while (lastClientsCount.Next != null) { countClients++; lastClientsCount = lastClientsCount.Next; } while (lastSellersCount.Next != null) { countSellers++; lastSellersCount = lastSellersCount.Next; } Console.WriteLine("\nEscribe el codigo del " + typeNode + " que desea adicionar"); int Code = int.Parse(Console.ReadLine()); while (type == "false") { if (typeNode == "producto") { Dto_ProductNode lastProduct = productsNode; for (int i = 0; i < countProducts; i++) { if (lastProduct.Product.Code == Code) { product = lastProduct.Product; type = "true"; } lastProduct = lastProduct.Next; } } else if (typeNode == "cliente") { Dto_ClientNode lastClient = clientsNode; for (int i = 0; i < countClients; i++) { if (lastClient.Client.Code == Code) { client = lastClient.Client; type = "true"; } lastClient = lastClient.Next; } } else { Dto_SellerNode lastSeller = sellersNode; for (int i = 0; i < countSellers; i++) { if (lastSeller.Seller.Code == Code) { seller = lastSeller.Seller; type = "true"; } lastSeller = lastSeller.Next; } } if (type == "false") { Console.WriteLine("\nEscribe otro codigo de " + typeNode + " ya que el codigo " + Code + " no se encuentra disponible"); Code = int.Parse(Console.ReadLine()); } } return(Tuple.Create(client, seller, product)); }
public Dto_ProductNode UpdateProducts(Dto_ProductNode productsNode) { Dto_ProductNode Head = productsNode; LogicStoreSystem logicStoreSystem = new LogicStoreSystem(); int selectedMode = logicStoreSystem.selectedMode("producto"); if (selectedMode == 1) { Dto_Product product = new Dto_Product(); Console.WriteLine("\nNombre: "); product.Name = Console.ReadLine(); Console.WriteLine("Precio: "); product.Price = Double.Parse(Console.ReadLine()); Console.WriteLine("Categoria: "); product.Category = Console.ReadLine(); Console.WriteLine("Stock: "); product.Stock = int.Parse(Console.ReadLine()); Dto_ProductNode newProductNode = new Dto_ProductNode(); newProductNode.Product = product; Dto_ProductNode last = Head; while (last.Next != null) { last = last.Next; } product.Code = last.Product.Code + 1; last.Next = newProductNode; } else if (selectedMode == 2) { Dto_ProductNode products; Dto_ProductNode baseProductNode = productsNode; Dto_ProductNode iterator = productsNode; Dto_ProductNode last = productsNode; string type = "false"; Console.WriteLine("\n¿Que codigo deseas eliminar?: "); int deleteCode = int.Parse(Console.ReadLine()); int countProducts = 1; if (last != null) { while (last.Next != null) { countProducts++; last = last.Next; } while (type == "false") { for (int i = 0; i < countProducts; i++) { if (iterator.Product.Code == deleteCode) { products = iterator.Next; if (deleteCode == baseProductNode.Product.Code) { productsNode = baseProductNode.Next; type = "true"; break; } else { while (baseProductNode.Product.Code != deleteCode) { if (baseProductNode.Next != null & baseProductNode.Next.Product.Code != deleteCode) { baseProductNode = baseProductNode.Next; type = "true"; } else { type = "true"; break; } } baseProductNode.Next = products; } } iterator = iterator.Next; } if (type == "false") { Console.WriteLine("\nEl codigo que deseas eliminar no existe, por favor elige otro"); deleteCode = int.Parse(Console.ReadLine()); iterator = productsNode; Console.WriteLine(" "); } } } else { Console.WriteLine("\nNo cuentas con ningun Producto, por favor selecciona la opcion de agregar o continua"); } } return(productsNode); }