diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 334f5dde..920fa35e 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -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 pnList = new List(); + 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))