11 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			11 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
|     "header": {
 | |
|         "version": 1,
 | |
|         "type": "record"
 | |
|     },
 | |
|     "body": {
 | |
|         "record1": {
 | |
|             "<1>": "declare function msg, end_window, fieldcount\r\ndeclare subroutine rlist, record_lock, create_note, btree.extract\r\n\r\n$insert logical\r\n$insert rlist_equates\r\n$insert msg_equates\r\n$insert react_servs_equ\r\n$insert reactor_pm_equ\r\n$insert react_mode_equ\r\n$insert react_util_equ\r\n$insert company_equ\r\n$insert quote_sigs_equ\r\n$insert spc_clean_hf_equ\r\n$insert spc_clean_hf_etch_equ\r\n$insert spc_clean_hf_akrion_equ\r\n$insert spc_clean_hf_etch_akrion_equ\r\n\r\nequ CrLf$ to char(13):char(10)\r\n\r\nCurrentSize = .gasbar->size\r\nNewSize = CurrentSize\r\nNewSize<3> = 0\r\n.gasbar->size = NewSize\r\n.gasbar->visible = 1\r\nopen 'REACT_UTIL' to RUTable else\r\n   Void = msg( '', 'Unable to open REACT_UTIL table...' )\r\n   return 0\r\nend\r\nopen 'CONFIG' to ConfigTable else\r\n   Void = msg( '', 'Unable to open CONFIG table...' )\r\n   return 0\r\nend\r\n\r\nToday = date()-2\r\nDay = 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'\r\nconvert ',' to @fm in Day\r\nCurDay = Day<mod(Today,7)+1>\r\nif CurDay = 'Monday' then\r\n   DayToStart = oconv( Today-3, 'D4/' ) ;* to get from last friday\r\n   DayToEnd   = oconv( Today, 'D4/' ) ;* for today\r\nend else\r\n  DayToStart = oconv( Today-1, 'D4/' ) ;* for yesterday\r\n  DayToEnd   = oconv( Today, 'D4/' ) ;* for today\r\nend\r\n\r\nStatement = 'SELECT REACT_UTIL BY REACTOR WITH START_DATE FROM ':quote(DayToStart):' TO ':quote(DayToEnd)\r\nStatement:= ' OR WITH END_DATE FROM ':quote(DayToStart):' TO ':quote(DayToEnd)\r\n\r\nrlist( Statement, target_activelist$, '', '', '' )\r\n@rn.counter = 0\r\nEof = false$\r\nOnePercent = iconv( @reccount*.01, 'MD0' )\r\nloop\r\n   readnext Id else Eof = true$\r\nuntil Eof\r\n   read RURec from RUTable, Id else\r\n      Void = msg( '', 'Unable to read ':Id:' from REACT_UTIL table.' )\r\n      return 0\r\n   end\r\n   * IF ELAPSED HOURS <> NULL THEN IF \r\n   StartTime = RURec<react_util_start_time$>\r\n   StartDate = RURec<react_util_start_date$>\r\n   EndTime   = RURec<react_util_end_time$>\r\n   EndDate   = RURec<react_util_end_date$>\r\n   \r\n   if ( RURec<react_util_mode$> <> \"P\" ) and ( RURec<react_util_mode$> <> \"D\" ) then ;* PRODUCTION OR DOWN NO MATERIAL\r\n      ElapsedHours = xlate( 'REACT_UTIL', Id, 'ELAPSED_HOURS', 'X' )\r\n      Reactor = RURec<react_util_reactor$>\r\n      if ElapsedHours = '' then\r\n         * NOW CALCULATE THE ELAPSED HOURS BASED ON RIGHT HERE RIGHT NOW\r\n         EndDate = date()\r\n         EndTime = time()\r\n         DateDiff = EndDate - StartDate\r\n         SecondsToAdd = 0\r\n         if DateDiff then\r\n            SecondsToAdd = 86400*DateDiff\r\n         end\r\n         Tans = ( EndTime + SecondsToAdd ) - StartTime\r\n         ElapsedHours = ( Tans /3600) * 100\r\n      end \r\n      EndDate = oconv( EndDate, 'D2/' )\r\n      EndTime = oconv( EndTime, 'MTH' )\r\n      StartDate = oconv( StartDate, 'D2/' )\r\n      StartTime = oconv( StartTime, 'MTH' )        \r\n      ElapsedHours = oconv( ElapsedHours, 'MD2' )            \r\n      if ElapsedHours > 12.00 then\r\n         * SEND A MESSAGE TO\r\n         CustName = xlate( 'COMPANY', RURec<react_util_cust_no$>, company_co_name$, 'X' )\r\n         MsgText = ''\r\n         MsgText = 'Reactor ':Reactor:' was in ':oconv( RURec<react_util_mode$>, '[REACT_MODE_CONV]' ):' mode from ':StartTime:' on ':StartDate\r\n         MsgText:= ' to ':EndTime:' on ':EndDate:'.  This is a total of ':ElapsedHours:' hours.':CrLf$\r\n         * NOW PUT IN THE CURRENT MODE\r\n         ModeConfig = xlate( 'CONFIG', 'REACT_MODE':Reactor, '', 'X' )\r\n         MsgText:= 'Reactor ':Reactor:' is currently in ':ModeConfig<Mode$>:' as of ':oconv( date(), 'D2/' ):' at ':oconv( time(), 'MTH' )\r\n         create_note( 'BRYCE_M', 'System', 'Reactor ':Reactor:' ':CustName, MsgText, '', '', '' )\r\n      end\r\n   end ;* IF IT IS ANYTHING BUT PRODUCTION THEN SEE IF IT HAS BEEN DOWN FOR 4+ HOURS\r\n   if mod( @rn.counter, OnePercent ) else\r\n\t   NewWidth = CurrentSize<3> * @rn.counter/@reccount\r\n\t   .percent_complete->text = oconv(iconv( @rn.counter/@reccount*100, 'MD0' ), 'MD0' ):'%'\r\n\t   NewSize<3> = NewWidth\r\n\t   .gasbar->redraw = 0\r\n\t   .gasbar->size = NewSize\r\n\t   .gasbar->redraw = 1\r\n   end\r\nrepeat\r\nif @rn.counter > 0 and @reccount > 0 then\r\n\tNewWidth = CurrentSize<3> * @rn.counter/@reccount\r\n\t.percent_complete->text = oconv(iconv( @rn.counter/@reccount*100, 'MD0' ), 'MD0' ):'%'\r\n\tNewSize<3> = NewWidth\r\n\t.gasbar->redraw = 0\r\n\t.gasbar->size = NewSize\r\n\t.gasbar->redraw = 1\r\nend\r\n****************************************************************************************************************************\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF ETCH RATE TEST ON MONDAY, WEDNESDAY, OR FRIDAY\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n   DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n   DayToCheck = ''\r\nend else\r\n   DateString = '=':oconv( Today-1, 'D2/' )\r\n   DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr     = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr    := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF_ETCH' to DictSPCCleanHFTable else\r\n   msg( '', 'Unable to open DICT.SPC_CLEAN_HF_ETCH...' )\r\n   return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF_ETCH', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n   Void = msg( '', 'Error while extracting SPC_CLEAN_HF_ETCH records...' )\r\n   return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n    DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n    DatesTested = oconv( xlate( 'SPC_CLEAN_HF_ETCH', Keys, spc_clean_hf_etch_date_tested$, 'X' ), 'D2/' )\r\n    DatesMissing = ''\r\n    for i = 1 to 3\r\n       locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n          DatesMissing := DatesToCheck<1,i>:', '\r\n       end\r\n    next i\r\n    DatesMissing[-2,2] = ''\r\n    if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY    \r\n    end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\n**************************************************************************************************************************\r\n\r\n\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF PARTICLE TEST ON ANY DAY NEED TO CHECK WITH MICHELLE\r\n*********** THIS SHOULD CHECK FOR CP1, CP2 AND MEG AS WELL ****************************8\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n   DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n   DayToCheck = ''\r\nend else\r\n   DateString = '=':oconv( Today-1, 'D2/' )\r\n   DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr     = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr    := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF' to DictSPCCleanHFTable else\r\n   msg( '', 'Unable to open DICT.SPC_CLEAN_HF...' )\r\n   return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n   Void = msg( '', 'Error while extracting SPC_CLEAN_HF records...' )\r\n   return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n    DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n    DatesTested = oconv( xlate( 'SPC_CLEAN_HF', Keys, spc_clean_hf_date_tested$, 'X' ), 'D2/' )\r\n    DatesMissing = ''\r\n    for i = 1 to 3\r\n       locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n          DatesMissing := DatesToCheck<1,i>:', '\r\n       end\r\n    next i\r\n    DatesMissing[-2,2] = ''\r\n    if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers, 'System', 'HF Particle test not performed', MsgText, 'SPC_CLEAN_HF', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY    \r\n    end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers, 'System', 'HF Particle removal test not performed', MsgText, 'SPC_CLEAN_HF', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\n\r\n****************************************************************************************************************************\r\n\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF AKRION PARTICLE TEST ON ANY DAY NEED TO CHECK WITH MICHELLE\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n   DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n   DayToCheck = ''\r\nend else\r\n   DateString = '=':oconv( Today-1, 'D2/' )\r\n   DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr     = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr    := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF_AKRION' to DictSPCCleanHFTable else\r\n   msg( '', 'Unable to open DICT.SPC_CLEAN_HF_AKRION...' )\r\n   return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF_AKRION', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n   Void = msg( '', 'Error while extracting SPC_CLEAN_HF_AKRION records...' )\r\n   return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n    DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n    DatesTested = oconv( xlate( 'SPC_CLEAN_HF_AKRION', Keys, spc_clean_hf_akrion_date_tested$, 'X' ), 'D2/' )\r\n    DatesMissing = ''\r\n    for i = 1 to 3\r\n       locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n          DatesMissing := DatesToCheck<1,i>:', '\r\n       end\r\n    next i\r\n    DatesMissing[-2,2] = ''\r\n    if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers, 'System', 'HF Akrion Particle test not performed', MsgText, 'SPC_CLEAN_HF_AKRION', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY    \r\n    end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Particle removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers, 'System', 'HF Akrion Particle removal test not performed', MsgText, 'SPC_CLEAN_HF_AKRION', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\n\r\n\r\n\r\n\r\n****************************************************************************************************************************\r\n* THIS IS TO CHECK AND SEE IF THEY DID NOT PERFORM AN HF ETCH AKRION TEST ON ANY DAY\r\nToday = date()\r\nDay = mod( Today, 7 )\r\nDay += 1 ;* FOR THE 1 BASED ARRAY\r\nDays = 'Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday'\r\nconvert '/' to @fm in Days\r\nDayOut = Days<Day>\r\nDateString = ''\r\nif DayOut = 'Monday' then\r\n   DateString = oconv( Today-3, 'D2/' ):'...':oconv( Today-1, 'D2/' )\r\n   DayToCheck = ''\r\nend else\r\n   DateString = '=':oconv( Today-1, 'D2/' )\r\n   DayToCheck = oconv( Today-1, 'D2/' )\r\nend\r\nSearchStr     = ''\r\nSearchStr<-1> = 'DATE_TESTED':@vm:DateString\r\nSearchStr    := @fm\r\n* do a btree.extract\r\nopen 'DICT.SPC_CLEAN_HF_ETCH_AKRION' to DictSPCCleanHFTable else\r\n   msg( '', 'Unable to open DICT.SPC_CLEAN_HF_ETCH_AKRION...' )\r\n   return 1\r\nend\r\nKeys = ''\r\nbtree.extract( SearchStr, 'SPC_CLEAN_HF_ETCH_AKRION', DictSPCCleanHFTable, Keys, '', Flag )\r\nif Flag <> 0 then\r\n   Void = msg( '', 'Error while extracting SPC_CLEAN_HF_ETCH_AKRION records...' )\r\n   return 1\r\nend\r\nEngineers = xlate( 'CONFIG', 'QUOTE_SIGS', PSNPreProdSigs$, 'X' )\r\nif DayOut = 'Monday' then\r\n    DatesToCheck = oconv( Today-3, 'D2/' ):@vm:oconv( Today-2, 'D2/' ):@vm:oconv( Today-1, 'D2/' )\r\n    DatesTested = oconv( xlate( 'SPC_CLEAN_HF_ETCH_AKRION', Keys, spc_clean_hf_etch_akrion_date_tested$, 'X' ), 'D2/' )\r\n    DatesMissing = ''\r\n    for i = 1 to 3\r\n       locate DatesToCheck<1,i> in DatesTested using @vm setting FPos else\r\n          DatesMissing := DatesToCheck<1,i>:', '\r\n       end\r\n    next i\r\n    DatesMissing[-2,2] = ''\r\n    if DatesMissing <> '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DatesMissing:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch Akrion removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH_AKRION', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY    \r\n    end\r\nend else\r\n\tif Keys = '' then\r\n\t\tMsgText = ''\r\n\t\tMsgText = 'HF Etch removal test not performed on ':DayToCheck:'...Please make sure that this gets done today.'\r\n\t    create_note( Engineers:@VM:'MICHAEL_M', 'System', 'HF Etch Akrion removal test not performed', MsgText, 'SPC_CLEAN_HF_ETCH_AKRION', '', '' )\r\n\t    * ATTACH THE WINDOW BUT NO KEYS, DUE TO NO ENTRY\r\n\tend\r\nend\r\nreturn 1"
 | |
|         }
 | |
|     }
 | |
| } |