Class PromocionMembresia

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

public class PromocionMembresia extends Promocion implements IPromocionable
Clase que representa una promocion basada en membresia del cliente. Aplica un porcentaje de descuento si el cliente tiene el tipo de membresia requerido. Implementa la interfaz IPromocionable.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • PromocionMembresia

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

    • EsMembresiaValida

      public boolean EsMembresiaValida(String tipoMembresia)
      Valida si el tipo de membresia es el requerido.
      Parameters:
      tipoMembresia - Tipo de membresia del cliente
      Returns:
      true si coincide, false en caso contrario
    • 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 que el cliente tenga la membresia requerida.
      Specified by:
      ValidarPromocion in interface IPromocionable
      Parameters:
      pedido - Pedido a validar
      Returns:
      true si la promocion aplica
    • getTipoMembresiaRequerida

      public String getTipoMembresiaRequerida()
      Returns:
      Tipo de membresia requerida
    • setTipoMembresiaRequerida

      public void setTipoMembresiaRequerida(String tipoMembresiaRequerida)
      Parameters:
      tipoMembresiaRequerida - Nuevo tipo de membresia requerida
    • getPorcentajeDescuento

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

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