Changed: final private DsPart getPartsInternal(DsPDataProxyEnv dsEnv, PartsEnv env) {}
The internal getPartsInternal method now conditionally supports the new part pricing system.
It can construct parts using either the legacy list-price–based approach or the new base-price–plus-options approach depending on useNewPartPricing().
Old → New behavior
Old:
- Always retrieved a list price via:
double price = dsEnv.data.price(options);
SpecOption[] options were always passed into price() to calculate the full part cost.
- Single pricing flow, no differentiation between base vs option pricing.
New:
- Determines pricing strategy based on dsEnv.data.useNewPartPricing():
- If true (new system):
- Uses
basePrice directly.
- Passes null for
optionPriceSum when calling createPart().
- If false (legacy system):
- Still calculates price from
price(options) as before.
Impact
- Introduces dual pricing support inside
getPartsInternal()
- Ensures compatibility during migration:
- Legacy parts behave the same with no changes required.
- New pricing model (≥16.5) leverages basePrice + option pricing separation.
- Developers migrating to the new model should update workflows to split final list price into base price and option price sum
The createPart method was split into two overloads to support the new pricing framework.
The new overload takes basePrice and optionPriceSum, while the old single-parameter version (using list price) has been marked for deprecation.
Old → New behavior
Old:
- Single method signature:
createPart(DsPDataProxyEnv dsEnv, PartsEnv env, double price)
- Relied on a unified “list price” model.
- Retained for backward compatibility.
- Still used when
useNewPartPricing is false
New:
- New primary method:
createPart(DsPDataProxyEnv dsEnv, PartsEnv env, double basePrice, Double optionPriceSum)
- Constructs Parts under the new pricing model constructor
- Used when
useNewPartPricing is true
Impact
- Proxy providers may implement this method to customize
createPart behavior in the new pricing system.
- Better alignment with the new pricing system, which separates base price and option prices.