Kevin Kok Khah Whey
2023-11-07 5ae534ab606e6f2ba5ea60914224d665b0447d5a
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
60
61
62
63
64
65
66
67
68
69
70
71
Quintiq file version 2.0
#parent: #root
Method UIEnableDisableComponent (
  Boolean isInit
) id:Method_DialogCreateEditStockingPoint_UIEnableDisableComponent
{
  #keys: '[135040.0.219561692]'
  Body:
  [*
    batchValidityActive := not CheckBoxBatchEditValidity.Visible() 
                           or CheckBoxBatchEditValidity.Checked();
    
    // Enable / disable validity start
    hasValidityStartScrValue  := CheckboxHasStart.Checked();
    hasValidityStartDataValue := guard( DataHolderDialogData.Data().Start().DateTime().IsFinite(), false );
    hasValidityStartValue     := ifexpr( isInit
                                        ,hasValidityStartDataValue
                                        ,hasValidityStartScrValue );
    dsStart.Enabled( hasValidityStartValue
                     and batchValidityActive, "" );
    
    validityStartScrValue  := dsStart.Date();
    validityStartDataValue := guard( DataHolderDialogData.Data().Start(), Date::MinDate() );  //todo!! setting DateTime::MinDateTime() into datetimeSelector return strange value "Jan-1-0001 00:08:39". potential RFC?
    validityStartValue     := ifexpr( isInit
                                     ,validityStartDataValue
                                     ,validityStartScrValue );
    
    if( hasValidityStartValue and not isInit ) //user action check
    {
      defaultStart := MacroPlan.Start().Date();
      
      start := ifexpr( validityStartValue.IsFinite()  //todo!! setting DateTime::MinDateTime() into datetimeSelector return strange value "Jan-1-0001 00:08:39", hence, only get Date. Potential RFC?
                      ,validityStartValue
                      ,defaultStart );
      dsStart.Date( start ); 
    }
    else if( not hasValidityStartValue and not isInit ) //user action uncheck
    {
      dsStart.Date( Date::MinDate() ); 
    }
    
    // Enable / disable validity end
    hasValidityEndScrValue  := CheckboxHasEnd.Checked();
    hasValidityEndDataValue := guard( DataHolderDialogData.Data().End().DateTime().IsFinite(), false );
    hasValidityEndValue     := ifexpr( isInit
                                      ,hasValidityEndDataValue
                                      ,hasValidityEndScrValue );
    dsEnd.Enabled( hasValidityEndValue
                   and batchValidityActive, "" );
    
    validityEndScrValue  := dsEnd.Date();
    validityEndDataValue := guard( DataHolderDialogData.Data().End(), Date::MaxDate() );
    validityEndValue     := ifexpr( isInit
                                     ,validityEndDataValue
                                     ,validityEndScrValue );
    
    if( hasValidityEndValue and not isInit ) //user action check
    {
      defaultEnd := MacroPlan.End().Date();
      
      end := ifexpr( validityEndValue.IsFinite()
                    ,validityEndValue
                    ,defaultEnd );
      dsEnd.Date( end ); 
    }
    else if( not hasValidityEndValue and not isInit ) //user action uncheck
    {
      dsEnd.Date( Date::MaxDate() ); 
    }
  *]
}