| Quintiq file version 2.0 | 
| #parent: #root | 
| Method OnOk () id:Method_DialogCreateEditCampaign_OnOk | 
| { | 
|   #keys: '[134266.1.1955254560]' | 
|   Body: | 
|   [* | 
|     // Set data binding before apply changes | 
|     data := DataHolderDialogData.Data(); | 
|      | 
|     // Workaround: No databinding, so we set the dialog data manually before apply changes | 
|     data.HasInputMaxQuantity( EditorCampaignMaxQuantity.Enabled() ); | 
|     data.HasInputMaxDuration( DurationSelectorMaxDuration.Enabled() ); | 
|      | 
|     data.MinQuantity( ApplicationMacroPlanner.FormatStringToReal( EditorCampaignMinQuantity.Text() ) ); | 
|     data.MaxQuantity( ApplicationMacroPlanner.FormatStringToReal( EditorCampaignMaxQuantity.Text() ) ); | 
|     data.MinDuration( DurationSelectorMinDuration.Duration() ); | 
|     data.MaxDuration( DurationSelectorMaxDuration.Duration() ); | 
|      | 
|     // Disabled button to prevent the possibility of multiple firing | 
|     btnOK.Enabled( false, '' ); | 
|      | 
|     // When the user clicks ok,  | 
|     // we either create or edit the data | 
|     this.ApplyChanges(); | 
|      | 
|      | 
|      | 
|     if( isnull( data.WrappedInstance() ) ) | 
|     { | 
|       newcampaign := null( Campaign_MP ); | 
|       campaignid := OS::GenerateGUIDAsString(); | 
|                                             | 
|       if( CheckBoxIsCreateAndResequence.Checked() ) | 
|       { | 
|         newcampaign := Campaign_MP::CreateAndResequence( selCampaignType_MP.Data().Unit(), | 
|                                                          data.EarliestStart(), | 
|                                                          data.SequenceNumberForExcel(), | 
|                                                          data.MinQuantity(), | 
|                                                          data.MaxQuantity(), | 
|                                                          data.MinDuration(), | 
|                                                          data.MaxDuration(), | 
|                                                          selCampaignType_MP.Data().Name(), | 
|                                                          campaignid, | 
|                                                          data.Comment(), | 
|                                                          data.HasInputMaxQuantity() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeQuantity(), | 
|                                                          data.HasInputMaxDuration() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeDuration(), | 
|                                                          false, | 
|                                                          DataHolderTargetCampaignForResequence.Data(), | 
|                                                          DataHolderTransitionForReseuqnece.Data(), | 
|                                                          DateTimeSelectorDroptimeForResequence.DateTime() );  | 
|       } | 
|       else | 
|       { | 
|         newcampaign := Campaign_MP::Create( selCampaignType_MP.Data().Unit(), | 
|                                             data.EarliestStart(), | 
|                                             data.SequenceNumberForExcel(), | 
|                                             data.MinQuantity(), | 
|                                             data.MaxQuantity(), | 
|                                             data.MinDuration(), | 
|                                             data.MaxDuration(), | 
|                                             selCampaignType_MP.Data().Name(), | 
|                                             campaignid, | 
|                                             data.Comment(), | 
|                                             data.HasInputMaxQuantity() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeQuantity(), | 
|                                             data.HasInputMaxDuration() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeDuration(), | 
|                                             false /*isfromdb*/ );   | 
|       }   | 
|       // Access the form, select the new campaign | 
|       formCampaign := DataHolderForm.Data(); | 
|       // Update the form selection only if the dialog is opened from the form | 
|       if( not isnull( formCampaign ) ) | 
|       { | 
|         DataHolderForm.Data().ListCampaign().SelectByKey( newcampaign.Key() ); | 
|       } | 
|        | 
|     } | 
|     else | 
|     { | 
|      data.WrappedInstance().Update( selCampaignType_MP.Data().Unit(), | 
|                                     data.EarliestStart(), | 
|                                     data.SequenceNumberForExcel(), | 
|                                     data.MinQuantity(), | 
|                                     data.MaxQuantity(), | 
|                                     data.MinDuration(), | 
|                                     data.MaxDuration(), | 
|                                     selCampaignType_MP.Data().Name(), | 
|                                     data.CampaignID(), | 
|                                     data.Comment(), | 
|                                     data.HasInputMaxQuantity() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeQuantity(), | 
|                                     data.HasInputMaxDuration() and RadioButtonGroupQuantityDuration.BoundValue() = GlobalParameters_MP::GetCampaignTransitionsTypeDuration(), | 
|                                     false /*isfromdb*/ ); | 
|     } | 
|      | 
|     this.Close(); | 
|   *] | 
| } |