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
 | |
| 
 | |
| 
 |