B2017-242 added a check for duplicate procedure numbers within the same procedure set, before doing an approval

This commit is contained in:
John Jenko 2017-10-25 17:48:05 +00:00
parent 8c37fd9fe4
commit b6be495117

View File

@ -703,11 +703,36 @@ namespace VEPROMS
rpt.BuildAllReport(dvi);
this.Cursor = Cursors.Default;
}
// B2017-242 added check for duplicate procedure numbers in a procedure set
// This is called before doing any of the approval
private bool DuplicateProcedureNumbers(DocVersionInfo dvi, ProcedureInfo pinfo)
{
List<string> pnList = new List<string>();
foreach (ProcedureInfo pi in dvi.Procedures)
{
if (!pnList.Contains(pi.DisplayNumber))
pnList.Add(pi.DisplayNumber);
else if (pinfo != null)
{
if (pinfo.DisplayNumber == pi.DisplayNumber)
return true;
}
else
return true;
}
return false;
}
void tv_ApproveSomeProcedures(object sender, vlnTreeEventArgs args)
{
DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo;
if (dvi == null) return;
// B2017-242 added check for duplicate procedure numbers in a procedure set
if (DuplicateProcedureNumbers(dvi, null))
{
MessageBox.Show("This procedure set has two or more procedures with the same procedure number.\n\n" +
"Please make each procedure number unique before approving.", "Approve Some Procedures");
return;
}
tc.SaveCurrentEditItem();
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message))
@ -729,6 +754,13 @@ namespace VEPROMS
{
DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo;
if (dvi == null) return;
// B2017-242 added check for duplicate procedure numbers in a procedure set
if (DuplicateProcedureNumbers(dvi, null))
{
MessageBox.Show("This procedure set has two or more procedures with the same procedure number.\n\n" +
"Please make each procedure number unique before approving.", "Approve All Procedures");
return;
}
tc.SaveCurrentEditItem();
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message))
@ -806,6 +838,13 @@ namespace VEPROMS
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
if (pi == null) return;
// B2017-242 added check for duplicate procedure numbers in a procedure set
if (DuplicateProcedureNumbers(pi.MyDocVersion, pi))
{
MessageBox.Show("There is another procedure in this set with the same procedure number.\n\n" +
"Please make each procedure number unique before approving.", "Approve Procedure");
return;
}
tc.SaveCurrentEditItem(pi);
string message = string.Empty;
if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message))