| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod CreateNewVersion ( | 
|   GlobalOTDTable owner, | 
|   String businessname | 
| ) as VersionControl | 
| { | 
|   Description: '在上一版本后添加新版本号并生成新版本' | 
|   TextBody: | 
|   [* | 
|     // Administrator Sep-13-2023 (created) | 
|     createtime := DateTime::ActualTime(); | 
|     user := QuintiqUser::CurrentUser().Username(); | 
|     starttime := DateTime::Construct(1970,1,1,0,0,0); | 
|     // Get the local scenario businesstype | 
|     businesstype := GlobalOTDTable::GetBusinessTypeName( businessname ); | 
|      | 
|     // Get the older version info | 
|     oldversion_id := ""; | 
|     oldversion_name := ""; | 
|     oldcaltype := ""; | 
|      | 
|     latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype ); | 
|      | 
|     if( isnull( latestversion ) and not businesstype = "TM" ){ | 
|       error( "Can't find last version in " + businesstype.AsQUILL() ); | 
|       } | 
|     else if( not isnull( latestversion ) ){ | 
|       oldversion_id := latestversion.VersionID() + "-"; | 
|       oldversion_name := latestversion.LongVersionName() + "-"; | 
|       oldcaltype := latestversion.CalType(); | 
|       } | 
|      | 
|      | 
|     // Calculate new version info | 
|     additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 ); | 
|     newversionid := oldversion_id + [String]additionversionid; | 
|     newcaltype := GlobalOTDTable::GetNextCalType( oldcaltype, businesstype ); | 
|     newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")"; | 
|     newversionname := oldversion_name + newsingleversionname; | 
|      | 
|     // Create new version | 
|     newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user ); | 
|      | 
|     return newversion; | 
|   *] | 
| } |