Added logic to prevent the selection of a procedure that is open by a different user
This commit is contained in:
@@ -182,8 +182,15 @@ namespace VEPROMS
|
||||
{
|
||||
foreach (ProcedureInfo pi in _MyDocVersion.Procedures)
|
||||
{
|
||||
OwnerInfo oi = OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure);
|
||||
pi.MyDocVersion.DocVersionConfig.SelectedSlave = _MyDocVersion.DocVersionConfig.SelectedSlave;
|
||||
clbMore.Items.Add(pi.DisplayNumber);
|
||||
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
|
||||
{
|
||||
string prcNumber = pi.DisplayNumber + string.Format(" Checked out to {0}", oi.SessionUserID);
|
||||
clbMore.Items.Add(prcNumber);
|
||||
}
|
||||
else
|
||||
clbMore.Items.Add(pi.DisplayNumber);
|
||||
tmpProcedures.Add(pi.DisplayNumber, pi);
|
||||
}
|
||||
}
|
||||
@@ -200,7 +207,9 @@ namespace VEPROMS
|
||||
private Dictionary<string, ProcedureInfo> tmpProcedures = new Dictionary<string, ProcedureInfo>();
|
||||
private ProcedureInfo GetProcedureInfoByKey(string key)
|
||||
{
|
||||
if (tmpProcedures.ContainsKey(key))
|
||||
if (key.Contains(" Checked out to "))
|
||||
key = key.Substring(0, key.IndexOf(" Checked out to "));
|
||||
if (tmpProcedures.ContainsKey(key))
|
||||
return tmpProcedures[key];
|
||||
else
|
||||
return tmpProcedures[GetDisplayNumberOnly(key)];
|
||||
@@ -300,6 +309,15 @@ namespace VEPROMS
|
||||
}
|
||||
private void clbMore_ItemCheck(object sender, ItemCheckEventArgs e)
|
||||
{
|
||||
ProcedureInfo pi = GetProcedureInfoByKey(clbMore.Items[e.Index].ToString());
|
||||
OwnerInfo oi = OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure);
|
||||
if (oi != null && oi.SessionID != MySessionInfo.SessionID)
|
||||
{
|
||||
string msg = string.Format("Cannot select this procedure for approval.\n\n It is checked out to {0}", oi.SessionUserID);
|
||||
MessageBox.Show(msg,pi.DisplayNumber);
|
||||
e.NewValue = CheckState.Unchecked;
|
||||
return;
|
||||
}
|
||||
if (e.NewValue == CheckState.Checked)
|
||||
btnOkay.Enabled = true;
|
||||
else
|
||||
|
Reference in New Issue
Block a user