private boolean hasSaleItems() { for (DiscreteOrderItem discreteOrderItem : discreteOrderItems) { if (discreteOrderItem.getSalePrice() != null) { return true; } } return false; }
@Override public Money getSalePrice() { if (shouldSumItems()) { Money bundleSalePrice = null; if (hasSaleItems()) { bundleSalePrice = BroadleafCurrencyUtils.getMoney(getOrder().getCurrency()); for (DiscreteOrderItem discreteOrderItem : discreteOrderItems) { BigDecimal itemSalePrice = null; if (discreteOrderItem.getSalePrice() != null) { itemSalePrice = discreteOrderItem.getSalePrice().getAmount(); } else { itemSalePrice = discreteOrderItem.getRetailPrice().getAmount(); } BigDecimal quantityPrice = itemSalePrice.multiply(new BigDecimal(discreteOrderItem.getQuantity())); bundleSalePrice = bundleSalePrice.add(BroadleafCurrencyUtils.getMoney(quantityPrice, getOrder().getCurrency())); } for (BundleOrderItemFeePrice fee : getBundleOrderItemFeePrices()) { bundleSalePrice = bundleSalePrice.add(fee.getAmount()); } } return bundleSalePrice; } else { return super.getSalePrice(); } }
@Override public DiscreteOrderItem createDynamicPriceDiscreteOrderItem(final DiscreteOrderItemRequest itemRequest, @SuppressWarnings("rawtypes") HashMap skuPricingConsiderations) { final DiscreteOrderItem item = (DiscreteOrderItem) orderItemDao.create(OrderItemType.EXTERNALLY_PRICED); populateDiscreteOrderItem(item, itemRequest); SkuPriceWrapper wrapper = new SkuPriceWrapper(itemRequest.getSku()); DynamicSkuPrices prices = dynamicSkuPricingService.getSkuPrices(wrapper, skuPricingConsiderations); item.setBundleOrderItem(itemRequest.getBundleOrderItem()); item.setBaseRetailPrice(prices.getRetailPrice()); item.setBaseSalePrice(prices.getSalePrice()); item.setSalePrice(prices.getSalePrice()); item.setRetailPrice(prices.getRetailPrice()); if (itemRequest.getSalePriceOverride() != null) { item.setSalePriceOverride(Boolean.TRUE); item.setSalePrice(itemRequest.getSalePriceOverride()); item.setBaseSalePrice(itemRequest.getSalePriceOverride()); } if (itemRequest.getRetailPriceOverride() != null) { item.setRetailPriceOverride(Boolean.TRUE); item.setRetailPrice(itemRequest.getRetailPriceOverride()); item.setBaseRetailPrice(itemRequest.getRetailPriceOverride()); } item.setDiscreteOrderItemFeePrices(itemRequest.getDiscreteOrderItemFeePrices()); for (DiscreteOrderItemFeePrice fee : itemRequest.getDiscreteOrderItemFeePrices()) { item.setSalePrice(item.getSalePrice().add(fee.getAmount())); item.setRetailPrice(item.getRetailPrice().add(fee.getAmount())); } item.setPersonalMessage(itemRequest.getPersonalMessage()); applyAdditionalOrderItemProperties(item); return item; }
.orElse(sku.getProduct().getDefaultSku().getExternalId()) .salePrice(discreteOrderItem.getSalePrice()) .retailPrice(discreteOrderItem.getRetailPrice()) .quantity(discreteOrderItem.getQuantity())