Quintiq file version 2.0
|
#parent: #root
|
Method SetDefaultValue () id:Method_DialogCreateEditProduct_SetDefaultValue
|
{
|
#keys: '[135040.0.213300467]'
|
Body:
|
[*
|
// Set default + init dialog
|
dialogInstance := DataHolderDialogData.Data().WrappedInstance();
|
isNew := isnull( dialogInstance );
|
|
// Extract the parent product by filtering out the descendents of the selected products in order to prevent circularity
|
products := construct( Product_MPs );
|
if( isNew
|
or dialogInstance.IsLeaf() ) // Is leaf
|
{
|
products := selectset( MacroPlan, Product_MP, p, true );
|
currentScope := DataHolderDialogDatas.Data();
|
|
products := products.Difference( currentScope );
|
}
|
else if( not dialogInstance.HasParent() ) // Is root level
|
{
|
products := selectset( MacroPlan, RootProduct, p, p <> dialogInstance );
|
}
|
else // Has Parent and Child
|
{
|
allProducts := selectset( MacroPlan, Product_MP, p, p <> dialogInstance );
|
myChildren := selectset( dialogInstance, AllChildren.AsChildren, c, true );
|
|
products := allProducts.Difference( myChildren );
|
}
|
|
DataHolderParentProductSelection.Data( products.Copy() );
|
*]
|
}
|