Exemplo n.º 1
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);
            }
        }