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; 
 | 
  *] 
 | 
} 
 |