pre cutover push
This commit is contained in:
@ -1,11 +1,12 @@
|
||||
Compile function REACTOR_MODES_Services(@Service, @Params)
|
||||
|
||||
Declare function Database_Services, React_Prob_Cat_Services, Reactor_Modes_Services, Memberof, Error_Services
|
||||
Declare subroutine Error_Services, Database_Services, delete, RList
|
||||
Declare subroutine Error_Services, Database_Services, delete, RList, Reactor_Services
|
||||
|
||||
#pragma precomp SRP_PreCompiler
|
||||
$insert LOGICAL
|
||||
$insert REACTOR_MODES_EQUATES
|
||||
$Insert REACTOR_EQUATES
|
||||
$insert rlist_equates
|
||||
|
||||
GoToService
|
||||
@ -141,39 +142,90 @@ Service GetAllModes()
|
||||
Response = ModeList
|
||||
end service
|
||||
|
||||
Service AvailableModes(ReactorModesKey, CurrUser)
|
||||
|
||||
Service AvailableModes(ReactorModesKey, CurrUser, ReactNo)
|
||||
CurrMode = ReactorModesKey
|
||||
AllModes = Reactor_Modes_Services('GetAllModes')
|
||||
AllowedModes = ''
|
||||
curModeReleasePerms = XLATE('REACTOR_MODES', ReactorModesKey, REACTOR_MODES_GROUPS_RELEASE$, 'X')
|
||||
canRelease = 0
|
||||
CurModeReleaseGroups = XLATE('REACTOR_MODES', ReactorModesKey, REACTOR_MODES_GROUPS_RELEASE$, 'X')
|
||||
CanRelease = 0
|
||||
|
||||
IdleStartupRequired = False$
|
||||
If ReactNo NE '' then
|
||||
IdleStartupRequired = Xlate('REACTOR', ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$, 'X')
|
||||
If IdleStartupRequired EQ True$ then
|
||||
Reactor_Services('GetReactorProveInStatus', ReactNo)
|
||||
end
|
||||
IdleStartupRequired = Xlate('REACTOR', ReactNo, REACTOR_IDLE_STARTUP_REQUIRED$, 'X')
|
||||
If IdleStartupRequired EQ '' then IdleStartupRequired = False$
|
||||
end
|
||||
|
||||
//Check can release from current mode
|
||||
for each releaseMode in curModeReleasePerms using @VM
|
||||
if Memberof(currUser, releaseMode) then
|
||||
canRelease = 1
|
||||
for each ReleaseGroup in CurModeReleaseGroups using @VM
|
||||
if Memberof(CurrUser, ReleaseGroup) then
|
||||
CanRelease = 1
|
||||
end
|
||||
Next releaseMode
|
||||
if canRelease then
|
||||
for each mode in AllModes using @FM
|
||||
modeEnterPerms = XLATE('REACTOR_MODES', mode, REACTOR_MODES_GROUPS_ENTER$, 'X')
|
||||
x = 1
|
||||
loop
|
||||
while x LE DCount(modeEnterPerms, @VM)
|
||||
If Memberof(currUser, modeEnterPerms<1,x>) then
|
||||
Locate mode in AllowedModes using @FM setting DUMMY else
|
||||
AllowedModes<-1> = mode
|
||||
end
|
||||
end
|
||||
|
||||
x += 1
|
||||
|
||||
repeat
|
||||
|
||||
Next mode
|
||||
Next ReleaseGroup
|
||||
if CanRelease then
|
||||
PossibleModes = ''
|
||||
CurModeReleaseModes = XLATE('REACTOR_MODES', ReactorModesKey, REACTOR_MODES_MODES_RELEASE$, 'X')
|
||||
If CurModeReleaseModes NE '' then
|
||||
for each ReleaseMode in CurModeReleaseModes using @VM
|
||||
Locate ReleaseMode in PossibleModes using @FM setting DUMMY else
|
||||
PossibleModes<-1> = ReleaseMode
|
||||
end
|
||||
Next ReleaseMode
|
||||
end else
|
||||
AllModes = Reactor_Modes_Services('GetAllModes')
|
||||
for each mode in AllModes using @FM
|
||||
modeEnterPerms = XLATE('REACTOR_MODES', mode, REACTOR_MODES_GROUPS_ENTER$, 'X')
|
||||
x = 1
|
||||
loop
|
||||
while x LE DCount(modeEnterPerms, @VM)
|
||||
If Memberof(currUser, modeEnterPerms<1,x>) then
|
||||
Locate mode in AllowedModes using @FM setting DUMMY else
|
||||
PossibleModes<-1> = mode
|
||||
end
|
||||
end
|
||||
|
||||
x += 1
|
||||
|
||||
repeat
|
||||
|
||||
Next mode
|
||||
end
|
||||
for each PossibleMode in PossibleModes using @FM
|
||||
AllowMode = True$
|
||||
If PossibleMode EQ 'IDLE_STARTUP' and IdleStartupRequired EQ False$ then
|
||||
AllowMode = False$
|
||||
end
|
||||
If PossibleMode EQ CurrMode then
|
||||
AllowMode = False$
|
||||
end
|
||||
If AllowMode EQ True$ then
|
||||
Locate PossibleMode in AllowedModes using @FM setting DUMMY else
|
||||
PossibleModeEnterModes = XLATE('REACTOR_MODES', PossibleMode, REACTOR_MODES_MODES_ENTER$, 'X')
|
||||
If IdleStartupRequired EQ True$ and Len(PossibleMode) GE 10 and PossibleMode[1, 10] EQ 'CHANGEOVER' then
|
||||
// don't add to AllowedModes
|
||||
end else if PossibleModeEnterModes NE '' then
|
||||
for each EnterMode in PossibleModeEnterModes using @VM
|
||||
If CurrMode _EQC EnterMode then
|
||||
AllowedModes<-1> = PossibleMode
|
||||
end else
|
||||
If IdleStartupRequired EQ True$ and PossibleMode EQ 'IDLE' then
|
||||
AllowedModes<-1> = PossibleMode
|
||||
end
|
||||
end
|
||||
Next EnterMode
|
||||
end else
|
||||
AllowedModes<-1> = PossibleMode
|
||||
end
|
||||
end
|
||||
end
|
||||
Next PossibleMode
|
||||
end
|
||||
Response = AllowedModes
|
||||
end service
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user