Quintiq file version 2.0
|
#parent: #root
|
MethodOverride SyncSubsetEntity (
|
OptimizerPuzzleBase target
|
)
|
{
|
TextBody:
|
[*
|
// Copy subset entity from WIP to OP
|
optimizerpuzzle := target.astype( OptimizerPuzzle );
|
isfromdb := false;
|
|
currentList := selectset( optimizerpuzzle, SubsetEntityInOptimizerPuzzle, sub , true );
|
newList := construct( SubsetEntityInOptimizerPuzzles );
|
|
// Copy or update isuserAction subsets
|
// Not taking into consideration Entity without Parent if Include because of default behaviour
|
traverse( this, SubsetEntityInOptimizerPuzzleWip, subsource, subsource.IsUserAction() )
|
{
|
targetSubset := SubsetEntityInOptimizerPuzzle::FindSubsetEntityOptimizerPuzzleTypeIndices( optimizerpuzzle.Name(), subsource.EntityID(), subsource.EntityType() );
|
// Case create a new OptimizerPuzzle
|
if( isnull( targetSubset ) )
|
{
|
// Create a SubsetEntity for OptimizerPuzzle.
|
targetSubset := SubsetEntityInOptimizerPuzzle::Create( optimizerpuzzle, subsource.Entity(), isfromdb );
|
}
|
// Case edit
|
else
|
{
|
if( targetSubset.OptimizerPuzzleName() <> this.Name() )
|
{
|
// Update OptimizerPuzzleID, EntityID and EntityType
|
SubsetEntityInOptimizerPuzzle::ChangeKeySubsetEntityOptimizerPuzzleTypeIndices( targetSubset, this.Name(), targetSubset.EntityID(), targetSubset.EntityType() );
|
}
|
}
|
|
// Update IsInclude and IsUserAction
|
targetSubset.IsIncluded( subsource.IsIncluded() );
|
targetSubset.IsUserAction( subsource.IsUserAction() );
|
newList.Add( targetSubset );
|
}
|
|
toBeDeleted := currentList.Difference( newList );
|
SubsetEntityInOptimizerPuzzle::Delete( toBeDeleted );
|
*]
|
}
|