Quintiq file version 2.0 #parent: #root Method OnOk () id:Method_DialogCreateEditScenario_OnOk #extension { Body: [* // Disabled button to prevent the possibility of multiple firing //macroPlanOld := MacroPlan; btnOK.Enabled( false, '' ) // On ok execution, create new scenario, copy or edit this.ApplyChanges(); data := DataHolderDialogData.Data(); newscenario := null( Scenario ); strategy := null( Strategy ); // New version globalotdtable := GlobalOTDTable; globalotdsop := GlobalOTDSOP; testbusinesstype := "集团"; if( data.IsCreateNewVersion() ){ VersionControl::CreateNewSceneVersion( globalotdsop, testbusinesstype ); }else{ VersionControl::CopyVersion( globalotdsop, testbusinesstype ); } versionname := VersionControl::GetVersionInfo( globalotdsop, testbusinesstype ).Element( 3 ); // Get Version Name if( data.Name() = "" ){ data.Name( versionname ); } // Get Business Type from Scenario Name businesstype := guard( select( globalotdtable, BusinessType, b, b.ScenarioName()=data.ScenarioName() ).BusinessTypeName(), "" ); data.BusinessType( businesstype ); // Copy scenario if( isnull( data.WrappedInstance() ) ) { if( DataHolderActionCopy.Data() ) { scenario := data.Parent().astype( ScenarioMP ); strategy := data.SelectedStrategy(); newscenario:= scenario.Copy( data.Parent(), data.Name(), edtAssumption.Text(), data.Comment(), data.State() ); scenario.EnableSync( data.EnableSync() ); scenario.BusinessType( data.BusinessType() ); scenario.IsKeyProduct( data.IsKeyProduct() ); scenario.CreatePurchaseSupplyMaterial( data.CreatePurchaseSupplyMaterial() ); } // If DatasetMDSID is set, it means the scenario // will be linked to an existing dataset else if( data.DatasetMDSID() <> Key::ZeroKey() ) { sc := ScenarioManager.CreateScenarioMPFromDataset( data.Parent(), data.Name(), edtAssumption.Text(), data.Comment(), '', data.DatasetName(), data.DatasetMDSID(), data.State() ); sc.EnableSync( data.EnableSync() ); sc.BusinessType( data.BusinessType() ); sc.IsKeyProduct( data.IsKeyProduct() ); sc.CreatePurchaseSupplyMaterial( data.CreatePurchaseSupplyMaterial() ); } else { newscenario := ScenarioManager.CreateScenarioMP( data.Parent(), data.Name(), edtAssumption.Text(), data.Comment(), data.State(), '', ApplicationMacroPlanner.GetUserName() ); newscenario.EnableSync( data.EnableSync() ); newscenario.BusinessType( data.BusinessType() ); newscenario.IsKeyProduct( data.IsKeyProduct() ); newscenario.CreatePurchaseSupplyMaterial( data.CreatePurchaseSupplyMaterial() ); strategy := data.SelectedStrategy(); } } // Edit scenario else { data.WrappedInstance().Update( data.Name(), data.Comment(), data.State() ); data.WrappedInstance().SelectedStrategy( relset, data.SelectedStrategy() ); data.WrappedInstance().EnableSync( data.EnableSync() ); data.WrappedInstance().BusinessType( data.BusinessType() ); data.WrappedInstance().IsKeyProduct( data.IsKeyProduct() ); data.WrappedInstance().CreatePurchaseSupplyMaterial( data.CreatePurchaseSupplyMaterial() ); } // Post scenario creation // Set kb and strategy after creation of scenario and set the scenario as active if( not isnull( newscenario ) ) { newscenario.SelectedStrategy( relset, strategy ); if ( not DataHolderActionCopy.Data() ) { ApplicationMacroPlanner.SelectScenario( newscenario.astype( ScenarioMP ) ); } } macroPlanNew := MacroPlan; //ManufactureLTImputation::Transfer( macroPlanOld, macroPlanNew ); // sync data if( data.EnableSync() ) { MacroPlan::DoSync( macroPlanNew, data.BusinessType(), data.IsKeyProduct(), data.CreatePurchaseSupplyMaterial() ,GlobalOTDTable); } macroPlanNew.BusinessType( businesstype ); macroPlanNew.IsKeyProduct( data.IsKeyProduct() ); macroPlanNew.CreatePurchaseSupplyMaterial( data.CreatePurchaseSupplyMaterial() ); MacroPlan.UpdateStartOfPlanning( dsPlanningStart.Date().DateTime() ); this.Close(); *] }