163 lines
3.7 KiB
Plaintext
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
|
|
|
|
|