diff --git a/PROMS/Formats/fmtall/VEGP1all.xml b/PROMS/Formats/fmtall/VEGP1all.xml index 09565922..3904e24a 100644 Binary files a/PROMS/Formats/fmtall/VEGP1all.xml and b/PROMS/Formats/fmtall/VEGP1all.xml differ diff --git a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs index cdbfc521..60266e0e 100644 --- a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs +++ b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs @@ -1478,19 +1478,34 @@ namespace VEPROMS { ProcedureConfig pc = procedureInfo.MyConfig as ProcedureConfig; if (pc == null) return; - pc.SelectedSlave = selectedSlave; + + pc.SelectedSlave = selectedSlave; pc.Print_Rev = revNumber; //AppRevDate Change pc.Print_RevDate = revDate.ToString("MM/dd/yyyy"); - pc.Print_ChangeBarDate = dts.ToString("MM/dd/yyyy HH:mm:ss"); + pc.Print_ChangeBarDate = dts.ToString("MM/dd/yyyy HH:mm:ss"); //this is needed to set the changebar date for an indeividual unit also using (Item itm = Item.Get(procedureInfo.ItemID)) { itm.MyContent.Config = pc.ToString(); //itm.DTS = dts; itm.UserID = Volian.Base.Library.VlnSettings.UserID; itm.Save(); - } + //C2026-015 set overall change bar date + if (selectedSlave > 0) + { + pc.SelectedSlave = 0; + pc.Print_Rev = revNumber; + pc.Print_RevDate = revDate.ToString("MM/dd/yyyy"); + pc.Print_ChangeBarDate = dts.ToString("MM/dd/yyyy HH:mm:ss"); //this is needed to set the changebar date for an indeividual unit also + using (Item itm2 = Item.Get(procedureInfo.ItemID)) + { + itm2.MyContent.Config = pc.ToString(); + itm2.UserID = Volian.Base.Library.VlnSettings.UserID; + itm2.Save(); + } + } + } } } public class RevType diff --git a/PROMS/VEPROMS User Interface/dlgSetChangeBarStartDate.cs b/PROMS/VEPROMS User Interface/dlgSetChangeBarStartDate.cs index a9ba9321..1ccd47a5 100644 --- a/PROMS/VEPROMS User Interface/dlgSetChangeBarStartDate.cs +++ b/PROMS/VEPROMS User Interface/dlgSetChangeBarStartDate.cs @@ -68,8 +68,26 @@ namespace VEPROMS MyProcConfig.Print_ChangeBarDate = dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss");// ("MM/dd/yyyy HH:mm:ss"); //CSM - C2026-010 - Add Audit Record for Change Bar Audit History - ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({ dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss")}) by ({ VlnSettings.UserID}) on ({DateTime.Now})", DateTime.Now, VlnSettings.UserID, 0); + ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss")}) by ({VlnSettings.UserID}) on ({DateTime.Now})", DateTime.Now, VlnSettings.UserID, 0); + //CSM C2026-014 if multi-unit, set for each unit + System.Data.DataTable dt = RevisionData.GetRevisionDataByUnit(MyProcInfo.ItemID); + if (RevisionData.HasUnits(dt)) + { + //Change the ChangeBarDate for each unit + foreach (DataRow r in dt.Rows) + { + if (!r.IsNull("UnitID")) + { + MyProcConfig.SelectedSlave = Convert.ToInt32(r["UnitID"]); + MyProcConfig.Print_ChangeBarDate = dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss"); + + //CSM - C2026-010 - Add Audit Record for Change Bar Audit History + ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Set ChangeBars set to ({dateTimeInput1.Value.ToString("MM/dd/yyyy HH:mm:ss")}) by ({VlnSettings.UserID}) on ({DateTime.Now}) for (Unit {r["UnitName"]})", DateTime.Now, VlnSettings.UserID, MyProcConfig.SelectedSlave); + } + } + MyProcConfig.SelectedSlave = 0; + } } @@ -108,7 +126,10 @@ namespace VEPROMS sb.Append($" The Procedure Viewer Change Bar Date will be set to ({maxDTS})."); foreach (DataRow r in dt.Rows) { - sb.Append($"\r\n The Change Bar Date for Unit ({r["UnitName"]}) will be set to ({Convert.ToDateTime(r["DTS"]):MM/dd/yyyy HH:mm:ss})."); + if (!r.IsNull("UnitID")) + { + sb.Append($"\r\n The Change Bar Date for Unit ({r["UnitName"]}) will be set to ({Convert.ToDateTime(r["DTS"]):MM/dd/yyyy HH:mm:ss})."); + } } sb.Append("\r\n Any Change Bars for Units not listed above will use the Overall/Procedure Viewer Change Bar Date (as these Units have no approvals)."); @@ -121,12 +142,14 @@ namespace VEPROMS //Change the ChangeBarDate for each unit foreach (DataRow r in dt.Rows) { - MyProcConfig.SelectedSlave = Convert.ToInt32(r["UnitID"]); - MyProcConfig.Print_ChangeBarDate = Convert.ToDateTime(r["DTS"]).ToString("MM / dd / yyyy HH: mm: ss"); - - //CSM - C2026-010 - Add Audit Record for Change Bar Audit History - ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Reset ChangeBars performed by ({VlnSettings.UserID}) on ({DateTime.Now}). ChangeBars reset to show since last approval ({Convert.ToDateTime(r["DTS"]):MM/dd/yyyy HH:mm:ss}) for (Unit {r["UnitName"]})", DateTime.Now, VlnSettings.UserID, MyProcConfig.SelectedSlave); + if (!r.IsNull("UnitID")) + { + MyProcConfig.SelectedSlave = Convert.ToInt32(r["UnitID"]); + MyProcConfig.Print_ChangeBarDate = Convert.ToDateTime(r["DTS"]).ToString("MM / dd / yyyy HH: mm: ss"); + //CSM - C2026-010 - Add Audit Record for Change Bar Audit History + ChangeBarAuditHistory.AddAudit(MyProcInfo.ItemID, $"Reset ChangeBars performed by ({VlnSettings.UserID}) on ({DateTime.Now}). ChangeBars reset to show since last approval ({Convert.ToDateTime(r["DTS"]):MM/dd/yyyy HH:mm:ss}) for (Unit {r["UnitName"]})", DateTime.Now, VlnSettings.UserID, MyProcConfig.SelectedSlave); + } } MyProcConfig.SelectedSlave = 0; DialogResult = DialogResult.OK; diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index b73ef4bd..4d7b9987 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -4113,7 +4113,7 @@ namespace VEPROMS.CSLA.Library // date). Print_ViewableAfterChangeBarDate was created to get only that user specified date, if it exists. If it does exist, we compare // that with the Content datetime, otherwise we proceed as before. DateTime? viewableStartingDateTime = (MyProcedure.MyConfig as ProcedureConfig).Print_ViewableStartingChangeBarDate; - if (viewableStartingDateTime != null && viewableStartingDateTime > MyProcedure.ChangeBarDate) + if (viewableStartingDateTime != null && viewableStartingDateTime > MyProcedure.ChangeBarDate && (MyProcedure.MyConfig as ProcedureConfig).SelectedSlave == 0) return (MyContent.DTS > viewableStartingDateTime); return (MyContent.DTS > MyProcedure.ChangeBarDate); } diff --git a/PROMS/Volian.Controls.Library/DisplayApplicability.Designer.cs b/PROMS/Volian.Controls.Library/DisplayApplicability.Designer.cs index cc37fbea..e51b1e5b 100644 --- a/PROMS/Volian.Controls.Library/DisplayApplicability.Designer.cs +++ b/PROMS/Volian.Controls.Library/DisplayApplicability.Designer.cs @@ -23,7 +23,6 @@ namespace Volian.Controls.Library base.Dispose(disposing); } - #region Component Designer generated code /// @@ -34,7 +33,6 @@ namespace Volian.Controls.Library { this.gpMode = new DevComponents.DotNetBar.Controls.GroupPanel(); this.gpItem = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.btnApplicabilitychg2 = new DevComponents.DotNetBar.ButtonItem(); this.btnApplicabilitychg = new DevComponents.DotNetBar.ButtonX(); this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); this.gpItem.SuspendLayout(); @@ -42,14 +40,14 @@ namespace Volian.Controls.Library // // btnApplicabilitychg // - this.btnApplicabilitychg.Location = new System.Drawing.Point(60, 8); + this.btnApplicabilitychg.Location = new System.Drawing.Point(90, 8); this.btnApplicabilitychg.Margin = new System.Windows.Forms.Padding(4); this.btnApplicabilitychg.BackColor = System.Drawing.SystemColors.Control; this.btnApplicabilitychg.Name = "btnApplicabilitychg"; - this.btnApplicabilitychg.Size = new System.Drawing.Size(80, 22); + this.btnApplicabilitychg.Size = new System.Drawing.Size(87, 22); this.btnApplicabilitychg.Margin = new System.Windows.Forms.Padding(2); this.btnApplicabilitychg.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.superTooltip1.SetSuperTooltip(this.btnApplicabilitychg, new DevComponents.DotNetBar.SuperTooltipInfo("Change applicability settings - All At Level", "", "When clicked, all steps at the level of the current step will have their applicability settings changed. Note that for two column procedures, the left column and right column are handled separately.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); + this.superTooltip1.SetSuperTooltip(this.btnApplicabilitychg, new DevComponents.DotNetBar.SuperTooltipInfo("Set All at Level", "", "When clicked, all steps at that level of the current step will be set to the selected applicability. Note that the Set All at Level button is disabled for RNO step types unless they are substeps off of a RNO step.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); // C2026-034 fix tool tip text. this.btnApplicabilitychg.TabIndex = 0; this.btnApplicabilitychg.Text = "Set All at Level"; this.btnApplicabilitychg.ColorTable = DevComponents.DotNetBar.eButtonColor.BlueOrb; @@ -106,13 +104,12 @@ namespace Volian.Controls.Library this.gpItem.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.gpItem.CanvasColor = System.Drawing.SystemColors.Control; this.gpItem.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - //this.gpItem.Controls.Add(this.btnApplicabilitychg); this.gpItem.DisabledBackColor = System.Drawing.Color.Empty; this.gpItem.Dock = System.Windows.Forms.DockStyle.Top; this.gpItem.Location = new System.Drawing.Point(0, 49); this.gpItem.Margin = new System.Windows.Forms.Padding(4); this.gpItem.Name = "gpItem"; - this.gpItem.Padding = new System.Windows.Forms.Padding(13, 12, 13, 37); + this.gpItem.Padding = new System.Windows.Forms.Padding(0, 20, 0, 0); this.gpItem.Size = new System.Drawing.Size(432, 85); // // @@ -169,9 +166,9 @@ namespace Volian.Controls.Library private DevComponents.DotNetBar.Controls.GroupPanel gpMode; private DevComponents.DotNetBar.Controls.GroupPanel gpItem; - private DevComponents.DotNetBar.ButtonItem btnApplicabilitychg2; private DevComponents.DotNetBar.ButtonX btnApplicabilitychg; private DevComponents.DotNetBar.SuperTooltip superTooltip1; } } + diff --git a/PROMS/Volian.Controls.Library/DisplayApplicability.cs b/PROMS/Volian.Controls.Library/DisplayApplicability.cs index 48b7003e..1f4a388c 100644 --- a/PROMS/Volian.Controls.Library/DisplayApplicability.cs +++ b/PROMS/Volian.Controls.Library/DisplayApplicability.cs @@ -21,20 +21,24 @@ namespace Volian.Controls.Library if (ApplicabilityViewModeChanged != null) ApplicabilityViewModeChanged(this, new EventArgs()); } + private DisplayTabItem _MyDisplayTabItem = null; public DisplayTabItem MyDisplayTabItem { get { return _MyDisplayTabItem; } set { - if (DesignMode) return; // B2019-043 need to check if we are just saving changes to the user interface + if (DesignMode) return; // B2019-043 need to check if we are just saving changes to the user interface _MyDisplayTabItem = value; gpMode.Controls.Clear(); gpItem.Controls.Clear(); MyCheckBoxes.Clear(); if (_MyDisplayTabItem != null) { - DocVersionConfig dcfg = _MyDisplayTabItem.MyItemInfo.MyDocVersion.MyConfig as DocVersionConfig; + //B2026-043 Fix "Set All At Level" button. + DevComponents.DotNetBar.Controls.GroupPanel gpSubItem = InitializegpSubItem(); + + DocVersionConfig dcfg = _MyDisplayTabItem.MyItemInfo.MyDocVersion.MyConfig as DocVersionConfig; List names = new List(); for (int n = 1; n <= dcfg.Unit_Count; n++) { @@ -42,7 +46,7 @@ namespace Volian.Controls.Library names.Add(dcfg.Unit_Name); } dcfg.SelectedSlave = 0; -// string[] names = dcfg.Unit_Name.Split(','); + // string[] names = dcfg.Unit_Name.Split(','); int apple = -1; if(_MyDisplayTabItem.MyStepTabPanel != null) apple = _MyDisplayTabItem.MyStepTabPanel.MyStepPanel.ApplDisplayMode; @@ -54,11 +58,13 @@ namespace Volian.Controls.Library AddViewMode(name.Trim(), i.ToString(), apple == i); } - AddItemMode("All", "-1"); + AddItemMode("All", "-1", ref gpSubItem); i = 0; foreach (string name in names) - AddItemMode(name.Trim(), (++i).ToString()); - AddItemMode("None", "0"); + AddItemMode(name.Trim(), (++i).ToString(), ref gpSubItem); + AddItemMode("None", "0", ref gpSubItem); + gpItem.Controls.Add(gpSubItem); + gpSubItem.BringToFront(); gpItem.Controls.Add(btnApplicabilitychg); btnApplicabilitychg.BringToFront(); if (_MyDisplayTabItem.MyStepTabPanel != null) @@ -85,6 +91,37 @@ namespace Volian.Controls.Library return 0; } } + private DevComponents.DotNetBar.Controls.GroupPanel InitializegpSubItem() //B2026-043 Fix "Set All At Level" button. + { + DevComponents.DotNetBar.Controls.GroupPanel gpSubItem; + gpSubItem = new DevComponents.DotNetBar.Controls.GroupPanel + { + // + // gpSubItem + // + AutoSize = true, + AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink, + CanvasColor = System.Drawing.SystemColors.Control, + ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007, + DisabledBackColor = System.Drawing.Color.Empty, + Dock = System.Windows.Forms.DockStyle.Top, + Location = new System.Drawing.Point(0, 49), + Margin = new System.Windows.Forms.Padding(4), + Name = "gpSubItem", + Padding = new System.Windows.Forms.Padding(13, 12, 13, 37) + }; + gpSubItem.BackColor = Color.Transparent; + gpSubItem.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; + gpSubItem.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + gpSubItem.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; + gpSubItem.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; + gpSubItem.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; + gpSubItem.TabIndex = 1; + gpSubItem.Text = ""; + gpSubItem.Location = new System.Drawing.Point(0, 49); + gpSubItem.Size = new System.Drawing.Size(400, 250); + return gpSubItem; + } private Dictionary MyCheckBoxes = new Dictionary(); private string _MyApplicability = string.Empty; public string MyApplicability @@ -128,20 +165,25 @@ namespace Volian.Controls.Library // } //} //} - private void AddItemMode(string name, string value) + private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem) { CheckBox cb = new CheckBox(); cb.BackColor = Color.Transparent; + cb.Height = 24; + cb.Width = 75; + cb.AutoSize = true; cb.Text = name; cb.Tag = value; cb.Dock = DockStyle.Top; - gpItem.Controls.Add(cb); + gpSubItem.Controls.Add(cb); cb.BringToFront(); cb.CheckedChanged += new EventHandler(cb_CheckedChanged); MyCheckBoxes.Add(value == null ? -1 : int.Parse(value), cb); } private void cb_CheckedChanged(object sender, EventArgs e) { + EditItem ei = MyDisplayTabItem.MyStepTabPanel.SelectedEditItem; + ei.SaveCurrentAndContents(); // C2026-035 save unsaved step text. UnwireCheckboxes(false); CheckBox cb = sender as CheckBox; CheckState cs = cb.CheckState; @@ -287,8 +329,12 @@ namespace Volian.Controls.Library MasterSlave_ApplicabilityTmp = sc.MasterSlave_Applicability; StringBuilder sb = new StringBuilder(); + EditItem ei = MyDisplayTabItem.MyStepTabPanel.SelectedEditItem; + ei.SaveCurrentAndContents(); // C2026-035 save unsaved step text. - ItemInfo startitm = MyItemInfo.FirstSibling; + + + ItemInfo startitm = MyItemInfo.FirstSibling; while (startitm != null) { @@ -390,10 +436,18 @@ namespace Volian.Controls.Library } } } - _MyItemInfo = value; + _MyItemInfo = value; if (_MyItemInfo != null) { if (this.Visible == false) return; + if (_MyItemInfo.IsRNOPart == true) // Check if step is an RNO disable "Set All To Level" button. + { + btnApplicabilitychg.Enabled = false; + } + else + { + btnApplicabilitychg.Enabled = true; + } IItemConfig cfg = _MyItemInfo.MyConfig as IItemConfig; List apples = cfg.MasterSlave_Applicability.GetFlags(); UnwireCheckboxes(true); @@ -489,7 +543,7 @@ namespace Volian.Controls.Library public DisplayApplicability() { - InitializeComponent(); + InitializeComponent(); //B2026-043 Fix "Set All At Level" button. this.VisibleChanged += new EventHandler(DisplayApplicability_VisibleChanged); } @@ -500,3 +554,4 @@ namespace Volian.Controls.Library } } } +