Class GestionDescuentos

java.lang.Object
model.control.GestionDescuentos

public class GestionDescuentos extends Object
Clase que gestiona la aplicacion de descuentos en el sistema. Permite aplicar descuentos por categoria, descuentos especiales por tipo de articulo, descuentos por cantidad y activar temporadas promocionales.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • GestionDescuentos

      public GestionDescuentos()
      Constructor de la gestion de descuentos. Inicializa la lista de descuentos activos como vacia y la temporada como "NINGUNA".
  • Method Details

    • AplicarDescuentoCategoria

      public void AplicarDescuentoCategoria(Categoria categoria, BigDecimal porcentaje)
      Aplica un descuento a todos los articulos de una categoria.
      Parameters:
      categoria - Categoria a la que aplicar el descuento
      porcentaje - Porcentaje de descuento (ej: 0.15 = 15%)
    • AplicarDescuentoEspecial

      public BigDecimal AplicarDescuentoEspecial(Articulo articulo)
      Aplica un descuento especial a un articulo segun su tipo. Utiliza los metodos especificos de cada subclase: - ArticuloLibreria: descuento por peso - ArticuloOficina: descuento por volumen - ArticuloEscolar: descuento por temporada
      Parameters:
      articulo - Articulo a evaluar
      Returns:
      Porcentaje de descuento aplicado
    • CalcularDescuentoPorCantidad

      public BigDecimal CalcularDescuentoPorCantidad(int cantidad)
      Calcula el descuento por cantidad de unidades compradas. Escala de descuentos: - 10+ unidades: 5% - 20+ unidades: 10% - 50+ unidades: 15% - 100+ unidades: 20%
      Parameters:
      cantidad - Cantidad de unidades
      Returns:
      Porcentaje de descuento aplicable
    • activarTemporada

      public void activarTemporada(String temporada)
      Activa una temporada de descuentos. Aplica descuentos predefinidos segun la temporada: - VUELTA A CLASES: 15% en categoria ESCOLAR - NAVIDAD: 10% en categoria OFICINA
      Parameters:
      temporada - Nombre de la temporada
    • getDescuentosActivos

      public List<String> getDescuentosActivos()
      Returns:
      Lista de descuentos activos
    • setDescuentosActivos

      public void setDescuentosActivos(List<String> descuentosActivos)
      Parameters:
      descuentosActivos - Nueva lista de descuentos
    • getTemporadaDescuentos

      public String getTemporadaDescuentos()
      Returns:
      Temporada de descuentos actual
    • setTemporadaDescuentos

      public void setTemporadaDescuentos(String temporadaDescuentos)
      Parameters:
      temporadaDescuentos - Nueva temporada