Exemplo n.º 1
0
        protected void btnComplete_Click(Object Sender, EventArgs e)
        {
            int    intResourceWorkflow = Int32.Parse(lblResourceWorkflow.Text);
            string strInvalid          = "";

            if (panForm.Visible == true)
            {
                strInvalid = oServiceEditor.SaveForm(Request, intRequest, intService, intNumber, true, intEnvironment, dsn);
            }

            if (strInvalid == "")
            {
                // All Required Fields have been completed
                int intResourceParent = oResourceRequest.GetWorkflowParent(intResourceWorkflow);
                if (oResourceRequest.Get(intResourceParent, "status") == ((int)ResourceRequestStatus.Closed).ToString() ||
                    oResourceRequest.GetWorkflow(intResourceWorkflow, "status") == ((int)ResourceRequestStatus.Closed).ToString())
                {
                    // already completed - nothing to do except close the window.
                }
                else
                {
                    if (panNoSlider.Visible == true)
                    {
                        double dblAllocated = double.Parse(oResourceRequest.GetWorkflow(intResourceWorkflow, "allocated"));
                        oResourceRequest.UpdateWorkflowHoursOverwrite(intResourceWorkflow, dblAllocated);
                    }
                    // Add a green / completed status if there are no updates, OR the last status is not green
                    DataSet dsStatus = oResourceRequest.GetStatuss(intResourceWorkflow);
                    if (dsStatus.Tables[0].Rows.Count == 0 || dsStatus.Tables[0].Rows[0]["status"].ToString() != "3")
                    {
                        oResourceRequest.AddStatus(intResourceWorkflow, (int)ResourceRequestStatus.Closed, "Completed", intProfile);
                    }
                    oResourceRequest.UpdateWorkflowStatus(intResourceWorkflow, (int)ResourceRequestStatus.Closed, true);
                    string strCVT = "CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString();
                    oLog.AddEvent(intRequest.ToString(), strCVT, "Closed WM_Generic by " + oUser.GetFullNameWithLanID(intProfile), LoggingType.Debug);
                    oResourceRequest.CloseWorkflow(intResourceWorkflow, intEnvironment, 0, dsnServiceEditor, true, intResourceRequestApprove, intAssignPage, intViewPage, dsnAsset, dsnIP, boolServiceReturned);

                    // Send notification to list of completion users
                    string strCompletion = oService.Get(intService, "notify_complete");
                    if (strCompletion != "")
                    {
                        string strLink = "<a href=\"" + oVariable.URL() + "/redirect.aspx?referrer=/datapoint/service/resource.aspx?id=" + oFunction.encryptQueryString(intResourceParent.ToString()) + "\" target=\"_blank\">Click here to view this request.</a>";
                        oFunction.SendEmail("Service Request #CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString() + " Complete", strCompletion, "", "", "Service Request #CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString() + " Complete", "<p>This message is to notify you that the following service request has been completed...</p><p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p><p>You are receiving this message because you have been configured to receive a notification for all completed requests for the service <b>" + oService.GetName(intService) + "</b><p>" + strLink + "</p>", true, false);
                    }

                    //Send notification to users of associated tasks
                    WMServiceTasks oWMServiceTasks     = new WMServiceTasks(intProfile, dsn);
                    DataSet        DsWMAssociatedTasks = oWMServiceTasks.getWMServiceTasksStatusRequestWithRequest(intRequest);
                    Customized     oCustomized         = new Customized(intProfile, dsn);

                    if (DsWMAssociatedTasks.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow drWMAssoicatedTasks in DsWMAssociatedTasks.Tables[0].Rows)
                        {
                            string strWMAssoicatedTasksUser = oUser.GetName(Int32.Parse(drWMAssoicatedTasks["createdBy"].ToString()));
                            string strComment = "";
                            string strLink    = "<p><a href=\"" + oVariable.URL() + "/redirect.aspx?referrer=/datapoint/service/resource.aspx?id=" + oFunction.encryptQueryString(intResourceParent.ToString()) + "\" target=\"_blank\">Click here to view this request.</a></p>";
                            oFunction.SendEmail("Associated Request Completed CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString(), strWMAssoicatedTasksUser, "", "", "Associated Request Completed CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString(), "<p><b>The following associated service request has been completed!</b></br>" + strComment + "</p>" + strLink + "<p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p>", true, false);
                        }
                    }
                    //End of Send notification to users of associated tasks

                    if (intService == Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_DECOMMISSION_SUPPORT"]) ||
                        intService == Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_DESTROY_SUPPORT"]) ||
                        intService == Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_DECOMMISSION_SUPPORT_WORKSTATION"]) ||
                        intService == Int32.Parse(ConfigurationManager.AppSettings["SERVICEID_DESTROY_SUPPORT_WORKSTATION"]))
                    {
                        Asset oAsset = new Asset(0, dsnAsset);
                        oAsset.UpdateDecommissionFixed(intRequest, intNumber);
                    }

                    //If this service was returned then update the status of next service
                    if (boolServiceReturned == true)
                    {
                        DataSet dsRR = oResourceRequest.GetRequestService(intRequest, intService, intNumber);
                        if (dsRR.Tables[0].Rows.Count > 0)
                        {
                            int intRRId = Int32.Parse(dsRR.Tables[0].Rows[0]["parent"].ToString());

                            DataSet dsRRReturn = oResourceRequest.getResourceRequestReturn(intRRId, intService, intNumber, 1, 0);
                            if (dsRRReturn.Tables[0].Rows.Count > 0)
                            {
                                int intNextRRId      = Int32.Parse(dsRRReturn.Tables[0].Rows[0]["NextRRId"].ToString());
                                int intNextServiceId = Int32.Parse(dsRRReturn.Tables[0].Rows[0]["NextServiceId"].ToString());
                                int intNextNumber    = Int32.Parse(dsRRReturn.Tables[0].Rows[0]["NextNumber"].ToString());;

                                // Get all at that level to resume
                                DataSet dsWorkflow = oServiceEditor.GetWorkflow(intRequest);
                                // Get leveling
                                int intLevel = 0;
                                foreach (DataRow drWorkflow in dsWorkflow.Tables[0].Rows)
                                {
                                    if (Int32.Parse(drWorkflow["serviceid"].ToString()) == intNextServiceId)
                                    {
                                        intLevel = Int32.Parse(drWorkflow["leveling"].ToString());
                                        break;
                                    }
                                }
                                foreach (DataRow drWorkflow in dsWorkflow.Tables[0].Rows)
                                {
                                    if (Int32.Parse(drWorkflow["leveling"].ToString()) == intLevel)
                                    {
                                        string strService           = oService.GetName(Int32.Parse(drWorkflow["ServiceID"].ToString()));
                                        int    intResourceRequestID = 0;
                                        if (Int32.TryParse(drWorkflow["ResourceID"].ToString(), out intResourceRequestID))
                                        {
                                            oResourceRequest.UpdateStatusRequest(intResourceRequestID, 2);
                                            DataSet dsRRWF = oResourceRequest.GetWorkflowsParent(intResourceRequestID);
                                            foreach (DataRow dr in dsRRWF.Tables[0].Rows)
                                            {
                                                int intRRWFId     = Int32.Parse(dr["id"].ToString());
                                                int intRRWFUserId = Int32.Parse(dr["userid"].ToString());
                                                oResourceRequest.UpdateWorkflowStatus(intRRWFId, 2, true);
                                                // Notify
                                                string strEMailIdsBCC = oFunction.GetGetEmailAlertsEmailIds("EMAILGRP_REQUEST_ASSIGNMENT");
                                                string strDefault     = oUser.GetApplicationUrl(intRRWFUserId, intViewPage);
                                                if (strDefault == "")
                                                {
                                                    oFunction.SendEmail("Returned Request Completed: " + strService, oUser.GetName(intRRWFUserId), "", strEMailIdsBCC, "Returned Request Completed: " + strService, "<p><b>The following returned request has been completed by " + oUser.GetFullName(intProfile) + " and is now in your queue.</b></p><p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p>", true, false);
                                                }
                                                else
                                                {
                                                    if (intProject > 0)
                                                    {
                                                        oFunction.SendEmail("Returned Request Completed: " + strService, oUser.GetName(intRRWFUserId), "", strEMailIdsBCC, "Returned Request Completed: " + strService, "<p><b>The following returned request has been completed by " + oUser.GetFullName(intProfile) + " and is now in your queue.</b></p><p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p><p><a href=\"" + oVariable.URL() + "/redirect.aspx?referrer=/" + strDefault + oPage.GetFullLink(intViewPage) + "?pid=" + intProject.ToString() + "\" target=\"_blank\">Click here to review your assignment.</a></p>", true, false);
                                                    }
                                                    else
                                                    {
                                                        oFunction.SendEmail("Returned Request Completed: " + strService, oUser.GetName(intRRWFUserId), "", strEMailIdsBCC, "Returned Request Completed: " + strService, "<p><b>The following returned request has been completed by " + oUser.GetFullName(intProfile) + " and is now in your queue.</b></p><p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p><p><a href=\"" + oVariable.URL() + "/redirect.aspx?referrer=/frame/resource_request.aspx?rrid=" + intResourceWorkflow.ToString() + "\" target=\"_blank\">Click here to review your assignment.</a></p>", true, false);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }


                                //oResourceRequest.UpdateStatusRequest(intNextRRId, 2);
                                //DataSet dsRRWF = oResourceRequest.GetWorkflowsParent(intNextRRId);
                                //foreach (DataRow dr in dsRRWF.Tables[0].Rows)
                                //{
                                //    int intRRWFId = Int32.Parse(dr["id"].ToString());
                                //    oResourceRequest.UpdateWorkflowStatus(intRRWFId, 2, true);
                                //}
                            }
                        }
                        oResourceRequest.updateResourceRequestReturnCompleted(Int32.Parse(lblReqReturnedId.Text));
                    }
                }
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "reload", "<script type=\"text/javascript\">RefreshOpeningWindow();window.close();<" + "/" + "script>");
            }
            else
            {
                Response.Redirect(Request.Path + "?rrid=" + intResourceWorkflow.ToString() + "&div=E&require=true&required=" + oFunction.encryptQueryString(strInvalid));
            }
        }
Exemplo n.º 2
0
        protected void btnStatus_Click(Object Sender, EventArgs e)
        {
            int     intResourceWorkflow = Int32.Parse(lblResourceWorkflow.Text);
            int     intStatusLatest     = 0;
            DataSet dsLatest            = oResourceRequest.GetStatusLatest(intResourceWorkflow);

            if (dsLatest.Tables[0].Rows.Count > 0)
            {
                Int32.TryParse(dsLatest.Tables[0].Rows[0]["status"].ToString(), out intStatusLatest);
            }
            int intResourceParent = oResourceRequest.GetWorkflowParent(intResourceWorkflow);

            if (ddlStatus.SelectedIndex > -1 && txtComments.Text.Trim() != "")
            {
                oResourceRequest.AddStatus(intResourceWorkflow, Int32.Parse(ddlStatus.SelectedItem.Value), txtComments.Text, intProfile);
                string strNotifyClient = "";
                //CVT62149 Workload Manager Red Light Status =Hold
                if (ddlStatus.SelectedValue == "1") // Red
                {
                    oResourceRequest.UpdateWorkflowStatus(intResourceWorkflow, 5, true);
                    strNotifyClient = (oService.Get(intService, "notify_red") == "1" ? "On Hold" : "");
                }
                else
                {
                    oResourceRequest.UpdateWorkflowStatus(intResourceWorkflow, 2, true);
                    if (ddlStatus.SelectedValue == "2") // Yellow
                    {
                        strNotifyClient = (oService.Get(intService, "notify_yellow") == "1" ? "Alert" : "");
                    }
                    else
                    {
                        strNotifyClient = ((intStatusLatest == 1 || intStatusLatest == 2) && oService.Get(intService, "notify_green") == "1" ? "Resume" : "");
                    }
                }

                if (strNotifyClient != "")
                {
                    // Notify the client of the status change.
                    int    intRequestor = oRequest.GetUser(intRequest);
                    string strComment   = txtComments.Text.Trim();
                    if (strComment != "")
                    {
                        string strBodyComment = "<table width=\"100%\" cellpadding=\"4\" cellspacing=\"3\" border=\"0\" align=\"center\" style=\"border:solid 1px #CCCCCC;" + oVariable.DefaultFontStyle() + "\">";
                        strBodyComment += "<tr bgcolor=\"#EEEEEE\"><td><span style=\"" + oVariable.DefaultFontStyleHeader() + "\">" + oUser.GetFullName(intProfile) + "</span>&nbsp;&nbsp;[" + DateTime.Now.ToString() + "]:</td></tr>";
                        strBodyComment += "<tr><td>" + oFunction.FormatText(strComment) + "</td></tr>";
                        strBodyComment += "</table>";
                        strComment      = strBodyComment;
                    }
                    string strLink    = "<a href=\"" + oVariable.URL() + "/redirect.aspx?referrer=/datapoint/service/resource.aspx?id=" + oFunction.encryptQueryString(intResourceParent.ToString()) + "\" target=\"_blank\">Click here to view this request.</a>";
                    string strHeading = "Great news! All previous issues have been resolved and the progression of this task has resumed.";
                    if (strNotifyClient == "On Hold")
                    {
                        strHeading = "An issue has been encountered that is preventing this task from being completed. The request has been placed <b>ON HOLD</b>.";
                    }
                    else if (strNotifyClient == "Alert")
                    {
                        strHeading = "Minor issues have been encountered that are slowing down the progression of this task.  Although still being processed, the service level agreement (SLA) may be exceeded.";
                    }
                    oFunction.SendEmail("Service Request #CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString() + " Notification", oUser.GetName(intRequestor), "", oUser.GetName(intProfile), "Service Request #CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString() + " Notification *" + strNotifyClient + "*", "<p>" + strHeading + "</p><p>" + strComment + "</p><p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p><p>" + strLink + "</p>", true, false);
                }

                //Send notification to users of associated tasks
                WMServiceTasks oWMServiceTasks     = new WMServiceTasks(intProfile, dsn);
                DataSet        DsWMAssociatedTasks = oWMServiceTasks.getWMServiceTasksStatusRequestWithRequest(intRequest);
                Customized     oCustomized         = new Customized(intProfile, dsn);

                if (DsWMAssociatedTasks.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow drWMAssoicatedTasks in DsWMAssociatedTasks.Tables[0].Rows)
                    {
                        string strWMAssoicatedTasksUser = oUser.GetName(Int32.Parse(drWMAssoicatedTasks["createdBy"].ToString()));
                        string strComment = txtComments.Text.Trim();
                        string strLink    = "<p><a href=\"" + oVariable.URL() + "/redirect.aspx?referrer=/datapoint/service/resource.aspx?id=" + oFunction.encryptQueryString(intResourceParent.ToString()) + "\" target=\"_blank\">Click here to view this request.</a></p>";
                        oFunction.SendEmail("Associated Request Updated CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString(), strWMAssoicatedTasksUser, "", "", "Associated Request Updated CVT" + intRequest.ToString() + "-" + intService.ToString() + "-" + intNumber.ToString(), "<p><b>The following associated service request has been updated with following comments...</b></br>" + strComment + "</p>" + strLink + "<p>" + oResourceRequest.GetWorkflowSummary(intResourceWorkflow, intEnvironment, dsnServiceEditor, dsnAsset, dsnIP) + "</p>", true, false);
                    }
                }
                //End of Send notification to users of associated tasks
            }

            Response.Redirect(Request.Path + "?rrid=" + intResourceWorkflow.ToString() + "&div=S&status=true");
        }