Kevin Kok Khah Whey
2023-10-18 d5e46a7a9f2cb9123b9aafb39a20e14059faa2e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Quintiq file version 2.0
#parent: #root
StaticMethod CreateNewVersion (
  GlobalOTDSOP 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;
  *]
}