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