protected List<String> getAppliedOfferNamesForOrderItem(OrderItem orderItem) { List<String> appliedOfferNames = new ArrayList<>(); for (OrderItemPriceDetail oipd : orderItem.getOrderItemPriceDetails()) { for (OrderItemPriceDetailAdjustment adjustment : oipd.getOrderItemPriceDetailAdjustments()) { appliedOfferNames.add(adjustment.getOfferName()); } } return appliedOfferNames; }
protected String buildItemPriceDetailKey(OrderItemPriceDetail itemDetail) { List<Long> offerIds = new ArrayList<Long>(); for (OrderItemPriceDetailAdjustment adjustment : itemDetail.getOrderItemPriceDetailAdjustments()) { Long offerId = adjustment.getOffer().getId(); offerIds.add(offerId); } Collections.sort(offerIds); return itemDetail.getOrderItem().toString() + offerIds.toString() + itemDetail.getUseSalePrice(); }
@Override public Map<Long, OrderItemPriceDetailAdjustment> buildItemDetailAdjustmentMap(OrderItemPriceDetail itemDetail) { Map<Long, OrderItemPriceDetailAdjustment> itemAdjustmentMap = new HashMap<Long, OrderItemPriceDetailAdjustment>(); List<OrderItemPriceDetailAdjustment> adjustmentsToRemove = new ArrayList<OrderItemPriceDetailAdjustment>(); for (OrderItemPriceDetailAdjustment adjustment : itemDetail.getOrderItemPriceDetailAdjustments()) { if (itemAdjustmentMap.containsKey(adjustment.getOffer().getId())) { if (LOG.isDebugEnabled()) { StringBuilder sb = new StringBuilder("Detected collisions for item adjustments with ids ") .append(itemAdjustmentMap.get(adjustment.getOffer().getId()).getId()) .append(" and ") .append(adjustment.getId()); LOG.debug(sb.toString()); } adjustmentsToRemove.add(adjustment); } else { itemAdjustmentMap.put(adjustment.getOffer().getId(), adjustment); } } for (OrderItemPriceDetailAdjustment adjustment : adjustmentsToRemove) { itemDetail.getOrderItemPriceDetailAdjustments().remove(adjustment); } return itemAdjustmentMap; }
private int countItemAdjustments(Order order) { int adjustmentCount = 0; for (OrderItem item : order.getOrderItems()) { for (OrderItemPriceDetail detail : item.getOrderItemPriceDetails()) { if (detail.getOrderItemPriceDetailAdjustments() != null) { adjustmentCount += detail.getOrderItemPriceDetailAdjustments().size(); } } } return adjustmentCount; }
if (pd.getOrderItemPriceDetailAdjustments() == null) { continue; for (OrderItemPriceDetailAdjustment adj : pd.getOrderItemPriceDetailAdjustments()) { if (adjs.containsKey(adj.getOffer().getId())) { adjustmentsToRemove.add(adj); pd.getOrderItemPriceDetailAdjustments().remove(adj); madeChange = true;
private int checkOrderItemOfferAppliedCount(Order order) { int count = 0; for (OrderItem item : order.getOrderItems()) { for (OrderItemPriceDetail detail : item.getOrderItemPriceDetails()) { count = count + (detail.getOrderItemPriceDetailAdjustments().size() * detail.getQuantity()); } } return count; }
result.addAll(CollectionUtils.collect(detail.getOrderItemPriceDetailAdjustments(), adjustmentToOfferTransformer));
itemDetail.getOrderItemPriceDetailAdjustments().add(newItemAdjustment); Iterator<OrderItemPriceDetailAdjustment> iterator = itemDetail.getOrderItemPriceDetailAdjustments().iterator(); while (iterator.hasNext()) { OrderItemPriceDetailAdjustment adj = iterator.next();
@Override public <G extends OrderItemPriceDetail> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } OrderItemPriceDetail cloned = createResponse.getClone(); cloned.setQuantity(quantity); cloned.setUseSalePrice(useSalePrice); // dont clone cloned.setOrderItem(orderItem); for(OrderItemPriceDetailAdjustment entry : orderItemPriceDetailAdjustments){ OrderItemPriceDetailAdjustment clonedEntry = entry.createOrRetrieveCopyInstance(context).getClone(); clonedEntry.setOrderItemPriceDetail(cloned); cloned.getOrderItemPriceDetailAdjustments().add(clonedEntry); } return createResponse; } }
itemFactory.createPromotableOrderItemPriceDetail(this, detail.getQuantity()); itemPriceDetails.add(poid); for (OrderItemPriceDetailAdjustment adjustment : detail.getOrderItemPriceDetailAdjustments()) { PromotableOrderItemPriceDetailAdjustment poidAdj = new PromotableOrderItemPriceDetailAdjustmentImpl(adjustment, poid);
private int checkOrderItemOfferAppliedQuantity(Order order, Offer offer) { int count = 0; for (OrderItem item : order.getOrderItems()) { for (OrderItemPriceDetail detail : item.getOrderItemPriceDetails()) { for (OrderItemPriceDetailAdjustment adjustment : detail.getOrderItemPriceDetailAdjustments()) { if (adjustment.getOffer().getId().equals(offer.getId())) { count += detail.getQuantity(); } } } } return count; }
for (OrderItem item : order.getOrderItems()) { for (OrderItemPriceDetail detail : item.getOrderItemPriceDetails()) { itemAdjustmentCount += detail.getOrderItemPriceDetailAdjustments().size();