chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
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
Quintiq file version 2.0
#parent: PanelActions/ButtonApply
Response OnClick () id:Response_PanelActions_ButtonApply_OnClick
{
  #keys: '[144528.1.1744494047]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    sanitycheckfeedback := '';
    gp := guard( MacroPlan.GlobalParameters_MP(), null( GlobalParameters_MP ) );
    formHasChanges := ApplicationMacroPlanner.CheckFormHasChangesWithFeedback( FormSanityCheckParameters, feedback );
    
    return not isnull( MacroPlan )
           and formHasChanges 
           and GlobalParameters_MP::ValidateInput( feedback,
                                                   sanitycheckfeedback,
                                                   MacroPlan,
                                                   MacroPlan.DefaultShiftPattern(),
                                                   gp.DisaggregationRatio(),
                                                   ApplicationMacroPlanner.FormatStringToNumber( EditFieldNumberOfDecimals.Text() ),
                                                   ApplicationMacroPlanner.FormatStringToReal(  EditFieldBalanceTolerance.Text() ),
                                                   ApplicationMacroPlanner.FormatStringToReal( EditFieldLotSizeTolerance.Text() ),
                                                   gp.BottleneckTolerance(),
                                                   gp.BottleneckWindowStart(),
                                                   gp.BottleneckWindowEnd(),
                                                   gp.StartOfKPIHorizon(),
                                                   gp.EndOfKPIHorizon(),
                                                   gp.DefaultSmartPlanStrategy(),
                                                   gp.UnitLowerBottleneckThreshold(),
                                                   gp.UnitUpperBottleneckThreshold(),
                                                   ApplicationMacroPlanner.FormatStringToNumber( EditFieldMaxNumPerGroup.Text() ),   /* For Sanity Check, the rest default to existing GP values */
                                                   ApplicationMacroPlanner.FormatStringToReal( EditFieldUpperLimit.Text() ), /* For Sanity Check, the rest default to existing GP values */
                                                   ApplicationMacroPlanner.FormatStringToReal( EditFieldLowerLimit.Text() ), /* For Sanity Check, the rest default to existing GP values */
                                                   gp.DefaultAllocation(),
                                                   gp.DefaultEfficiency(),
                                                   gp.DefaultMinCapacityPerDayForUnit(),
                                                   gp.DefaultMaxCapacityPerDayForUnit(),
                                                   gp.DefaultMaxLoadPercentage(),
                                                   gp.DefaultMaxCapacityForStockingPoint(),
                                                   gp.DefaultOperationInputOutputQuantity(),
                                                   gp.HasDefaultInventoryHoldingCost(),
                                                   gp.DefaultAccountForInventoryHolding(),
                                                   gp.HasAbsoluteValueForInventoryHolding(),
                                                   gp.DefaultAbsoluteValueForInventoryHolding(),
                                                   gp.DefaultAnnualInterestRateForInventoryHolding(),
                                                   gp.PeriodSpecificationForUnitActual(), 
                                                   gp.DefaultNumberOfPeriodsForAvgDemand(),
                                                   gp.NoiseThresholdOptimizerOutput(),
                                                   gp.NumberOfPeriodsSmartPlan(),
                                                   gp.UseSlidingWindowsApproach(),
                                                   gp.NumberOfPeriodsInWindow(),
                                                   gp.NumberOfPeriodsPerSlide(),
                                                   gp.DefaultServiceLevel(),
                                                   gp.StockingPointBottleneckThreshold());
  *]
  QuillAction
  {
    Body:
    [*
      // Apply changes
      Form.ApplyChanges();
    *]
    GroupServerCalls: false
  }
}