Class Promocion2x1

java.lang.Object
model.Promocion
model.Promocion2x1
All Implemented Interfaces:
IPromocionable

public class Promocion2x1 extends Promocion implements IPromocionable
Clase que representa una promocion 2x1 (lleve dos, pague uno). Aplica descuento equivalente al precio del producto cuando se compran al menos 2 unidades. Implementa la interfaz IPromocionable.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • Promocion2x1

      public Promocion2x1(int idPromocion, String nombrePromocion)
      Constructor para crear una promocion 2x1.
      Parameters:
      idPromocion - Identificador unico de la promocion
      nombrePromocion - Nombre descriptivo de la promocion
  • Method Details

    • AplicarPromocion

      public BigDecimal AplicarPromocion(List<DetallePedido> productos)
      Aplica la promocion a una lista de productos. Por cada par de productos, descuenta el precio de uno.
      Parameters:
      productos - Lista de detalles del pedido
      Returns:
      Monto del descuento aplicado
    • CalcularDescuento

      public BigDecimal CalcularDescuento(BigDecimal subtotal)
      Calcula el descuento (implementacion abstracta). En 2x1 se usa AplicarPromocion, este metodo retorna 0.
      Specified by:
      CalcularDescuento in class Promocion
      Parameters:
      subtotal - Subtotal del pedido
      Returns:
      BigDecimal.ZERO
    • AplicarPromocion

      public double AplicarPromocion(Pedido pedido)
      Aplica la promocion al pedido (implementacion de IPromocionable).
      Specified by:
      AplicarPromocion in interface IPromocionable
      Parameters:
      pedido - Pedido al que aplicar la promocion
      Returns:
      Monto del descuento como double
    • ValidarPromocion

      public boolean ValidarPromocion(Pedido pedido)
      Valida si la promocion es aplicable al pedido. Verifica vigencia y que haya al menos 2 unidades del producto aplicable.
      Specified by:
      ValidarPromocion in interface IPromocionable
      Parameters:
      pedido - Pedido a validar
      Returns:
      true si la promocion aplica
    • getProductoAplicable

      public int getProductoAplicable()
      Returns:
      Identificador del producto aplicable
    • setProductoAplicable

      public void setProductoAplicable(int productoAplicable)
      Parameters:
      productoAplicable - Nuevo producto aplicable
    • getCategoriaAplicable

      public String getCategoriaAplicable()
      Returns:
      Categoria aplicable
    • setCategoriaAplicable

      public void setCategoriaAplicable(String categoriaAplicable)
      Parameters:
      categoriaAplicable - Nueva categoria aplicable