Alarm trigger with NICA_ORDERS table

solution tested and ready for deployment

updated SRP_Git_Services to handle creating local copies of inherited entities

updated HgCV OCAP order trigger to also look for active prove-in orders

moved error services common into sysprog to avoid compilation issues
This commit is contained in:
Infineon\StieberD
2024-12-12 13:24:48 -07:00
parent 3cd56295dc
commit ab8f9d3c24
24 changed files with 3167 additions and 1571 deletions

View File

@ -54,10 +54,11 @@ $insert Message_Box_Equates
Declare function center_window, msg, Memberof, Get_Property, NextKey, next_key, rowexists, Get_Status
Declare function SRP_Array, start_window, Dialog_Box, Reactor_Log_Services, Reactor_Modes_Services, GetTickCount
Declare function Reactor_Services, Error_Services, Logging_Services, Environment_Services, Database_Services
Declare function SRP_List
Declare function SRP_List, Nica_Orders_Services
Declare subroutine RList, Set_Property, Set_List_Box_Data, end_dialog, record_lock, obj_React_Mode, ErrMsg
Declare subroutine Mona_Services, Reactor_Services, Error_Services, obj_React_Status, Logging_Services
Declare subroutine Database_Services, Override_Log_Services, SRP_List, Message_Box, Reactor_Log_Services
Declare subroutine Nica_Orders_Services
GoToEvent Event for CtrlEntId else
// Event not implemented
@ -281,52 +282,73 @@ Event APPLY.CLICK()
If Error_Services('NoError') then
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
If Error_Services('NoError') then
End_Dialog(@Window, NewMode)
end else
Error_Services('DisplayError')
ActiveProveIn = Xlate('REACTOR', ReactNo, REACTOR_PROVE_IN_ACTIVE$, 'X')
If ActiveProveIn then
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
UserMsg = "Reactor prove in must be processed in NICA. Override required from a lead or supervisor to bypass NICA."
UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg)
Override = UserVerification<1>
If Override EQ True$ then
ProveInOrderIds = Xlate('REACTOR', ReactNo, REACTOR_PROVE_IN_ORDER_ID$, 'X')
ProveInOrderList = SRP_List('Create', ProveInOrderIds, @VM)
ProveInTypes = Xlate('REACTOR', ReactNo, REACTOR_PROVE_IN_TYPE$, 'X')
ProveInTypeList = SRP_List('Create', ProveInTypes, @VM)
If SRP_List('Count', ProveInOrderList) GT 1 then
OverrideData = Dialog_Box('PROVE_IN_OVERRIDE', @Window, ReactNo)
ProveInTypesToCancel = OverrideData<1, 1>
ProveInTypesToCancelList = SRP_List('Create', ProveInTypesToCancel, @VM)
ResponseComment = ''
for each ProveInType in ProveInTypes using @VM setting Idx
If SRP_List('Locate', ProveInTypesToCancelList, ProveInType) GT 0 then
ProveInOrderId = SRP_List('GetAt', ProveInOrderList, Idx)
Reactor_Services('CancelReactorProveIn', ReactNo, ProveInOrderId)
If ResponseComment NE '' then
ResponseComment := ', '
ActiveProveIn = Reactor_Services('GetProveInActive', ReactNo)
ActiveHgCVChecklists = Nica_Orders_Services('GetActiveOrders', 'REACTOR', ReactNo, 'IQS_HGCV_ALARM')
HgCVChecklistActive = (ActiveHgCVChecklists NE '')
Begin Case
Case ActiveProveIn
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
UserMsg = "Reactor prove in must be processed in NICA. Override required from a lead or supervisor to bypass NICA."
UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg)
Override = UserVerification<1>
If Override EQ True$ then
ProveInOrderIds = Reactor_Services('GetActiveProveInOrderIds', ReactNo)
If (DCount(ProveInOrderIds, @VM) GT 1) then
ProveInTypes = Xlate('NICA_ORDERS', ProveInOrderIds, 'ORDER_TYPE', 'X')
OverrideData = Dialog_Box('PROVE_IN_OVERRIDE', @Window, ReactNo)
ProveInTypesToCancel = OverrideData<1, 1>
ResponseComment = ''
For each ProveInType in ProveInTypes using @VM setting Idx
Locate ProveInType in ProveInTypesToCancel using @VM setting Unused then
ProveInOrderId = ProveInOrderIds<0, Idx>
Nica_Orders_Services('CancelOrder', ProveInOrderId)
If ResponseComment NE '' then ResponseComment := ', '
ResponseComment := ProveInType
end
ResponseComment := ProveInType
end
Next ProveInType
ResponseComment := ': '
ResponseComment := OverrideData<2, 1>
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN')
SRP_List('Release', ProveInTypesToCancelList)
end else
ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2>
If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then
ProveInOrderId = SRP_List('GetAt', ProveInOrderList, 1)
Reactor_Services('CancelReactorProveIn', ReactNo, ProveInOrderId)
Next ProveInType
ResponseComment := ': '
ResponseComment := OverrideData<2, 1>
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN')
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
If Error_Services('NoError') then End_Dialog(@Window, NewMode)
end else
ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2>
If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then
Nica_Orders_Services('CancelOrder', ProveInOrderIds<0, 1>)
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'REACTOR_PROVE_IN')
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
If Error_Services('NoError') then End_Dialog(@Window, NewMode)
end else
Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$)
end
end
end
Case HgCVChecklistActive
OverrideGroups = 'LEAD':@VM:'SUPERVISOR'
UserMsg = "HgCV OCAP Checklist must be completed in NICA. Override required from a lead or supervisor to bypass NICA."
UserVerification = Dialog_Box('NDW_VERIFY_USER', @WINDOW, @USER4:@FM:OverrideGroups:@FM:'':@FM:UserMsg)
Override = UserVerification<1>
If Override then
ResponseComment = Dialog_Box('NDW_ADD_COMMENT', @WINDOW)<2>
If Assigned(ResponseComment) and Len(ResponseComment) GT 4 then
For each ActiveHgCVOrderId in ActiveHgCVChecklists using @VM
Nica_Orders_Services('CancelOrder', ActiveHgCVOrderId)
Next ActiveHgCVChecklistId
Override_Log_Services('Create', 'REACTOR', ReactNo, UserVerification<2>, ResponseComment, 'HGCV_OCAP_CHECKLIST')
Reactor_Services('CreateReactModeChange', @User4, ReactNo, NewMode, NewReactModeSvc, NewNoteText)
If Error_Services('NoError') then
@ -335,11 +357,9 @@ Event APPLY.CLICK()
end else
Message_Box(@Window, 'You must enter a comment greater than 4 letters!', 'Error', MSG_ICON_EXCLAM$)
end
end
SRP_List('Release', ProveInOrderList)
SRP_List('Release', ProveInTypeList)
end
end
end
End Case
end
end
@ -504,3 +524,4 @@ return