//contructor pra pregarga public Venta(float monto, float cantidadLitros, Playero vendedor, Surtidor surtidosAsociado, Promocion promocionAplicada, float montoDescuento) { this.monto = monto; this.cantidadLitros = cantidadLitros; this.vendedor = vendedor; this.surtidorAsociado = surtidosAsociado; this.promocionAplicada = promocionAplicada; this.montoDescuento = montoDescuento; }
// **************** ALTA DE PROMOCION ******************** public static Promocion AltaPromocion() { try { Menu.BannerPromociones("Alta Promociones"); Console.WriteLine("Ingrese Tipo de Descuento:(porcentual/puntos)"); string Tipo_promocion = Console.ReadLine(); if (Equals("porcentual", Tipo_promocion.ToLower())) { Console.WriteLine("Ingrese porcentaje de descuento:"); } else { //(Equals("puntos",Tipo_promocion.ToLower())){ Console.WriteLine("Ingrese cantidad de puntos:"); } int Descuento = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese Nombre de la Tarjeta:"); string Nombre_tarjeta = Console.ReadLine(); Promocion nuevaPromocion = new Promocion(Tipo_promocion, Descuento, Nombre_tarjeta); Console.WriteLine("\n PROMOCION CARGADA CORRECTAMENTE"); return(nuevaPromocion); } catch (FormatException) { Menu.BannerPromociones("Alta Promociones"); Console.WriteLine("ERROR Ingrese un valor numerico"); Console.ReadKey(); Console.Clear(); Promocion nuevaPromocion = AltaPromocion(); return(nuevaPromocion); } catch (Exception) { Menu.BannerPromociones("Alta Promociones"); Console.WriteLine("ERROR INESPERADO VUELVA A INTENTARLO"); Console.ReadKey(); Console.Clear(); Promocion nuevaPromocion = AltaPromocion(); return(nuevaPromocion); } }
// ******************* BORRA UNA PROMOCION SELECCIONADA ******************************** public static void BorrarPromocion() { try{ Menu.BannerPromociones("Baja Promociones"); Console.WriteLine("\n\n Seleccione PROMOCION a eliminar!"); Promocion.ImprimirPromociones(EstacionServicio.promociones); int indice = int.Parse(Console.ReadLine()); Promocion.BajaPromocion(EstacionServicio.promociones, indice); } catch (ArgumentOutOfRangeException) { //Menu.BannerPromociones("Baja Promociones"); Console.WriteLine(" El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección."); Console.ReadLine(); Console.Clear(); BorrarPromocion(); } catch (FormatException) { //Menu.BannerPromociones("Baja Promociones"); Console.WriteLine("Error ingrese un valor numerico entero"); Console.ReadLine(); Console.Clear(); BorrarPromocion(); } }
//***********************************************************CARGAR COMBUSTIBLE************************************************************************ //pide nro de surtidor a ocupar, los litros de combustible cargados, calcula monto con descuento de corresponder //suma monto de descuento al total de descuentos y agrega la venta al arreglo correspondiente public static void CargarCombustible() { Menu.BannerSurtidores("Cargar combustible"); Console.WriteLine("Ingrese el nro de surtidor a ocupar: \n"); try{ int surtidornumero = int.Parse(Console.ReadLine()); Surtidor surtidorAsociado = null; float montoDescuento = 0; foreach (Surtidor s in EstacionServicio.surtidoresOn) { if (s.Numero_de_surtidor == surtidornumero) { surtidorAsociado = s; } } Console.WriteLine("Ingrese cantidad de litros cargados: \n"); surtidorAsociado.Cantidad_litros_ventidos_en_una_venta = float.Parse(Console.ReadLine()); float monto = surtidorAsociado.Cantidad_litros_ventidos_en_una_venta * surtidorAsociado.Precio_litro; Promocion promocionAplicada = null; Console.WriteLine("Paga con alguna promocion?s/n \n"); string aplicaPromo = Console.ReadLine(); if (aplicaPromo.ToLower() == "s") { if (EstacionServicio.promociones.Count == 0) { Console.WriteLine("No hay promociones dadas de alta\n"); } else { Promocion.ImprimirPromociones(EstacionServicio.promociones); Console.WriteLine("Ingrese tipo de promocion a utilizar:\n"); int nroPromo = int.Parse(Console.ReadLine()); promocionAplicada = (Promocion)EstacionServicio.promociones[nroPromo - 1]; if (promocionAplicada.Tipo_promocion.ToLower() == "porcentual") { montoDescuento = (monto * (Convert.ToSingle(promocionAplicada.Descuento) / 100)); EstacionServicio.montoTotalDescuentos += montoDescuento; //****************************agrego el monto descontado al monto total de los descuentos********************************************* monto -= montoDescuento; Console.WriteLine("\nEl monto total de la venta con descuento es: $" + monto + "\n"); } } } else { Console.WriteLine("\nEl monto total de la venta es: $" + monto + "\n"); } surtidorAsociado.Stock_combustible -= surtidorAsociado.Cantidad_litros_ventidos_en_una_venta; EstacionServicio.ventas.Add(new Venta(monto, surtidorAsociado.Cantidad_litros_ventidos_en_una_venta, surtidorAsociado.Playedo_asignado, surtidorAsociado, promocionAplicada, montoDescuento)); } catch (FormatException) { Console.WriteLine("Entrada invalida, Ingrese un valor numerico\n"); Console.ReadKey(); Console.Clear(); CargarCombustible(); } catch (NullReferenceException) { Console.WriteLine("\nEl surtidor elegido no se encuentra habilitado"); Console.ReadKey(); Console.Clear(); CargarCombustible(); } }
// ******************* IMPRIME PROMOCIONES VIGENTES CON MENU **************************** public static void ListarPromociones(string op, ArrayList promociones) { Menu.BannerPromociones(op); Promocion.ImprimirPromociones(promociones); }
// ********************************** MODULO PROMOCIONES ******************************************* public void MenuPromociones() { Menu.MostrarMenuPromociones(); //VARIABLE OPCION string op = Console.ReadLine(); while (op != "4") //La opción 4 retorna al Menu Principal del programa { if (op.Equals("1") || op.Equals("2") | op.Equals("3")) { Console.Clear(); switch (op) { case "1": // AGREGA UNA PROMOCION promociones.Add(Promocion.AltaPromocion()); break; case "2": // BORRA UNA PROMOCION if (promociones.Count == 0) { Menu.BannerPromociones(""); Console.WriteLine("No hay promociones dadas de alta\n"); break; } Promocion.BorrarPromocion(); break; case "3": // MUESTRA LAS PROMOCIONES if (promociones.Count == 0) { Menu.BannerPromociones(""); Console.WriteLine("No hay promociones dadas de alta\n"); break; } Promocion.ListarPromociones("Listar Promociones", promociones); break; } //Otorga un momento para ver y comprobar la funcion realizada Console.WriteLine("\n" + "Presione una tecla para continuar" + "\n"); Console.ReadKey(true); //Vacia el contenido de la operación realizada Console.Clear(); //Vuelve mostrar el menú de las opciones a seleccionar, ya que se había eliminado Menu.MostrarMenuAdministracion(); } else { Console.WriteLine("OPCION_INVALIDA, Presione una tecla para continuar..."); Console.ReadKey(); Console.Clear(); Menu.MostrarMenuAdministracion(); } Console.Clear(); Menu.MostrarMenuPromociones(); //Se vuelve a pedir una opción dentro del módulo op = Console.ReadLine(); } }