pre cutover push

This commit is contained in:
Infineon\StieberD
2024-09-04 20:33:41 -07:00
parent 6ea6969f4b
commit 7762b129af
2072 changed files with 130000 additions and 95295 deletions

View File

@ -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