330 lines
7.6 KiB
Plaintext
330 lines
7.6 KiB
Plaintext
COMPILE FUNCTION obj_React_Esc(Method,Parms)
|
|
/*
|
|
Methods for REACT_ESC table
|
|
|
|
09/26/2007 JCH - Initial Coding
|
|
|
|
Properties:
|
|
|
|
Methods:
|
|
|
|
Find() ;* Lookup Reactor Escalation key
|
|
|
|
|
|
*/
|
|
|
|
|
|
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box
|
|
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg
|
|
DECLARE SUBROUTINE obj_Notes, Send_Info, RList, obj_React_Event
|
|
|
|
|
|
$INSERT REACT_ESC_EQUATES
|
|
$INSERT MSG_EQUATES
|
|
$INSERT NOTIFICATION_EQUATES
|
|
|
|
EQU CRLF$ TO \0D0A\
|
|
|
|
ErrTitle = 'Error in Stored Procedure "obj_React_Esc"'
|
|
ErrorMsg = ''
|
|
|
|
IF NOT(ASSIGNED(Method)) THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine'
|
|
IF NOT(ASSIGNED(Parms)) THEN Parms = ''
|
|
|
|
IF ErrorMsg NE '' THEN
|
|
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
|
|
RETURN ''
|
|
END
|
|
|
|
Result = ''
|
|
|
|
BEGIN CASE
|
|
CASE Method = 'Find' ; GOSUB Find
|
|
CASE Method = 'Create' ; GOSUB Create
|
|
CASE Method = 'Close' ; GOSUB Close
|
|
CASE Method = 'EscDates' ; GOSUB EscDates
|
|
CASE Method = 'DateEscHrs' ; GOSUB DateEscHrs
|
|
|
|
CASE 1
|
|
ErrorMsg = 'Unknown Method ':QUOTE(Method):' passed to routine.'
|
|
|
|
END CASE
|
|
|
|
IF ErrorMsg NE '' THEN
|
|
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
|
|
RETURN ''
|
|
END
|
|
|
|
RETURN Result
|
|
|
|
|
|
|
|
* * * * * * *
|
|
Find:
|
|
* * * * * * *
|
|
|
|
ReactEscKeys = Dialog_Box( 'DIALOG_REACT_ESC_QUERY', @WINDOW, '' )
|
|
|
|
Result = ReactEscKeys
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
* * * * * * *
|
|
Create:
|
|
* * * * * * *
|
|
|
|
ReactNo = Parms[1,@RM]
|
|
StartDTM = Parms[COL2()+1,@RM]
|
|
UserID = Parms[COL2()+1,@RM]
|
|
Reason = Parms[COL2()+1,@RM]
|
|
OutOfProdDTM = Parms[COL2()+1,@RM]
|
|
|
|
|
|
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
|
IF StartDTM = '' THEN ErrorMsg = 'Null parameter StartDTM passed to routine (':Method:').'
|
|
IF UserID = '' THEN ErrorMsg = 'Null parameter UserID passed to routine (':Method:').'
|
|
|
|
IF ErrorMsg NE '' THEN RETURN
|
|
|
|
thisStartDTM = ICONV(StartDTM,'DT')
|
|
IF thisStartDTM = '' THEN
|
|
ErrorMsg = 'Invalid value ':QUOTE(StartDTM):' passed for parameter StartDTM (':Method:').'
|
|
RETURN
|
|
END
|
|
|
|
thisOutOfProdDTM = ICONV(OutOfProdDTM,'DT')
|
|
IF thisOutOfProdDTM = '' THEN
|
|
ErrorMsg = 'Invalid value ':QUOTE(OutOfProdDTM):' passed for parameter OutOfProdDTM (':Method:').'
|
|
RETURN
|
|
END
|
|
|
|
|
|
ReactEscKey = ReactNo:'*':thisStartDTM
|
|
|
|
ReactEscRec = ''
|
|
ReactEscRec<REACT_ESC_START_USER$> = UserID
|
|
ReactEscRec<REACT_ESC_START_REASON$> = Reason
|
|
ReactEscRec<REACT_ESC_OUT_OF_PROD_DTM$> = thisOutOfProdDTM
|
|
|
|
TableVar = ''
|
|
|
|
OtParms = 'REACT_ESC':@RM:ReactEscKey:@RM:TableVar:@RM:ReactEscRec
|
|
|
|
obj_Tables('WriteRec',OtParms) ;* Writes and unlocks the record
|
|
|
|
* Added 3/5/2013 jch
|
|
|
|
Recipients = XLATE('NOTIFICATION','TOOL_ESCALATION',NOTIFICATION_USER_ID$,'X')
|
|
SentFrom = UserID
|
|
Subject = 'Reactor Escalation Opened'
|
|
Message = "React No ":ReactNo:" escalation opened.":CRLF$:Reason
|
|
AttachWindow = 'REACT_ESC'
|
|
AttachKey = ReactNo:'*':StartDTM
|
|
SendToGroup = ''
|
|
|
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
|
obj_Notes('Create',Parms)
|
|
|
|
|
|
***** Added 12/5/1013 JCH - Log Mode change in the REACT_EVENT table.
|
|
|
|
CurrMode = XLATE('REACTOR',ReactNo,'CURR_MODE','X')
|
|
|
|
oREParms = ReactNo:@RM
|
|
oREParms := StartDTM:@RM
|
|
oREParms := 'ESTR':@RM
|
|
oREParms := UserID:@RM
|
|
oREParms := Reason:@RM
|
|
oREParms := '':@RM ;* Mode not changed -> no New Mode
|
|
oREParms := CurrMode ;* Added 12/5/2013 JCH
|
|
|
|
obj_React_Event('Create',oREParms)
|
|
|
|
RETURN
|
|
|
|
|
|
* * * * * * *
|
|
Close:
|
|
* * * * * * *
|
|
|
|
ReactNo = Parms[1,@RM]
|
|
StartDTM = Parms[COL2()+1,@RM]
|
|
StopDTM = Parms[COL2()+1,@RM]
|
|
UserID = Parms[COL2()+1,@RM]
|
|
Reason = Parms[COL2()+1,@RM]
|
|
|
|
|
|
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
|
IF StartDTM = '' THEN ErrorMsg = 'Null parameter StartDTM passed to routine (':Method:').'
|
|
IF StopDTM = '' THEN ErrorMsg = 'Null parameter StopDTM passed to routine (':Method:').'
|
|
IF UserID = '' THEN ErrorMsg = 'Null parameter UserID passed to routine (':Method:').'
|
|
|
|
IF ErrorMsg NE '' THEN RETURN
|
|
|
|
thisStartDTM = ICONV(StartDTM,'DT')
|
|
IF thisStartDTM = '' THEN
|
|
ErrorMsg = 'Invalid value ':QUOTE(StartDTM):' passed for parameter StartDTM (':Method:').'
|
|
RETURN
|
|
END
|
|
|
|
thisStopDTM = ICONV(StopDTM,'DT')
|
|
IF thisStopDTM = '' THEN
|
|
ErrorMsg = 'Invalid value ':QUOTE(StopDTM):' passed for parameter StopDTM (':Method:').'
|
|
RETURN
|
|
END
|
|
|
|
ReactEscKey = ReactNo:'*':thisStartDTM
|
|
|
|
OtParms = 'REACT_ESC':@RM:ReactEscKey
|
|
ReactEscRec = obj_Tables('ReadRec',OtParms)
|
|
|
|
ReactEscRec<REACT_ESC_STOP_DTM$> = thisStopDTM
|
|
ReactEscRec<REACT_ESC_STOP_USER$> = UserID
|
|
ReactEscRec<REACT_ESC_STOP_REASON$> = Reason
|
|
|
|
OtParms = FieldStore(OtParms,@RM,4,1,ReactEscRec)
|
|
|
|
obj_Tables('WriteRec',OtParms) ;* Writes and unlocks the record
|
|
|
|
|
|
***** Added 12/5/1013 JCH - Log Mode change in the REACT_EVENT table.
|
|
|
|
|
|
CurrMode = XLATE('REACTOR',ReactNo,'CURR_MODE','X')
|
|
|
|
oREParms = ReactNo:@RM
|
|
oREParms := StopDTM:@RM
|
|
oREParms := 'ESTP':@RM
|
|
oREParms := UserID:@RM
|
|
oREParms := Reason:@RM
|
|
oREParms := '':@RM ;* Mode not changed -> no New Mode
|
|
oREParms := CurrMode ;* Added 12/5/2013 JCH
|
|
|
|
obj_React_Event('Create',oREParms)
|
|
|
|
|
|
|
|
* * * * * * *
|
|
|
|
Recipients = XLATE('NOTIFICATION','TOOL_ESCALATION',NOTIFICATION_USER_ID$,'X')
|
|
SentFrom = UserID
|
|
Subject = 'Reactor Escalation Closed'
|
|
Message = "React No ":ReactNo:" escalation closed.":CRLF$:Reason
|
|
AttachWindow = 'REACT_ESC'
|
|
AttachKey = ReactNo:'*':StartDTM
|
|
SendToGroup = ''
|
|
|
|
Parms = Recipients:@RM:SentFrom:@RM:Subject:@RM:Message:@RM:AttachWindow:@RM:AttachKey:@RM:SendToGroup
|
|
obj_Notes('Create',Parms)
|
|
|
|
|
|
* * * * * *
|
|
|
|
RETURN
|
|
|
|
|
|
* * * * * * *
|
|
EscDates:
|
|
* * * * * * *
|
|
|
|
RecKey = Parms[1,@RM]
|
|
Record = Parms[COL2()+1,@RM]
|
|
|
|
IF RecKey = '' THEN RETURN
|
|
IF Record = '' THEN Record = XLATE('REACT_ESC',RecKey,'','X')
|
|
|
|
|
|
StartDtm = FIELD(RecKey,'*',2)
|
|
StartDt = StartDtm[1,'.']
|
|
|
|
StopDt = Record<REACT_ESC_STOP_DTM$>[1,'.']
|
|
|
|
IF StopDt = '' THEN
|
|
StopDt = Date()
|
|
END
|
|
|
|
Ans = ''
|
|
FOR EscDt = StartDt TO StopDt
|
|
LOCATE EscDt IN Ans USING @VM SETTING Pos ELSE
|
|
Ans = INSERT(Ans,1,Pos,0,EscDt)
|
|
END
|
|
NEXT StopDt
|
|
|
|
Result = Ans
|
|
|
|
RETURN
|
|
|
|
|
|
* * * * * * *
|
|
DateEscHrs:
|
|
* * * * * * *
|
|
|
|
ReactNo = Parms[1,@RM]
|
|
EscDt = Parms[COL2()+1,@RM]
|
|
|
|
IF ReactNo = '' THEN ErrorMsg = 'Null parameter ReactNo passed to routine (':Method:').'
|
|
IF EscDt = '' THEN ErrorMsg = 'Null parameter EscDt passed to routine (':Method:').'
|
|
|
|
IF ErrorMsg NE '' THEN RETURN
|
|
|
|
thisEscDt = ICONV(EscDt,'D')
|
|
IF thisEscDt = '' THEN
|
|
ErrorMsg = 'Invalid value ':QUOTE(EscDt):' passed for parameter EscDt (':Method:').'
|
|
RETURN
|
|
END
|
|
|
|
OPEN 'DICT.REACT_ESC' TO DictVar ELSE
|
|
CALL FsMsg()
|
|
RETURN
|
|
END
|
|
|
|
SearchString = 'REACT_NO':@VM:ReactNo:@FM
|
|
SearchString := 'ESC_DT':@VM:OConv(thisEscDt, 'D4/'):@FM
|
|
|
|
Option = ''
|
|
Flag = ''
|
|
|
|
Btree.Extract(SearchString, 'REACT_ESC', DictVar, ReactEscKeys, Option, Flag)
|
|
|
|
Ans = ''
|
|
FOR I = 1 TO COUNT(ReactEscKeys,@VM) + (ReactEscKeys NE '')
|
|
ReactEscKey = ReactEscKeys<1,I>
|
|
ReactEscRec = XLATE('REACT_ESC',ReactEscKey,'','X')
|
|
|
|
DateStartDTM = thisEscDt:'.0000115741'
|
|
DateStopDTM = thisEscDt:'.999988459'
|
|
|
|
StartDTM = FIELD(ReactEscKey,'*',2)
|
|
StopDTM = ReactEscRec<REACT_ESC_STOP_DTM$>
|
|
|
|
IF StartDTM _LTX DateStartDTM THEN StartDTM = DateStartDTM
|
|
|
|
IF StopDTM = '' THEN
|
|
IF thisEscDt = Date() THEN
|
|
StopDTM = ICONV(OCONV(thisEscDt,'D4/'):' ':OCONV(Time(),'MTS'),'DT')
|
|
END ELSE
|
|
StopDTM = DateStopDTM
|
|
END
|
|
END ELSE
|
|
IF StopDTM _GTX DateStopDTM THEN StopDTM = DateStopDTM
|
|
END
|
|
|
|
Ans += (StopDTM - StartDTM)*24
|
|
|
|
NEXT I
|
|
|
|
IF Ans NE '' THEN
|
|
Result = ICONV(Ans,'MD2')
|
|
END
|
|
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
|