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
Added: public DsPart createPart(DsPDataProxyEnv dsEnv, PartsEnv env, double basePrice, Double optionPriceSum) {}
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.