Function SVC_Change_Log(Service, Param1, Param2, Param3, Param4, Param5, Param6, Param7)

/******************************************************************************************************** 

    This program is proprietary and is not to be used by or disclosed to others, nor is it to
    be copied without written permission.

    Name        :   

    Description :   

    Tags		:	[SRP]

    Parameters  :

    History (Date, Initials, Notes)
        05/17/10    fjt     Initial development

********************************************************************************************************/

$insert SRP_APP_INSERTS
$insert SERVICE_INSERT
$insert NOTIFICATION_EQU

Declare subroutine Create_Note
Declare function SRP_Clean_Array, SRP_Sort_Array

Equ Log$  to "WO_MASTER_SCHEDULER.EDT_CHANGE_LOG"
Equ Crlf$ to Char(13):Char(10)

Begin Case
	Case Service _eqc "Compare"		; GoSub Compare
	Case Service _eqc "RemoveAppts" ; GoSub RemoveAppts
	Case Service _eqc "SendNotif"	; GoSub Send_Notif
End Case

Return Ans


!----- SERVICES -----------------------------------------------------------------------------------------


Compare:
	// Compare current to previous record
	If Param3<14> EQ Date() then
		If Param2 NE Param3 then
			Rec = Param2
			GoSub Define_Record
			GoSub Add_To_Array
		end
	end
return


RemoveAppts:
	// Deletes are automatically added as a change
	Rec = Param2
	If Rec EQ "" then Rec = Xlate("WO_MAST_SCHED", Param1, "", "X")
	Row	= Rec<15> :@VM: Param1
	GoSub Add_To_Array
return


Send_Notif:
	SendTo   = ""
	Subject  = "Reactor Schedule Change Notice..."
	Array	 = Get_Property(Log$, "OLE.Array")
	Reactors = Array<1>
	CurDay   = Oconv(Date(), "DWA")

	Swap @VM with Crlf$ in Reactors

	If Reactors GT "" then
		// This was originally taken from the Click script event in the old scheduler window
		// Modified for use with the new scheduler and change log
	
		// Build the message
		MsgToSend = ""
		MsgToSend := "The following reactor(s) have changed on ":Oconv(Date(), "D2/"):" at ":Oconv(Time(), "MT"):":"
		MsgToSend := Crlf$
		MsgToSend := Reactors
		MsgToSend := Crlf$:Crlf$
	   	MsgToSend := "This has been modified by "
		MsgToSend := Oconv(@USER4, "[XLATE_CONV,LSL_USERS*FIRST_LAST]")
		MsgToSend := " on ":Oconv(Date(), "D2/") :" at ": Oconv(Time(), "MTH" ) : "...See Attachment."
	   
		// Get the personnel to send the message to
		// Added 09/28/2005 JCH - J.C. Henry & Co., Inc
		
		If CurDay EQ "Sunday" or CurDay EQ "Monday" or CurDay EQ "Tuesday" then
			SendTo = Xlate("NOTIFICATION", "MAST_SCHED_BEG", NOTIFICATION_USER_ID$, "X")
		end else
			If CurDay EQ "Thursday" or CurDay EQ "Friday" or CurDay EQ "Saturday" then
				SendTo = Xlate("NOTIFICATION", "MAST_SCHED_END", NOTIFICATION_USER_ID$, "X")
			end else
				// It is Wednesday so send to both cause they alternate
				SendTo   	 = Xlate("NOTIFICATION", "MAST_SCHED_BEG", NOTIFICATION_USER_ID$, 'X')
			    SendTo<1,-1> = Xlate("NOTIFICATION", "MAST_SCHED_END", NOTIFICATION_USER_ID$, 'X')
			end
		end
	
		// Send the message (original IREPI routine)
		Create_Note(SendTo, "System", Subject, MsgToSend, "WO_MASTER_SCHEDULER", "*CENTER")
		
		// Clear the change log
		Set_Property(Log$, "OLE.Array", "")
		Msg(@Window, "", "OK", "", "Send Notifs":@FM:"Notifications have been sent.")
	end else
		Msg(@Window, "", "OK", "", "Send Notifs":@FM:"No changes have been made.")
	end       
return


!----- INTERNAL FUNCTIONS -------------------------------------------------------------------------------


Add_To_Array:
	List = Get_Property(Log$, "OLE.List")
	List<-1> = Row
	Convert @VM to "*" in List
	List = SRP_Clean_Array(List, @FM, "UNIQUE")
	Convert "*" to @VM in List
	List = SRP_Sort_Array(List, "AR1", Yes$)
	Set_Property(Log$, "OLE.List", List)
return


Define_Record:
	Appt	= Param1
	Reactor = Rec<15>
	Row		= Reactor :@VM: Appt
return
