@Override public Money getRetailPrice() { if (shouldSumItems()) { Money bundleRetailPrice = BroadleafCurrencyUtils.getMoney(getOrder().getCurrency()); for (DiscreteOrderItem discreteOrderItem : discreteOrderItems) { BigDecimal itemRetailPrice = discreteOrderItem.getRetailPrice().getAmount(); BigDecimal quantityPrice = itemRetailPrice.multiply(new BigDecimal(discreteOrderItem.getQuantity())); bundleRetailPrice = bundleRetailPrice.add(BroadleafCurrencyUtils.getMoney(quantityPrice, getOrder().getCurrency())); } for (BundleOrderItemFeePrice fee : getBundleOrderItemFeePrices()) { bundleRetailPrice = bundleRetailPrice.add(fee.getAmount()); } return bundleRetailPrice; } else { return super.getRetailPrice(); } }
@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; }
.retailPrice(discreteOrderItem.getRetailPrice()) .quantity(discreteOrderItem.getQuantity()) .productName(discreteOrderItem.getName())