private void Start(bool _schedule) { oForecast.UpdateAnswerChange(intID, txtChange.Text); intRequest = oForecast.GetRequestID(intID, true); oForecast.UpdateAnswer(intID, intRequest); oForecast.DeleteReset(intID); oServiceRequest.Add(intRequest, 1, 1); oForecast.UpdateAnswerExecuted(intID, DateTime.Now.ToString(), intProfile); int intModel = oForecast.GetModelAsset(intID); if (intModel == 0) { intModel = oForecast.GetModel(intID); } if (oForecast.CanAutoProvision(intID) == true) { // Only start the build for auto-provision enabled servers oServer.Start(intRequest); } else { // Else set the step = 999 DataSet dsServers = oServer.GetAnswer(intID); foreach (DataRow drServer in dsServers.Tables[0].Rows) { oServer.UpdateStep(Int32.Parse(drServer["id"].ToString()), 999); } } bool boolNotify = oForecast.NotifyImplementor(intID, intModel, intImplementorDistributed, intWorkstationPlatform, intImplementorMidrange, intEnvironment, intProfile, dsnAsset, dsnIP); if (_schedule == true) { Response.Redirect(Request.Path + "?rid=" + intRequest); } else if (oForecast.CanAutoProvision(intID) == true) { Response.Redirect(Request.Path + "?rid=" + intRequest + "¬ify=none"); } else { Response.Redirect(Request.Path + "?rid=" + intRequest + "¬ify=" + (boolNotify ? "true" : "false")); } }
protected void btnNext_Click(Object Sender, EventArgs e) { int intDone = Save(); OnDemandTasks oOnDemandTasks = new OnDemandTasks(0, dsn); if (intDone == 1) { if (oForecast.CanAutoProvision(intID) == false && oOnDemandTasks.GetPending(intID).Tables[0].Rows.Count == 0) { // Add Resource Request int intForecast = Int32.Parse(oForecast.GetAnswer(intID, "forecastid")); int intRequest = Int32.Parse(oForecast.Get(intForecast, "requestid")); Requests oRequest = new Requests(0, dsn); int intProject = oRequest.GetProjectNumber(intRequest); ResourceRequest oResourceRequest = new ResourceRequest(0, dsn); int intImplementor = 0; string strType = "Distributed"; DataSet dsResource = oResourceRequest.GetProjectItem(intProject, intImplementorDistributed); if (oForecast.GetPlatformDistributed(intID, intWorkstationPlatform) == false) { dsResource = oResourceRequest.GetProjectItem(intProject, intImplementorMidrange); strType = "Midrange"; } if (dsResource.Tables[0].Rows.Count > 0) { intImplementor = (dsResource.Tables[0].Rows[0]["userid"].ToString() == "" ? 0 : Int32.Parse(dsResource.Tables[0].Rows[0]["userid"].ToString())); } if (intImplementor > 0) { int intNextNumber = oResourceRequest.GetNumber(intRequest); int intResourceParent = oResourceRequest.Add(intRequest, -1, -1, intNextNumber, "Provisioning Task (" + strType + ")", 0, 6.00, 2, 1, 1, 1); int intResourceWorkflow = oResourceRequest.AddWorkflow(intResourceParent, 0, "Provisioning Task (" + strType + ")", intImplementor, 0, 6.00, 2, 0); oOnDemandTasks.AddPending(intID, intResourceWorkflow); oResourceRequest.UpdateAssignedBy(intResourceParent, -999); } } } oForecast.UpdateAnswerStep(intID, 1, intDone); Response.Redirect(Request.Path + "?id=" + intID.ToString() + "&save=true"); }
private void Start(bool _schedule) { bool boolVMware = (lblVMware.Text == "1"); intRequest = oForecast.GetRequestID(intID, true); oForecast.UpdateAnswer(intID, intRequest); oForecast.DeleteReset(intID); oServiceRequest.Add(intRequest, 1, 1); oForecast.UpdateAnswerExecuted(intID, DateTime.Now.ToString(), intProfile); if (boolVMware == true) { oWorkstation.StartVirtual(intRequest); } else { oWorkstation.StartVirtual(intRequest, dsnRemote, dsnAsset, intEnvironment, dsnZeus); } int intModel = oForecast.GetModelAsset(intID); if (intModel == 0) { intModel = oForecast.GetModel(intID); } bool boolNotify = oForecast.NotifyImplementor(intID, intModel, intImplementorDistributed, intWorkstationPlatform, intImplementorMidrange, intEnvironment, intProfile, dsnAsset, dsnIP); if (_schedule == true) { Response.Redirect(Request.Path + "?rid=" + intRequest); } else if (oForecast.CanAutoProvision(intID) == true) { Response.Redirect(Request.Path + "?rid=" + intRequest + "¬ify=none"); } else { Response.Redirect(Request.Path + "?rid=" + intRequest + "¬ify=" + (boolNotify ? "true" : "false")); } }
protected void Page_Load(object sender, EventArgs e) { Response.Cookies["loginreferrer"].Value = "/admin/projects_pending.aspx"; Response.Cookies["loginreferrer"].Expires = DateTime.Now.AddDays(30); if (Request.Cookies["adminid"] != null && Request.Cookies["adminid"].Value != "") { intProfile = Int32.Parse(Request.Cookies["adminid"].Value); } else { Response.Redirect("/admin/login.aspx"); } oProject = new Projects(intProfile, dsn); oProjectNumber = new ProjectNumber(intProfile, dsn); oRequest = new Requests(intProfile, dsn); oRequestItem = new RequestItems(intProfile, dsn); oService = new Services(intProfile, dsn); oProjectPending = new ProjectsPending(intProfile, dsn, intEnvironment); oOrganization = new Organizations(intProfile, dsn); oDocument = new Documents(intProfile, dsn); oUser = new Users(intProfile, dsn); oForecast = new Forecast(intProfile, dsn); oServiceRequest = new ServiceRequests(intProfile, dsn); if (!IsPostBack) { if (Request.QueryString["rid"] != null && Request.QueryString["rid"] != "") { // Process Service Requests int intRequest = Int32.Parse(Request.QueryString["rid"]); DataSet dsForm = oRequestItem.GetForms(intRequest); foreach (DataRow drForm in dsForm.Tables[0].Rows) { if (drForm["done"].ToString() == "0") { int intItem = Int32.Parse(drForm["itemid"].ToString()); int intNumber = Int32.Parse(drForm["number"].ToString()); int intService = Int32.Parse(drForm["serviceid"].ToString()); string strPath = oService.Get(intService, "cp_path"); if (strPath.Trim() == "") { // For now, bypass oRequestItem.UpdateFormDone(intRequest, intItem, intNumber, 1); } else { Control oControl = (Control)LoadControl(strPath); PHcp.Controls.Add(oControl); } } } panPH.Visible = true; } else if (Request.QueryString["id"] != null && Request.QueryString["id"] != "") { DataSet ds = oProjectPending.Get(Int32.Parse(Request.QueryString["id"])); int intRequest = Int32.Parse(ds.Tables[0].Rows[0]["requestid"].ToString()); if (Request.QueryString["pid"] != null && Request.QueryString["pid"] != "") { int intProject = Int32.Parse(Request.QueryString["pid"]); if (intProject > 0) { // Process Design Builder DataSet dsForecast = oForecast.GetRequest(intRequest); if (dsForecast.Tables[0].Rows.Count > 0) { int intForecast = Int32.Parse(dsForecast.Tables[0].Rows[0]["id"].ToString()); DataSet dsDesigns = oForecast.GetAnswers(intForecast); OnDemandTasks oOnDemandTasks = new OnDemandTasks(0, dsn); ResourceRequest oResourceRequest = new ResourceRequest(0, dsn); foreach (DataRow drDesign in dsDesigns.Tables[0].Rows) { int intDesign = Int32.Parse(drDesign["id"].ToString()); int intDesignRequest = 0; if (Int32.TryParse(oForecast.GetAnswer(intDesign, "requestid"), out intDesignRequest) == true) { if (intDesignRequest > 0) { // Update the REQUESTID in CV_FORECAST_ANSWERS with the new project correlation oRequest.Update(intDesignRequest, intProject); } } if (oForecast.CanAutoProvision(intDesign) == false) { // Need to add a builder int intImplementorD = 0; DataSet dsResourceD = oResourceRequest.GetProjectItem(intProject, intImplementorDistributed); if (dsResourceD.Tables[0].Rows.Count > 0) { intImplementorD = Int32.Parse(dsResourceD.Tables[0].Rows[0]["userid"].ToString()); } int intImplementorM = 0; DataSet dsResourceM = oResourceRequest.GetProjectItem(intProject, intImplementorMidrange); if (dsResourceM.Tables[0].Rows.Count > 0) { intImplementorM = Int32.Parse(dsResourceM.Tables[0].Rows[0]["userid"].ToString()); } if (oForecast.GetPlatformDistributedForecast(intDesign, intWorkstationPlatform) == true) { if (intImplementorD > 0) { int intNextNumber = oResourceRequest.GetNumber(intRequest); int intResourceParent = oResourceRequest.Add(intRequest, -1, -1, intNextNumber, "Provisioning Task (Distributed)", 0, 6.00, 2, 1, 1, 1); int intResourceWorkflow = oResourceRequest.AddWorkflow(intResourceParent, 0, "Provisioning Task (Distributed)", intImplementorD, 0, 6.00, 2, 0); oOnDemandTasks.AddPending(intDesign, intResourceWorkflow); oResourceRequest.UpdateAssignedBy(intResourceParent, -999); } else { // Submit for assignment if (oServiceRequest.Get(intRequest, "requestid") == "") { oServiceRequest.Add(intRequest, 1, 1); } int intResource = oServiceRequest.AddRequest(intRequest, intImplementorDistributed, intImplementorDistributedService, 0, 0.00, 2, 1, dsnServiceEditor); if (oServiceRequest.NotifyApproval(intResource, intResourceRequestApprove, intEnvironment, "", dsnServiceEditor) == false) { oServiceRequest.NotifyTeamLead(intImplementorDistributed, intResource, intAssignPage, intViewPage, intEnvironment, "", dsnServiceEditor, dsnAsset, dsnIP, 0); } } } if (oForecast.GetPlatformMidrangeForecast(intDesign) == true) { if (intImplementorM > 0) { int intNextNumber = oResourceRequest.GetNumber(intRequest); int intResourceParent = oResourceRequest.Add(intRequest, -1, -1, intNextNumber, "Provisioning Task (Midrange)", 0, 6.00, 2, 1, 1, 1); int intResourceWorkflow = oResourceRequest.AddWorkflow(intResourceParent, 0, "Provisioning Task (Midrange)", intImplementorM, 0, 6.00, 2, 0); oOnDemandTasks.AddPending(intDesign, intResourceWorkflow); oResourceRequest.UpdateAssignedBy(intResourceParent, -999); } else { // Submit for assignment if (oServiceRequest.Get(intRequest, "requestid") == "") { oServiceRequest.Add(intRequest, 1, 1); } int intResource = oServiceRequest.AddRequest(intRequest, intImplementorMidrange, intImplementorMidrangeService, 0, 0.00, 2, 1, dsnServiceEditor); if (oServiceRequest.NotifyApproval(intResource, intResourceRequestApprove, intEnvironment, "", dsnServiceEditor) == false) { oServiceRequest.NotifyTeamLead(intImplementorMidrange, intResource, intAssignPage, intViewPage, intEnvironment, "", dsnServiceEditor, dsnAsset, dsnIP, 0); } } } } } } } oRequest.Update(intRequest, intProject); oDocument.Update(intRequest, intProject); oProjectPending.Approve(Int32.Parse(Request.QueryString["id"])); if (intProject == 0) { oServiceRequest.Update(intRequest, ds.Tables[0].Rows[0]["name"].ToString()); } Response.Redirect(Request.Path + "?rid=" + intRequest.ToString()); } else { if (Request.QueryString["reject"] != null) { panReject.Visible = true; } else { strProject = LoadProject(0, ds.Tables[0].Rows[0], intRequest, true); btnView.Attributes.Add("onclick", "return ShowServiceRequests('" + intRequest.ToString() + "');"); btnViewDesigns.Attributes.Add("onclick", "return ShowDesigns('" + intRequest.ToString() + "');"); if (Request.QueryString["c"] != null && Request.QueryString["c"] != "") { panCompare.Visible = true; string[] strProjects; char[] strSplit = { ' ' }; strProjects = Request.QueryString["c"].Split(strSplit); bool boolOther = false; for (int jj = 0; jj < strProjects.Length; jj++) { if (strProjects[jj].Trim() != "") { TableRow oRow = new TableRow(); TableCell oCell = new TableCell(); oCell.Text = strProject; oRow.Cells.Add(oCell); oCell = new TableCell(); HyperLink oCheck = new HyperLink(); oCheck.ImageUrl = "/images/bigCheck.gif"; oCheck.ToolTip = "Click to Assign"; oCheck.NavigateUrl = Request.Path + "?id=" + Request.QueryString["id"] + "&pid=" + strProjects[jj]; oCheck.Attributes.Add("onclick", "return confirm('Are you sure you want to assign this project?');"); oCell.Controls.Add(oCheck); oRow.Cells.Add(oCell); oCell = new TableCell(); oCell.Text = LoadProject(Int32.Parse(strProjects[jj]), null, 0, false); if (boolOther == true) { oRow.Attributes.Add("bgcolor", "#EFEFEF"); } boolOther = !boolOther; oRow.Cells.Add(oCell); tblCompare.Rows.Add(oRow); } } } else { panView.Visible = true; LoadList(); } } } } else { panAll.Visible = true; DataSet ds = oProjectPending.Gets(); rptView.DataSource = ds; rptView.DataBind(); } } btnCreateProject.Attributes.Add("onclick", "return confirm('Are you sure you want to create this PROJECT?');"); btnCreateTask.Attributes.Add("onclick", "return confirm('Are you sure you want to create this TASK?');"); btnCreateTask.Enabled = false; btnRejectConfirm.Attributes.Add("onclick", "return confirm('Are you sure you want to reject this project / task?');"); }
protected void Page_Load(object sender, EventArgs e) { intProfile = Int32.Parse(Request.Cookies["profileid"].Value); oAsset = new Asset(intProfile, dsnAsset); oForecast = new Forecast(intProfile, dsn); oWorkstation = new Workstations(intProfile, dsn); oServiceRequest = new ServiceRequests(intProfile, dsn); oOnDemandTasks = new OnDemandTasks(intProfile, dsn); //Menu int intMenuTab = 0; if (Request.QueryString["menu_tab"] != null && Request.QueryString["menu_tab"] != "") { intMenuTab = Int32.Parse(Request.QueryString["menu_tab"]); } Tab oTab = new Tab("", intMenuTab, "divMenu1", true, false); //End Menu if (Request.QueryString["applicationid"] != null && Request.QueryString["applicationid"] != "") { intApplication = Int32.Parse(Request.QueryString["applicationid"]); } if (Request.QueryString["pageid"] != null && Request.QueryString["pageid"] != "") { intPage = Int32.Parse(Request.QueryString["pageid"]); } if (Request.Cookies["application"] != null && Request.Cookies["application"].Value != "") { intApplication = Int32.Parse(Request.Cookies["application"].Value); } int intForecast = 0; if (Request.QueryString["id"] != null && Request.QueryString["id"] != "") { intID = Int32.Parse(Request.QueryString["id"]); intForecast = Int32.Parse(oForecast.GetAnswer(intID, "forecastid")); intRequest = oForecast.GetRequestID(intID, true); DataSet dsRequest = oServiceRequest.Get(intRequest); if (dsRequest.Tables[0].Rows.Count > 0) { Response.Redirect(Request.Path + "?rid=" + intRequest); } } if (Request.QueryString["rid"] != null && Request.QueryString["rid"] != "") { intRequest = Int32.Parse(Request.QueryString["rid"]); } if (Request.QueryString["notify"] != null) { string strRedirect = Request.Url.PathAndQuery; strRedirect = strRedirect.Substring(0, strRedirect.IndexOf("¬ify")); if (Request.QueryString["notify"] == "true") { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">alert('Your design implementor has been successfully notified!');window.navigate('" + strRedirect + "');<" + "/" + "script>"); } else if (Request.QueryString["notify"] == "false") { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">alert('Your design implementor has ALREADY been notified!');window.navigate('" + strRedirect + "');<" + "/" + "script>"); } else { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">alert('There was a problem notifying your design implementor\\n\\nPlease contact your ClearView administrator\\n\\nRequestID: " + intRequest.ToString() + "');window.navigate('" + strRedirect + "');<" + "/" + "script>"); } } if (intID > 0) { panBegin.Visible = true; bool boolAssigned = false; if (oForecast.CanAutoProvision(intID) == true) { boolAssigned = true; } else if (oOnDemandTasks.GetPending(intID).Tables[0].Rows.Count > 0) { boolAssigned = true; } if (intForecast == 0) { btnStart.Attributes.Add("onclick", "return ProcessButton(this);"); } else if (boolAssigned == false) { btnStart.Attributes.Add("onclick", "alert('You cannot execute a design until a design implementor has been assigned.');return false;"); } else { lblNotify.Visible = true; //btnStart.Attributes.Add("onclick", "return confirm('NOTE: Billing will begin: " + DateTime.Today.ToShortDateString() + "\\n\\nAre you sure you want to continue?') && OpenWindow('AUTO_PROVISIONING','?answerid=" + intID.ToString() + "&modelid=" + oForecast.GetModel(intID).ToString() + "');"); btnStart.Attributes.Add("onclick", "return confirm('NOTE: Billing will begin: " + DateTime.Today.ToShortDateString() + "\\n\\nAre you sure you want to continue?');"); } } else if (intRequest > 0) { intRequest = Int32.Parse(Request.QueryString["rid"]); panStart.Visible = true; DataSet ds = oWorkstation.GetVirtualRequests(intRequest); int intCount = 0; Functions oFunction = new Functions(intProfile, dsn, intEnvironment); foreach (DataRow dr in ds.Tables[0].Rows) { intCount++; int intDevice = Int32.Parse(dr["id"].ToString()); int intAsset = Int32.Parse(dr["assetid"].ToString()); string strName = "Device " + intCount.ToString(); if (intAsset > 0) { string strTempName = oAsset.Get(intAsset, "name"); if (strTempName != "") { strName = strTempName; } } if (intCount == 1) { //strTab += "<td><img src=\"/images/TabOnLeftCap.gif\"></td><td nowrap background=\"/images/TabOnBackground.gif\"><a href=\"javascript:void(0);\" onclick=\"ChangeTab(this,'divTab" + intCount.ToString() + "',null,null,true);\" class=\"tabheader\">" + strName + "</a></td><td><img src=\"/images/TabOnRightCap.gif\"></td>"; oTab.AddTab(strName, ""); strDivs += "<div id=\"divTab" + intCount.ToString() + "\" style=\"display:inline\"><iframe width=\"100%\" height=\"100%\" frameborder=\"0\" scrolling=\"auto\" src=\"/ondemand/ondemand_workstation_virtual.aspx?id=" + oFunction.encryptQueryString(intDevice.ToString()) + "&c=" + intCount.ToString() + "\"></iframe></div>"; } else { // strTab += "<td><img src=\"/images/TabOffLeftCap.gif\"></td><td nowrap background=\"/images/TabOffBackground.gif\"><a href=\"javascript:void(0);\" onclick=\"ChangeTab(this,'divTab" + intCount.ToString() + "',null,null,true);\" class=\"tabheader\">" + strName + "</a></td><td><img src=\"/images/TabOffRightCap.gif\"></td>"; oTab.AddTab(strName, ""); strDivs += "<div id=\"divTab" + intCount.ToString() + "\" style=\"display:none\"><iframe width=\"100%\" height=\"100%\" frameborder=\"0\" scrolling=\"auto\" src=\"/ondemand/ondemand_workstation_virtual.aspx?id=" + oFunction.encryptQueryString(intDevice.ToString()) + "&c=" + intCount.ToString() + "\"></iframe></div>"; } } //if (strTab != "") // strMenuTab1 += "<tr>" + strTab + "<td width=\"100%\" background=\"/images/TabEmptyBackground.gif\"> </td></tr>"; //strMenuTab1 = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" + strMenuTab1 + "</table>"; strMenuTab1 = oTab.GetTabs(); } }
protected void Page_Load(object sender, EventArgs e) { Page.Title = "ClearView Auto-Provisioning"; intProfile = Int32.Parse(Request.Cookies["profileid"].Value); oAsset = new Asset(intProfile, dsnAsset); oForecast = new Forecast(intProfile, dsn); oServer = new Servers(intProfile, dsn); oServerName = new ServerName(intProfile, dsn); oServiceRequest = new ServiceRequests(intProfile, dsn); oModelsProperties = new ModelsProperties(intProfile, dsn); oModel = new Models(intProfile, dsn); oRequest = new Requests(intProfile, dsn); oClass = new Classes(intProfile, dsn); oUser = new Users(intProfile, dsn); oFunction = new Functions(intProfile, dsn, intEnvironment); oOnDemandTasks = new OnDemandTasks(intProfile, dsn); oResourceRequest = new ResourceRequest(intProfile, dsn); oProject = new Projects(intProfile, dsn); oSetting = new Settings(intProfile, dsn); //Menu int intMenuTab = 0; if (Request.QueryString["menu_tab"] != null && Request.QueryString["menu_tab"] != "") { intMenuTab = Int32.Parse(Request.QueryString["menu_tab"]); } Tab oTab = new Tab("", intMenuTab, "divMenu1", true, true); //End Menu if (Request.QueryString["applicationid"] != null && Request.QueryString["applicationid"] != "") { intApplication = Int32.Parse(Request.QueryString["applicationid"]); } if (Request.QueryString["pageid"] != null && Request.QueryString["pageid"] != "") { intPage = Int32.Parse(Request.QueryString["pageid"]); } if (Request.Cookies["application"] != null && Request.Cookies["application"].Value != "") { intApplication = Int32.Parse(Request.Cookies["application"].Value); } if (Request.QueryString["id"] != null && Request.QueryString["id"] != "") { intID = Int32.Parse(Request.QueryString["id"]); intRequest = oForecast.GetRequestID(intID, true); DataSet dsRequest = oServiceRequest.Get(intRequest); if (dsRequest.Tables[0].Rows.Count > 0) { Response.Redirect(Request.Path + "?rid=" + intRequest); } } if (Request.QueryString["rid"] != null && Request.QueryString["rid"] != "") { intRequest = Int32.Parse(Request.QueryString["rid"]); } if (Request.QueryString["notify"] != null) { string strRedirect = Request.Url.PathAndQuery; strRedirect = strRedirect.Substring(0, strRedirect.IndexOf("¬ify")); if (Request.QueryString["notify"] == "none") { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">window.navigate('" + strRedirect + "');<" + "/" + "script>"); } else if (Request.QueryString["notify"] == "true") { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">alert('Your design implementor has been successfully notified!');window.navigate('" + strRedirect + "');<" + "/" + "script>"); } else if (Request.QueryString["notify"] == "false") { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">alert('Your design implementor has ALREADY been notified!');window.navigate('" + strRedirect + "');<" + "/" + "script>"); } else { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "close", "<script type=\"text/javascript\">alert('There was a problem notifying your design implementor\\n\\nPlease contact your ClearView administrator\\n\\nRequestID: " + intRequest.ToString() + "');window.navigate('" + strRedirect + "');<" + "/" + "script>"); } } if (intID > 0) { Page.Title = "ClearView Auto-Provisioning | Design # " + intID.ToString(); btnPrint.Attributes.Add("onclick", "return OpenWindow('DESIGN_PRINT', '?id=" + intID.ToString() + "');"); bool boolApproveNeeded = false; bool boolApproved = false; bool boolPending = false; bool boolDenied = false; Tab oTabServer = new Tab("", 0, "divMenuApprove", true, false); DataSet dsServers = oServer.GetAnswer(intID); int intServerCount = 0; foreach (DataRow drServer in dsServers.Tables[0].Rows) { int intServer = Int32.Parse(drServer["id"].ToString()); intServerCount++; DataSet dsApprove = oServerName.GetComponentDetailUserApprovalsByServer(intServer); if (dsApprove.Tables[0].Rows.Count > 0) { boolApproveNeeded = true; oTabServer.AddTab("Device # " + intServerCount.ToString(), ""); string strApproveItem = ""; bool boolOther = true; foreach (DataRow drApprove in dsApprove.Tables[0].Rows) { boolOther = (boolOther == false); int intDetail = Int32.Parse(drApprove["detailid"].ToString()); int intApprover = 0; string strApproverComments = ""; int intApproverApproved = -1; DateTime datApproved = DateTime.Now; DataSet dsApprovals = oServerName.GetComponentDetailUserApprovals(intServer, intDetail); if (dsApprovals.Tables[0].Rows.Count == 0) { boolPending = true; } else { intApprover = Int32.Parse(dsApprovals.Tables[0].Rows[0]["userid"].ToString()); strApproverComments = dsApprovals.Tables[0].Rows[0]["comments"].ToString(); intApproverApproved = Int32.Parse(dsApprovals.Tables[0].Rows[0]["approved"].ToString()); datApproved = DateTime.Parse(dsApprovals.Tables[0].Rows[0]["modified"].ToString()); if (intApproverApproved == 0) { boolDenied = true; } } string strApprovers = ""; DataSet dsApprovers = oServerName.GetComponentDetailUsers(intDetail, 1); foreach (DataRow drApprover in dsApprovers.Tables[0].Rows) { int intUser = Int32.Parse(drApprover["userid"].ToString()); strApprovers += "<tr><td><a href=\"javascript:void(0);\" onclick=\"OpenWindow('PROFILE','?userid=" + intUser.ToString() + "');\"><img src=\"/images/" + (intApprover == 0 ? "pending" : (intUser == intApprover ? (intApproverApproved == 1 ? "check" : "cancel") : "user")) + ".gif\" border=\"0\" align=\"absmiddle\"/> " + oUser.GetFullName(intUser) + " (" + oUser.GetName(intUser) + ")</a></td></tr>"; } strApprovers = "<table>" + strApprovers + "</table>"; strApproveItem += "<tr" + (boolOther ? " bgcolor=\"#F6F6F6\"" : "") + ">"; string strLabel = drApprove["name"].ToString(); if (intApproverApproved > -1) { strLabel = "<a href=\"javascript:void(0);\" onclick=\"ShowHideDiv2('trApproval" + intServerCount.ToString() + "_" + intDetail.ToString() + "');\">" + strLabel + "</a>"; } strApproveItem += "<td valign=\"top\" width=\"45%\" class=\"biggerbold\">" + strLabel + "</td>"; strApproveItem += "<td valign=\"top\" width=\"10%\">" + (intApproverApproved == -1 ? "Pending" : (intApproverApproved == 0 ? "Denied" : "Approved")) + "</td>"; strApproveItem += "<td valign=\"top\" width=\"45%\" align=\"right\">" + strApprovers + "</td>"; strApproveItem += "</tr>"; if (intApproverApproved > -1) { string strApproveTable = "<tr><td colspan=\"2\"><span style=\"width:100%;border-bottom:1 dotted #CCCCCC;\"/></td></tr>"; strApproveTable += "<tr>"; strApproveTable += "<td nowrap valign=\"top\"><img src=\"/images/" + (intApproverApproved == 0 ? "cancel" : "check") + ".gif\" border=\"0\" align=\"absmiddle\"/></td>"; strApproveTable += "<td width=\"100%\" valign=\"top\">" + oUser.GetFullName(intApprover) + " " + (intApproverApproved == 0 ? "DENIED" : "APPROVED") + " this request on " + datApproved.ToString() + "</td>"; strApproveTable += "</tr>"; if (strApproverComments != "") { strApproveTable += "<tr>"; strApproveTable += "<td colspan=\"2\">The following comments were added...</td>"; strApproveTable += "</tr>"; strApproveTable += "<tr>"; strApproveTable += "<td nowrap valign=\"top\"><img src=\"/images/comment.gif\" border=\"0\" align=\"absmiddle\"/></td>"; strApproveTable += "<td width=\"100%\" valign=\"top\" class=\"comment\">" + strApproverComments + "</td>"; strApproveTable += "</tr>"; } strApproveTable = "<table width=\"100%\" cellpadding=\"4\" cellspacing=\"3\" border=\"0\">" + strApproveTable + "</table>"; strApproveItem += "<tr id=\"trApproval" + intServerCount.ToString() + "_" + intDetail.ToString() + "\" style=\"display:none\"" + (boolOther ? " bgcolor=\"#F6F6F6\"" : "") + "><td colspan=\"3\">" + strApproveTable + "</td></tr>"; } } strApproveItem = "<tr bgcolor=\"#EEEEEE\"><td class=\"header\">Component</td><td class=\"header\">Status</td><td class=\"header\" align=\"right\">Approver(s)</td></tr>" + strApproveItem; strApproveItem = "<table width=\"100%\" cellpadding=\"4\" cellspacing=\"0\" border=\"0\" style=\"border:solid 1px #CCCCCC\">" + strApproveItem + "</table>"; strApprove += "<div id=\"divTab" + intServerCount.ToString() + "\" style=\"display:none\">" + strApproveItem + "</div>"; } } if (boolApproveNeeded == true) { trApprove.Visible = true; if (boolDenied == true) { btnSoftwareBack.Visible = true; imgApproved.ImageUrl = "/images/ico_error.gif"; lblApprovedHeader.Text = "Software Component(s) Denied"; lblApproved.Text = "One or more of the software components you requested have been denied. You cannot continue until all components have been approved.<br/>You will need to make changes to this design - please click <b>Make Changes</b> to change your software component requirements.<br/>All questions and status inquiries should be sent to the approver(s) listed below."; } else if (boolPending == true) { imgApproved.ImageUrl = "/images/ico_hourglass.gif"; lblApprovedHeader.Text = "Software Component(s) Pending"; lblApproved.Text = "One or more of the software components you requested are awaiting approval. You cannot continue until all components have been approved.<br/>All questions and status inquiries should be sent to the approver(s) listed below."; } else { boolApproved = true; lblApprovedHeader.Text = "Software Component(s) Approved"; lblApproved.Text = "All of the software components you requested have been approved!"; } btnApproved.Attributes.Add("onclick", "ShowHideDiv2('" + trApprove.ClientID + "');return false;"); strMenuTabApprove = oTabServer.GetTabs(); } else { boolApproved = true; lblApprovedHeader.Text = "No Approval Required"; lblApproved.Text = "There are no approvals required for your software components"; btnApproved.Enabled = false; } string strSchedule = oForecast.GetAnswer(intID, "execution"); if (strSchedule != "") { DateTime datSchedule = DateTime.Parse(strSchedule); txtScheduleDate.Text = datSchedule.ToShortDateString(); txtScheduleTime.Text = datSchedule.ToShortTimeString(); btnSchedule.Text = "Update the Build"; } panBegin.Visible = true; bool boolAssigned = false; int intModel = oForecast.GetModelAsset(intID); if (intModel == 0) { intModel = oForecast.GetModel(intID); } string strChange = "true"; string strFreeze = ""; // Check Freeze Dates bool boolFreeze = false; strFreezeStart = oSetting.Get("freeze_start"); strFreezeEnd = oSetting.Get("freeze_end"); if (strFreezeStart != "" && strFreezeEnd != "" && DateTime.Parse(strFreezeStart) <= DateTime.Now && DateTime.Parse(strFreezeEnd) > DateTime.Now) { boolFreeze = true; divChange.Style["display"] = "inline"; if (!IsPostBack) { txtChange.Text = oForecast.GetAnswer(intID, "change"); } strChange = "ValidateTextLength('" + txtChange.ClientID + "', 'Please enter a valid change control number\\n\\n - Must start with \"CHG\" or \"PTM\"\\n - Must be exactly 10 characters in length', 10, 'CHG', 'PTM')"; } int intClass = Int32.Parse(oForecast.GetAnswer(intID, "classid")); int intForecast = 0; Int32.TryParse(oForecast.GetAnswer(intID, "forecastid"), out intForecast); int intRequestID = 0; Int32.TryParse(oForecast.Get(intForecast, "requestid"), out intRequestID); int intProject = 0; if (intRequestID > 0) { intProject = oRequest.GetProjectNumber(intRequestID); } int intProjectStatus = 0; if (intProject > 0) { Int32.TryParse(oProject.Get(intProject, "status"), out intProjectStatus); } if (oForecast.CanAutoProvision(intID) == true) { boolAssigned = true; } else { if (oOnDemandTasks.GetPending(intID).Tables[0].Rows.Count > 0) { boolAssigned = true; } else { // Add Resource Request int intImplementor = 0; string strType = "Distributed"; DataSet dsResource = oResourceRequest.GetProjectItem(intProject, intImplementorDistributed); if (oForecast.GetPlatformDistributed(intID, intWorkstationPlatform) == false) { dsResource = oResourceRequest.GetProjectItem(intProject, intImplementorMidrange); strType = "Midrange"; } if (dsResource.Tables[0].Rows.Count > 0) { intImplementor = (dsResource.Tables[0].Rows[0]["userid"].ToString() == "" ? 0 : Int32.Parse(dsResource.Tables[0].Rows[0]["userid"].ToString())); } if (intImplementor > 0) { int intNextNumber = oResourceRequest.GetNumber(intRequestID); int intResourceParent = oResourceRequest.Add(intRequestID, -1, -1, intNextNumber, "Provisioning Task (" + strType + ")", 0, 6.00, 2, 1, 1, 1); int intResourceWorkflow = oResourceRequest.AddWorkflow(intResourceParent, 0, "Provisioning Task (" + strType + ")", intImplementor, 0, 6.00, 2, 0); oOnDemandTasks.AddPending(intID, intResourceWorkflow); oResourceRequest.UpdateAssignedBy(intResourceParent, -999); } } } lblNotify.Visible = boolBurnIn; bool boolOKtoExecute = false; if (intProject == -100) { // Pending project approval btnStart.Attributes.Add("onclick", "alert('This design cannot be executed because the associated project is currently pending approval.\\n\\nMost likely, this is because you just entered a new project into the system\\n\\nPlease contact your ClearView administrator or check back later.');return false;"); btnSchedule.Attributes.Add("onclick", "alert('This design cannot be scheduled because the associated project is currently pending approval.\\n\\nMost likely, this is because you just entered a new project into the system\\n\\nPlease contact your ClearView administrator or check back later.');return false;"); } else { if (oForecast.CanAutoProvision(intID) == true) { btnSchedule.Enabled = true; boolOKtoExecute = true; } else { if (boolAssigned == false) { btnStart.Attributes.Add("onclick", "alert('You cannot execute a design until a design implementor has been assigned.');return false;"); btnSchedule.Attributes.Add("onclick", "alert('You cannot schedule the execution of a design until a design implementor has been assigned.');return false;"); } else { boolOKtoExecute = true; } } } imgScheduleDate.Attributes.Add("onclick", "return ShowCalendar('" + txtScheduleDate.ClientID + "');"); if (boolOKtoExecute == true) { btnStart.Attributes.Add("onclick", "return " + strChange + " && confirm('NOTE: Billing will begin: " + DateTime.Today.ToShortDateString() + "\\n\\nAre you sure you want to continue?');"); btnSchedule.Attributes.Add("onclick", "return ValidateDate('" + txtScheduleDate.ClientID + "','Please enter a valid schedule date')" + " && ValidateDateToday('" + txtScheduleDate.ClientID + "','The scheduled date must occur after today')" + " && ValidateFreeze('" + txtScheduleDate.ClientID + "','" + divChange.ClientID + "','" + txtChange.ClientID + "'," + (boolFreeze ? "true" : "false") + ")" + " && ValidateTime('" + txtScheduleTime.ClientID + "','Please enter a valid start time')" + " && confirm('NOTE: Billing will begin: ' + document.getElementById('" + txtScheduleDate.ClientID + "').value + '\\n\\nAre you sure you want to continue?')" + " && ProcessButton(this)" + ";"); } if (oModelsProperties.IsInventory(intModel) == true) { panInventoryYes.Visible = true; if (boolApproved == false) { divSoftware.Style["display"] = "inline"; divDefault.Style["display"] = "none"; radStart.Enabled = false; btnStart.Enabled = false; radSchedule.Enabled = false; btnSchedule.Enabled = false; radApproval.Enabled = false; btnApprovals.Enabled = false; } } else { lblInventory.Text = oModelsProperties.Get(intModel, "name"); panInventoryNo.Visible = true; divSoftware.Style["display"] = "none"; divDefault.Style["display"] = "none"; radStart.Enabled = false; btnStart.Enabled = false; radSchedule.Enabled = false; btnSchedule.Enabled = false; radApproval.Enabled = false; btnApprovals.Enabled = false; } } else if (intRequest > 0) { intRequest = Int32.Parse(Request.QueryString["rid"]); DateTime datSchedule = DateTime.Now; DataSet ds = oServer.GetRequests(intRequest, 1); bool boolPending = false; int intAnswer = 0; int intModel = 0; if (ds.Tables[0].Rows.Count > 0) { intAnswer = Int32.Parse(ds.Tables[0].Rows[0]["answerid"].ToString()); intModel = oForecast.GetModelAsset(intAnswer); if (intModel == 0) { intModel = oForecast.GetModel(intAnswer); } string strSchedule = oForecast.GetAnswer(intAnswer, "execution"); if (strSchedule != "") { datSchedule = DateTime.Parse(strSchedule); lblScheduleDate.Text = datSchedule.ToShortDateString(); lblScheduleTime.Text = datSchedule.ToShortTimeString(); if (DateTime.Now < datSchedule) { boolPending = true; } } } Page.Title = "ClearView Auto-Provisioning | Design # " + intAnswer.ToString(); if (oForecast.CanAutoProvision(intAnswer) == false) { panNotExecutable.Visible = true; lblInitiated.Text = oForecast.GetAnswer(intAnswer, "executed"); lblCompleted.Text = oForecast.GetAnswer(intAnswer, "completed"); int intImplementorUser = 0; DataSet dsImplementor = oOnDemandTasks.GetPending(intAnswer); if (dsImplementor.Tables[0].Rows.Count > 0) { intImplementorUser = Int32.Parse(dsImplementor.Tables[0].Rows[0]["resourceid"].ToString()); intImplementorUser = Int32.Parse(oResourceRequest.GetWorkflow(intImplementorUser, "userid")); } strManualImage = "<img src=\"/frame/picture.aspx?xid=" + oUser.GetName(intImplementorUser) + "\" border=\"0\" align=\"absmiddle\" style=\"height:90px;width:90px;border-width:0px;border:solid 1px #999999;\" />"; lblImplementor.Text = oUser.GetFullName(intImplementorUser) + " (" + oUser.GetName(intImplementorUser) + ")"; strManualReason = oForecast.CanAutoProvisionReason(intAnswer); btnManual.NavigateUrl = "/datapoint/service/design.aspx?t=design&q=" + oFunction.encryptQueryString(intAnswer.ToString()); rptServers.DataSource = oServer.GetManual(intAnswer, false); rptServers.DataBind(); foreach (RepeaterItem ri in rptServers.Items) { Label lblName = (Label)ri.FindControl("lblName"); if (lblName.Text != "--- Pending ---") { lblName.Text = "<a href=\"javascript:void(0);\" onclick=\"OpenNewWindow('/datapoint/asset/datapoint_asset_search.aspx?t=name&q=" + oFunction.encryptQueryString(lblName.Text) + "&id=" + oFunction.encryptQueryString(lblName.ToolTip) + "',800,600);\">" + lblName.Text + "</a>"; } else { lblName.Text = "<i>" + lblName.Text + "</i>"; } Label lblAsset = (Label)ri.FindControl("lblAsset"); if (lblAsset.Text != "--- Pending ---") { lblAsset.Text = "<a href=\"javascript:void(0);\" onclick=\"OpenNewWindow('/datapoint/asset/datapoint_asset_search.aspx?t=serial&q=" + oFunction.encryptQueryString(lblAsset.Text) + "',800,600);\">" + lblAsset.Text + "</a>"; } else { lblAsset.Text = "<i>" + lblAsset.Text + "</i>"; } Label lblAssetDR = (Label)ri.FindControl("lblAssetDR"); if (lblAssetDR.Text != "--- None ---") { if (lblAssetDR.Text != "--- Pending ---") { if (lblAssetDR.Text != "Missing!!!") { lblAssetDR.Text = "<a href=\"javascript:void(0);\" onclick=\"OpenNewWindow('/datapoint/asset/datapoint_asset_search.aspx?t=serial&q=" + oFunction.encryptQueryString(lblAssetDR.Text) + "',800,600);\">" + lblAssetDR.Text + "</a>"; } else { lblAssetDR.Text = "<span class=\"highlight\">" + lblAssetDR.Text + "</span>"; } } else { lblAssetDR.Text = "<i>" + lblAssetDR.Text + "</i>"; } } else { lblAssetDR.Text = "<i>Not Required</i>"; } Label lblIP1 = (Label)ri.FindControl("lblIP1"); if (lblIP1.Text == "--- Pending ---") { lblIP1.Text = "<i>" + lblIP1.Text + "</i>"; } Label lblIP2 = (Label)ri.FindControl("lblIP2"); if (lblIP2.Text == "--- Pending ---") { lblIP2.Text = "<i>" + lblIP2.Text + "</i>"; } Label lblIP3 = (Label)ri.FindControl("lblIP3"); if (lblIP3.Text == "--- Pending ---") { lblIP3.Text = "<i>" + lblIP3.Text + "</i>"; } } } else { if (boolPending == true) { panPending.Visible = true; TimeSpan oSpan = datSchedule.Subtract(DateTime.Now); if (oSpan.Seconds > 0) { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "cdown", "<script type=\"text/javascript\">StartClockCountdown('" + lblCountdown.ClientID + "'," + oSpan.TotalMilliseconds.ToString() + ");<" + "/" + "script>"); } else { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "cdown", "<script type=\"text/javascript\">StartClockCountdown('" + lblCountdown.ClientID + "',0);<" + "/" + "script>"); } } else { panStart.Visible = true; int intCount = 0; Types oType = new Types(intProfile, dsn); foreach (DataRow dr in ds.Tables[0].Rows) { intCount++; int intServer = Int32.Parse(dr["id"].ToString()); int intAsset = 0; if (dr["assetid"].ToString() != "") { intAsset = Int32.Parse(dr["assetid"].ToString()); } int intType = 0; intModel = 0; if (dr["modelid"].ToString() != "") { intModel = Int32.Parse(dr["modelid"].ToString()); } if (intModel > 0) { intType = oModelsProperties.GetType(intModel); } string strName = "Device " + intCount.ToString(); if (intAsset > 0) { string strTempName = oAsset.Get(intAsset, "name"); if (strTempName != "") { strName = strTempName; } } if (intCount == 1) { //strTab += "<td><img src=\"/images/TabOnLeftCap.gif\"></td><td nowrap background=\"/images/TabOnBackground.gif\"><a href=\"javascript:void(0);\" onclick=\"ChangeTab(this,'divTab" + intCount.ToString() + "',null,null,true);\" class=\"tabheader\">" + strName + "</a></td><td><img src=\"/images/TabOnRightCap.gif\"></td>"; oTab.AddTab(strName, ""); strDivs += "<div id=\"divTab" + intCount.ToString() + "\" style=\"display:inline\"><iframe width=\"100%\" height=\"100%\" frameborder=\"0\" scrolling=\"auto\" src=\"" + oType.Get(intType, "ondemand_steps_path") + "?id=" + oFunction.encryptQueryString(intServer.ToString()) + "&c=" + intCount.ToString() + "\"></iframe></div>"; } else { // strTab += "<td><img src=\"/images/TabOffLeftCap.gif\"></td><td nowrap background=\"/images/TabOffBackground.gif\"><a href=\"javascript:void(0);\" onclick=\"ChangeTab(this,'divTab" + intCount.ToString() + "',null,null,true);\" class=\"tabheader\">" + strName + "</a></td><td><img src=\"/images/TabOffRightCap.gif\"></td>"; oTab.AddTab(strName, ""); strDivs += "<div id=\"divTab" + intCount.ToString() + "\" style=\"display:none\"><iframe width=\"100%\" height=\"100%\" frameborder=\"0\" scrolling=\"auto\" src=\"" + oType.Get(intType, "ondemand_steps_path") + "?id=" + oFunction.encryptQueryString(intServer.ToString()) + "&c=" + intCount.ToString() + "\"></iframe></div>"; } } strMenuTab1 = oTab.GetTabs(); //if (strTab != "") // strMenuTab1 += "<tr>" + strTab + "<td width=\"100%\" background=\"/images/TabEmptyBackground.gif\"> </td></tr>"; //strMenuTab1 = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" + strMenuTab1 + "</table>"; } } } radStart.Attributes.Add("onclick", "ShowBuildDivs('" + divStart.ClientID + "','" + divDefault.ClientID + "','" + divSchedule.ClientID + "','" + divApproval.ClientID + "');"); radSchedule.Attributes.Add("onclick", "ShowBuildDivs('" + divSchedule.ClientID + "','" + divDefault.ClientID + "','" + divStart.ClientID + "','" + divApproval.ClientID + "');"); radApproval.Attributes.Add("onclick", "ShowBuildDivs('" + divApproval.ClientID + "','" + divDefault.ClientID + "','" + divStart.ClientID + "','" + divSchedule.ClientID + "');"); btnApprovals.Attributes.Add("onclick", "return OpenWindow('DESIGN_APPROVERS','?id=" + intID.ToString() + "');"); }