Runtime/Behavior Changes

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.