Files
ayanova7/source/MBI/status.aspx.cs
2018-06-29 19:47:36 +00:00

88 lines
3.3 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GZTW.AyaNova.BLL;
namespace AyaNovaMBI
{
public partial class status : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Guid woitemid = util.GetIDFromRequest(Request);
//case 1153 added a hidden label field to temporarily hold the workorderitem id number
//because on Joyce's two test machines and the haveabyte demo machine it was losing the url id= parameter
//on postback but not on my dev machine and not anywhere in any other pages in MBI that rely on the
//same mechanism. Tried everything and examined it all ways and could find nothing out of the ordinary and
//no search online revealed this to be a known problem of any kind
//very weird and even weirder that it initially has no problem on first page load, just on postback
//anyway the hidden label field fixes the problem so workaround it is.
if (woitemid == Guid.Empty)
{
if (string.IsNullOrEmpty(lblid.Text))
throw new System.ApplicationException("Error in status - unable to determine workorder item id.");
woitemid = new Guid(lblid.Text);
}
else
{
lblid.Text = woitemid.ToString();
}
Workorder w = null;
WorkorderItem wi = null;
w = Workorder.GetWorkorderByRelativeNoMRU(RootObjectTypes.WorkorderItem, woitemid);
wi = w.WorkorderItems[woitemid];
if (IsPostBack)
{
//Get selected value from form variables
//because when viewstate is off controlstate doesn't handle selected value in
//dropdownlists (while it *does* for text boxes etc which makes no sense)
if (!util.mt(Request.Form["stat"]))
wi.WorkorderStatusID = new Guid(Request.Form["stat"]);
if (w.IsDirty)
w = (Workorder)w.Save();
if (!util.mt(Session["ret"]))
{
Response.Redirect(Session["ret"].ToString());
return;
}
}
WorkorderStatusPickList p = WorkorderStatusPickList.GetList();
foreach (WorkorderStatusPickList.WorkorderStatusPickListInfo i in p)
{
//case 1916 weed out inactive statuses unless preselected
if (i.Active || i.ID == wi.WorkorderStatusID)
{
ListItem li = new ListItem(i.Name, i.ID.ToString());
if (i.ID == wi.WorkorderStatusID)
li.Selected = true;
stat.Items.Add(li);
}
}
btn.Text = util.LocaleText("UI.Command.OK");
}
//---------------------------------------
}
}