This commit is contained in:
409
source/WBI/ScheduleMarkerEdit.aspx.cs
Normal file
409
source/WBI/ScheduleMarkerEdit.aspx.cs
Normal file
@@ -0,0 +1,409 @@
|
||||
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;
|
||||
using Telerik.Web.UI;
|
||||
|
||||
public partial class ScheduleMarkerEdit : BaseEditPage
|
||||
{
|
||||
|
||||
#region BizObject
|
||||
public ScheduleMarker mScheduleMarker;
|
||||
protected ScheduleMarker CurrentScheduleMarker
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mScheduleMarker != null) return mScheduleMarker;
|
||||
|
||||
string idstring = Request.QueryString["id"];
|
||||
Guid oID = Guid.Empty;
|
||||
if (!string.IsNullOrEmpty(idstring))
|
||||
oID = new Guid(idstring);
|
||||
|
||||
mScheduleMarker = (ScheduleMarker)Session["schedulemarker"];
|
||||
//ensure if object in session is the same as the one requested
|
||||
if (mScheduleMarker != null && (oID != Guid.Empty && mScheduleMarker.ID != oID))//Case 912
|
||||
mScheduleMarker = null;
|
||||
|
||||
if (mScheduleMarker == null)
|
||||
{
|
||||
//Might be in the Cache if created from followupselector form
|
||||
mScheduleMarker = (ScheduleMarker)Cache["schedulemarker" + idstring];
|
||||
if (mScheduleMarker != null)
|
||||
{
|
||||
//ok, found it in the Cache so xfer it to session
|
||||
|
||||
Session["schedulemarker"] = mScheduleMarker;
|
||||
Cache.Remove("schedulemarker" + idstring);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (mScheduleMarker == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (oID != Guid.Empty)
|
||||
mScheduleMarker = ScheduleMarker.GetItem(oID);
|
||||
else
|
||||
mScheduleMarker = ScheduleMarker.NewItem();
|
||||
|
||||
Session["schedulemarker"] = mScheduleMarker;
|
||||
}
|
||||
catch (System.Security.SecurityException)
|
||||
{
|
||||
CloseMe();
|
||||
}
|
||||
}
|
||||
|
||||
return mScheduleMarker;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Page events
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (Util.CurrentUser.IsClientOrHeadOfficeAccount ||
|
||||
AyaBizUtils.Right("Object.ScheduleMarker") < (int)SecurityLevelTypes.ReadOnly)
|
||||
{
|
||||
Util.Denied(Context);
|
||||
}
|
||||
|
||||
|
||||
////Test case 3569 arabic hijiri exception issue rad calendar
|
||||
//var culture = new System.Globalization.CultureInfo("ar-SA");
|
||||
//culture.DateTimeFormat.Calendar = new System.Globalization.GregorianCalendar();
|
||||
////this.dtStart.Culture = culture;
|
||||
//this.dtStop.Calendar.CultureInfo = culture;
|
||||
//this.dtStart.Calendar.CultureInfo = culture;
|
||||
//this.rc1.CultureInfo = culture;
|
||||
|
||||
//Initialize controls on first page load
|
||||
if (!this.IsPostBack)
|
||||
{
|
||||
//Item zero is always the print menu
|
||||
//Master.Menu.Items[0].Hidden=true;
|
||||
|
||||
//Localize the page
|
||||
Util.Localize(this.Page);
|
||||
|
||||
//case 1972
|
||||
Util.SetDeletable(this.Page, RootObjectTypes.ScheduleMarker);
|
||||
|
||||
SetData();
|
||||
|
||||
//case 3169
|
||||
if (AyaBizUtils.Right("Object.ScheduleMarker") < (int)SecurityLevelTypes.ReadWrite)
|
||||
Util.SetReadOnly(this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected void Page_LoadComplete(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
//Get data logic
|
||||
if (this.IsPostBack)//Only on a postback
|
||||
{
|
||||
//Only if user isn't closing form outright without saving
|
||||
if (Master.AyMessage == null || Master.AyMessage.Message != "LT:UI.Command.Close")
|
||||
{
|
||||
GetData();
|
||||
}
|
||||
|
||||
if (Master.AyMessage != null)
|
||||
HandleAyMessage();
|
||||
|
||||
|
||||
|
||||
//Localize the page
|
||||
Util.Localize(this.Page);
|
||||
SetData();
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion page events
|
||||
|
||||
|
||||
#region Set / get data
|
||||
private void SetData()
|
||||
{
|
||||
|
||||
ScheduleMarker o = CurrentScheduleMarker;
|
||||
if (o.FollowID != Guid.Empty)
|
||||
{
|
||||
this.Title = Util.LocaleText("ScheduleMarker.Label.FollowUp");
|
||||
|
||||
|
||||
btnOpenFollowObject.Visible = true;//FIND WAY TO DETERMINE WHERE CAME FROM HERE AND SHOW OR NOT
|
||||
btnOpenFollowObject.Text = NameFetcher.GetItem(new TypeAndID(mScheduleMarker.FollowType, mScheduleMarker.FollowID)).RecordName;
|
||||
}
|
||||
else
|
||||
this.Title = Util.LocaleText("O.ScheduleMarker");
|
||||
|
||||
|
||||
FillSourceList();
|
||||
SetSelectedValue();
|
||||
|
||||
edName.Text = o.Name;
|
||||
|
||||
dtStart.DbSelectedDate = o.StartDate;
|
||||
dtStop.DbSelectedDate = o.StopDate;
|
||||
edNotes.Text = o.Notes;
|
||||
cp.SetPreselectedColor("________", o.ARGB);
|
||||
|
||||
//case 1968
|
||||
ckCompleted.Checked = o.Completed;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void GetData()
|
||||
{
|
||||
ScheduleMarker o = CurrentScheduleMarker;
|
||||
GetSelectedValue(o);
|
||||
o.Name = edName.Text;
|
||||
o.Notes = edNotes.Text;
|
||||
o.StartDate = dtStart.DbSelectedDate;
|
||||
o.StopDate = dtStop.DbSelectedDate;
|
||||
o.ARGB = Util.ParseInt(cp.SelectedValue);
|
||||
o.Completed = ckCompleted.Checked;//case 1968
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Populate combo
|
||||
private void FillSourceList()
|
||||
{
|
||||
DataTable dt = null;
|
||||
if (CurrentScheduleMarker.FollowID == Guid.Empty)
|
||||
{
|
||||
AddItem(Util.LocaleText("O.Global"), "GLOBAL," + ScheduleMarker.ScheduleMarkerGlobalSourceID.ToString());
|
||||
|
||||
|
||||
#region Regional
|
||||
if (CurrentScheduleMarker.ScheduleMarkerSourceType == ScheduleMarkerSourceTypes.Regional)
|
||||
dt = Util.GetDataBiz("Region", CurrentScheduleMarker.SourceID, true, Guid.Empty, null, false);
|
||||
else
|
||||
dt = Util.GetDataBiz("Region", Guid.Empty, true, Guid.Empty, null, false);
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
AddItem(Util.LocaleText("O.Region") + " - " + dr["Display"].ToString(), "REGION," + dr["Value"].ToString());
|
||||
}
|
||||
#endregion regional
|
||||
}
|
||||
|
||||
#region Scheduleable users
|
||||
if (CurrentScheduleMarker.ScheduleMarkerSourceType == ScheduleMarkerSourceTypes.User)
|
||||
dt = Util.GetDataBiz("UserPickListScheduleable", CurrentScheduleMarker.SourceID, true, Guid.Empty, null, true);
|
||||
else
|
||||
dt = Util.GetDataBiz("UserPickListScheduleable", Guid.Empty, true, Guid.Empty, null, true);
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
AddItem(Util.LocaleText("O.User") + " - " + dr["Display"].ToString(), "USER," + dr["Value"].ToString());
|
||||
}
|
||||
#endregion Scheduleable users
|
||||
|
||||
if (CurrentScheduleMarker.FollowID == Guid.Empty)
|
||||
{
|
||||
#region DispatchZone
|
||||
if (CurrentScheduleMarker.ScheduleMarkerSourceType == ScheduleMarkerSourceTypes.DispatchZone)
|
||||
dt = Util.GetDataBiz("DispatchZone", CurrentScheduleMarker.SourceID, true, Guid.Empty, null, true);
|
||||
else
|
||||
dt = Util.GetDataBiz("DispatchZone", Guid.Empty, true, Guid.Empty, null, true);
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
AddItem(Util.LocaleText("O.DispatchZone") + " - " + dr["Display"].ToString(), "ZONE," + dr["Value"].ToString());
|
||||
}
|
||||
#endregion DispatchZone
|
||||
|
||||
#region ScheduleableUserGroup
|
||||
if (CurrentScheduleMarker.ScheduleMarkerSourceType == ScheduleMarkerSourceTypes.ScheduleableUserGroup)
|
||||
dt = Util.GetDataBiz("ScheduleableUserGroupPickList", CurrentScheduleMarker.SourceID, true, Guid.Empty, null, false);
|
||||
else
|
||||
dt = Util.GetDataBiz("ScheduleableUserGroupPickList", Guid.Empty, true, Guid.Empty, null, false);
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
AddItem(Util.LocaleText("O.ScheduleableUserGroup") + " - " + dr["Display"].ToString(), "GROUP," + dr["Value"].ToString());
|
||||
}
|
||||
#endregion ScheduleableUserGroup
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void SetSelectedValue()
|
||||
{
|
||||
string type = "";
|
||||
switch (CurrentScheduleMarker.ScheduleMarkerSourceType)
|
||||
{
|
||||
case ScheduleMarkerSourceTypes.Global:
|
||||
type = "GLOBAL,";
|
||||
break;
|
||||
case ScheduleMarkerSourceTypes.DispatchZone:
|
||||
type = "ZONE,";
|
||||
break;
|
||||
case ScheduleMarkerSourceTypes.Regional:
|
||||
type = "REGION,";
|
||||
break;
|
||||
case ScheduleMarkerSourceTypes.ScheduleableUserGroup:
|
||||
type = "GROUP,";
|
||||
break;
|
||||
case ScheduleMarkerSourceTypes.User:
|
||||
type = "USER,";
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
//case 1596
|
||||
RadComboBoxItem i = new RadComboBoxItem(" ", type + CurrentScheduleMarker.SourceID.ToString());
|
||||
foreach (RadComboBoxItem rcbi in cbSource.Items)
|
||||
{
|
||||
if (rcbi.Value == i.Value)
|
||||
{
|
||||
cbSource.SelectedIndex = rcbi.Index;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void GetSelectedValue(ScheduleMarker sm)
|
||||
{
|
||||
string[] sval = cbSource.SelectedValue.Split(',');
|
||||
sm.SourceID = new Guid(sval[1]);
|
||||
switch (sval[0])
|
||||
{
|
||||
case "GLOBAL":
|
||||
sm.ScheduleMarkerSourceType = ScheduleMarkerSourceTypes.Global;
|
||||
break;
|
||||
case "ZONE":
|
||||
sm.ScheduleMarkerSourceType = ScheduleMarkerSourceTypes.DispatchZone;
|
||||
break;
|
||||
case "REGION":
|
||||
sm.ScheduleMarkerSourceType = ScheduleMarkerSourceTypes.Regional;
|
||||
break;
|
||||
case "GROUP":
|
||||
sm.ScheduleMarkerSourceType = ScheduleMarkerSourceTypes.ScheduleableUserGroup;
|
||||
break;
|
||||
case "USER":
|
||||
sm.ScheduleMarkerSourceType = ScheduleMarkerSourceTypes.User;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void AddItem(string Text, string Value)
|
||||
{
|
||||
if (Value.IndexOf(Guid.Empty.ToString()) == -1)
|
||||
cbSource.Items.Add(new Telerik.Web.UI.RadComboBoxItem(Text, Value));
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region Toolbar and other master page messages
|
||||
|
||||
/// <summary>
|
||||
/// Messages from master page
|
||||
/// </summary>
|
||||
void HandleAyMessage()
|
||||
{
|
||||
switch (Master.AyMessage.MessageType)
|
||||
{
|
||||
case AYMessageType.ToolBarClick:
|
||||
{
|
||||
switch (Master.AyMessage.Message)
|
||||
{
|
||||
case "LT:UI.Command.Close":
|
||||
CloseForm();
|
||||
break;
|
||||
case "LT:UI.Command.Save":
|
||||
SaveRecord();
|
||||
break;
|
||||
case "LT:UI.Command.SaveClose":
|
||||
if (SaveRecord())
|
||||
CloseForm();
|
||||
break;
|
||||
case "LT:UI.Command.Delete":
|
||||
ScheduleMarker.DeleteItem(CurrentScheduleMarker.ID);
|
||||
CloseForm();
|
||||
break;
|
||||
case "LT:UI.Command.SaveNew":
|
||||
if (SaveRecord())
|
||||
{
|
||||
Session.Remove("schedulemarker");
|
||||
mScheduleMarker = null;
|
||||
Response.Redirect("ScheduleMarkerEdit.aspx");
|
||||
}
|
||||
break;
|
||||
case "LT:UI.Command.RecordHistory":
|
||||
Util.PopupAlert(this.Page, Util.RecordHistoryText(
|
||||
CurrentScheduleMarker.Creator,
|
||||
CurrentScheduleMarker.Modifier,
|
||||
CurrentScheduleMarker.Created,
|
||||
CurrentScheduleMarker.Modified
|
||||
));
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private bool SaveRecord()
|
||||
{
|
||||
if (!CurrentScheduleMarker.IsDirty) return true;
|
||||
if (CurrentScheduleMarker.IsSavable)
|
||||
{
|
||||
Session["schedulemarker"] = mScheduleMarker = (ScheduleMarker)mScheduleMarker.Save();
|
||||
|
||||
this.Master.SetErrors("");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//display broken rules, or whatever, see book
|
||||
this.Master.SetErrors(mScheduleMarker.BrokenRulesText);
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void CloseForm()
|
||||
{
|
||||
Session.Remove("schedulemarker");
|
||||
CloseMe();
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
protected void btnOpenFollowObject_Click(object sender, EventArgs e)
|
||||
{
|
||||
Util.OpenEditWindow(this, CurrentScheduleMarker.FollowType, CurrentScheduleMarker.FollowID);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user