Class PromocionMembresia
java.lang.Object
model.Promocion
model.PromocionMembresia
- All Implemented Interfaces:
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:
-
Field Summary
Fields inherited from class Promocion
activa, diasAplicable, fechaFin, fechaInicio, horarioAplicable, idPromocion, maximoAplicaciones, nombrePromocion -
Constructor Summary
ConstructorsConstructorDescriptionPromocionMembresia(int idPromocion, String nombrePromocion) Constructor para crear una promocion por membresia. -
Method Summary
Modifier and TypeMethodDescriptiondoubleAplicarPromocion(Pedido pedido) Aplica la promocion al pedido (implementacion de IPromocionable).CalcularDescuento(BigDecimal subtotal) Calcula el descuento basado en el subtotal y el porcentaje.booleanEsMembresiaValida(String tipoMembresia) Valida si el tipo de membresia es el requerido.voidsetPorcentajeDescuento(BigDecimal porcentajeDescuento) voidsetTipoMembresiaRequerida(String tipoMembresiaRequerida) booleanValidarPromocion(Pedido pedido) Valida si la promocion es aplicable al pedido.Methods inherited from class Promocion
EsAplicable, getDiasAplicable, getFechaFin, getFechaInicio, getHorarioAplicable, getIdPromocion, getMaximoAplicaciones, getNombrePromocion, isActiva, setActiva, setDiasAplicable, setFechaFin, setFechaInicio, setHorarioAplicable, setIdPromocion, setMaximoAplicaciones, setNombrePromocion
-
Constructor Details
-
PromocionMembresia
Constructor para crear una promocion por membresia.- Parameters:
idPromocion- Identificador unico de la promocionnombrePromocion- Nombre descriptivo de la promocion
-
-
Method Details
-
EsMembresiaValida
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
Calcula el descuento basado en el subtotal y el porcentaje.- Specified by:
CalcularDescuentoin classPromocion- Parameters:
subtotal- Subtotal del pedido- Returns:
- Monto del descuento
-
AplicarPromocion
Aplica la promocion al pedido (implementacion de IPromocionable).- Specified by:
AplicarPromocionin interfaceIPromocionable- Parameters:
pedido- Pedido al que aplicar la promocion- Returns:
- Monto del descuento como double
-
ValidarPromocion
Valida si la promocion es aplicable al pedido. Verifica vigencia y que el cliente tenga la membresia requerida.- Specified by:
ValidarPromocionin interfaceIPromocionable- Parameters:
pedido- Pedido a validar- Returns:
- true si la promocion aplica
-
getTipoMembresiaRequerida
- Returns:
- Tipo de membresia requerida
-
setTipoMembresiaRequerida
- Parameters:
tipoMembresiaRequerida- Nuevo tipo de membresia requerida
-
getPorcentajeDescuento
- Returns:
- Porcentaje de descuento
-
setPorcentajeDescuento
- Parameters:
porcentajeDescuento- Nuevo porcentaje
-