Exemple #1
0
        static void Main(string[] args)
        {
            int              opcionMenu = 0;
            TiendaRopa       tienda     = new TiendaRopa();
            int              codTipoIndumentaria;
            double           precio;
            string           talle;
            char             camisaOPantalon;
            string           tipoManga;
            string           material;
            bool             tieneEstampa;
            bool             tieneBolsillos;
            int              codIndumentaria;
            int              cantidad;
            int              codCliente;
            bool             ingresarOtraPrenda;
            TipoIndumentaria tipoIndumentaria;

            do
            {
                try {
                    DesplegarMenu();
                    opcionMenu = Validacion.PedirInt("opcion de menú");
                    switch (opcionMenu)
                    {
                    case 1:
                        try {
                            ListarIndumentariaDe(tienda);
                        }
                        catch (NoHayPrendasCargadasException ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                        break;

                    case 2:
                        // Agregar indumentaria
                        try
                        {
                            ListarTipoIndumentaria();
                            codTipoIndumentaria = Validacion.PedirInt("codigo de tipo de indumentaria");
                            tipoIndumentaria    = TipoIndumentariaFactory.GetTipoIndumentaria(codTipoIndumentaria);
                            precio          = Validacion.PedirDouble("precio de la indumentaria");
                            talle           = Validacion.PedirTalle();
                            camisaOPantalon = Validacion.PedirCamisaOPantalon();
                            switch (camisaOPantalon)
                            {
                            case 'C':
                                tieneEstampa = Validacion.PedirSON("si tiene estampa ingrese S, caso contrario N");
                                tipoManga    = Validacion.PedirString("tipo de manga");
                                tienda.AgregarCamisa(tipoIndumentaria, precio, talle, tieneEstampa, tipoManga);
                                break;

                            case 'P':
                                tieneBolsillos = Validacion.PedirSON("si tiene bolsillos ingrese S, caso contrario N");
                                material       = Validacion.PedirString("material");
                                tienda.AgregarPantalon(tipoIndumentaria, precio, talle, tieneBolsillos, material);
                                break;

                            default:
                                break;
                            }
                        }


                        catch (NoExisteTipoCategoriaException ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                        break;

                    case 5:
                        //Ingresar orden
                        try {
                            List <VentaItem> ventaItems = new List <VentaItem>();
                            ListarIndumentariaDe(tienda);
                            codCliente = Validacion.PedirInt("codigo del cliente");
                            do
                            {
                                codIndumentaria = Validacion.PedirInt("codigo de la indumentaria a comprar");
                                IndumentariaEnt ind = tienda.ExistePrenda(codIndumentaria);
                                cantidad = Validacion.PedirInt("cantidad del producto");
                                ventaItems.Add(new VentaItem(ind, cantidad));
                                ingresarOtraPrenda = Validacion.PedirSON("S para agregar otra prenda a la venta, N para terminar");
                            }while (ingresarOtraPrenda);
                            tienda.IngresarOrden(ventaItems, codCliente);
                        }
                        catch (NoHayPrendasCargadasException ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }while (opcionMenu != 10);
        }
Exemple #2
0
        static void IngresarOrden(TiendaRopa T)
        {
            try
            {
                //LISTO LAS INDUMENTARIAS DISPONIBLES

                if (T.CantidadIndumentaria() == 0)
                {
                    throw new ListaVaciaIndumentariaException();
                }
                else
                {
                    ListarIndumentaria(T);
                    string           _salida;
                    List <VentaItem> ListaItem = new List <VentaItem>();
                    Cliente          Cliente   = null;
                    do
                    {
                        //PIDO LA PRENDA A INGRESAR A LA ORDEN
                        string _strCodigo;
                        int    _codigo = 0;
                        bool   flag    = false;
                        do
                        {
                            _strCodigo = ConsolaHelper.PedirCodigoAIngresarpedido();
                            flag       = Validaciones.ValidarCodigoIndumentaria(_strCodigo, ref _codigo);
                        } while (!flag);

                        Indumentaria I = T.BuscarIndumentaria(_codigo);

                        if (I is null)
                        {
                            throw new Exception("No existe dicha indumentaria");
                        }
                        else
                        {
                            //PIDO LA CANTIDAD
                            string cantidad;
                            int    _cant = 0;
                            bool   flag1 = false;
                            do
                            {
                                cantidad = ConsolaHelper.PedirCantidad();
                                flag1    = Validaciones.ValidarCodigoIndumentaria(cantidad, ref _cant);
                            } while (!flag1);

                            if (_cant > I.Stock)
                            {
                                throw new Exception("No puede ingresar mas del stock que existe.");
                            }

                            VentaItem Item = new VentaItem(I, _cant);

                            T.QuitarStock(I, _cant); // quito el stock al objeto

                            ListaItem.Add(Item);

                            //PEDIR SI QUIERE INGRESAR MAS

                            bool _essalida = false;
                            do
                            {
                                ConsolaHelper.MostrarMensaje("Desea seguir ingresando productos? S / N");
                                _salida   = Console.ReadLine();
                                _essalida = Validaciones.ValidarSalida(_salida);
                            } while (!_essalida);
                        }
                    } while (_salida == "S");

                    //PEDIR QUE INGRESE AL CLIENTE

                    //lista de clientes
                    foreach (Cliente C in T.MostrarClientes())
                    {
                        ConsolaHelper.MostrarMensaje(C.ToString());
                    }
                    string strcliente;
                    int    _cliente = 0;
                    bool   flag5    = false;
                    do
                    {
                        ConsolaHelper.MostrarMensaje("Ingrese al cliente: ");
                        strcliente = Console.ReadLine();
                        flag5      = Validaciones.ValidarCliente(strcliente, ref _cliente);
                    } while (!flag5);

                    Cliente = T.BuscarCliente(_cliente);

                    if (Cliente is null)
                    {
                        throw new Exception("No existe dicho cliente");
                    }

                    Venta Venta = new Venta(ListaItem, Cliente, Convert.ToInt32(EstadoVenta.Procesada), T.GetProximoCodigoVenta());
                    T.IngresarOrden(Venta);

                    ConsolaHelper.MostrarMensaje("Venta ingresada con exito!");
                }
            }
            catch (ListaVaciaIndumentariaException a)
            {
                ConsolaHelper.MostrarMensaje(a.Message);
            }
            catch (Exception e)
            {
                ConsolaHelper.MostrarMensaje(e.Message);
            }
        }