Class PromocionCantidad

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

public class PromocionCantidad extends Promocion implements IPromocionable
Clase que representa una promocion basada en cantidad minima de productos. Aplica un porcentaje de descuento si se alcanza una cantidad minima de productos especificos o de una categoria determinada. Implementa la interfaz IPromocionable.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • PromocionCantidad

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

    • VerificarCantidad

      public boolean VerificarCantidad(Collection<DetallePedido> productos)
      Verifica si la cantidad de productos cumple el minimo requerido.
      Parameters:
      productos - Lista de detalles del pedido
      Returns:
      true si la cantidad total alcanza el minimo
    • CalcularDescuento

      public BigDecimal CalcularDescuento(BigDecimal subtotal)
      Calcula el descuento basado en el subtotal y el porcentaje.
      Specified by:
      CalcularDescuento in class Promocion
      Parameters:
      subtotal - Subtotal del pedido
      Returns:
      Monto del descuento
    • 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 cantidad minima de productos.
      Specified by:
      ValidarPromocion in interface IPromocionable
      Parameters:
      pedido - Pedido a validar
      Returns:
      true si la promocion aplica
    • getCantidadMinima

      public int getCantidadMinima()
      Returns:
      Cantidad minima requerida
    • setCantidadMinima

      public void setCantidadMinima(int cantidadMinima)
      Parameters:
      cantidadMinima - Nueva cantidad minima
    • getPorcentajeDescuento

      public BigDecimal getPorcentajeDescuento()
      Returns:
      Porcentaje de descuento
    • setPorcentajeDescuento

      public void setPorcentajeDescuento(BigDecimal porcentajeDescuento)
      Parameters:
      porcentajeDescuento - Nuevo porcentaje
    • getProductoRequerido

      public Integer getProductoRequerido()
      Returns:
      Identificador del producto requerido
    • setProductoRequerido

      public void setProductoRequerido(Integer productoRequerido)
      Parameters:
      productoRequerido - Nuevo producto requerido
    • getCategoriaRequerida

      public String getCategoriaRequerida()
      Returns:
      Categoria requerida
    • setCategoriaRequerida

      public void setCategoriaRequerida(String categoriaRequerida)
      Parameters:
      categoriaRequerida - Nueva categoria requerida