Due to rising issues with list pricing in 16.0 Major, the following interfaces have been reverted to the 15.5 version:
customListPrice function in AbsPartupcharge function in ProdPartbasePrice function in AbsPartbasePrice function in DsPartupcharge function accounting for option specials in SpecOptionpublic double price(SpecOption[] specOs=null) in DsPDatapublic double price(SpecOption[] specOs=null) in OfmlPDataThese changes were originally added to account for the new core PartSpecials system.
Impact of changes:
QueryDialog will not account for special pricing for now (expected 16.0 Patch 1)Those who may be affected include:
PartSpecial and/or OptionSpecial systemQueryDialogAbsPart/ProdPart/DsPartAnyone affected may need to:
The new core QueryDialog does still account for special part numbers and descriptions as well as special option codes and descriptions. The fields for special pricing have been removed for the time being.
Link to Merge Request with changes
A new function has been added to DsPData to open the QueryDialog using a sequence of Parts.
New: extend public void queryDialog(Part[] parts) { if (proxy) { if (blockDataProxy == 0) { DsPDataProxyEnv env(this, parts=parts); proxy.queryDialog(env); return; } } dsOpenQueryDialog(parts); }
As of 16.0, preview image support has been implemented for core Parts and is no longer exclusive to DsParts.
As a result, the global constant dsPreviewColumn has been removed from cm.abstract.dataSymbol.
A new constant of the column (called partPreviewColumn) has been added and is registered in cm/core/init/corePartColumns.cm.
In cm/abstract/dataSymbol/init.cm Removed: public const DsPreviewColumn dsPreviewColumn(); In cm/core/init/corePartColumns.cm Added: public const PartPreviewColumn partPreviewColumn();
For DsFreeformPicklistPart, basePrice() has now been implemented.
/** * Base Price. */ public double basePrice() { double base = item.?price(); if (PartSpecial special = getSpecial()) { // replace price with special price if (special.priceReplace) return special.amount; base = special.amount; } return base; }
Due to rising issues with list pricing in 16.0 Major, the following interfaces have been reverted to the 15.5 version:
customListPrice function in AbsPartupcharge function in ProdPartbasePrice function in AbsPartbasePrice function in DsPartupcharge function accounting for option specials in SpecOptionpublic double price(SpecOption[] specOs=null) in DsPDatapublic double price(SpecOption[] specOs=null) in OfmlPDataThese changes were originally added to account for the new core PartSpecials system.
Impact of changes:
QueryDialog will not account for special pricing for now (expected 16.0 Patch 1)Those who may be affected include:
PartSpecial and/or OptionSpecial systemQueryDialogAbsPart/ProdPart/DsPartAnyone affected may need to:
The new core QueryDialog does still account for special part numbers and descriptions as well as special option codes and descriptions. The fields for special pricing have been removed for the time being.
Link to Merge Request with changes
The following function on DsPart account for PartSpecial information now.
// adds specialFlattenableKey() to tail of key public str flattenableKey() {}
As of 16.0, preview image support has been implemented for core Parts and is no longer exclusive to DsParts.
As a result, the following changes have been made to DsPart:
dsPreviewColumn has been removed from DsParts overridePartColumns() functionpreviewImageUrl() function overrides the core Part version and now has an added default parameterOld: public PartColumn[] overridePartColumns() { return [PartColumn: dsPrdCatalogColumn, dsPreviewColumn, dsTagPartColumn ]; } New: public PartColumn[] overridePartColumns() { return [PartColumn: dsPrdCatalogColumn, dsTagPartColumn ]; } Old: extend public Url previewImageUrl() {} New: public Url previewImageUrl(bool generateIfNotFound=false) {} Added: public Image previewImage(sizeI size=cPartPreviewImageSize, bool generateIfNotFound=false, bool regenerate=false) {} Added: public bool allowRenderPreviewImage() {}
The public void queryDialog(Snapper snppr) {} function has also been changed with the new QueryDialog implementation. It no longer opens the old DsQueryDialog implementation
but utilizes the new QueryDialog.
The following has been changed in DsPData:
// queryDialog function extend public void queryDialog(Snapper snppr) { if (proxy) { ... } Old: DsQueryDialog(anyFrameWindow, snppr); New: dsOpenQueryDialog(snppr); }
The code of DsSpecOption is now constructed based on the option code instead of the option valueS to fix a bug where the dropdown selection of options in sub-features of numeric order features is not populated in the calculation dialog.
DsPartAdded optional parameter to the constructor for partSourceId.
Added new constructor for convenience.
Old: public constructor(Snapper snapper, DsPData data, double price, double qty=1) New: public constructor(Snapper snapper, DsPData data, double price, double qty=1, str partSourceId=null) New: public constructor(Snapper snapper, DsPData data, str articleCode, str description, double listPrice, double quantity=1, double inPrice=0, bool flattenable=true, bool group=false, partStyle style=psNone, str flattenableKey=null, bool allowOtherParent=true, str partSourceId=null)
Removed: private str _itemTagInfoKey;
_itemTagInfoKey has been moved to ProdPart in cm.abstract.part .
User modifications to Ind. Tag are part of the flattenable key now when the user turns that setting on.
ItemTagInfoMethods for managing Ind. Tags were moved to ProdPart .
DsSpecOptionpriceRemoved: public double price;
DsRextileLengthPartColumn is renamed to DsMaterialQtyPartColumnMR: Rename Textile Length column to Material Quantity
Previous: public class DsTextileLengthPartColumn extends BasicPartInfoTreeColumn New: public class DsMaterialQtyPartColumn extends BasicPartInfoTreeColumn
With the new QueryDialog, interface has been added to DataSymbol to opt-in to utilize the new dialog. DataSymbols are defaulted to utilize the new QueryDialog.
Any subclasses of DataSymbol must opt-out if the new dialog is not to be utilized.
The acceptQuery function is checked before adding the query context-menu item to a DataSymbol and the openQueryDialog function
is utilized to open a QueryDialog for a DataSymbol.
The acceptQuery function returns true and openQueryDialog opens the new QueryDialog.
The following interface has been added to DataSymbol:
// QueryDialog helper functions Added: public bool acceptQuery() {} Added: public void openQueryDialog() {}