@Override public Money getBaseRetailPrice() { return convertToMoney(baseRetailPrice); }
@Override public boolean isSkuActive() { if (getSku() != null && !getSku().isActive()) { return false; } for (DiscreteOrderItem discreteItem : getDiscreteOrderItems()) { if (!discreteItem.isSkuActive()) { return false; } } return true; }
@Override public Product getProduct() { return getProductBundle(); }
@Override public OrderItem clone() { BundleOrderItemImpl orderItem = (BundleOrderItemImpl) super.clone(); if (discreteOrderItems != null) { for (DiscreteOrderItem discreteOrderItem : discreteOrderItems) { DiscreteOrderItem temp = (DiscreteOrderItem) discreteOrderItem.clone(); temp.setBundleOrderItem(orderItem); orderItem.getDiscreteOrderItems().add(temp); } } if (bundleOrderItemFeePrices != null) { for (BundleOrderItemFeePrice feePrice : bundleOrderItemFeePrices) { BundleOrderItemFeePrice cloneFeePrice = feePrice.clone(); cloneFeePrice.setBundleOrderItem(orderItem); orderItem.getBundleOrderItemFeePrices().add(cloneFeePrice); } } orderItem.setBaseRetailPrice(convertToMoney(baseRetailPrice)); orderItem.setBaseSalePrice(convertToMoney(baseSalePrice)); orderItem.setSku(sku); orderItem.setProductBundle(productBundle); return orderItem; }
@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 Money getTaxablePrice() { if (shouldSumItems()) { Money currentBundleTaxablePrice = BroadleafCurrencyUtils.getMoney(getOrder().getCurrency()); for (DiscreteOrderItem discreteOrderItem : discreteOrderItems) { BigDecimal currentItemTaxablePrice = discreteOrderItem.getTaxablePrice().getAmount(); BigDecimal priceWithQuantity = currentItemTaxablePrice.multiply(new BigDecimal(discreteOrderItem.getQuantity())); currentBundleTaxablePrice = currentBundleTaxablePrice.add(BroadleafCurrencyUtils.getMoney(priceWithQuantity, getOrder().getCurrency())); } for (BundleOrderItemFeePrice fee : getBundleOrderItemFeePrices()) { if (fee.isTaxable()) { currentBundleTaxablePrice = currentBundleTaxablePrice.add(fee.getAmount()); } } return currentBundleTaxablePrice; } else { return super.getTaxablePrice(); } }
private boolean updateSalePrice() { if (isSalePriceOverride()) { return false; } // Only need to update prices if we are not summing the contained items to determine // the price. if (! shouldSumItems()) { if (getSku() != null && getSku().getSalePrice() != null && !getSku().getSalePrice().equals(salePrice)) { baseSalePrice = getSku().getSalePrice().getAmount(); salePrice = getSku().getSalePrice().getAmount(); return true; } } return false; }
private boolean updateRetailPrice() { if (isRetailPriceOverride()) { return false; } // Only need to update prices if we are not summing the contained items to determine // the price. if (! shouldSumItems()) { if (getSku() != null && !getSku().getRetailPrice().equals(retailPrice)) { baseRetailPrice = getSku().getRetailPrice().getAmount(); retailPrice = getSku().getRetailPrice().getAmount(); return true; } } return false; }
@Override public Money getTotalPrice() { Money returnValue = convertToMoney(BigDecimal.ZERO); if (shouldSumItems()) { for (OrderItem containedItem : getOrderItems()) { returnValue = returnValue.add(containedItem.getTotalPrice()); } returnValue = returnValue.multiply(quantity); } else { returnValue = super.getTotalPrice(); } return returnValue; }
@Override public CreateResponse<BundleOrderItem> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<BundleOrderItem> createResponse = super.createOrRetrieveCopyInstance(context); if (createResponse.isAlreadyPopulated()) { return createResponse; } BundleOrderItem cloned = createResponse.getClone(); cloned.setBaseRetailPrice(getBaseRetailPrice()); cloned.setBaseSalePrice(getBaseSalePrice()); cloned.setProductBundle(productBundle); cloned.setSku(sku); return createResponse; }
@Override public List<DiscreteOrderItem> getDiscreteOrderItems() { List<DiscreteOrderItem> discreteOrderItems = new ArrayList<DiscreteOrderItem>(); for (OrderItem orderItem : orderItems) { if (orderItem instanceof BundleOrderItem) { BundleOrderItemImpl bundleOrderItem = (BundleOrderItemImpl)orderItem; for (DiscreteOrderItem discreteOrderItem : bundleOrderItem.getDiscreteOrderItems()) { discreteOrderItems.add(discreteOrderItem); } } else if (orderItem instanceof DiscreteOrderItem) { DiscreteOrderItem discreteOrderItem = (DiscreteOrderItem) orderItem; discreteOrderItems.add(discreteOrderItem); } } return discreteOrderItems; }
protected Money convertToMoney(BigDecimal amount) { return amount == null ? null : BroadleafCurrencyUtils.getMoney(amount, getOrder().getCurrency()); }
pb.setPricingModel(ProductBundlePricingModelType.ITEM_SUM); BundleOrderItem bundleOrderItem = new BundleOrderItemImpl(); bundleOrderItem.setCategory(category1); bundleOrderItem.setName("test1");
@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 List<DiscreteOrderItem> getDiscreteOrderItems() { List<DiscreteOrderItem> discreteOrderItems = new ArrayList<DiscreteOrderItem>(); for (FulfillmentGroupItem fgItem : fulfillmentGroupItems) { OrderItem orderItem = fgItem.getOrderItem(); if (orderItem instanceof BundleOrderItem) { BundleOrderItemImpl bundleOrderItem = (BundleOrderItemImpl)orderItem; for (DiscreteOrderItem discreteOrderItem : bundleOrderItem.getDiscreteOrderItems()) { discreteOrderItems.add(discreteOrderItem); } } else if (orderItem instanceof DiscreteOrderItem) { DiscreteOrderItem discreteOrderItem = (DiscreteOrderItem)orderItem; discreteOrderItems.add(discreteOrderItem); } } return discreteOrderItems; }
@Override public Money getBaseSalePrice() { return convertToMoney(baseSalePrice); }