Example #1
0
        private static void gestionar(Servicio stub)
        {
            String nombre, direccion, fichero, descripcion, codProducto, actualNombre = null;
            int    cantidad, dia, mes, anyo, actual = -1;
            float  precio;
            int    opt;

            do
            {
                opt = menu(actualNombre);
                switch (opt)
                {
                case 1:     //Crear almacen
                    if (actual != -1)
                    {
                        stub.GuardarAlmacen(actual);
                        stub.CerrarAlmacen(actual);
                        actual       = -1;
                        actualNombre = null;
                    }
                    nombre    = leer("Nombre");
                    direccion = leer("Direccion");
                    fichero   = leer("Fichero");
                    actual    = stub.CrearAlmacen(nombre, direccion, fichero);
                    if (actual == -1)
                    {
                        Console.WriteLine("Error en la operacion");
                    }
                    else
                    {
                        actualNombre = nombre;
                    }
                    break;

                case 2:     //Abrir fichero
                    if (actual != -1)
                    {
                        stub.GuardarAlmacen(actual);
                        stub.CerrarAlmacen(actual);
                        actual       = -1;
                        actualNombre = null;
                    }
                    fichero = leer("Fichero");
                    actual  = stub.AbrirAlmacen(fichero);
                    if (actual == -1)
                    {
                        Console.WriteLine("Error en la operacion");
                    }
                    else
                    {
                        TDatosAlmacen datos = stub.DatosAlmacen(actual);
                        if (datos == null)
                        {
                            Console.WriteLine("Error en la operacion");
                        }
                        else
                        {
                            actualNombre = datos.getNombre();
                        }
                    }
                    break;

                case 3:     //Cerrar almacen
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        if (!stub.CerrarAlmacen(actual))
                        {
                            Console.WriteLine("Error en la operacion");
                        }
                        actual       = -1;
                        actualNombre = null;
                    }
                    break;

                case 4:     //Guardar datos
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        if (!stub.GuardarAlmacen(actual))
                        {
                            Console.WriteLine("Error en la operacion");
                        }
                    }
                    break;

                case 5:     //Listar productos
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        int nProductos = stub.NProductos(actual);
                        if (nProductos == 0)
                        {
                            Console.WriteLine("No hay productos en este almacen");
                        }
                        else
                        {
                            Console.WriteLine(String.Format("{0,10} {1,25} {2,10} {3,10} {4,16}", "CODIGO", "NOMBRE", "PRECIO", "CANTIDAD", "FECHA CADUCIDAD"));
                            for (int i = 0; i < nProductos; i++)
                            {
                                TProducto producto = stub.ObtenerProducto(actual, i);
                                Console.WriteLine(String.Format("{0,10} {1,25} {2,10} {3,10} {4,16}", producto.getCodProducto(), producto.getNombreProducto(), producto.getPrecio(), producto.getCantidad(), String.Format("{0,2}/{1,2}/{2,4}", producto.getCaducidad().getDia(), producto.getCaducidad().getMes(), producto.getCaducidad().getAnyo())));
                            }
                        }
                    }
                    break;

                case 6:     //AƱadir producto
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        codProducto = leer("Codigo");
                        nombre      = leer("Nombre");
                        descripcion = leer("Descripcion");
                        precio      = leerFloat("Precio");
                        cantidad    = leerInt("Cantidad");
                        dia         = leerInt("Caducidad dia");
                        mes         = leerInt("Caducidad mes");
                        anyo        = leerInt("Caducidad anyo");
                        if (!stub.AnadirProducto(actual, new TProducto(codProducto, nombre, descripcion, precio, cantidad, new TFecha(dia, mes, anyo))))
                        {
                            Console.WriteLine("Error en la operacion");
                        }
                    }
                    break;

                case 7:     //Actualizar producto
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        codProducto = leer("Codigo");
                        TProducto producto = stub.ObtenerProducto(actual, stub.BuscaProducto(actual, codProducto));
                        if (producto == null)
                        {
                            Console.WriteLine("No se ha encontrado el producto");
                        }
                        else
                        {
                            nombre      = leerDefecto("Nombre", producto.getNombreProducto());
                            descripcion = leerDefecto("Descripcion", producto.getDescripcion());
                            precio      = leerDefectoFloat("Precio", producto.getPrecio());
                            cantidad    = leerDefectoInt("Cantidad", producto.getCantidad());
                            dia         = leerDefectoInt("Caducidad dia", producto.getCaducidad().getDia());
                            mes         = leerDefectoInt("Caducidad mes", producto.getCaducidad().getMes());
                            anyo        = leerDefectoInt("Caducidad anyo", producto.getCaducidad().getAnyo());
                            if (!stub.ActualizarProducto(actual, new TProducto(codProducto, nombre, descripcion, precio, cantidad, new TFecha(dia, mes, anyo))))
                            {
                                Console.WriteLine("Error en la operacion");
                            }
                        }
                    }
                    break;

                case 8:     //Consultar producto
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        codProducto = leer("Codigo");
                        TProducto producto = stub.ObtenerProducto(actual, stub.BuscaProducto(actual, codProducto));
                        if (producto == null)
                        {
                            Console.WriteLine("Error en la operacion");
                        }
                        else
                        {
                            Console.WriteLine("Nombre: {0}\nDescripcion: {1}\nPrecio: {2}\nCantidad: {3}\nCaducidad: {4}/{5}/{6}\n", producto.getNombreProducto(), producto.getDescripcion(), producto.getPrecio(), producto.getCantidad(), producto.getCaducidad().getDia(), producto.getCaducidad().getMes(), producto.getCaducidad().getAnyo());
                        }
                    }
                    break;

                case 9:     //Eliminar producto
                    if (actual == -1)
                    {
                        Console.WriteLine("No se ha habierto ningun almacen");
                    }
                    else
                    {
                        codProducto = leer("Codigo del producto a eliminar");
                        if (!stub.EliminarProducto(actual, codProducto))
                        {
                            Console.WriteLine("Error en la operacion");
                        }
                    }
                    break;
                }
                if (opt != 0)
                {
                    Console.WriteLine("\n\nPulsa enter para continuar.");
                    Console.ReadLine();
                }
            } while(opt != 0);

            if (actual != -1)
            {
                stub.GuardarAlmacen(actual);
                stub.CerrarAlmacen(actual);
            }
        }