簡體   English   中英

如何訪問單個計算產品行項目的所有子組計算項目

[英]How to acces all SubGroup computed items for a single computed product line item

我的規則集中有兩個自定義計算規則,一個用於單個 PLI 價格,一個用於總計: 在此處輸入圖像描述

在“calculatePostpaidPrices”中,我創建了多個 ComputedDurationItems(自定義類),它們作為子組存儲在單個 ComputedProductLineItem 上。 這種關系可以在這里觀察到: 在此處輸入圖像描述

現在在第二條規則“calculatePostpaidTotals”(左側)中,我試圖從第一條規則中獲取單個 PLI 的所有持續時間項目,現在該怎么做(右側是計算結果視圖,效果很好): 在此處輸入圖像描述

請注意,子組已與本食譜中的職責子組配方相同: https://support.intershop.com/kb/index.php/Display/23V395#l100但是本食譜中沒有示例如何在下一個計算規則中檢索職責(它們是子組)。

在查看了一些內置的平台計算規則后,我求助於創建這個方法:

 private Map<ComputedProductLineItem, Collection<ComputedDurationItem>> mapDurationItemsToComputedPLIs(
CalculationRule<ComputedItem, ComputedItem, LineItemCtnr>.Input input) {
Map<ComputedProductLineItem, Collection<ComputedDurationItem>> durationsMap = new HashMap<>();
Collection<ComputedDurationItem> durationItems = input.getItems(durationsSubGroup);

for (ComputedDurationItem durationItem : durationItems) {
  ComputedProductLineItem parentPLI = input.getItem(this.durationsSubGroup.getParentCell(durationItem));

  if (!durationsMap.containsKey(parentPLI))
    durationsMap.put(parentPLI, new ArrayList<ComputedDurationItem>(1));

  durationsMap.get(parentPLI).add(durationItem);
}

return durationsMap;  
}

然后我使用創建的 map 僅獲取特定 PLI 的持續時間項目。 基本上這里的情況是您無法獲取 PLI 的“子”項目,但您可以獲得 DurationItem 的父項目或子組中的任何其他項目並在此方法中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM