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); }
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); } }