<%@ Language=VBScript %> <% '***************************************************** ' File Name: frmAddIssue.asp ' Purpose: action of form on add_issue_admin.asp ' and add_issue_user.asp, to submit ' issue information. ' Developer: Brian Kane/John Yu ' Create Date: February 3, 1999 ' Revisions: '***************************************************** 'declare variables Dim rsIssue 'recordset for adding new issue to Issues table Dim rsComment 'recordset for adding new comment to Comments table Dim rsUser 'recordset for user information (for admin to get) Dim iIssue 'error code for adding issue Dim iIssueID 'Issue Number of Issue added to database Dim iComment 'error code for adding comment Dim oEMail 'e-mail object Dim iMailOK 'error code for sending e-mail Dim i 'for looping 'set mail message code to 0 first...it will be 'assigned different values in EMailUser() and 'PageAdmin() for display in alerts to user. iMailOK = 0 'call functions KickOut() 'if SSN session has expired. SubmitIssue() SubmitComment(iIssueID) 'user or admin pages Sandy if issue is critical If rsIssue("PriorityID") = 1 Then PageAdmin iIssueID,rsIssue("IssueName"),Now() End If 'if logged in as admin, send e-mail to user If Session("Admin") = true Then EMailUser iIssueID,rsIssue("IssueName"),Now(),rsIssue("PriorityID") End If '***************************************************** ' Function: SubmitIssue ' Purpose: submits issue from add_issue_* form ' Inputs: none ' Returns: none '***************************************************** Function SubmitIssue() Set rsIssue = Server.CreateObject("ADODB.Recordset") iIssue = oIT.GetIssues(rsIssue,-1) If iIssue = -100 Then rsIssue.AddNew CheckField "IssueName",rsIssue CheckField "Description",rsIssue CheckField "AffectedSystemID",rsIssue rsIssue("PriorityID") = Request("PriorityID") 'radio button CheckField "LocationID",rsIssue CheckField "FunctionalGroupID",rsIssue If Session("Admin") = false Then rsIssue("HDUserSSN") = Session("SSN") 'if general user, set SSN to Session. rsIssue("IssueStatusID") = 6 'for general users, issues are created OPEN --- 6 Else CheckField "HDUserSSN",rsIssue 'for admin, set SSN to chosen user's SSN rsIssue("IssueStatusID") = Request("IssueStatusID") 'IssueStatusID can't be null. 'Default is 6 (OPEN). We can't use CheckField 'because it sets to null if form value is empty, 'which would overwrite the default value. CheckDate "TargetCloseDate",rsIssue CheckDate "ActualCloseDate",rsIssue Checkfield "HDOwnerID",rsIssue CheckField "IssueTypeID",rsIssue CheckField "LOE",rsIssue CheckField "IssueCategoryID",rsIssue CheckField "ResolutionComment",rsIssue End If iIssueID = oIT.AddIssue(rsIssue) End If End Function '***************************************************** ' Function: SubmitComment ' Purpose: submits comment from add_issue_* form ' Inputs: Issue ID ' Returns: none '***************************************************** Function SubmitComment(iIssueID) Set rsComment = Server.CreateObject("ADODB.Recordset") iComment = oIT.GetComments(rsComment,-1) If iComment = -100 Then rsComment.AddNew rsComment("IssueID") = iIssueID CheckField "Comment",rsComment CheckDate "CommentDate",rsComment If rsComment("Comment") <> "" Then iComment = oIT.AddComment(rsComment) End If End If End Function '******************************************************* ' Function: PageAdmin ' Purpose: submits email to Admin pager ' Inputs: IssueID, IssueName, CreateDate ' Returns: none '******************************************************* Function PageAdmin(iIssueID,sName,dtCreateDate) Dim sBody sBody = "" Set oEMail = Server.CreateObject("CDONTS.NewMail") '******************************** 'oEMail.To = "1424076@pagemci.com" '******************************** oEMail.To = "jgodfrey@convergentdomains.com" If Session("EMail") <> "" Then oEMail.From = Session("EMail") Else oEMail.From = Session("FName") & "." & Session("LName") & "@mci.com" End If oEMail.subject = "Critical New Issue" sBody = sBody & Session("FName") & " " & Session("LName") If Session("VNET") <> "" Then sBody = sBody & " (v" & Session("VNET") & ")" & vbcrlf & vbcrlf Else sBody = sBody & " (no VNET)" & vbcrlf & vbcrlf End If sBody = sBody & "IssueID = " & CStr(iIssueID) & vbcrlf sBody = sBody & "Issue Name = " & sName & vbcrlf sBody = sBody & "Date Created = " & CStr(dtCreateDate) & vbcrlf oEMail.body = sBody oEMail.send Set oEMail = Nothing iMailOK = 1 'code for client-side alert End Function '******************************************************** ' Function: EMailUser ' Purpose: lets admin submits email to User, if ' user has e-mail address. Formats e-mail. ' Inputs: IssueID, IssueName, CreateDate, Priority ' Returns: none '******************************************************** Function EMailUser(iIssueID,sName,dtCreateDate,iPriority) Dim sEMail sEMail = GetEmail(Request("HDUserSSN")) If sEMail <> "" Then Dim sBody sBody = "" Set oEMail = Server.CreateObject("CDONTS.NewMail") '***************************** 'oEMail.To = sEMail '***************************** oEMail.To = "jgodfrey@convergentdomains.com" If Session("EMail") <> "" Then oEMail.From = Session("EMail") Else oEMail.From = Session("FName") & "." & Session("LName") & "@mci.com" End If oEMail.subject = "FS Issue Tracker Confirmation: Issue # " & CStr(iIssueID) sBody = sBody & "Your issue has been submitted to the Financial Services" & vbcrlf sBody = sBody & "'Issue Tracker'." & vbcrlf & vbcrlf sBody = sBody & "Issue #: " & CStr(iIssueID) & vbcrlf sBody = sBody & "Issue Name: " & sName & vbcrlf sBody = sBody & "Issue Date: " & CStr(dtCreateDate) & vbcrlf sBody = sBody & "Issue Priority: " & GetPriority(iPriority) & vbcrlf & vbcrlf & vbcrlf sBody = sBody & "************ FS Help Desk Phone Number: v235-9168" & vbcrlf sBody = sBody & "***********" & vbcrlf sBody = sBody & "************ Pager: 1-800-PAGE-MCI pin:142-4076" & vbcrlf oEMail.body = sBody oEMail.send Set oEMail = Nothing iMailOK = 2 'code for client-side alert that user was e-mailed Else iMailOK = -1 'code for client-side alert that user could not be e-mailed 'because they didn't have a listed e-mail address in database End If End Function '************************************************ ' Function: GetPriority ' Purpose: Gets Priority corresponding to ID ' Inputs: Priority ID ' Returns: Priority '************************************************ Function GetPriority(ID) Dim rs,sSQL Set rs = Server.CreateObject("ADODB.Recordset") sSQL = "SELECT Priority FROM Priorities WHERE PriorityID = " & CStr(ID) rs.Open sSQL,"DSN=itDSN" GetPriority = rs("Priority") rs.Close End Function '************************************************** ' Function: CheckField ' Purpose: to assign form object values to the ' database record fields, when data ' has been entered into form ' Inputs: form element ID, recordset ' Returns: nothing '************************************************** Function CheckField(item, ByRef oItem) If Request(item) <> "" Then oItem(item) = Request(item) Else oItem(item) = null End If End Function '************************************************** ' Function: CheckDate ' Purpose: to assign form object values to the ' database record fields, when data ' has been entered into form and is ' in proper date format ' Input: form element ID, recordset ' Returns: nothing '************************************************** Function CheckDate(item, ByRef oItem) If isDate(Request(item)) Then oItem(item) = Request(item) Else oItem(item) = null End If End Function '********************************************** ' Function: GetEMail ' Purpose: gets user e-mail ' Inputs: SSN ' Returns: e-mail address '********************************************** Function GetEMail(sSSN) Set rsUser = Server.CreateObject("ADODB.Recordset") oIT.GetUser rsUser,sSSN GetEmail = rsUser("EMail") End Function '***************************************************** ' Function: KickOut ' Purpose: redirects to error.asp if Session ' times out. Error.asp dislays the ' error message. ' Inputs: none ' Returns: none '***************************************************** Function KickOut() If Session("SSN") = "" Then Response.Redirect("error.asp?Message=SessionExpired") End If End Function %> <% 'close recordsets and release their objects rsIssue.Close Set rsIssue = Nothing rsComment.Close Set rsComment = Nothing rsUser.Close Set rsUser = Nothing %>