Class Promocion2x1
java.lang.Object
model.Promocion
model.Promocion2x1
- All Implemented Interfaces:
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:
-
Field Summary
Fields inherited from class Promocion
activa, diasAplicable, fechaFin, fechaInicio, horarioAplicable, idPromocion, maximoAplicaciones, nombrePromocion -
Constructor Summary
ConstructorsConstructorDescriptionPromocion2x1(int idPromocion, String nombrePromocion) Constructor para crear una promocion 2x1. -
Method Summary
Modifier and TypeMethodDescriptionAplicarPromocion(List<DetallePedido> productos) Aplica la promocion a una lista de productos.doubleAplicarPromocion(Pedido pedido) Aplica la promocion al pedido (implementacion de IPromocionable).CalcularDescuento(BigDecimal subtotal) Calcula el descuento (implementacion abstracta).intvoidsetCategoriaAplicable(String categoriaAplicable) voidsetProductoAplicable(int productoAplicable) 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
-
Promocion2x1
Constructor para crear una promocion 2x1.- Parameters:
idPromocion- Identificador unico de la promocionnombrePromocion- Nombre descriptivo de la promocion
-
-
Method Details
-
AplicarPromocion
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
Calcula el descuento (implementacion abstracta). En 2x1 se usa AplicarPromocion, este metodo retorna 0.- Specified by:
CalcularDescuentoin classPromocion- Parameters:
subtotal- Subtotal del pedido- Returns:
- BigDecimal.ZERO
-
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 haya al menos 2 unidades del producto aplicable.- Specified by:
ValidarPromocionin interfaceIPromocionable- 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
- Returns:
- Categoria aplicable
-
setCategoriaAplicable
- Parameters:
categoriaAplicable- Nueva categoria aplicable
-