/* Metodo para editar productos */
        public static void Editar()
        {
            Console.Clear();

            //Sentencia if para comprobar si hay productos
            if (inventario.Count > 0)
            {
                Inventario.Listar(false);

                /* Solicitar al usuario el indice del producto a modificar */
                Console.WriteLine("Ingrese el indice del producto: ");

                int indice = Convert.ToInt32(Console.ReadLine());

                //Creando instancia del producto elegido para poder modificarlo
                Producto producto = inventario[indice - 1];

                /* Solicitar al usuario el nuevo nombre del producto */
                Console.WriteLine("Ingrese el nuevo nombre del producto: ");

                string nombre = Console.ReadLine();

                /* Solicitar al usuario el nuevo precio del producto */
                Console.WriteLine("Ingrese el nuevo precio del producto: ");

                double precio = Convert.ToDouble(Console.ReadLine());

                /* Solicitar al usuario el nuevo nombre del producto */
                Console.WriteLine("Ingrese la nueva cantidad del producto: ");

                int cantidad = Convert.ToInt32(Console.ReadLine());

                /* Asignando valores al metodo editar de la instancia */
                producto.Editar(nombre, precio, cantidad);


                /* Asignando instancia a su posicion en la lista */
                inventario[indice - 1] = producto;
            }
            else
            {
                //Imprimir mensaje si no hay productos
                Console.WriteLine("No hay productos");
                Console.ReadKey();
            }
        }
        /* Metodo para borrar productos */
        public static void Borrar()
        {
            Console.Clear();

            //Sentencia if para comprobar si hay productos
            if (inventario.Count > 0)
            {
                Inventario.Listar(false);

                /* Solicitar al usuario el indice del cliente a borrar */
                Console.WriteLine("Ingrese el indice del producto: ");

                int producto = Convert.ToInt32(Console.ReadLine());

                /* Eliminar el producto */
                inventario.RemoveAt(producto - 1);
            }
            else
            {
                //Imprimir mensaje si no hay productos
                Console.WriteLine("No hay productos");
                Console.ReadKey();
            }
        }
Esempio n. 3
0
        /* Metodo para agregar productos */
        public static void Agregar()
        {
            Console.Clear();

            bool seguirComprando = true;

            Clientes.Listar(false);

            /* Solicitar al usuario el cliente que realizara la compra */
            Console.WriteLine("Ingrese el indice del cliente: ");
            int cliente = Convert.ToInt32(Console.ReadLine());

            //Crear factura dentro de la lista de facturas
            facturas.Add(new Factura {
                cliente = Clientes.clientes[cliente - 1], productos = new List <Producto>(), subTotal = 0.00, impuestos = 0.00, total = 0.00
            });

            //Creando variable para almacenar el indice de la factura actual
            int indiceFactura = facturas.Count - 1;

            //Crear instancia de la factura actual para ir agregandole los productos
            Factura factura = facturas[indiceFactura];

            //Ciclo do while para agregar productos mientras el usuario quiera
            do
            {
                Inventario.Listar(false);

                /* Solicitar al usuario el producto que desea agregar */
                Console.WriteLine("Ingrese el indice del producto a agregar: ");
                int indiceProducto = Convert.ToInt32(Console.ReadLine());

                /* Instanciar productos para actualizar el inventario */
                Producto producto = Inventario.inventario[indiceProducto - 1];


                //Declarar variable de cantidad y para ingresar otra cantidad
                bool otraCantidad = true;
                int  cantidad;

                //Bucle do while para preguntar al usuario si desea ingresar otra cantidad
                do
                {
                    /* Solicitar al usuario la cantidad del nuevo Producto */
                    Console.WriteLine("Ingrese la cantidad: ");
                    cantidad = Convert.ToInt32(Console.ReadLine());

                    //Sentencia if para comparar si la cantidad ingresada por el usuario es mayor a la existente
                    if (cantidad > producto.cantidad || producto.cantidad == 0)
                    {
                        Console.WriteLine("La cantidad que ingreso supera la disponibilidad de este producto que es de solo {0} unidades", producto.cantidad);

                        /* Preguntar al usuario si desea ingresar otro monto */
                        Console.WriteLine("Ingrese (S) para agregar nueva cantidad y (N) para escoger otro producto: ");
                        otraCantidad = (Console.ReadLine() == "s") ? true : false;
                    }
                    else
                    {
                        break;
                    }
                } while (otraCantidad);

                // Si otra cantidad es false reiniciamos el ciclo
                if (otraCantidad == false)
                {
                    continue;
                }

                /* Agregar producto a la nueva factura */
                factura.productos.Add(new Producto {
                    nombre = producto.nombre, precio = (double)(producto.precio * cantidad), cantidad = cantidad
                });

                /* Sumar el valor del precio del producto por la cantidad al subtotal */
                factura.subTotal += (double)(producto.precio * cantidad);

                /* Decrementar la cantidad solicitada al producto en el inventario */
                producto.cantidad -= cantidad;
                Inventario.inventario[indiceProducto - 1] = producto;

                /* Preguntar al usuario si desea salir de la facturacion */
                Console.WriteLine("Ingrese (S) para seguir comprando y (N) para salir: ");
                seguirComprando = (Console.ReadLine() == "s") ? true : false;
            } while (seguirComprando);

            //Calcular impuestos
            factura.impuestos = factura.subTotal * (ITBIS / 100);

            //Calcular total
            factura.total = factura.subTotal + factura.impuestos;

            /* Asignar la instancia modificada de la factura a su posicion en la lista de facturas*/
            facturas[indiceFactura] = factura;
        }
        /* Metodo para imprimir el menu de producto */
        public static void Menu()
        {
            Console.Clear();
            Console.WriteLine("Punto de venta - Productos");
            Console.WriteLine("1- Agregar Producto");
            Console.WriteLine("2- Editar Producto");
            Console.WriteLine("3- Borrar Producto");
            Console.WriteLine("4- Listar Productos");
            Console.WriteLine("5- Atras");

            //Declaracion de variable opcion
            int?opcion = null;

            //Solicitar al usuario una opcion
            Console.WriteLine("Ingrese una de las opciones:");

            /* Almacenar opcion */
            opcion = Convert.ToInt32(Console.ReadLine());

            /* Sentencia switch para evaluar la opcion escogida por el usuario */
            switch (opcion)
            {
            /* Agregar Producto */
            case (int)MenuInventario.Agregar:

                Inventario.Agregar();

                //Al terminar volver al menu de Productos
                Inventario.Menu();

                break;

            /* Editar Producto */
            case (int)MenuInventario.Editar:
                Inventario.Editar();

                //Al terminar volver al menu de Productos
                Inventario.Menu();

                break;

            /* Borrar Producto */
            case (int)MenuInventario.Borrar:

                Inventario.Borrar();

                //Al terminar volver al menu de Productos
                Inventario.Menu();

                break;

            /* Listar Productos */
            case (int)MenuInventario.Listar:
                Inventario.Listar();

                //Al terminar volver al menu de Productos
                Inventario.Menu();

                break;

            /* Atras */
            case (int)MenuInventario.Atras:
                Program.menuPrincipal();
                break;

            /* Defecto */
            default:
                Console.WriteLine("La opcion elegida no existe!");
                break;
            }
        }