| 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() ); | 
|   *] | 
| } |