Exemple #1
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
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);
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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);
        }