Class QuoteBuilder
Object
ObjectIdentity
AbstractBuilder
QuoteBuilder is the starting point of an interface that allows you to manipulate
a quote object in a quote header calculation logic.
The header calculation is executed twice: Once before the calculation of the individual line items (= pre phase) and once after that (=post phase).
Usually code should only apply in one phase. Use
The quote builder is available in the header logic by this call:
IMPORTANT: Please read super class notes on the sequence of execution!
The header calculation is executed twice: Once before the calculation of the individual line items (= pre phase) and once after that (=post phase).
Usually code should only apply in one phase. Use
isPrePhase()
and isPostPhase()
methods to detect the current phase. The quote builder is available in the header logic by this call:
def builder = quoteProcessor
IMPORTANT: Please read super class notes on the sequence of execution!
-
Field Summary
Fields inherited from class CalculableLineItemCollectionBuilder
METHOD_ADD_LINE_ITEM, METHOD_ADD_OR_UPDATE_INPUT, METHOD_ADD_OR_UPDATE_OUTPUT, METHOD_UPDATE_FIELD, phase, ROOT_LINE_ID
Fields inherited from class AbstractBuilder
METHOD_BUILD
Fields inherited from class ObjectIdentity
classId, idGenerator, instanceId, invocations, m, NONE, parentObjectIdentity
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Creates and adds a new folder under the ROOT folder.void
Creates and adds a new line item to the Quote with the givensku
.addQuoteStructure
(QuoteStructure structure) Apply a quote structure.QuoteBuilderResult
build()
Gets a helper class that assists in manipulating the quote object.Gets the full quote object as a nested map.Methods inherited from class CalculableLineItemCollectionBuilder
addLineItem, addLineItem, addLineItem, addOrUpdateInput, addOrUpdateInput, addOrUpdateOutput, addOrUpdateOutput, clearRenderInfo, deleteItem, isPostPhase, isPrePhase, moveItem, renameFolder, setRenderInfo, updateField, updateField
Methods inherited from class ObjectIdentity
addInvocation, addInvocation
-
Method Details
-
getQuoteView
Gets the full quote object as a nested map. This map contains all header inputs/outputs, and all line items (with their inputs/outputs).Caution: when using Classic or Unity non-React user interface, then during pre-phase, the quoteProcessor.quoteView will NOT contain values of Outputs. The only exception are "overridable" outputs. This limitation is because of performance optimization of amount of data being sent between user interface and backend.
- Returns:
- The quote object
-
getHelper
Gets a helper class that assists in manipulating the quote object. You can use it instead of directly reading the QuoteView map.- Returns:
- The helper object
-
addQuoteStructure
Apply a quote structure. That usually means adding a set of folders and/or itemsExample:
if (quoteProcessor.isPrePhase()) { def structure = new QuoteStructure() productSubCategory.each { structure.addFolder(it.attribute2) } quoteProcessor.addQuoteStructure(structure) }
- Parameters:
structure
- The structure- Returns:
-
addFolder
Creates and adds a new folder under the ROOT folder.If you intend to add many folders and items, please use the QuoteStructure approach instead.
- Parameters:
label
- The folder label
-
addPart
Creates and adds a new line item to the Quote with the givensku
.If you intend to add many folders and items, please use the QuoteStructure approach instead.
- Parameters:
sku
- The SKU of the new part
-
build
public QuoteBuilderResult build()- Specified by:
build
in classAbstractBuilder
-