陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
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
Quintiq file version 2.0
#parent: #root
Method CanProcessStep (
  output String feedback_o,
  const SWF_Step step,
  String action
) const declarative remote as Boolean
{
  Description: 'Indicate if this user can process the [action] for the given [step].'
  TextBody:
  [*
    result := true;
    
    if( not this.IsAdministrator()
        and step.AssignedUser() <> this )
    {
      result := false;
      feedback_o := SWF_Translation::TRANSLATE_Auth_UnauthorizeAction();
    }
    else if( action = SWF_Step::ACTION_SetToComplete()
             and step.IsCompleted() )
    {
      result := false;
      feedback_o := SWF_Translation::TRANSLATE_StepsAlreadyCompleted();
    }
    else if( action = SWF_Step::ACTION_SetToIncomplete() 
             and step.CanSetIncomplete() )
    {
      result := false;
      feedback_o := SWF_Translation::TRANSLATE_StepMustManualCompleteBeforeSetToIncomplete();
    } 
    else if( action = SWF_Step::ACTION_OverrideDueDate()
             and step.IsCompleted() )
    {
      result := false;
      feedback_o := SWF_Translation::TRANSLATE_StepsAlreadyCompleted();
    }
    
    return result;
  *]
}