COMPILE FUNCTION obj_Reactor_PM(Method,Parms)
/*
	Methods for REACTOR_PM table
    
	05/29/2013 JCH - Initial Coding
     
    Properties:
     
    Methods:
    
    Find()							;* Lookup Reactor Event 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

$INSERT MSG_EQUATES
$INSERT REACTOR_EQUATES
$INSERT REACTOR_PM_EQUATES
$INSERT REACT_SERVS_EQU

EQU COL$REACT_PM_ID				TO 1
EQU COL$REACT_PM_DUE_DT			TO 2
EQU COL$REACT_PM_SERV_ID		TO 3
EQU COL$REACT_PM_SERV_DESC		TO 4
EQU COL$REACT_PM_SERV_COMP_DT	TO 5

ErrTitle = 'Error in Stored Procedure "obj_Reactor_PM"'
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 = 'ReactServHist'	; GOSUB ReactServHist
	CASE Method = 'ReactorHist'		; GOSUB ReactorHist
	
	CASE Method = 'SetStopDTM'		; GOSUB SetStopDTM
	
	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:
* * * * * * *

ReactEventKeys = Dialog_Box( 'DIALOG_REACT_EVENT_QUERY', @WINDOW, '' )

Result = ReactEventKeys


RETURN

* * * * * * *
Create:
* * * * * * *

RETURN



* * * * * * *
ReactServHist:
* * * * * * *

ReactNo		= Parms[1,@RM]
ReactServID	= Parms[COL2()+1,@RM]
OpenFlag	= Parms[COL2()+1,@RM]

IF ReactNo = ''		THEN ErrorMsg = 'Null parameter "ReactNo" passed to routine. (':Method:')'
*IF ReactServID = ''	THEN ErrorMsg = 'Null parameter "ReactServID" passed to routine. (':Method:')'

IF ErrorMsg NE '' THEN RETURN

OPEN 'DICT.REACTOR_PM' TO DictVAR ELSE
	ErrMsg('Unable to open "DICT.REACTOR_PM" for index lookup in obj_Reactor_PM routine.')
	RETURN
END

SearchString  = 'REACTOR':@VM:ReactNo:@FM

IF ReactServID NE '' THEN
	SearchString := 'REACT_SERV_ID':@VM:ReactServID:@FM
END

IF OpenFlag THEN
	
	SearchString := 'COMPLETE_DATE':@VM:'':@FM
END ELSE
	SearchString := 'DUE_DT':@VM:'>=':OConv(Date()  - 1095, 'D4/'):@FM
END

ReactPMIDs = ''
Flag = ''
Btree.Extract(SearchString, 'REACTOR_PM', DictVar, ReactPMIDs, '', Flag)

IF Get_Status(errCode) THEN
	RETURN
END

IF ReactPMIDs NE '' THEN 
	OPEN 'REACTOR_PM' TO ReactPMTable THEN
		IDCnt = COUNT(ReactPMIDs,@VM) + (ReactPMIDs NE '')
		
		DueDts = ''
		
		FOR I = 1 TO IDCnt
			ReactPMID = ReactPMIDs<1,I>
			READ ReactPMRec FROM ReactPMTable,ReactPMID THEN
			
				DueDt			= ReactPMRec<REACTOR_PM_DUE_DT$>
				ReactPMServID	= ReactPMRec<REACTOR_PM_REACT_SERV_ID$>
				
				LOCATE DueDt IN DueDts  BY 'DR' USING @FM SETTING Pos ELSE
					Null
				END
				
				DueDts = INSERT(DueDts,Pos,0,0,DueDt)
				
				ResultLine = ''
				ResultLine<1,COL$REACT_PM_ID>			= ReactPMID
				ResultLine<1,COL$REACT_PM_DUE_DT> 		= OCONV(ReactPMRec<REACTOR_PM_DUE_DT$>,'D4/')
				ResultLine<1,COL$REACT_PM_SERV_ID>		= ReactPMServID
				ResultLine<1,COL$REACT_PM_SERV_DESC>	= XLATE('REACT_SERVS',ReactPMServID,REACT_SERVS_DESCRIPTION$,'X')
				ResultLine<1,COL$REACT_PM_SERV_COMP_DT>	= OCONV(ReactPMRec<REACTOR_PM_COMPLETE_DATE$>,'D4/')
				
				Result = INSERT(Result,Pos,0,0,ResultLine)
				
			END	;* End of PMRec read
		NEXT I
	END	;* End of REACTOR_PM table open
END


RETURN


* * * * * * *
ReactorHist:
* * * * * * *



RETURN


* * * * * * *
SetStopDTM:
* * * * * * *

ReactNo		= Parms[1,@RM]
EventDTM	= Parms[COL2()+1,@RM]
StopDTM		= Parms[COL2()+1,@RM]

DEBUG

IF ReactNo = ''		THEN ErrorMsg = 'Null parameter "ReactNo" passed to routine. (':Method:')'
IF EventDTM = ''	THEN ErrorMsg = 'Null parameter "EventDTM" passed to routine. (':Method:')'
IF StopDTM = ''		THEN ErrorMsg = 'Null parameter "StopDTM" passed to routine. (':Method:')'


thisEventDTM = ICONV(EventDTM,'DT')

IF thisEventDTM = '' THEN
	ErrorMsg = 'Ivalid Data ':QUOTE(EventDTM):' passed in "EventDTM" parameter. (':Method:')'
END

thisStopDTM = ICONV(StopDTM,'DT')

IF thisStopDTM = '' THEN
	ErrorMsg = 'Ivalid Data ':QUOTE(StopDTM):' passed in "StopDTM" parameter. (':Method:')'
END

IF ErrorMsg NE '' THEN RETURN


RETURN

ReactEventKey = ReactNo:'*':thisEventDTM

OtParms = 'REACT_EVENT':@RM:ReactEventKey
ReactEventRec = obj_Tables('ReadRec',OtParms)			;* Locks and reads record for update

IF Get_Status(errCode) THEN DEBUG

ReactEventRec<REACT_EVENT_STOP_DTM$> = thisStopDTM

*OtParms = FieldStore(OtParms,@RM,4,0,ReactEventRec)	;* Put record in 4th field of OtParms		
*obj_Tables('WriteRec',OtParms)


RETURN


