Example #1
0
        //Calculadora para calcular el total a pagar con promocion y el monto que se ahorra con la promo
        //creo la funcion con la lista de promociones como parametro
        public ArrayList calcularPromoRecursiva(ArrayList listaPromociones)
        {
            //Caso base de la recursividad, verifico si el carrito está vacío
            //si lo está retorno el total a pagar y el ahorro
            if (this.productosEnCarrito.Count == 0)
            {
                ArrayList pagoYAhorro = new ArrayList();
                pagoYAhorro.Add(this.totalAPagar);
                pagoYAhorro.Add(this.ahorro);
                return(pagoYAhorro);
            }
            else
            {
                //Si el carrito no está vacío, tomo el primer producto y su cantidad
                //y realizo los calculos pertinentes para retornar el ahorro y la
                //cantidad a pagar.
                Promocion promocion = null;
                //me va a devolver otra lista con producto y cantidad
                ArrayList elProducto       = (ArrayList)this.productosEnCarrito[0];
                Producto  prodSeleccionado = (Producto)elProducto [0];
                int       cantProducto     = (int)elProducto [1];
                //recorre promo en la lista de promociones y carga la promo en producto
                //luego compara los get de producto con los get del producto seleccionado
                //si todos los parametros son iguales carga promo en promocion
                foreach (Promocion promo in listaPromociones)
                {
                    Producto producto = (Producto)promo.getProducto();
                    if (producto.getTipo() == prodSeleccionado.getTipo() &&
                        producto.getMarca() == prodSeleccionado.getMarca() &&
                        producto.getEnvase() == prodSeleccionado.getEnvase())
                    {
                        promocion = promo;
                    }
                }
                //declara las variables con los valores que le corresponden
                int    cantLlevar     = promocion.getCantidadLLevar();
                int    cantPagar      = promocion.getCantidadPagar();
                double precioProducto = prodSeleccionado.getPrecio();

                //pregunta si el producto entra en la promocion
                if (cantProducto < cantLlevar)
                {
                    //si no entra hace el precio por el producto
                    this.totalAPagar += (precioProducto * cantProducto);
                }
                else
                {
                    //si entra hace los calculos para que me de el precio con la promocion incluida
                    this.totalAPagar += ((precioProducto * cantPagar) * (cantProducto / cantLlevar))
                                        + ((cantProducto % cantLlevar) * precioProducto);
                }
                //agarra el precio de producto y lo multiplica por la cantidad
                this.sinDesc += (precioProducto * cantProducto);

                //hace el total a pagar menos el descuento para saber cuanto se ahorro
                this.ahorro = sinDesc - totalAPagar;
                //la lista que contiene el total a pagar con el descuento y el ahorro
                ArrayList pagoYAhorro = new ArrayList();
                pagoYAhorro.Add(this.totalAPagar);
                pagoYAhorro.Add(this.ahorro);
                //return pagoYAhorro;

                //elimino el producto que ya calculé para llegar al caso base
                this.productosEnCarrito.RemoveAt(0);
                return(calcularPromoRecursiva(listaPromociones));
            }
        }
Example #2
0
        public void iniciar(ArrayList listaProductos, ArrayList listaPromociones, ArrayList listaCajas, ArrayList listaCajeros)
        {
            Console.WriteLine("P R O D U C T O S");
            Console.WriteLine("");
            Console.WriteLine("Ingrese un número");
            Console.WriteLine("1 --> Cargar un producto");
            Console.WriteLine("2 --> Cargar un promoción");
            Console.WriteLine("3 --> Listar los productos");
            Console.WriteLine("4 --> Listar las promociones");
            Console.WriteLine("5 --> Volver al menu principal");
            Console.WriteLine("");

            string ac     = Console.ReadLine();
            int    accion = int.Parse(ac);

            while (accion != 5)
            {
                switch (accion)
                {
                case 1:
                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [Carga-productos]");
                    Console.WriteLine("");
                    Console.Write("Ingrese tipo de producto: ");
                    string tipo = Console.ReadLine();
                    Console.Write("Ingrese marca de producto: ");
                    string marca = Console.ReadLine();
                    Console.Write("Ingrese envase de producto: ");
                    string envase = Console.ReadLine();
                    Console.Write("Ingrese Precio: ");

                    string pr     = Console.ReadLine();
                    float  precio = float.Parse(pr);

                    Producto producto = new Producto();
                    producto.setTipo(tipo);
                    producto.setMarca(marca);
                    producto.setEnvase(envase);
                    producto.setPrecio(precio);
                    listaProductos.Add(producto);

                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [carga-productos]");
                    Console.WriteLine("");
                    Console.WriteLine("Carga exitosa.");
                    Console.WriteLine("Ingrese otro número para continuar:");
                    Console.WriteLine("1 --> Cargar un producto");
                    Console.WriteLine("2 --> Cargar un promoción");
                    Console.WriteLine("3 --> Listar los productos");
                    Console.WriteLine("4 --> Listar las promociones");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");
                    ac     = Console.ReadLine();
                    accion = int.Parse(ac);
                    break;

                case 2:
                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [Carga-promociones]");
                    Console.WriteLine("");

                    Console.WriteLine("Listado de productos: ");
                    int i = 1;
                    foreach (Producto producto2 in listaProductos)
                    {
                        Console.WriteLine(i + "--> " + producto2.mostrarProducto());
                        i++;
                    }

                    Console.WriteLine("");
                    Console.WriteLine("Seleccione el producto para la promoción");
                    string idProd     = Console.ReadLine();
                    int    idProducto = int.Parse(idProd);
                    Console.WriteLine("Ingrese cantidad a llevar:");
                    string cantLLevar     = Console.ReadLine();
                    int    cantidadLlevar = int.Parse(cantLLevar);
                    Console.WriteLine("Ingrese cantidad a pagar:");
                    string cantPagar     = Console.ReadLine();
                    int    cantidadPagar = int.Parse(cantPagar);

                    Promocion promocion = new Promocion();

                    promocion.setProducto((Producto)listaProductos[idProducto - 1]);
                    promocion.setPromocion(cantidadLlevar, cantidadPagar);

                    listaPromociones.Add(promocion);

                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [carga]");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese otro número para continuar");
                    Console.WriteLine("1 --> Cargar un producto");
                    Console.WriteLine("2 --> Cargar un promoción");
                    Console.WriteLine("3 --> Listar los productos");
                    Console.WriteLine("4 --> Listar las promociones");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");
                    ac     = Console.ReadLine();
                    accion = int.Parse(ac);
                    break;

                case 3:
                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [lista-productos]");
                    Console.WriteLine("");
                    foreach (Producto producto2 in listaProductos)
                    {
                        Console.WriteLine(producto2.mostrarProducto());
                    }
                    Console.ReadKey(true);
                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [carga]");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese otro número para continuar");
                    Console.WriteLine("1 --> Cargar un producto");
                    Console.WriteLine("2 --> Cargar un promoción");
                    Console.WriteLine("3 --> Listar los productos");
                    Console.WriteLine("4 --> Listar las promociones");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");
                    ac     = Console.ReadLine();
                    accion = int.Parse(ac);
                    break;

                case 4:

                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [lista-promociones]");
                    Console.WriteLine("");
                    foreach (Promocion promo1 in listaPromociones)
                    {
                        Console.WriteLine(promo1.verPromos());
                    }
                    Console.WriteLine("Presione alguna tecla para volver...");
                    Console.ReadLine();

                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S [carga]");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese otro número para continuar");
                    Console.WriteLine("1 --> Cargar un producto");
                    Console.WriteLine("2 --> Cargar un promoción");
                    Console.WriteLine("3 --> Listar los productos");
                    Console.WriteLine("4 --> Listar las promociones");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");
                    ac     = Console.ReadLine();
                    accion = int.Parse(ac);
                    break;

                default:
                    Console.Clear();
                    Console.WriteLine("P R O D U C T O S");
                    Console.WriteLine("");
                    Console.WriteLine("Se ingreso un valor fuera de rango");
                    Console.WriteLine("Ingrese otro número para continuar");
                    Console.WriteLine("1 --> Cargar un producto");
                    Console.WriteLine("2 --> Cargar un promoción");
                    Console.WriteLine("3 --> Listar los productos");
                    Console.WriteLine("4 --> Listar las promociones");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");
                    ac     = Console.ReadLine();
                    accion = int.Parse(ac);
                    break;
                }
            }
            Console.Clear();
            this.volverSupermercado(listaProductos, listaPromociones, listaCajas, listaCajeros);
        }
Example #3
0
        //creo la funcion con los parametros que recibe de los otros menues
        public void iniciar(ArrayList listaProductos, ArrayList listaPromociones, ArrayList listaCajas, ArrayList listaCajeros, ArrayList listaClientes)
        {
            Console.WriteLine("P R O D U C T O S");
            Console.WriteLine("");
            Console.WriteLine("Ingrese un número");
            Console.WriteLine("1 --> Cargar un producto");
            Console.WriteLine("2 --> Cargar un promoción");
            Console.WriteLine("3 --> Listar los productos");
            Console.WriteLine("4 --> Listar las promociones");
            Console.WriteLine("5 --> Volver al menu principal");
            Console.WriteLine("");
            string ac = Console.ReadLine();

            try{
                long accion = long.Parse(ac);

                while (accion != 5)
                {
                    switch (accion)
                    {
                    case 1:
                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [Carga-productos]");
                        Console.WriteLine("");
                        Console.Write("Ingrese tipo de producto: ");
                        string tipo = Console.ReadLine();
                        Console.Write("Ingrese marca de producto: ");
                        string marca = Console.ReadLine();
                        Console.Write("Ingrese envase de producto: ");
                        string envase = Console.ReadLine();
                        Console.Write("Ingrese Precio: ");
                        string pr     = Console.ReadLine();
                        long   precio = long.Parse(pr);

                        //crea producto, los setea y lo agrega a listaProductos
                        Producto producto = new Producto();
                        producto.setTipo(tipo);
                        producto.setMarca(marca);
                        producto.setEnvase(envase);
                        producto.setPrecio(precio);
                        listaProductos.Add(producto);

                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [carga-productos]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese otro número para continuar:");
                        Console.WriteLine("1 --> Cargar un producto");
                        Console.WriteLine("2 --> Cargar un promoción");
                        Console.WriteLine("3 --> Listar los productos");
                        Console.WriteLine("4 --> Listar las promociones");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        Console.WriteLine("Carga exitosa.");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    case 2:
                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [Carga-promociones]");
                        Console.WriteLine("");
                        Console.WriteLine("Listado de productos: ");
                        //lista los productos numerados
                        int i = 1;
                        foreach (Producto cadaProducto in listaProductos)
                        {
                            Console.WriteLine(i + "--> " + cadaProducto.mostrarProducto());
                            i++;
                        }

                        Console.WriteLine("");
                        Console.WriteLine("Seleccione el producto para la promoción");
                        string idProd     = Console.ReadLine();
                        int    idProducto = int.Parse(idProd);
                        Console.WriteLine("Ingrese cantidad a llevar:");
                        string cantLLevar     = Console.ReadLine();
                        int    cantidadLlevar = int.Parse(cantLLevar);
                        Console.WriteLine("Ingrese cantidad a pagar:");
                        string cantPagar     = Console.ReadLine();
                        int    cantidadPagar = int.Parse(cantPagar);

                        //obtiene el producto en la posicion que selecciona el usuario
                        Producto prodSeleccionado = (Producto)listaProductos [idProducto - 1];
                        //obtiene el tipo y marca que el usuario eligio
                        string tipoSeleccionado  = prodSeleccionado.getTipo();
                        string marcaSeleccionado = prodSeleccionado.getMarca();
                        //bool para verificar si existe la promocion en la lista de promociones
                        bool existe = false;
                        //busca en la lista el tipo y marca para compararlas con las ingresadas por el usuario
                        foreach (Promocion cadaPromo in listaPromociones)
                        {
                            //toma cada producto de cada promo
                            Producto prodActual = cadaPromo.getProducto();
                            //crea variables del tipo y marca del producto de cada promocion para luego comparar
                            string tipoActual  = prodActual.getTipo();
                            string marcaActual = prodActual.getMarca();
                            //compara y de ser igual remplaza los parametros
                            if (tipoSeleccionado == tipoActual && marcaSeleccionado == marcaActual)
                            {
                                cadaPromo.setCantidadLLevar(cantidadLlevar);
                                cadaPromo.setCantidadPagar(cantidadPagar);
                                //setea el true para avisar que ya existe
                                existe = true;
                            }
                        }
                        if (existe == false)
                        {
                            //crea promocion, la setea y la agrega a listaPromociones
                            Promocion promocion = new Promocion();
                            promocion.setProducto((Producto)listaProductos [idProducto - 1]);

                            /* agarra el idProducto y le resta 1 porque
                             * el menu muestra los productos a partir de 1
                             * y la lista arranca en 0 */
                            promocion.setPromocion(cantidadLlevar, cantidadPagar);
                            //y agrega una nueva en caso de que no exista la anterior
                            listaPromociones.Add(promocion);
                        }

                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [carga]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese otro número para continuar");
                        Console.WriteLine("1 --> Cargar un producto");
                        Console.WriteLine("2 --> Cargar un promoción");
                        Console.WriteLine("3 --> Listar los productos");
                        Console.WriteLine("4 --> Listar las promociones");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    case 3:
                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [lista-productos]");
                        Console.WriteLine("");
                        foreach (Producto producto2 in listaProductos)
                        {
                            Console.WriteLine(producto2.mostrarProducto());
                            Console.WriteLine("");
                        }
                        Console.WriteLine("Presione alguna tecla para volver...");
                        Console.ReadLine();

                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [carga]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese otro número para continuar");
                        Console.WriteLine("1 --> Cargar un producto");
                        Console.WriteLine("2 --> Cargar un promoción");
                        Console.WriteLine("3 --> Listar los productos");
                        Console.WriteLine("4 --> Listar las promociones");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    case 4:
                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [lista-promociones]");
                        Console.WriteLine("");
                        foreach (Promocion promo1 in listaPromociones)
                        {
                            Console.WriteLine(promo1.verPromos());
                            Console.WriteLine("");
                        }
                        Console.WriteLine("Presione alguna tecla para volver...");
                        Console.ReadLine();

                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S [carga]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese otro número para continuar");
                        Console.WriteLine("1 --> Cargar un producto");
                        Console.WriteLine("2 --> Cargar un promoción");
                        Console.WriteLine("3 --> Listar los productos");
                        Console.WriteLine("4 --> Listar las promociones");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    default:
                        Console.Clear();
                        Console.WriteLine("P R O D U C T O S");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese otro número para continuar");
                        Console.WriteLine("1 --> Cargar un producto");
                        Console.WriteLine("2 --> Cargar un promoción");
                        Console.WriteLine("3 --> Listar los productos");
                        Console.WriteLine("4 --> Listar las promociones");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        Console.WriteLine("El número ingresado no es valido, vuelva a ingresar:");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;
                    }
                }
            }
            catch {
                Console.Clear();
                Console.WriteLine("*******************************************************");
                Console.WriteLine("Ha ingresado carácteres no válidos vuelva a intentarlo");
                Console.WriteLine("*******************************************************");
                Console.WriteLine("");

                this.iniciar(listaProductos, listaPromociones, listaCajas, listaCajeros, listaClientes);
            }

            Console.Clear();
            //pasa parametros a la funcion volverSupermercado
            this.volverSupermercado(listaProductos, listaPromociones, listaCajas, listaCajeros, listaClientes);
        }
Example #4
0
        //precarga de productos
        public void preCargaProductos(ArrayList listaProductos, ArrayList listaPromociones, ArrayList listaCajas, ArrayList listaCajeros, ArrayList listaClientes)
        {
            //crea productos
            Producto producto1 = new Producto();
            Producto producto2 = new Producto();
            Producto producto3 = new Producto();
            Producto producto4 = new Producto();
            Producto producto5 = new Producto();

            //carga los datos de los productos
            producto1.setTipo("azucar");
            producto1.setMarca("Domino");
            producto1.setEnvase("1 kg");
            producto1.setPrecio(10);

            producto2.setTipo("yerba");
            producto2.setMarca("Marolio");
            producto2.setEnvase("0,5 kg");
            producto2.setPrecio(25);

            producto3.setTipo("Pasas de uva");
            producto3.setMarca("Uvitech");
            producto3.setEnvase("0,25 gr");
            producto3.setPrecio(15);

            producto4.setTipo("Gaseosa");
            producto4.setMarca("Manaos");
            producto4.setEnvase("1,25 ltrs");
            producto4.setPrecio(20);

            producto5.setTipo("Lustra Mueble");
            producto5.setMarca("Blem");
            producto5.setEnvase("360 cm3");
            producto5.setPrecio(37.4);

            //agrega los productos a la listaProductos
            listaProductos.Add(producto1);
            listaProductos.Add(producto2);
            listaProductos.Add(producto3);
            listaProductos.Add(producto4);
            listaProductos.Add(producto5);

            //crea promociones
            Promocion promocion1 = new Promocion();
            Promocion promocion2 = new Promocion();
            Promocion promocion3 = new Promocion();
            Promocion promocion4 = new Promocion();
            Promocion promocion5 = new Promocion();

            //carga los datos de las promociones
            promocion1.setProducto(producto1);
            promocion1.setCantidadLLevar(2);
            promocion1.setCantidadPagar(1);

            promocion2.setProducto(producto2);
            promocion2.setCantidadLLevar(4);
            promocion2.setCantidadPagar(2);

            promocion3.setProducto(producto3);
            promocion3.setCantidadLLevar(5);
            promocion3.setCantidadPagar(2);

            promocion4.setProducto(producto4);
            promocion4.setCantidadLLevar(3);
            promocion4.setCantidadPagar(1);

            promocion5.setProducto(producto5);
            promocion5.setCantidadLLevar(2);
            promocion5.setCantidadPagar(1);

            //agrega las promociones a la listaPromociones
            listaPromociones.Add(promocion1);
            listaPromociones.Add(promocion2);
            listaPromociones.Add(promocion3);
            listaPromociones.Add(promocion4);
            listaPromociones.Add(promocion5);
        }