yanweiyuan3
2023-09-20 40e4fffbb86f33e0c10835c21bd9cc9546ba3fc1
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
48
49
50
51
52
53
54
55
56
57
58
59
Quintiq file version 2.0
#parent: #root
StaticMethod CopyVersion (
  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
    oldversionid := "";
    oldversionname := "";
    
    latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype );
    copyversionid := latestversion.VersionID();
    info( copyversionid );
    
    if( copyversionid.FindString( "-", 0 ) > 0 ){
      latestversionlist := copyversionid.Tokenize( "-" );
      latestversionnamelist := latestversion.LongVersionName().Tokenize( "-" );
      for( i := 0; i < latestversionlist.Size() - 1; i := i + 1 ){
        if( oldversionid = "" ){
          oldversionid := latestversionlist.Element( i );
          oldversionname := latestversionnamelist.Element( i );
          }else{
            oldversionid := oldversionid + "-" + latestversionlist.Element( i );
            oldversionname := oldversionname + "-" + latestversionnamelist.Element( i );
            }
        info( oldversionid );
        }
      if( oldversionid <> "" ){
        oldversionid := oldversionid + "-";
        oldversionname := oldversionname + "-";
        } 
      info( oldversionid );
      }
    
    // Calculate new version info
    additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 );
    newversionid := oldversionid + [String]additionversionid;
    newcaltype := latestversion.CalType();
    newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")";
    newversionname := oldversionname + newsingleversionname;
    info( newversionid );
    
    // Create new version
    newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user );
    
    return newversion;
  *]
}