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.