java.lang.Objectcom.ibm.commerce.order.calculation.CalculationHelper
This class defines various helper methods used by the Calculation Framework.
Field Summary | |
static java.lang.String | COPYRIGHT The IBM copyright notice field. |
Constructor Summary | |
protected | CalculationHelper() Constructor for CalculationHelper. |
Method Summary | |
void | applyCalculationUsages(OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) This method is called by OrderPrepare/PrepareOrder to apply all calculation usages enabled in the store. |
void | applyCalculationUsages(OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) This method is called by OrderPrepare/PrepareOrder to apply all calculation usages enabled in the store. |
int | compare(java.lang.Comparable[] c1, java.lang.Comparable[] c2) Compares 2 arrays of Comparables. |
int | compare(java.lang.Comparable c1, java.lang.Comparable c2) Compares 2 Comparables. |
boolean | containsAny(java.lang.Object[] a1, java.lang.Object[] a2) Returns whether the first array contains any element in the second array. |
java.math.BigDecimal | convertMonetaryValue(java.math.BigDecimal adValue1, java.lang.String astrCurrency1, java.lang.String astrCurrency2, CommandContext commandContext) This method converts the monetary value from one currency to another using the forward conversion rate. |
java.math.BigDecimal | convertMonetaryValueR(java.math.BigDecimal adValue1, java.lang.String astrCurrency1, java.lang.String astrCurrency2, CommandContext commandContext) This method converts the monetary value from one currency to another using the backward conversion rate. |
java.math.BigDecimal | convertQuantityValue(java.math.BigDecimal adValue1, java.lang.String astrUnit1, java.lang.String astrUnit2) This method converts the quantity value from one unit to another. |
void | correctZeroBoundaryCrossings(Item[] aItems, java.math.BigDecimal[] adAdjustments, java.lang.String astrCurrency, CommandContext commandContext) This method is called by DiscountCalculationCodeApply to correct discounts that cross the zero boundary. |
protected boolean | correctZeroBoundaryCrossingsIteration(Item[] aItems, java.math.BigDecimal[] adAdjustments) This method represents a single iteration in the "correct zero boundary crossing" algorithm. |
static CalculationCmd | createCommand(CalculationMethodAccessBean aabMethod, CommandContext aCommandContext, java.util.HashMap amapCustomProperties, java.sql.Timestamp aTimestamp, java.lang.String astrCurrency, java.lang.Integer anUsageId) Returns a calculation command corresponding to a calculation method. |
java.math.BigDecimal[] | destructiveAdd(java.math.BigDecimal[] adValues1, java.math.BigDecimal[] adValues2) Returns the sum of 2 BigDecimal arrays. |
java.math.BigDecimal | divide(java.math.BigDecimal ad1, java.math.BigDecimal ad2) Returns ad1.divide(ad2, 20, BigDecimal.ROUND_HALF_UP). |
void | finalizeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) This method is called by OrderProcess/ProcessOrder to apply all calculation usages enabled in the store. |
void | finalizeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) This method is called by OrderProcess/ProcessOrder to apply all calculation usages enabled by the store. |
int | findMax(java.math.BigDecimal[] e) Returns the index of the largest value in a BigDecimal array. |
int | findMin(java.math.BigDecimal[] e) Returns the index of the smallest value in a BigDecimal array. |
java.lang.Integer | getCodeId(java.lang.Integer anRuleId) Returns the CalculationCode ID of the specified CalculationRule. |
static java.util.Set | getEffectiveRuleIds(java.lang.Integer anCalculationCodeId, java.util.Map amapCustomProperties, CommandContext aCommandContext) Gets the calculation rule ids of the currently effective CalculationRule access beans for a calculation code. |
static CalculationRuleAccessBean[] | getEffectiveRules(java.lang.Integer anCalculationCodeId, java.util.Map amapCustomProperties, CommandContext aCommandContext) Gets the currently effective CalculationRule access beans for a calculation code. |
static CalculationHelper | getInstance() Returns an instance of this class. |
java.lang.Long[] | getProductAndItemIds(java.lang.Long anCatalogEntryId) Returns the parent product of an item and the item itself. |
java.lang.Long[] | getProductOrItemIds(java.lang.Long anCatalogEntryId) Returns the parent product of an item. |
java.math.BigDecimal | getQuantity(java.lang.Long anCatalogEntryId, java.math.BigDecimal adNormalizedQuantity, java.lang.String astrUnit) Returns the quantity value represented by the specified normalized quantity. |
java.math.BigDecimal | getRoundingMultiple(java.lang.String astrCurrency, CommandContext commandContext) Returns the rounding multiple of the specified currency. |
java.math.BigDecimal | getRoundingMultiple(java.lang.String astrCurrency, java.lang.String astrNumberUsage, CommandContext commandContext) Returns the rounding multiple of the specified currency. |
java.lang.Integer | getStoreGroupId(java.lang.Integer anStoreId) Returns the StoreGroup ID of the specified Store. |
java.math.BigDecimal | getTaxableAdjustmentTotal(java.lang.Long anOrderItemId, java.lang.Integer anTaxCategoryId) Returns the taxable adjustment total of the specified OrderItem and TaxCategory. |
java.util.Map | getTaxableAdjustmentTotals(Item[] aItems, java.lang.Integer anTaxCategoryId, java.util.HashMap ahshCustomProperties) Returns the taxable adjustment total of the specified Items and TaxCategory. |
java.lang.Integer[] | getTaxCategoryIds(StoreAccessBean aabStore, java.lang.Integer anUsageId) Returns the tax categories of a particular calculation usage: Calculation Usage Tax Categories sales tax all sales tax categories shipping tax all shipping tax categories other null |
java.math.BigDecimal | getWeight(java.lang.Long anCatalogEntryId, java.math.BigDecimal adNormalizedQuantity, java.lang.String astrUnit) Returns the weight value represented by the specified normalized quantity. |
void | initializeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) This method is called by OrderPrepare/PrepareOrder to initialize all calculation usages enabled by the store. |
void | initializeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) This method is called by OrderPrepare/PrepareOrder to initialize all calculation usages enabled by the store. |
boolean | isCurrentUserInMemberGroup(java.lang.Long anMemberGroupId, CommandContext commandContext) |
boolean | isEffective(CalculationCodeAccessBean aabCode, java.sql.Timestamp aTimestamp) Returns whether a CalculationCode is effective at the specified time. |
boolean | isEffective(CalculationRuleAccessBean aabRule, java.sql.Timestamp aTimestamp) Returns whether a CalculationRule is effective at the specified time. |
boolean | isPublished(CalculationCodeAccessBean aabCode) Returns whether a CalculationCode is published. |
CalculationCodeAccessBean[] | merge(CalculationCodeAccessBean[] aabCodes1, CalculationCodeAccessBean[] aabCodes2) Merges 2 CalculationCode arrays into a single array with no duplicate element. |
static void | recycleCommand(CalculationCmd aCalculationCmd, CalculationMethodAccessBean aabMethod, CommandContext aCommandContext, java.util.HashMap amapCustomProperties) Saves a command created using the createCommand method. |
java.math.BigDecimal[] | remapValues(Item[] aItems1, java.math.BigDecimal[] adValues1, Item[] aItems2) Returns a BigDecimal array adValues2 such that, if aItems1[i] == aItems2[j], then adValues1[i] == adValues2[j]. |
void | round(java.math.BigDecimal[] a, java.lang.String astrCurrency, CommandContext commandContext) Rounds a BigDecimal array using the "fudging" algorithm. |
void | round(java.math.BigDecimal[] a, java.lang.String astrCurrency, java.lang.String astrNumberUsage, CommandContext commandContext) Rounds a BigDecimal array using the "fudging" algorithm. |
java.math.BigDecimal | round(java.math.BigDecimal adValue, java.lang.String astrCurrency, CommandContext commandContext) Rounds a monetary value in the specified currency. |
java.math.BigDecimal | round(java.math.BigDecimal adValue, java.lang.String astrCurrency, java.lang.String astrNumberUsage, CommandContext commandContext) Rounds a monetary value in the specified currency. |
java.math.BigDecimal[] | spread(java.math.BigDecimal adValue, java.math.BigDecimal[] adWeights) Spreads a value using the specified mathematical weights. |
java.math.BigDecimal | sum(java.math.BigDecimal[] adValues) Sums the elements of a BigDecimal array. |
void | summarizeCalculationUsages(OrderAccessBean aabOrder, SubOrderAccessBean[] aabSubOrders, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) This method is called by OrderPrepare/PrepareOrder to summarize all calculation usages enabled by the store. |
void | summarizeCalculationUsages(OrderAccessBean aabOrder, SubOrderAccessBean[] aabSubOrders, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) This method is called by OrderPrepare/PrepareOrder to summarize all calculation usages enabled by the store. |
java.lang.String | toString(java.lang.Object[] a) Returns the string representation of the specified array. |
SubOrderAccessBean[] | updateSubOrders(java.lang.Long anOrderId, OrderItemAccessBean[] aabOrderItems) Deprecated. |
SubOrderAccessBean[] | updateSubOrders(java.lang.Long anOrderId, OrderItemAccessBean[] aabOrderItems, CommandContext aCommandContext) This method is called by OrderPrepare/PrepareOrder to update the suborder totals of an order. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String COPYRIGHT
Constructor Detail |
protected CalculationHelper()
Method Detail |
public void applyCalculationUsages(OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) throws ECException
public int compare(java.lang.Comparable[] c1, java.lang.Comparable[] c2)
public int compare(java.lang.Comparable c1, java.lang.Comparable c2)
public boolean containsAny(java.lang.Object[] a1, java.lang.Object[] a2)
public java.math.BigDecimal convertMonetaryValue(java.math.BigDecimal adValue1, java.lang.String astrCurrency1, java.lang.String astrCurrency2, CommandContext commandContext) throws ECException
public java.math.BigDecimal convertMonetaryValueR(java.math.BigDecimal adValue1, java.lang.String astrCurrency1, java.lang.String astrCurrency2, CommandContext commandContext) throws ECException
public java.math.BigDecimal convertQuantityValue(java.math.BigDecimal adValue1, java.lang.String astrUnit1, java.lang.String astrUnit2) throws ECException
public void correctZeroBoundaryCrossings(Item[] aItems, java.math.BigDecimal[] adAdjustments, java.lang.String astrCurrency, CommandContext commandContext) throws ECException
protected boolean correctZeroBoundaryCrossingsIteration(Item[] aItems, java.math.BigDecimal[] adAdjustments) throws ECException
public java.math.BigDecimal[] destructiveAdd(java.math.BigDecimal[] adValues1, java.math.BigDecimal[] adValues2)
public java.math.BigDecimal divide(java.math.BigDecimal ad1, java.math.BigDecimal ad2)
public void finalizeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) throws ECException
public int findMax(java.math.BigDecimal[] e)
public int findMin(java.math.BigDecimal[] e)
public java.lang.Integer getCodeId(java.lang.Integer anRuleId) throws ECException
public static CalculationHelper getInstance()
public java.lang.Long[] getProductAndItemIds(java.lang.Long anCatalogEntryId) throws ECException
public java.lang.Long[] getProductOrItemIds(java.lang.Long anCatalogEntryId) throws ECException
public java.math.BigDecimal getQuantity(java.lang.Long anCatalogEntryId, java.math.BigDecimal adNormalizedQuantity, java.lang.String astrUnit) throws ECException
public java.math.BigDecimal getRoundingMultiple(java.lang.String astrCurrency, CommandContext commandContext) throws ECException
public java.lang.Integer getStoreGroupId(java.lang.Integer anStoreId) throws ECException
public java.math.BigDecimal getTaxableAdjustmentTotal(java.lang.Long anOrderItemId, java.lang.Integer anTaxCategoryId) throws ECException
public java.lang.Integer[] getTaxCategoryIds(StoreAccessBean aabStore, java.lang.Integer anUsageId) throws ECException
Calculation Usage | Tax Categories |
---|---|
sales tax | all sales tax categories |
shipping tax | all shipping tax categories |
other | null |
public java.math.BigDecimal getWeight(java.lang.Long anCatalogEntryId, java.math.BigDecimal adNormalizedQuantity, java.lang.String astrUnit) throws ECException
public void initializeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) throws ECException
public boolean isCurrentUserInMemberGroup(java.lang.Long anMemberGroupId, CommandContext commandContext) throws ECException
public boolean isEffective(CalculationCodeAccessBean aabCode, java.sql.Timestamp aTimestamp) throws ECException
public boolean isEffective(CalculationRuleAccessBean aabRule, java.sql.Timestamp aTimestamp) throws ECException
public boolean isPublished(CalculationCodeAccessBean aabCode) throws ECException
public CalculationCodeAccessBean[] merge(CalculationCodeAccessBean[] aabCodes1, CalculationCodeAccessBean[] aabCodes2) throws ECException
public java.math.BigDecimal[] remapValues(Item[] aItems1, java.math.BigDecimal[] adValues1, Item[] aItems2)
public void round(java.math.BigDecimal[] a, java.lang.String astrCurrency, CommandContext commandContext) throws ECException
public java.math.BigDecimal round(java.math.BigDecimal adValue, java.lang.String astrCurrency, CommandContext commandContext) throws ECException
public java.math.BigDecimal[] spread(java.math.BigDecimal adValue, java.math.BigDecimal[] adWeights) throws ECException
public java.math.BigDecimal sum(java.math.BigDecimal[] adValues)
public void summarizeCalculationUsages(OrderAccessBean aabOrder, SubOrderAccessBean[] aabSubOrders, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, CommandContext commandContext) throws ECException
public java.lang.String toString(java.lang.Object[] a)
public SubOrderAccessBean[] updateSubOrders(java.lang.Long anOrderId, OrderItemAccessBean[] aabOrderItems, CommandContext aCommandContext) throws ECException
public SubOrderAccessBean[] updateSubOrders(java.lang.Long anOrderId, OrderItemAccessBean[] aabOrderItems) throws ECException
public void applyCalculationUsages(OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) throws ECException
public void finalizeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) throws ECException
public void initializeCalculationUsages(OrderAccessBean aabOrder, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) throws ECException
public void summarizeCalculationUsages(OrderAccessBean aabOrder, SubOrderAccessBean[] aabSubOrders, OrderItemAccessBean[] aabOrderItems, java.lang.String astrCurrency, java.util.HashMap ahshCustomProperties, java.util.Set aEnabledUsageIds, java.util.Set aDisabledUsageIds, CommandContext commandContext) throws ECException
public java.math.BigDecimal getRoundingMultiple(java.lang.String astrCurrency, java.lang.String astrNumberUsage, CommandContext commandContext) throws ECException
public void round(java.math.BigDecimal[] a, java.lang.String astrCurrency, java.lang.String astrNumberUsage, CommandContext commandContext) throws ECException
public java.math.BigDecimal round(java.math.BigDecimal adValue, java.lang.String astrCurrency, java.lang.String astrNumberUsage, CommandContext commandContext) throws ECException
public java.util.Map getTaxableAdjustmentTotals(Item[] aItems, java.lang.Integer anTaxCategoryId, java.util.HashMap ahshCustomProperties) throws ECException
public static final CalculationRuleAccessBean[] getEffectiveRules(java.lang.Integer anCalculationCodeId, java.util.Map amapCustomProperties, CommandContext aCommandContext) throws ECException
public static final java.util.Set getEffectiveRuleIds(java.lang.Integer anCalculationCodeId, java.util.Map amapCustomProperties, CommandContext aCommandContext) throws ECException
public static final CalculationCmd createCommand(CalculationMethodAccessBean aabMethod, CommandContext aCommandContext, java.util.HashMap amapCustomProperties, java.sql.Timestamp aTimestamp, java.lang.String astrCurrency, java.lang.Integer anUsageId) throws ECException
public static final void recycleCommand(CalculationCmd aCalculationCmd, CalculationMethodAccessBean aabMethod, CommandContext aCommandContext, java.util.HashMap amapCustomProperties) throws ECException
(C) Copyright IBM Corporation 1996, 2005. All Rights Reserved.