@Override public OrderItem clone() { DiscreteOrderItem orderItem = (DiscreteOrderItem) super.clone(); if (discreteOrderItemFeePrices != null) { for (DiscreteOrderItemFeePrice feePrice : discreteOrderItemFeePrices) { DiscreteOrderItemFeePrice cloneFeePrice = feePrice.clone(); cloneFeePrice.setDiscreteOrderItem(orderItem); orderItem.getDiscreteOrderItemFeePrices().add(cloneFeePrice); } } if (additionalAttributes != null) { orderItem.getAdditionalAttributes().putAll(additionalAttributes); } orderItem.setBaseRetailPrice(convertToMoney(baseRetailPrice)); orderItem.setBaseSalePrice(convertToMoney(baseSalePrice)); orderItem.setBundleOrderItem(bundleOrderItem); orderItem.setProduct(product); orderItem.setSku(sku); if (orderItem.getOrder() == null) { throw new IllegalStateException("Either an Order or a BundleOrderItem must be set on the DiscreteOrderItem"); } return orderItem; }
public DiscreteOrderItem createDiscreteOrderItem(final AbstractOrderItemRequest itemRequest) { final DiscreteOrderItem item = (DiscreteOrderItem) orderItemDao.create(OrderItemType.DISCRETE); populateDiscreteOrderItem(item, itemRequest); item.setBaseSalePrice(itemRequest.getSku().getSalePrice()); item.setBaseRetailPrice(itemRequest.getSku().getRetailPrice()); // item.updatePrices(); item.updateSaleAndRetailPrices(); item.assignFinalPrice(); item.setPersonalMessage(itemRequest.getPersonalMessage()); applyAdditionalOrderItemProperties(item); return item; }
@Override public CreateResponse<DiscreteOrderItem> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<DiscreteOrderItem> createResponse = super.createOrRetrieveCopyInstance(context); if (createResponse.isAlreadyPopulated()) { return createResponse; } DiscreteOrderItem cloned = createResponse.getClone(); cloned.setBaseRetailPrice(getBaseRetailPrice()); cloned.setBaseSalePrice(getBaseSalePrice()); cloned.setProduct(product); cloned.setSku(sku); cloned.setCategory(category); ((DiscreteOrderItemImpl)cloned).discountsAllowed = discountsAllowed; cloned.setName(name); // dont clone cloned.setOrder(order); return createResponse; }
@Override public DiscreteOrderItem createDiscreteOrderItem(final DiscreteOrderItemRequest itemRequest) { final DiscreteOrderItem item = (DiscreteOrderItem) orderItemDao.create(OrderItemType.DISCRETE); populateDiscreteOrderItem(item, itemRequest); item.setBundleOrderItem(itemRequest.getBundleOrderItem()); if (itemRequest.getSalePriceOverride() != null) { item.setBaseSalePrice(itemRequest.getSalePriceOverride()); } item.setDiscreteOrderItemFeePrices(itemRequest.getDiscreteOrderItemFeePrices()); 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()); } for (DiscreteOrderItemFeePrice feePrice : item.getDiscreteOrderItemFeePrices()) { feePrice.setDiscreteOrderItem(item); } if (MapUtils.isNotEmpty(itemRequest.getAdditionalAttributes())) { item.setAdditionalAttributes(itemRequest.getAdditionalAttributes()); } item.setPersonalMessage(itemRequest.getPersonalMessage()); applyAdditionalOrderItemProperties(item); return item; }
@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; }