| Quintiq file version 2.0 | 
| #parent: #root | 
| Method NewCampaign ( | 
|   internal[GUIComponent] parent, | 
|   CampaignType_MP campaigntype, | 
|   Unit owner | 
| ) as Campaign_MP id:Method_DialogCreateEditCampaign_MP_NewCampaign | 
| { | 
|   #keys: '[110880.4.851635701]' | 
|   Body: | 
|   [* | 
|     // New campaign | 
|      | 
|     if( isnull( campaigntype ) ) | 
|     { | 
|       campaigntype := Campaign_MP::GetDefaultCampaignType( owner ); | 
|     } | 
|      | 
|     data := owner.Campaign_MP( relshadow, UnitID := owner.ID(),  | 
|                                           CampaignID := "", // Temporary set CampaignID to empty, will be defined during creation | 
|                                           InputType := campaigntype.InputType() ); // Create will default to campaign type input type | 
|      | 
|     Dialog.Data( data ); | 
|     Dialog.SetDefaultValue( campaigntype ); | 
|     ValueHolderCampaignAddToLast.Data( true ); | 
|     this.InitializeDialog(); | 
|     this.SetIndicatorValue(); | 
|      | 
|     result := Dialog.DoModal( parent ); | 
|     newobj := null( Campaign_MP ); | 
|     if( result > 0 ) | 
|     { | 
|       campaignid := OS::GenerateGUIDAsString(); | 
|       newobj := Campaign_MP::Create( SelectionCampaignType.Data().Unit(), | 
|                                      data.EarliestStart(), | 
|                                      data.SequenceNumberForExcel(), | 
|                                      data.MinQuantity(), | 
|                                      data.MaxQuantity(), | 
|                                      data.MinDuration(), | 
|                                      data.MaxDuration(), | 
|                                      SelectionCampaignType.Data().Name(), | 
|                                      campaignid, | 
|                                      data.Comment(), | 
|                                      data.HasInputMaxQuantity() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeQuantity(), | 
|                                      data.HasInputMaxDuration() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeDuration(), | 
|                                      false ); | 
|               } | 
|     return newobj; | 
|   *] | 
| } |