Compile Time Changes

class AbsTagPartColumn

Made AbsTagPartColumn public for use.

public class AbsTagPartColumn extends BasicPartColumn

SpecOptionInfoTree has had constructors removed and consolidated into one constructor.

Added: public constructor(Part owner, SpecOption specOpt, PartInfoTree parent=null, str key=null, PartColumn[] columns=null) {}

Removed: public constructor(Part owner, SpecOption specOpt) {}
Removed: public constructor(Part owner, SpecOption specOpt, rest: PartColumn[] columns) {}
Removed: public constructor(Part owner, SpecOption specOpt, PartColumn[] columns) {}

Runtime/Behavior Changes

Preserve Ind. Tag customizations

Relavent Merge Request:

  • Added all the methods below related to Item Tag from DsPart have been moved to ProdPart in cm.abstract.part.
	/***********************************************************************
	 * Item Tags
	 ***********************************************************************/

	/**
	 * Create a new item tag
	 */
	extend public str itemTagInfoKey=(str k)


	/**
	 * Item Tag info Key
	 */
	public str itemTagInfoKey()


	/**
	 * Item tag key.
	 */
	public str itemTagKey()


	/**
	 * Item tag info.
	 */
	public ItemTagInfo itemTagInfo()


	/**
	 * Finalize after merge.
	 * Done after dividing parts into groups and merging them, but before the post merge hooks.
	 */
	public void finalizeAfterMerge()


	/**
	 * Re-link any saved ItemTagInfo on the owner that should be shown with this part.
	 */
	extend public void reLinkItemTagInfo()


	/**
	 * Set the item tag info key.
	 */
	extend public void setItemTagInfoKey(str key)


	/**
	 * Reset the ItemTagInfoKey.
	 */
	extend public void resetItemTagInfoKey() { _itemTagInfoKey = null; }


	/**
	 * Set new info to item tag.
	 */
	public ItemTagInfo setItemTagInfo(str text)


	/**
	 * Reset ItemTagInfo.
	 */
	public ItemTagInfo resetItemTagInfo()

Added functions for detecting if setting is on

New:

	public bool ownerHasStickyTag(Snapper owner)

	public bool stickyIndTags()

AbsPart now overrides customListPrice to include upcharge().

/**
 * Custom (overidable) list price.
 */
public double customListPrice(bool includeChildren=false, str currency=null, Space space=null) {
	return super(..) + upcharge().?v;
}

class AbsTagPartColumn

ItemTag adjustments are now will be set through setItemTagInfo on cm.core.Part .

Removed completeSpecified()

Equivalent functionality moved to Part in cm.core.part . See completedSpec and completeSpecifiedValue().

Preserve Ind. Tag customizations

MR: Preserve Ind. Tag customizations

  • While this new setting in CET is activated, any user modifications to Ind. Tag will make those parts unique to that Ind. Tag.

  • Added all the methods below related to Item Tag from DsPart have been moved to ProdPart in cm.abstract.part.

    /***********************************************************************
     * Item Tags
     ***********************************************************************/

    /**
     * Create a new item tag
     */
    extend public str itemTagInfoKey=(str k)     


    /**
     * Item Tag info Key
     */
    public str itemTagInfoKey()     


    /**
     * Item tag key.
     */
    public str itemTagKey() 


    /**
     * Item tag info.
     */
    public ItemTagInfo itemTagInfo()


    /**
     * Finalize after merge.
     * Done after dividing parts into groups and merging them, but before the post merge hooks.
     */
    public void finalizeAfterMerge() 


    /**
     * Re-link any saved ItemTagInfo on the owner that should be shown with this part. 
     */
    extend public void reLinkItemTagInfo() 


    /**
     * Set the item tag info key. 
     */
    extend public void setItemTagInfoKey(str key) 


    /**
     * Reset the ItemTagInfoKey.
     */
    extend public void resetItemTagInfoKey() { _itemTagInfoKey = null; }


    /**
     * Set new info to item tag.
     */
    public ItemTagInfo setItemTagInfo(str text) 


    /**
     * Reset ItemTagInfo.
     */
    public ItemTagInfo resetItemTagInfo() 

Added field for price

New:     public double price;

Extended SpecOption from PartOptionItem

SpecOption now extends PartOptionItem to allow for a singular class hierarchy for PartOption . This is needed to establish consistent order output via multiple formats.

Add new constructor for setting price

New:        public constructor(str code, str description, str groupDescription=null,
                               int level=1, double price=0.0, bool exportable=true)

Implemented PartOptionItem methods for option output

MR: PartOption Refactor MR

    /**
     * Code
     */
    public str code() { return code; }


    /**
     * Group description. (OPTIONAL)
     */
    public str groupDescription() 


    /**
     * Description string. (OPTIONAL)
     */
    public str description() 


    /**
     * Level Attribute. (OPTIONAL)
     */
    public int level() 


    /**
     * Price string. (OPTIONAL)
     */
    public Double optionPrice() 

class ProdPart

Added _itemTagInfoKey to ProdPart.

New:     /**
         * Cached ItemTagInfo key.
         */
        private str _itemTagInfoKey : public readable;

Added _partSourceID to ProdPart

Added new constructor with optional parameter partSourceId added. This new field is intended for use to identify more generically the part source on the owning Snapper. It should not be set to the Part Number as it will use that by default when not supplied, but something more generic like "leftTableLeg".

 New:     public constructor(PartData data, str partSourceId=null) 

 New:     public constructor(Snapper snapper, 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)

Added field _partOptions to ProdPart for holding PartOption items in abstract

Implemented methods on ProdPart as a baseline for PartOption management, as well as options() here for overriding as needed.

    /***********************************************************************
     * Part Option API
     ***********************************************************************/

    /**
     * Options
     */
    public PartOption[] options() 


    /**
     * Spec options
     */
    final public SpecOption[] specOptions()


    /**
     * Append spec option.
     * 
     * Note: Ensure if you are building these that level on the
     * SpecOption is set properly.
     * 
     */
    final public SpecOption[] specOptions=(SpecOption[] newOptions)

Ind. Tag ata included in flattenableKey

User modifications to Ind. Tag are part of the flattenable key.