Compile Time Changes

class COMPart

Removed: public double customListPrice(bool includeChildren=false, str currency=null, Space space=null) {}

The pricing override in COMPart shifted from a custom list price implementation to a standardized basePrice override.

Old: public double customListPrice(bool includeChildren=false, str currency=null, Space space=null) {}
New: public double basePrice(bool includeChildren=false, Space space=null, bool translatePrice=true) {}
Old → New behavior

Old:

  • Method: customListPrice(..)
  • Returned pricePerUnit() as the list price unless includeChildren=true (in which case 0).
  • Treated COM pricing as list-price–based.

New:

  • Method: basePrice(..)
  • Calls super(..) for base price, unless includeChildren=true (still returns 0).
  • Pricing responsibility moved to align with base price in new model instead of custom list price.
Impact
  • Aligns COMPart with the new part pricing API (basePrice + optionPriceSum).
  • Removes dependency on customListPrice (legacy, tied to pre-16.5 system).

Runtime/Behavior Changes

class COMPart

Constructor Behavior Change: List Price → Base Price + Option Price Sum

The COMPart constructor was updated to explicitly separate base price and option price sum when initializing the part.

Old → New behavior

Old:

  • Constructor directly passed a single list price (pricePerUnit()) into the superclass constructor.
  • No distinction between base price and option-derived price.

New:

  • Constructor passes basePrice=pricePerUnit() and optionPriceSum=0 to the superclass.
  • Establishes a clear separation of pricing components from the start.
  • Aligns COMPart creation with the new part pricing system
Impact
  • COMPart now integrates with the new pricing model that distinguishes base vs option costs.
  • Migration-friendly: existing behavior (price being equal to pricePerUnit()) is preserved since option sum is initialized as 0.
  • Enables future support for option-based price adjustments without changing constructor logic.