open-insight/LSL2/STPROC/OBJ_CALIB_LIST.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

163 lines
3.7 KiB
Plaintext

COMPILE FUNCTION obj_Calib_List(Method,Parms)
/*
Methods for Calib_List table
3/18/2010 JCH - Initial Coding
Properties:
Methods:
SendReminders ;* Send Notes reminding of calibrations coming due
*/
DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box, Popup
DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, RList, obj_Notes
$INSERT MSG_EQUATES
$INSERT CALIB_LIST_EQUATES
$INSERT RLIST_EQUATES
$INSERT NOTIFICATION_EQU
EQU PDISPLAY$ TO 8 ;* From Popup_Equates
EQU CRLF$ TO \0D0A\
ErrTitle = 'Error in Stored Procedure "obj_Calib_List"'
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 = 'SendReminders' ; GOSUB SendReminders
CASE 1
END CASE
IF ErrorMsg NE '' THEN
Set_Status(-1,ErrTitle:@SVM:ErrorMsg)
RETURN ''
END
RETURN Result
* * * * * * *
SendReminders:
* * * * * * *
OPEN 'CALIB_LIST' TO FileIn ELSE
ErrorMsg = 'Unable to open "CALIB_LIST" table. (':Method:')'
RETURN
END
CheckDt = OCONV(Date()+15,'D4/')
SelectSent = 'SELECT CALIB_LIST WITH NEXT_CAL_DT < ':QUOTE(CheckDt):' BY NEXT_CAL_DT'
RList(SelectSent,TARGET_ACTIVELIST$,'','','')
NoteText = ''
Depts = ''
Done = 0
LOOP
READNEXT CLNo ELSE Done = 1
UNTIL Done
READ CLRec FROM FileIn,CLNo THEN
NextCalDt = OCONV(XLATE('CALIB_LIST',CLNo,'NEXT_CAL_DT','X'),'D4/')
IF NextCalDt NE '' THEN
CLType = CLRec<CALIB_LIST_CL_TYPE$>
Dept = CLRec<CALIB_LIST_DEPT$>
IF Dept = '' THEN Dept = 'MET'
IF CLType = 'E' THEN
Desc = CLRec<CALIB_LIST_EQ_DESC$>
SN = CLRec<CALIB_LIST_EQ_SN$>
Loc = CLRec<CALIB_LIST_EQ_LOC$
NewLine = Desc:' (S/N: ':SN:') located in the ':Loc:' is due for calibration on ':NextCalDt:CRLF$
END
IF CLType = 'S' THEN
Desc = CLRec<CALIB_LIST_STD_DESC$>
SN = CLRec<CALIB_LIST_STD_SN$>
Loc = CLRec<CALIB_LIST_STD_LOC$>
NewLine = 'The NIST Standard ':Desc:' (S/N: ':SN:') located in the ':Loc:' is due for calibration on ':NextCalDt:CRLF$
END
LOCATE Dept IN Depts USING @FM SETTING Pos ELSE
Depts = INSERT(Depts,Pos,0,0,Dept)
END
NoteText<Pos> = NoteText<Pos>:NewLine
END ;* End of check for NextCalDt
END ;* End of CLRec read
REPEAT
DeptUsers = ''
DeptDescs =''
PopupLiteral = XLATE('SYSREPOSPOPUPS',@APPID<1>:'**DEPT',PDISPLAY$,'X')
CONVERT @VM:@SVM TO @FM:@VM IN PopupLiteral
LiteralCnt = COUNT(PopupLiteral,@FM) + (PopupLiteral NE '')
FOR I = 1 TO LiteralCnt
Dept = PopupLiteral<I,1>
DeptDesc = PopupLiteral<I,2>
UserNames = PopupLiteral<I,3>
LOCATE Dept IN Depts USING @FM SETTING Pos THEN
CONVERT ' ' TO '' IN UserNames
CONVERT ',' TO @VM IN UserNames
DeptUsers<Pos> = UserNames
DeptDescs<Pos> = DeptDesc
END
NEXT I
NoteSubject = "Equipment Calibration Reminder"
DeptCnt = COUNT(Depts,@FM) + (Depts NE '')
FOR I = 1 TO DeptCnt
IF NoteText<I> NE '' THEN
*NoteText<I> = 'Testing during development of new functionality - disregard':CRLF$:NoteText<I>
Recipients = DeptUsers<I>
LOCATE @USER4 IN Recipients SETTING Dummy THEN
Recipient = @USER4
SentFrom = 'System'
Subject = DeptDescs<I>:" Department - Equipment Calibration Reminder"
Message = NoteText<I>
AttachWindow = 'MASTER_CALIB_LIST'
AttachKeys = ''
SendToGroup = ''
Obj_Notes('Create',Recipient:@RM:'System':@RM:NoteSubject:@RM:NoteText<I>:@RM:'MASTER_CALIB_LIST')
END
END
NEXT I
RETURN