Class Promocion
java.lang.Object
model.Promocion
- Direct Known Subclasses:
Promocion2x1, PromocionCantidad, PromocionMembresia
Clase abstracta que representa una promocion del restaurante/cafeteria.
Contiene los atributos y comportamientos comunes a todos los tipos de promociones
(2x1, Cantidad, Membresia). Gestiona fechas de vigencia, dias aplicables,
horarios, maximo de aplicaciones y estado activo/inactivo.
- Version:
- 1.0
- Author:
- ISC Israel de Jesus Mar Parada
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanIndica si la promocion esta activa.Lista de dias de la semana en que aplica la promocion.protected LocalDateTimeFecha y hora de fin de la vigencia.protected LocalDateTimeFecha y hora de inicio de la vigencia.protected RangoHorarioRango horario en que aplica la promocion.protected intIdentificador unico de la promocion.protected intNumero maximo de veces que se puede aplicar la promocion.protected StringNombre descriptivo de la promocion. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract BigDecimalCalcularDescuento(BigDecimal subtotal) Calcula el descuento aplicable segun el tipo de promocion.booleanEsAplicable(LocalDateTime fecha) Verifica si la promocion es aplicable en una fecha especifica.intintbooleanisActiva()voidsetActiva(boolean activa) voidsetDiasAplicable(List<DayOfWeek> diasAplicable) voidsetFechaFin(LocalDateTime fechaFin) voidsetFechaInicio(LocalDateTime fechaInicio) voidsetHorarioAplicable(RangoHorario horarioAplicable) voidsetIdPromocion(int idPromocion) voidsetMaximoAplicaciones(int maximoAplicaciones) voidsetNombrePromocion(String nombrePromocion)
-
Field Details
-
idPromocion
protected int idPromocionIdentificador unico de la promocion. -
nombrePromocion
Nombre descriptivo de la promocion. -
fechaInicio
Fecha y hora de inicio de la vigencia. -
fechaFin
Fecha y hora de fin de la vigencia. -
diasAplicable
-
horarioAplicable
Rango horario en que aplica la promocion. -
maximoAplicaciones
protected int maximoAplicacionesNumero maximo de veces que se puede aplicar la promocion. -
activa
protected boolean activaIndica si la promocion esta activa.
-
-
Constructor Details
-
Promocion
Constructor para crear una nueva promocion. Inicializa la promocion como activa por defecto.- Parameters:
idPromocion- Identificador unico de la promocionnombrePromocion- Nombre descriptivo de la promocion
-
-
Method Details
-
EsAplicable
Verifica si la promocion es aplicable en una fecha especifica. Condiciones: - La promocion debe estar activa - La fecha debe estar entre fechaInicio y fechaFin - El dia de la semana debe estar en diasAplicable (si se especifico) - La hora debe estar dentro del rango horario (si se especifico)- Parameters:
fecha- Fecha a validar- Returns:
- true si la promocion es aplicable, false en caso contrario
-
CalcularDescuento
Calcula el descuento aplicable segun el tipo de promocion.- Parameters:
subtotal- Subtotal del pedido- Returns:
- Monto del descuento a aplicar
-
getIdPromocion
public int getIdPromocion()- Returns:
- Identificador de la promocion
-
setIdPromocion
public void setIdPromocion(int idPromocion) - Parameters:
idPromocion- Nuevo identificador
-
getNombrePromocion
- Returns:
- Nombre de la promocion
-
setNombrePromocion
- Parameters:
nombrePromocion- Nuevo nombre
-
getFechaInicio
- Returns:
- Fecha de inicio
-
setFechaInicio
- Parameters:
fechaInicio- Nueva fecha de inicio
-
getFechaFin
- Returns:
- Fecha de fin
-
setFechaFin
- Parameters:
fechaFin- Nueva fecha de fin
-
getDiasAplicable
-
setDiasAplicable
-
getHorarioAplicable
- Returns:
- Rango horario aplicable
-
setHorarioAplicable
- Parameters:
horarioAplicable- Nuevo rango horario
-
getMaximoAplicaciones
public int getMaximoAplicaciones()- Returns:
- Maximo de aplicaciones
-
setMaximoAplicaciones
public void setMaximoAplicaciones(int maximoAplicaciones) - Parameters:
maximoAplicaciones- Nuevo maximo
-
isActiva
public boolean isActiva()- Returns:
- true si esta activa
-
setActiva
public void setActiva(boolean activa) - Parameters:
activa- Nuevo estado de activacion
-