added LSL2 stored procedures
This commit is contained in:
178
LSL2/STPROC/REACTOR_MODES_SERVICES.txt
Normal file
178
LSL2/STPROC/REACTOR_MODES_SERVICES.txt
Normal file
@ -0,0 +1,178 @@
|
||||
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
|
||||
|
||||
#pragma precomp SRP_PreCompiler
|
||||
$insert LOGICAL
|
||||
$insert REACTOR_MODES_EQUATES
|
||||
$insert rlist_equates
|
||||
|
||||
GoToService
|
||||
|
||||
Return Response or ""
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// SERVICES
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Service AddNotificationGroup(ReactorModesKey, Class)
|
||||
If ReactorModesKey NE '' AND Class NE '' then
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
||||
Locate Class in ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$> using @VM setting dummy then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': Notifcation already exists')
|
||||
end else
|
||||
ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$, -1> = Class
|
||||
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
||||
if Error_Services('HasError') then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Class ID.')
|
||||
Return
|
||||
end
|
||||
end service
|
||||
|
||||
Service DeleteNotificationGroup(ReactorModesKey, Class)
|
||||
If ReactorModesKey NE '' AND Class NE '' then
|
||||
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
||||
Locate Class in ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$> using @VM setting classPos then
|
||||
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_NOTIFY_CLASS$,classPos,0)
|
||||
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
||||
end else
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Class ID.')
|
||||
end
|
||||
end
|
||||
end service
|
||||
|
||||
Service AddEnterPermission(ReactorModesKey, Group)
|
||||
If ReactorModesKey NE '' AND Group NE '' then
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
||||
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$> using @VM setting dummy then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': Group permission already exists')
|
||||
end else
|
||||
ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$, -1> = Group
|
||||
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
||||
if Error_Services('HasError') then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Group ID.')
|
||||
Return
|
||||
end
|
||||
end service
|
||||
|
||||
Service AddReleasePermission(ReactorModesKey, Group)
|
||||
If ReactorModesKey NE '' AND Group NE '' then
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
||||
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$> using @VM setting dummy then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': Group permission already exists')
|
||||
end else
|
||||
ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$, -1> = Group
|
||||
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
||||
if Error_Services('HasError') then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': ' : Error_Services('GetMessage'))
|
||||
end
|
||||
end
|
||||
end else
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Group ID.')
|
||||
Return
|
||||
end
|
||||
end service
|
||||
|
||||
Service AddServiceCategory(ReactorModesKey, NewServiceName, NewServiceCategory)
|
||||
If ReactorModesKey EQ '' then
|
||||
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey.')
|
||||
Return
|
||||
end
|
||||
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
||||
NewCatKey = React_Prob_Cat_Services('Create',NewServiceName,NewServiceCategory)
|
||||
ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORIES$, -1> = NewServiceName
|
||||
ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$, -1> = NewCatKey
|
||||
|
||||
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
||||
|
||||
|
||||
End Service
|
||||
|
||||
Service DeleteServiceCategory(ReactorModesKey, CatId)
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
||||
Locate CatId in ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$> using @VM setting catPos then
|
||||
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_SERVICE_CATEGORY_ID$,catPos,0)
|
||||
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_SERVICE_CATEGORIES$,catPos,0)
|
||||
end
|
||||
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
||||
end service
|
||||
|
||||
Service DeleteEnterPermission(ReactorModesKey, Group)
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
||||
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$> using @VM setting groupPos then
|
||||
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_GROUPS_ENTER$,groupPos,0)
|
||||
end
|
||||
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
||||
end service
|
||||
|
||||
Service DeleteReleasePermission(ReactorModesKey, Group)
|
||||
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
||||
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$> using @VM setting groupPos then
|
||||
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_GROUPS_RELEASE$,groupPos,0)
|
||||
end
|
||||
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
||||
end service
|
||||
|
||||
Service GetAllModes()
|
||||
Statement = 'SELECT REACTOR_MODES BY DESCRIPTION'
|
||||
rlist( Statement, target_activelist$, '', '', '' )
|
||||
ModeList = ''
|
||||
IF @RecCount then
|
||||
EoF = 0
|
||||
NumKeys = @RecCount
|
||||
Cnt = 0
|
||||
Loop
|
||||
ReadNext ReactorModeID Else EoF = 1
|
||||
until EoF
|
||||
ModeList<-1> = ReactorModeID
|
||||
Repeat
|
||||
end
|
||||
Response = ModeList
|
||||
end service
|
||||
|
||||
Service AvailableModes(ReactorModesKey, CurrUser)
|
||||
|
||||
CurrMode = ReactorModesKey
|
||||
AllModes = Reactor_Modes_Services('GetAllModes')
|
||||
AllowedModes = ''
|
||||
curModeReleasePerms = XLATE('REACTOR_MODES', ReactorModesKey, REACTOR_MODES_GROUPS_RELEASE$, 'X')
|
||||
canRelease = 0
|
||||
//Check can release from current mode
|
||||
for each releaseMode in curModeReleasePerms using @VM
|
||||
if Memberof(currUser, releaseMode) 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
|
||||
end
|
||||
Response = AllowedModes
|
||||
end service
|
||||
|
||||
|
Reference in New Issue
Block a user