public static void ShowMenu() { Console.Clear(); try { Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("1 - Clientes \n2 - Productos \n3 - Ventas \n4 - Salir"); Console.Write("Digite una opcion: "); int opcion = Convert.ToInt32(Console.ReadLine()); switch (opcion) { case 1: MenuClientes.ShowMenu(); break; case 2: MenuProductos.ShowMenu(); break; case 3: MenuVentas.ShowMenu(); break; case 4: Environment.Exit(0); break; default: Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error! opcion invalida"); Console.ReadKey(); ShowMenu(); break; } } catch (Exception) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error! opcion invalida"); Console.ReadKey(); ShowMenu(); } }
public T ConsultaProducto <T>(string nombreProducto, string tipoConsulta = "Nombre") { switch (tipoConsulta.ToLower()) { case "nombre": var result = productoLista.FirstOrDefault(p => p.Nombre == nombreProducto); if (result != null) { return((T)(object)true); } else { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("**Producto no encontrado**"); Console.ReadKey(); //ConsultaProducto<T>(nombreProducto, tipoConsulta); MenuVentas.ShowMenu(); } break; case "cantidad": var result2 = productoLista.FirstOrDefault(p => p.Nombre == nombreProducto); if (result2 != null) { return((T)(object)result2.Cantidad); } break; case "precio": var result3 = productoLista.FirstOrDefault(p => p.Nombre == nombreProducto); if (result3 != null) { return((T)(object)result3.Precio); } break; default: break; } return((T)(object)false); }
public void Crear() { string nombre, nombreProducto; double precioProducto; Producto producto = new Producto(); Factura factura = new Factura(); Console.Clear(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Para editar un cliente comience escribiendo el nombre"); Console.ForegroundColor = ConsoleColor.Cyan; if (string.IsNullOrEmpty(persistenciaData[0])) { Console.Write("Nombre de cliente: "); nombre = Console.ReadLine(); } else { Console.WriteLine("Nombre de cliente: {0}", persistenciaData[0]); nombre = persistenciaData[0]; } if (!string.IsNullOrEmpty(nombre)) { bool result = manageClient.ConsultaCliente(nombre); if (result) { persistenciaData[0] = nombre; if (string.IsNullOrEmpty(persistenciaData[1])) { Console.Write("Nombre producto: "); nombreProducto = Console.ReadLine(); } else { Console.WriteLine("Nombre producto: {0}", persistenciaData[1]); nombreProducto = persistenciaData[1]; } bool searchProduct = manageProduct.ConsultaProducto <bool>(nombreProducto, "nombre"); if (searchProduct) { precioProducto = manageProduct.ConsultaProducto <double>(nombreProducto, "precio"); persistenciaData[1] = nombreProducto; producto.Nombre = nombreProducto; Console.Write("Cantidad: "); int cantProducto = Convert.ToInt32(Console.ReadLine()); int stockProduct = manageProduct.ConsultaProducto <int>(nombreProducto, "cantidad"); if (cantProducto > stockProduct) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("La cantidad introducida es mayor que el stock disponible: ", stockProduct); Console.WriteLine("1 - Introducir otra cantidad \n2 - Buscar otro producto \n3 - Cancelar venta"); try { int opcion = Convert.ToInt32(Console.ReadLine()); switch (opcion) { case 1: Crear(); break; case 2: persistenciaData[1] = ""; Crear(); break; case 3: MenuPrincipal.ShowMenu(); break; default: persistenciaData[0] = ""; persistenciaData[1] = ""; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error en factura."); Console.ReadKey(); Crear(); break; } } catch (Exception) { persistenciaData[0] = ""; persistenciaData[1] = ""; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error en factura."); Console.ReadKey(); Crear(); } } else { producto.Cantidad = cantProducto; producto.subtotal = cantProducto * precioProducto; producto.Precio = precioProducto; productList.Add(producto); Console.WriteLine("Agregar otro producto? 1-Si 2-No"); try { int opcion = Convert.ToInt32(Console.ReadLine()); switch (opcion) { case 1: persistenciaData[1] = ""; Crear(); break; case 2: persistenciaData[0] = ""; persistenciaData[1] = ""; factura.NombreCliente = nombre; factura.Id = generadorId.GetIdRnd(); factura.ProductList = productList; productList.Clear(); facturaLista.Add(factura); VentaCompletada(factura); break; default: persistenciaData[1] = ""; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error en factura."); Console.ReadKey(); MenuVentas.ShowMenu(); break; } } catch (Exception) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Error en factura."); Console.ReadKey(); MenuVentas.ShowMenu(); } } } else { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("**Producto no encontrado**"); Console.ReadKey(); Crear(); } } else { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("**Cliente no encontrado**"); Console.ReadKey(); Crear(); } } else { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("**entrada invalida**"); Console.ReadKey(); Crear(); } }