private void evaluarCajero(Cajero elCajero, bool condicion)
 {
     if (elCajero.getLibre != condicion)
     {
         throw new CajeroNoDisponibleException(elCajero.ToString());
     }
 }
//---------------------3.2 SELECCIONDECAJA>>>>OPCIONMENUCLIENTE
        public bool CargarCaja()
        {
            try{
                int num1 = int.Parse(Console.ReadLine());
                num1--;
                Cajero PreCajaCompra = (Cajero)ListaCaja[num1];
                evaluarCaja(PreCajaCompra, false, num1);

                CajaCompra    = PreCajaCompra; //	3.Requisito de Compra
                numCajaCompra = ++num1;        //	4.Requisito de Compra
                return(false);
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en el número ingresado, la caja no ha sido seleccionada.");
            }
            catch (ArgumentOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en el número ingresado, la caja no ha sido seleccionada.");
            }
            catch (CajaNoDisponibleException f)
            {
                Console.WriteLine("\nLa caja " + (f.num + 1) + " no esta abierta");
            }
            catch (FormatException)
            {
                Console.WriteLine("\nHay un error en el número ingresado, la caja no ha sido seleccionada.");
            }
            Console.ReadKey(true);
            return(true);
        }
//***********************Fin de class Program************************************************
        private void evaluarCaja(Cajero laCaja, bool condicion, int num)
        {
            if (laCaja.getLibre != condicion)
            {
                throw new CajaNoDisponibleException(laCaja.ToString(), num);
            }
        }
Beispiel #4
0
        public string verCaja()
        {
            string est;

            if (this.getEstado())
            {
                est = "Abierta";
            }
            else
            {
                est = "Cerrada";
            }

            if (this.CajeroAcargo != null)
            {
                Cajero cajero = this.getCajeroAcargo();

                return("Caja Nº: " + this.getCodigoCaja()
                       + " --> Estado de la caja: " + est
                       + " --> Cajero a cargo: " + (string)cajero.getNombre() + " " + cajero.getApellido());
            }
            else
            {
                return("Caja Nº: " + this.getCodigoCaja()
                       + " --> Estado de la caja: " + est);
            }
        }
//-------------------------2.3 OPCIONCERRARCAJA>>>>MODULOCAJA
        public void OpcionCerrarCaja()                            //
        {
            Console.WriteLine("\n¿Qué caja desea cerrar [1-5]?"); //
            string dato1 = Console.ReadLine();

            try{
                int num1 = int.Parse(dato1);
                num1--;
                Cajero unaCaja = (Cajero)ListaCaja[num1];                 //
                evaluarCaja(unaCaja, false, num1);
                int num2 = numLista(unaCaja, ListaCajero);
                unaCaja.getLibre = true;

                ListaCaja[num1]   = new Cajero();
                ListaCajero[num2] = unaCaja;
                Console.WriteLine("La caja " + (num1 + 1) + " fue cerrada");          //
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, la caja no realizó cambios.");
            }
            catch (ArgumentOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, la caja no realizó cambios.");
            }
            catch (CajaNoDisponibleException f)   //
            {
                Console.WriteLine("\nLa caja " + (f.num + 1) + " no esta abierta");
            }
            catch (FormatException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, la caja no realizó cambios.");
            }
        }
Beispiel #6
0
 public Compra(ArrayList ListProducto, ArrayList ListCantidad, Cajero unCajero, int numCaja, Cliente unCliente)
 {
     this.ListaProducto = ListProducto;
     this.ListaCantidad = ListCantidad;
     this.elCajero      = unCajero;
     this.laCaja        = numCaja;
     this.elCliente     = unCliente;
 }
 public BaseDeDato(string Nombre)
 {
     this.Nombre = Nombre;
     for (int i = 0; i < 5; i++)
     {
         Cajero estadoCaja = new Cajero();
         ListaCaja[i] = estadoCaja;
     }
 }
//-------------------------2.2 OPCIONABRIRCAJA>>>>MODULOCAJA
        public void OpcionAbrirCaja()
        {
            Console.WriteLine("\n¿Qué caja desea abrir [1-5]?");
            string dato1 = Console.ReadLine();

            try{
                int num1 = int.Parse(dato1);
                num1--;
                Cajero unaCaja = (Cajero)ListaCaja[num1];
                evaluarCaja(unaCaja, true, num1);

                Console.WriteLine("\nSeleccione el cajero que va atender en la caja\n");
                Txt_ListaCajero();
                int num2 = int.Parse(Console.ReadLine());
                num2--;

                Cajero unCajero = (Cajero)ListaCajero[num2];
                evaluarCajero(unCajero, true);
                //FALTA REUTILIZAR EL CAJERO SALIENTE
                unCajero.getLibre = false;
                ListaCaja[num1]   = unCajero;
                ListaCajero[num2] = unCajero;
                Console.WriteLine("La caja " + (num1 + 1) + " fue abierta");
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, la caja no fue dado de alta.");
            }
            catch (ArgumentOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, la caja no fue dado de alta.");
            }
            catch (CajaNoDisponibleException f)
            {
                Console.WriteLine("\nLa caja " + (f.num + 1) + " ya está siendo atendida por " + f.fuente);
            }
            catch (CajeroNoDisponibleException g)
            {
                Console.WriteLine("\n" + g.fuente + " ya está trabajando en otra caja");
            }
            catch (FormatException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, la caja no fue dado de alta.");
            }
        }
Beispiel #9
0
        //precarga de las cajas
        public void preCargaCajas(ArrayList listaProductos, ArrayList listaPromociones, ArrayList listaCajas, ArrayList listaCajeros, ArrayList listaClientes)
        {
            //crea las cajas
            Caja caja1 = new Caja(1);
            Caja caja2 = new Caja(2);
            Caja caja3 = new Caja(3);
            Caja caja4 = new Caja(4);
            Caja caja5 = new Caja(5);

            //agrega las cajas a la listaCajas
            listaCajas.Add(caja1);
            listaCajas.Add(caja2);
            listaCajas.Add(caja3);
            listaCajas.Add(caja4);
            listaCajas.Add(caja5);

            //crea los cajeros
            Cajero cajero1 = new Cajero();
            Cajero cajero2 = new Cajero();

            //carga los datos de los cajeros
            cajero1.setCodigoCajero(1);
            cajero1.setNombre("Mariano");
            cajero1.setApellido("Rojas");
            cajero1.setDni("35224926");
            cajero1.setHorario("de 12 a 20");

            cajero2.setCodigoCajero(2);
            cajero2.setNombre("Matias");
            cajero2.setApellido("Perez");
            cajero2.setDni("37138426");
            cajero2.setHorario("de 8 a 14");

            //agrega los cajeros a la listaCajeros
            listaCajeros.Add(cajero1);
            listaCajeros.Add(cajero2);

            //carga cajeros a las cajas creadas y le cambio el estado a abierto
            caja1.setCajeroAcargo(cajero1);
            caja1.setEstado(true);
            caja3.setCajeroAcargo(cajero2);
            caja3.setEstado(true);
        }
//------------------------------MODULOCAJA------------------------------//

//-------------------------2.1 OPCIONAGREGARCAJERO>>>>MODULOCAJA
        public void OpcionAgregarCajero()
        {
            Console.WriteLine("Ingrese el nombre");
            string dato1 = Console.ReadLine();

            Console.WriteLine("Ingrese el apellido");
            string dato2 = Console.ReadLine();

            Console.WriteLine("Ingrese el dni");
            string dato3 = Console.ReadLine();

            Console.WriteLine("Ingrese el horario de trabajo(XX-XX ej. 08-15)");
            string dato4 = Console.ReadLine();

            try{
                evaluarString(dato1);
                evaluarString(dato2);
                int       num3 = int.Parse(dato3);
                string [] num4 = ObtenerHorario(dato4);

                Cajero unCajero = new Cajero(dato1, dato2, num3, num4);
                enlistarObjeto(unCajero, ListaCajero);
                Console.WriteLine("\nEl cajero fue dado de alta correctamente.");
            }
            catch (DatoVacioException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, el cajero no fue dado de alta.");
            }
            catch (HoraErroneaException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, el cajero no fue dado de alta.");
            }
            catch (FormatException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, el cajero no fue dado de alta.");
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("\nHay un error en los datos ingresados, el cajero no fue dado de alta.");
            }
        }
Beispiel #11
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("C A J A S");
            Console.WriteLine("");
            Console.WriteLine("Ingrese un número:");
            Console.WriteLine("1 --> Nuevo cajero");
            Console.WriteLine("2 --> Abrir caja");
            Console.WriteLine("3 --> Cerrar caja");
            Console.WriteLine("4 --> Listado de cajas");
            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("C A J A S [Carga-cajero]");
                        Console.WriteLine("");
                        Console.Write("Ingrese el nombre: ");
                        string nombre = Console.ReadLine();
                        Console.Write("Ingrese el apellido: ");
                        string apellido = Console.ReadLine();
                        Console.Write("Ingrese el dni: ");
                        string dni = Console.ReadLine();
                        Console.Write("Ingrese el horario de trabajo: ");
                        string horario         = Console.ReadLine();
                        int    cantidadCajeros = listaCajeros.Count;

                        //crea un cajero, los setea y lo agrega a listaCajeros
                        Cajero cajero = new Cajero();
                        cajero.setCodigoCajero(cantidadCajeros + 1);
                        cajero.setNombre(nombre);
                        cajero.setApellido(apellido);
                        cajero.setDni(dni);
                        cajero.setHorario(horario);
                        listaCajeros.Add(cajero);

                        Console.Clear();
                        Console.WriteLine("C A J A S");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese un número:");
                        Console.WriteLine("1 --> Nuevo cajero");
                        Console.WriteLine("2 --> Abrir caja");
                        Console.WriteLine("3 --> Cerrar caja");
                        Console.WriteLine("4 --> Listado de cajas");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    case 2:
                        Console.Clear();
                        Console.WriteLine("C A J A S [Abrir-caja]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese el número de la caja a abrir [del 1 al 5]:");
                        string CodCaja    = Console.ReadLine();
                        int    CodigoCaja = int.Parse(CodCaja);

                        Console.Clear();
                        Console.WriteLine("C A J A S [Abrir-caja]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese el Nº del cajero a cargo:");
                        Console.WriteLine("");
                        Console.WriteLine("Lista de cajeros cargados:");

                        //lista los cajeros
                        foreach (Cajero cajero1 in listaCajeros)
                        {
                            Console.WriteLine("Nº" + cajero1.getCodigoCajero() + " " + cajero1.getApellido() + ", " + cajero1.getNombre() + ".");
                        }

                        Console.WriteLine("");
                        string CajeroAcargo = Console.ReadLine();
                        int    codigoCajero = int.Parse(CajeroAcargo);
                        Caja   cajaASetear  = null;

                        foreach (Caja caja in listaCajas)
                        {
                            if (caja.getCodigoCaja() == CodigoCaja)
                            {
                                cajaASetear = caja;
                            }
                        }

                        //crea una variable booleana para verificar si el cajero
                        //recibido por parametro ya está atendiendo.
                        bool tieneCajero = false;
                        int  codCaja     = 0;

                        //realiza la funcion para verificar si el cajero está en alguna caja
                        foreach (Caja caja in listaCajas)
                        {
                            Cajero cajeroCaja = caja.getCajeroAcargo();
                            if (cajeroCaja != null)
                            {
                                if (cajeroCaja.getCodigoCajero() == codigoCajero)
                                {
                                    tieneCajero = true;
                                    codCaja     = caja.getCodigoCaja();
                                }
                            }
                        }

                        //si el cajero está en alguna caja muestra un mensaje
                        //de que no se puede asignar a una caja.
                        if (tieneCajero == true)
                        {
                            Console.WriteLine("El cajero ya está atendiendo la caja N° " + codCaja);
                            Console.WriteLine("Pulse cualquier tecla para volver...");
                            Console.ReadKey();
                        }
                        else
                        {
                            //se verifica si algun cajero ya está atendiendo la caja a abrir
                            if (cajaASetear.getCajeroAcargo() != null)
                            {
                                Cajero cajeroSeteado = (Cajero)cajaASetear.getCajeroAcargo();
                                Console.WriteLine("La caja " + cajaASetear.getCodigoCaja().ToString() + " ya esta siendo atendida por " + cajeroSeteado.getNombre() + " " + cajeroSeteado.getApellido());
                                Console.WriteLine("Presione alguna tecla para volver...");
                                Console.ReadKey();
                            }
                            else
                            {
                                foreach (Cajero cajeroFiltro in listaCajeros)
                                {
                                    if (cajeroFiltro.getCodigoCajero() == codigoCajero)
                                    {
                                        cajaASetear.setCajeroAcargo(cajeroFiltro);
                                        cajaASetear.setEstado(true);
                                    }
                                }
                            }
                        }
                        Console.Clear();
                        Console.WriteLine("C A J A S");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese un número:");
                        Console.WriteLine("1 --> Nuevo cajero");
                        Console.WriteLine("2 --> Abrir caja");
                        Console.WriteLine("3 --> Cerrar caja");
                        Console.WriteLine("4 --> Listado de cajas");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    case 3:
                        Console.Clear();
                        Console.WriteLine("C A J A S [Cerrar-caja]");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese el número de la caja a cerrar [del 1 al 5]:");
                        CodCaja    = Console.ReadLine();
                        CodigoCaja = int.Parse(CodCaja);

                        foreach (Caja caja in listaCajas)
                        {
                            if (caja.getCodigoCaja() == CodigoCaja)
                            {
                                caja.setEstado(false);
                                caja.setCajeroAcargo(null);
                            }
                        }

                        Console.Clear();
                        Console.WriteLine("C A J A S");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese un número:");
                        Console.WriteLine("1 --> Nuevo cajero");
                        Console.WriteLine("2 --> Abrir caja");
                        Console.WriteLine("3 --> Cerrar caja");
                        Console.WriteLine("4 --> Listado de cajas");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    case 4:

                        Console.Clear();
                        Console.WriteLine("C A J A S [lista-cajas]");
                        Console.WriteLine("");
                        foreach (Caja caj in listaCajas)
                        {
                            Console.WriteLine(caj.verCaja());
                        }
                        Console.WriteLine("");
                        Console.WriteLine("Presione alguna tecla para volver...");
                        Console.ReadLine();

                        Console.Clear();
                        Console.WriteLine("C A J A S");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese un número:");
                        Console.WriteLine("1 --> Nuevo cajero");
                        Console.WriteLine("2 --> Abrir caja");
                        Console.WriteLine("3 --> Cerrar caja");
                        Console.WriteLine("4 --> Listado de cajas");
                        Console.WriteLine("5 --> Volver al menu principal");
                        Console.WriteLine("");
                        ac     = Console.ReadLine();
                        accion = long.Parse(ac);
                        break;

                    default:
                        Console.Clear();
                        Console.WriteLine("C A J A S");
                        Console.WriteLine("");
                        Console.WriteLine("Ingrese otro número:");
                        Console.WriteLine("1 --> Nuevo cajero");
                        Console.WriteLine("2 --> Abrir caja");
                        Console.WriteLine("3 --> Cerrar caja");
                        Console.WriteLine("4 --> Listado de cajas");
                        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);
        }
Beispiel #12
0
 public void setCajeroAcargo(Cajero nuevoCajeroAcargo)
 {
     this.CajeroAcargo = nuevoCajeroAcargo;
 }
Beispiel #13
0
        public void iniciar(ArrayList listaProductos, ArrayList listaPromociones, ArrayList listaCajas, ArrayList listaCajeros)
        {
            Console.WriteLine("C A J A S");
            Console.WriteLine("");
            Console.WriteLine("Ingrese un número:");
            Console.WriteLine("1 --> Nuevo cajero");
            Console.WriteLine("2 --> Abrir caja");
            Console.WriteLine("3 --> Cerrar caja");
            Console.WriteLine("4 --> Listado de cajas");
            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("C A J A S [Carga-cajero]");
                    Console.WriteLine("");
                    Console.Write("Ingrese el nombre: ");
                    string nombre = Console.ReadLine();
                    Console.Write("Ingrese el apellido: ");
                    string apellido = Console.ReadLine();
                    Console.Write("Ingrese el dni: ");
                    string d   = Console.ReadLine();
                    int    dni = int.Parse(d);
                    Console.Write("Ingrese el horario de trabajo: ");
                    string horario         = Console.ReadLine();
                    int    cantidadCajeros = listaCajeros.Count;
                    Cajero cajero          = new Cajero();
                    cajero.setCodigoCajero(cantidadCajeros);
                    cajero.Nombre   = nombre;
                    cajero.Apellido = apellido;
                    cajero.Dni      = dni;
                    cajero.setHorario(horario);
                    listaCajeros.Add(cajero);

                    Console.Clear();
                    Console.WriteLine("C A J A S");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese un número:");
                    Console.WriteLine("1 --> Nuevo cajero");
                    Console.WriteLine("2 --> Abrir caja");
                    Console.WriteLine("3 --> Cerrar caja");
                    Console.WriteLine("4 --> Listado de cajas");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");

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

                    break;

                case 2:
                    Console.Clear();
                    Console.WriteLine("C A J A S [Abrir-caja]");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese el número de la caja a abrir [del 1 al 5]:");
                    string CodCaja    = Console.ReadLine();
                    int    CodigoCaja = int.Parse(CodCaja);

                    Console.Clear();
                    Console.WriteLine("C A J A S [Abrir-caja]");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese el Nº del cajero a cargo:");
                    Console.WriteLine("");
                    Console.WriteLine("Lista de cajeros cargados:");
                    foreach (Cajero cajero1 in listaCajeros)
                    {
                        Console.WriteLine("Nº" + cajero1.getCodigoCajero() + " " + cajero1.Apellido + ", " + cajero1.Nombre + ".");
                    }
                    Console.WriteLine("");
                    string CajeroAcargo = Console.ReadLine();
                    int    codigoCajero = int.Parse(CajeroAcargo);

                    Caja caja = new Caja(CodigoCaja);
                    caja.setEstado(true);

                    foreach (Cajero cajeroFiltro in listaCajeros)
                    {
                        if (cajeroFiltro.getCodigoCajero() == codigoCajero)
                        {
                            caja.setCajeroAcargo(cajeroFiltro);
                        }
                    }
                    listaCajas.Add(caja);

                    Console.Clear();
                    Console.WriteLine("C A J A S");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese un número:");
                    Console.WriteLine("1 --> Nuevo cajero");
                    Console.WriteLine("2 --> Abrir caja");
                    Console.WriteLine("3 --> Cerrar caja");
                    Console.WriteLine("4 --> Listado de cajas");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");

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

                    break;

                case 3:
                    Console.Clear();
                    Console.WriteLine("C A J A S [Cerrar-caja]");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese el número de la caja a cerrar [del 1 al 5]:");
                    CodCaja    = Console.ReadLine();
                    CodigoCaja = int.Parse(CodCaja);


                    Console.Clear();
                    Console.WriteLine("C A J A S");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese un número:");
                    Console.WriteLine("1 --> Nuevo cajero");
                    Console.WriteLine("2 --> Abrir caja");
                    Console.WriteLine("3 --> Cerrar caja");
                    Console.WriteLine("4 --> Listado de cajas");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");

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

                    break;

                case 4:

                    Console.Clear();
                    Console.WriteLine("C A J A S [lista-cajas]");
                    Console.WriteLine("");
                    foreach (Caja caj in listaCajas)
                    {
                        Console.WriteLine((string)caj.verCaja());
                    }
                    Console.WriteLine("");
                    Console.WriteLine("Presione alguna tecla para volver...");
                    Console.ReadLine();


                    Console.Clear();
                    Console.WriteLine("C A J A S");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese un número:");
                    Console.WriteLine("1 --> Nuevo cajero");
                    Console.WriteLine("2 --> Abrir caja");
                    Console.WriteLine("3 --> Cerrar caja");
                    Console.WriteLine("4 --> Listado de cajas");
                    Console.WriteLine("5 --> Volver al menu principal");
                    Console.WriteLine("");

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

                default:
                    Console.Clear();
                    Console.WriteLine("C A J A S");
                    Console.WriteLine("");
                    Console.WriteLine("Ingrese un número:");
                    Console.WriteLine("1 --> Nuevo cajero");
                    Console.WriteLine("2 --> Abrir caja");
                    Console.WriteLine("3 --> Cerrar caja");
                    Console.WriteLine("4 --> Listado de cajas");
                    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);
        }
Beispiel #14
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 [Compra-productos]");
            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("----------------------------------------");
            Console.WriteLine("Productos en el carrito");
            Console.WriteLine("----------------------------------------");
            //crea un carrito
            Carrito carrito = new Carrito();

            //si el objecto carrito tiene productos, llama a la funcion mostrarProdDelCarrito
            if (carrito.productosEnCarrito != null)
            {
                carrito.mostrarProdDelCarrito();
            }
            Console.WriteLine("");
            Console.WriteLine("Agregue un producto al carro o 0 para finalizar");
            string aPr = Console.ReadLine();
            int    agregarProducto;

            // manejo excepcion de producto no valido. si pone letras o
            // cualquier cosa deja el carrito vacio

            //try{
            agregarProducto = int.Parse(aPr);
            //}catch{
            //agregarProducto = 0;
            //}

            while (agregarProducto != 0)
            {
                //obtiene el producto seleccionado en la posicion que selecciona el usuario
                Producto prodSeleccionado = (Producto)listaProductos [agregarProducto - 1];

                Console.WriteLine("");
                Console.WriteLine("¿Cuantas unidades desea agregar?");
                string cAg         = Console.ReadLine();
                int    cantAgregar = int.Parse(cAg);
                //el objeto carrito llama a la funcion agregar y carga el producto mas la cantidad
                carrito.agregarProducto(prodSeleccionado, cantAgregar);

                Console.Clear();
                Console.WriteLine("P R O D U C T O S [Compra-productos]");
                Console.WriteLine("");
                Console.WriteLine("Listado de productos: ");

                //lista los productos numerados
                i = 1;
                foreach (Producto cadaProducto in listaProductos)
                {
                    Console.WriteLine(i + "--> " + cadaProducto.mostrarProducto());
                    i++;
                }

                Console.WriteLine("");
                Console.WriteLine("----------------------------------------");
                Console.WriteLine("Productos en el carrito");
                Console.WriteLine("----------------------------------------");

                //si el objecto carrito tiene productos, llama a la funcion mostrarProdDelCarrito
                if (carrito.productosEnCarrito != null)
                {
                    carrito.mostrarProdDelCarrito();
                }
                Console.WriteLine("----------------------------------------");
                Console.WriteLine("");
                Console.WriteLine("Agregue un producto al carro o 0 para finalizar");
                aPr             = Console.ReadLine();
                agregarProducto = int.Parse(aPr);
            }

            Console.Clear();
            Console.WriteLine("P R O D U C T O S [Compra-productos]");
            Console.WriteLine("");
            Console.WriteLine("----------------------------------------");
            Console.WriteLine("Productos en el carrito");
            Console.WriteLine("----------------------------------------");
            //si el objecto carrito tiene productos, llama a la funcion mostrarProdDelCarrito
            if (carrito.productosEnCarrito != null)
            {
                carrito.mostrarProdDelCarrito();
            }

            Console.WriteLine("");
            Console.WriteLine("----------------------------------------");
            Console.WriteLine("Cajas abiertas");
            Console.WriteLine("----------------------------------------");
            //muestra la listas de las cajas y su estado
            foreach (Caja caj in listaCajas)
            {
                if (caj.getEstado() == true)
                {
                    Console.WriteLine(caj.verCaja());
                }
            }
            Console.WriteLine("");
            Console.WriteLine("¿En que caja desea pagar?");
            string cAP        = Console.ReadLine();
            int    cajaAPagar = int.Parse(cAP);

            //obtiene la caja seleccionado en la posicion que selecciona el usuario
            Caja cajaSeleccionada = (Caja)listaCajas [cajaAPagar - 1];

            Console.WriteLine(cajaSeleccionada.getCajeroAcargo().getNombre());
            //suma el monto pasado por parametro a la recaudacion de la caja seleccionada
            //cajaSeleccionada.agregarRecaudacion (monto);

            Console.WriteLine("");
            Console.WriteLine("Nueva Compra");
            Console.WriteLine("Ingrese el DNI del cliente:");
            string dni    = Console.ReadLine();
            bool   existe = false;

            foreach (Cliente cliente in listaClientes)
            {
                if (cliente.getDni() == dni)
                {
                    Console.WriteLine(cliente.mostrarCliente());
                    existe = true;
                }
            }
            if (existe == false)
            {
                Console.WriteLine("El cliente no existe, por favor cargelo:");
                Console.Write("");
                Console.Write("Ingrese el nombre: ");
                string nombre = Console.ReadLine();
                Console.Write("Ingrese el apellido: ");
                string apellido = Console.ReadLine();
                Console.Write("Ingrese el dni: ");
                dni = Console.ReadLine();
                Console.Write("Ingrese la fecha de nacimiento: ");
                string nacimiento = Console.ReadLine();

                //crea un cliente, los setea y lo agrega a listaClientes
                Cliente client = new Cliente();
                client.setNombre(nombre);
                client.setApellido(apellido);
                client.setDni(dni);
                client.setNacimiento(nacimiento);
                listaClientes.Add(client);
            }

            //trae los valores que me devuelve la funcion calcularPromo
            ArrayList pagoYAhorro = carrito.calcularPromoRecursiva(listaPromociones);
            double    pagar       = (double)pagoYAhorro [0];
            double    ahorro      = (double)pagoYAhorro [1];

            Console.WriteLine("");
            Console.WriteLine("Total a pagar:" + pagar.ToString());
            Console.WriteLine("Con su compra ahorró:" + ahorro.ToString());
            Console.WriteLine("");
            Console.WriteLine("Precione una tecla para volver");
            Console.ReadKey();

            //suma el total a la recaudacion que tenia
            cajaSeleccionada.agregarRecaudacion(pagar);

            //crea la variable cajero le asigna el cajero y luego le suma el monto
            Cajero cajero = cajaSeleccionada.getCajeroAcargo();

            cajero.agregarRecaudacion(pagar);

            //busca el cliente, cuando lo encuentra a ese le setea la recaudacion
            foreach (Cliente cliente in listaClientes)
            {
                if (cliente.getDni() == dni)
                {
                    cliente.agregarRecaudacion(pagar);
                }
            }

            //pasa parametros a la funcion volverSupermercado
            this.volverSupermercado(listaProductos, listaPromociones, listaCajas, listaCajeros, listaClientes);
        }