Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method UIEnableDisableComponent ( 
 | 
  Boolean isInit 
 | 
) id:Method_DialogCreateEditUnit_UIEnableDisableComponent 
 | 
{ 
 | 
  #keys: '[135040.0.219561692]' 
 | 
  Body: 
 | 
  [* 
 | 
    isBatchMode := DataHolderDialogDatas.Data().Size() > 1; 
 | 
     
 | 
    batchValidityActive := not CheckBoxBatchEditValidity.Visible()  
 | 
                           or CheckBoxBatchEditValidity.Checked(); 
 | 
     
 | 
    // Enable / disable validity start 
 | 
    hasValidityStartScrValue  := CheckboxHasStart.Checked(); 
 | 
    hasValidityStartDataValue := guard( DataHolderDialogData.Data().StartDate().DateTime().IsFinite(), false ); 
 | 
    hasValidityStartValue     := ifexpr( isInit 
 | 
                                        ,hasValidityStartDataValue 
 | 
                                        ,hasValidityStartScrValue ); 
 | 
    dsStart.Enabled( hasValidityStartValue 
 | 
                     and batchValidityActive, "" ); 
 | 
     
 | 
    validityStartScrValue  := dsStart.Date(); 
 | 
    validityStartDataValue := guard( DataHolderDialogData.Data().StartDate(), 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(); 
 | 
      if( not isnull( selParentUnit.Data() ) 
 | 
          and guard( selParentUnit.Data().StartDate().IsFinite(), false ) ) 
 | 
      { 
 | 
        defaultStart := selParentUnit.Data().StartDate(); 
 | 
      } 
 | 
     
 | 
      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().EndDate().DateTime().IsFinite(), false ); 
 | 
    hasValidityEndValue     := ifexpr( isInit 
 | 
                                      ,hasValidityEndDataValue 
 | 
                                      ,hasValidityEndScrValue ); 
 | 
    dsEnd.Enabled( hasValidityEndValue 
 | 
                   and batchValidityActive, "" ); 
 | 
     
 | 
    validityEndScrValue  := dsEnd.Date(); 
 | 
    validityEndDataValue := guard( DataHolderDialogData.Data().EndDate(), Date::MaxDate() ); 
 | 
    validityEndValue     := ifexpr( isInit 
 | 
                                     ,validityEndDataValue 
 | 
                                     ,validityEndScrValue ); 
 | 
     
 | 
    if( hasValidityEndValue and not isInit ) //user action check 
 | 
    { 
 | 
      defaultEnd := MacroPlan.End().Date(); 
 | 
     
 | 
      if( not isnull( selParentUnit.Data() ) 
 | 
          and guard( selParentUnit.Data().EndDate().IsFinite(), false ) ) 
 | 
      { 
 | 
        defaultEnd := selParentUnit.Data().EndDate(); 
 | 
      }   
 | 
       
 | 
      end := ifexpr( validityEndValue.IsFinite() 
 | 
                    ,validityEndValue 
 | 
                    ,defaultEnd ); 
 | 
      dsEnd.Date( end );  
 | 
    } 
 | 
    else if( not hasValidityEndValue and not isInit ) //user action uncheck 
 | 
    { 
 | 
      dsEnd.Date( Date::MaxDate() );  
 | 
    } 
 | 
     
 | 
    // Enable / disable UserFrozenFutureDuration 
 | 
    hasUserFrozenDurationScrValue  := CheckboxUserFrozenFutureDuration.Checked(); 
 | 
    hasUserFrozenDurationDataValue := guard( DataHolderDialogData.Data().HasUserFrozenFutureDuration(), false ); 
 | 
    hasUserFrozenDurationValue     := ifexpr( isInit 
 | 
                                             ,hasUserFrozenDurationDataValue 
 | 
                                             ,hasUserFrozenDurationScrValue ); 
 | 
     
 | 
    batchMiscActive := not CheckBoxBatchEditMisc.Visible()  
 | 
                       or CheckBoxBatchEditMisc.Checked(); 
 | 
     
 | 
    DurationSelectorUserFrozenFutureDuration.Enabled( hasUserFrozenDurationValue 
 | 
                                                      and batchMiscActive 
 | 
                                                      , "" ); 
 | 
     
 | 
    // Check Capacity type for TransportUnit, for disabling CapacitySmoothing & CapacityUsage  
 | 
    capacityTypeScrValue  := RadioButtonGroupCapacityType.BoundValue() 
 | 
    capacityTypeDataValue := guard( DataHolderDialogData.Data().CapacityType(), GlobalParameters_MP::GetCapacityTypeInfinite() ); 
 | 
    capacityType          := ifexpr( isInit 
 | 
                                    ,capacityTypeDataValue 
 | 
                                    ,capacityTypeScrValue ); 
 | 
                                       
 | 
    istransport  := capacityType    = GlobalParameters_MP::GetCapacityTypeTransportTime() 
 | 
                    or capacityType = GlobalParameters_MP::GetCapacityTypeTransportQuantity(); 
 | 
    // 
 | 
     
 | 
    // Enable / disable capacity smoothing components  & EditFieldCapacitySmoothingLength 
 | 
    hasCapacitySmoothingScrValue   := CheckBoxHasCapacitySmoothing.Checked(); 
 | 
    hasCapacitySmoothingDataValue  := guard( DataHolderDialogData.Data().HasCapacitySmoothing(), false ); 
 | 
    hasCapacitySmoothingValue      := ifexpr( isInit 
 | 
                                             ,hasCapacitySmoothingDataValue 
 | 
                                             ,hasCapacitySmoothingScrValue ); 
 | 
     
 | 
    isSmoothCapacityOverAllPeriodsScrValue  := [Boolean] RadioButtonGroupIsSmoothCapacityOverAllPeriods.BoundValue(); 
 | 
    isSmoothCapacityOverAllPeriodsDataValue := guard( DataHolderDialogData.Data().IsSmoothCapacityOverAllPeriods(), false ); 
 | 
     
 | 
    isSmoothCapacityOverAllPeriodsValue     := ifexpr( isInit 
 | 
                                                       ,isSmoothCapacityOverAllPeriodsDataValue 
 | 
                                                       ,isSmoothCapacityOverAllPeriodsScrValue ); 
 | 
     
 | 
    CheckBoxHasCapacitySmoothing.Enabled                  ( not istransport 
 | 
                                                            and not isBatchMode, "" ); 
 | 
    RadioButtonGroupUsingOutputForCapacity.Enabled        ( not istransport 
 | 
                                                            and not isBatchMode, "" ); 
 | 
     
 | 
    EditFieldCapacitySmoothingPercentageDelta.Enabled     ( not istransport 
 | 
                                                            and not isBatchMode 
 | 
                                                            and hasCapacitySmoothingValue, "" ); 
 | 
    RadioButtonGroupIsSmoothCapacityOverAllPeriods.Enabled( not istransport 
 | 
                                                            and not isBatchMode 
 | 
                                                            and hasCapacitySmoothingValue, "" ); 
 | 
    CheckboxIsOverlapCapacitySmoothing.Enabled            ( not istransport 
 | 
                                                            and not isBatchMode 
 | 
                                                            and hasCapacitySmoothingValue, "" ); 
 | 
    EditFieldCapacitySmoothingLength.Enabled              ( not istransport 
 | 
                                                            and not isBatchMode 
 | 
                                                            and hasCapacitySmoothingValue  
 | 
                                                            and not isSmoothCapacityOverAllPeriodsValue, "" ); 
 | 
     
 | 
     
 | 
    // Enable / disable lotSize maximum quantity editor 
 | 
    hasMaximumScrValue  := CheckboxMaximumQuantity.Checked(); 
 | 
    hasMaximumDataValue := guard( DataHolderDialogData.Data().HasMaximumQuantity(), false ); 
 | 
    hasMaximumValue     := ifexpr( isInit 
 | 
                                  ,hasMaximumDataValue 
 | 
                                  ,hasMaximumScrValue ); 
 | 
     
 | 
     
 | 
    EditFieldMaximumQuantity.Enabled( not istransport 
 | 
                                      and not isBatchMode 
 | 
                                      and hasMaximumValue ,"" ); 
 | 
     
 | 
     
 | 
    // Enable / disable LotSize tab's component (since we cannot disable tab pages) 
 | 
    disableLotSizeFeedback := ''; 
 | 
    if( istransport ) 
 | 
    { 
 | 
      disableLotSizeFeedback := ifexpr( capacityType = GlobalParameters_MP::GetCapacityTypeTransportTime()  
 | 
                                       ,Translations::MP_Designer_WebDialogUnit_FeedbackDisableTransportTimeVolumeTab() 
 | 
                                       ,Translations::MP_Designer_WebDialogUnit_FeedbackDisableTransportQuantityVolumeTab() ); 
 | 
    } 
 | 
     
 | 
    EditFieldMinimumQuantity.Enabled( not istransport 
 | 
                                      and not isBatchMode, disableLotSizeFeedback ); 
 | 
    EditFieldLotSize.Enabled        ( not istransport 
 | 
                                      and not isBatchMode, disableLotSizeFeedback ); 
 | 
    CheckboxMaximumQuantity.Enabled(  not istransport 
 | 
                                      and not isBatchMode, disableLotSizeFeedback ); 
 | 
     
 | 
    // Enable / disable CheckboxUseShiftPatternOptimization 
 | 
    istime  :=  capacityType    = GlobalParameters_MP::GetCapacityTypeTime() 
 | 
                or capacityType = GlobalParameters_MP::GetCapacityTypeTimeAggregation(); 
 | 
     
 | 
    CheckboxUseShiftPatternOptimization.Enabled( istime, 
 | 
                                                 Translations::MP_Designer_WebDialogUnit_FeedbackDisableAllowShiftPatternOptimization() ); 
 | 
  *] 
 | 
} 
 |