diff --git a/PROMS/VEPROMS User Interface/App.config b/PROMS/VEPROMS User Interface/App.config
index c9a1f886..f8295f04 100644
--- a/PROMS/VEPROMS User Interface/App.config
+++ b/PROMS/VEPROMS User Interface/App.config
@@ -90,9 +90,9 @@
-
-
-
+
+
+
diff --git a/PROMS/VEPROMS User Interface/dlgApproveProcedure.Designer.cs b/PROMS/VEPROMS User Interface/dlgApproveProcedure.Designer.cs
new file mode 100644
index 00000000..7970a8a0
--- /dev/null
+++ b/PROMS/VEPROMS User Interface/dlgApproveProcedure.Designer.cs
@@ -0,0 +1,632 @@
+namespace VEPROMS
+{
+ partial class dlgApproveProcedure
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(dlgApproveProcedure));
+ this.approvalInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);
+ this.stageInfoBindingSource = new System.Windows.Forms.BindingSource(this.components);
+ this.revTypeBindingSource = new System.Windows.Forms.BindingSource(this.components);
+ this.chkViewPDF = new DevComponents.DotNetBar.Controls.CheckBoxX();
+ this.pnlApprove = new System.Windows.Forms.Panel();
+ this.btnIncrement = new DevComponents.DotNetBar.ButtonX();
+ this.chkSetAllDates = new DevComponents.DotNetBar.Controls.CheckBoxX();
+ this.btnModifyList = new DevComponents.DotNetBar.ButtonX();
+ this.fgProcs = new C1.Win.C1FlexGrid.C1FlexGrid();
+ this.approvalProcedureBindingSource = new System.Windows.Forms.BindingSource(this.components);
+ this.chkCascade2 = new DevComponents.DotNetBar.Controls.CheckBoxX();
+ this.btnCheck2 = new DevComponents.DotNetBar.ButtonX();
+ this.ssMsg2 = new System.Windows.Forms.StatusStrip();
+ this.tsslMsg2 = new System.Windows.Forms.ToolStripStatusLabel();
+ this.btnApprove2 = new DevComponents.DotNetBar.ButtonX();
+ this.btnCancel2 = new DevComponents.DotNetBar.ButtonX();
+ this.labelX14 = new DevComponents.DotNetBar.LabelX();
+ this.txtRevisionNotes2 = new DevComponents.DotNetBar.Controls.TextBoxX();
+ this.labelX16 = new DevComponents.DotNetBar.LabelX();
+ this.cmbRevisionType2 = new DevComponents.DotNetBar.Controls.ComboBoxEx();
+ this.cmbRevisionStage2 = new DevComponents.DotNetBar.Controls.ComboBoxEx();
+ this.labelX17 = new DevComponents.DotNetBar.LabelX();
+ this.pnlSelect = new System.Windows.Forms.Panel();
+ this.lblPhase = new DevComponents.DotNetBar.LabelX();
+ this.chkCascadeMore = new DevComponents.DotNetBar.Controls.CheckBoxX();
+ this.btnReportMore = new DevComponents.DotNetBar.ButtonX();
+ this.pbMore = new System.Windows.Forms.ProgressBar();
+ this.btnCheckMore = new DevComponents.DotNetBar.ButtonX();
+ this.btnClear = new DevComponents.DotNetBar.ButtonX();
+ this.btnAll = new DevComponents.DotNetBar.ButtonX();
+ this.clbMore = new System.Windows.Forms.CheckedListBox();
+ this.btnOkay = new DevComponents.DotNetBar.ButtonX();
+ this.btnCancelMore = new DevComponents.DotNetBar.ButtonX();
+ this.lblMore = new DevComponents.DotNetBar.LabelX();
+ this.sttMore = new DevComponents.DotNetBar.SuperTooltip();
+ this.pnlRogue = new System.Windows.Forms.Panel();
+ ((System.ComponentModel.ISupportInitialize)(this.approvalInfoBindingSource)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stageInfoBindingSource)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revTypeBindingSource)).BeginInit();
+ this.pnlApprove.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.fgProcs)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.approvalProcedureBindingSource)).BeginInit();
+ this.ssMsg2.SuspendLayout();
+ this.pnlSelect.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // approvalInfoBindingSource
+ //
+ this.approvalInfoBindingSource.AllowNew = false;
+ this.approvalInfoBindingSource.DataSource = typeof(VEPROMS.ApprovalInfo);
+ //
+ // stageInfoBindingSource
+ //
+ this.stageInfoBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.StageInfo);
+ //
+ // revTypeBindingSource
+ //
+ this.revTypeBindingSource.DataSource = typeof(VEPROMS.RevType);
+ //
+ // chkViewPDF
+ //
+ //
+ //
+ //
+ this.chkViewPDF.BackgroundStyle.Class = "";
+ this.chkViewPDF.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.chkViewPDF.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.approvalInfoBindingSource, "ViewPDF", true));
+ this.chkViewPDF.Location = new System.Drawing.Point(279, 150);
+ this.chkViewPDF.Name = "chkViewPDF";
+ this.chkViewPDF.Size = new System.Drawing.Size(76, 23);
+ this.chkViewPDF.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.chkViewPDF.TabIndex = 19;
+ this.chkViewPDF.Text = "View PDFs";
+ //
+ // pnlApprove
+ //
+ this.pnlApprove.Controls.Add(this.btnIncrement);
+ this.pnlApprove.Controls.Add(this.chkSetAllDates);
+ this.pnlApprove.Controls.Add(this.btnModifyList);
+ this.pnlApprove.Controls.Add(this.fgProcs);
+ this.pnlApprove.Controls.Add(this.chkCascade2);
+ this.pnlApprove.Controls.Add(this.btnCheck2);
+ this.pnlApprove.Controls.Add(this.ssMsg2);
+ this.pnlApprove.Controls.Add(this.btnApprove2);
+ this.pnlApprove.Controls.Add(this.chkViewPDF);
+ this.pnlApprove.Controls.Add(this.btnCancel2);
+ this.pnlApprove.Controls.Add(this.labelX14);
+ this.pnlApprove.Controls.Add(this.txtRevisionNotes2);
+ this.pnlApprove.Controls.Add(this.labelX16);
+ this.pnlApprove.Controls.Add(this.cmbRevisionType2);
+ this.pnlApprove.Controls.Add(this.cmbRevisionStage2);
+ this.pnlApprove.Controls.Add(this.labelX17);
+ this.pnlApprove.Dock = System.Windows.Forms.DockStyle.Left;
+ this.pnlApprove.Location = new System.Drawing.Point(522, 0);
+ this.pnlApprove.Name = "pnlApprove";
+ this.pnlApprove.Size = new System.Drawing.Size(450, 574);
+ this.pnlApprove.TabIndex = 23;
+ this.pnlApprove.LocationChanged += new System.EventHandler(this.Panel_LocationChanged);
+ //
+ // btnIncrement
+ //
+ this.btnIncrement.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnIncrement.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnIncrement.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnIncrement.DataBindings.Add(new System.Windows.Forms.Binding("Enabled", this.approvalInfoBindingSource, "CanApprove", true));
+ this.btnIncrement.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnIncrement.Location = new System.Drawing.Point(11, 121);
+ this.btnIncrement.Name = "btnIncrement";
+ this.btnIncrement.Size = new System.Drawing.Size(90, 23);
+ this.btnIncrement.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnIncrement.TabIndex = 33;
+ this.btnIncrement.Text = "Increment All";
+ this.btnIncrement.Click += new System.EventHandler(this.btnIncrement_Click);
+ //
+ // chkSetAllDates
+ //
+ //
+ //
+ //
+ this.chkSetAllDates.BackgroundStyle.Class = "";
+ this.chkSetAllDates.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.chkSetAllDates.Location = new System.Drawing.Point(11, 150);
+ this.chkSetAllDates.Name = "chkSetAllDates";
+ this.chkSetAllDates.Size = new System.Drawing.Size(100, 23);
+ this.chkSetAllDates.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.chkSetAllDates.TabIndex = 32;
+ this.chkSetAllDates.Text = "Set All Dates";
+ //
+ // btnModifyList
+ //
+ this.btnModifyList.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnModifyList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnModifyList.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnModifyList.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnModifyList.Location = new System.Drawing.Point(11, 179);
+ this.btnModifyList.Name = "btnModifyList";
+ this.btnModifyList.Size = new System.Drawing.Size(128, 23);
+ this.btnModifyList.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnModifyList.TabIndex = 31;
+ this.btnModifyList.Text = "Change Selection";
+ this.btnModifyList.Click += new System.EventHandler(this.btnModifyList_Click);
+ //
+ // fgProcs
+ //
+ this.fgProcs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.fgProcs.AutoGenerateColumns = false;
+ this.fgProcs.ColumnInfo = resources.GetString("fgProcs.ColumnInfo");
+ this.fgProcs.DataSource = this.approvalProcedureBindingSource;
+ this.fgProcs.ExtendLastCol = true;
+ this.fgProcs.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.fgProcs.Location = new System.Drawing.Point(11, 208);
+ this.fgProcs.Name = "fgProcs";
+ this.fgProcs.Rows.Count = 1;
+ this.fgProcs.Rows.DefaultSize = 19;
+ this.fgProcs.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Cell;
+ this.fgProcs.Size = new System.Drawing.Size(425, 341);
+ this.fgProcs.TabIndex = 30;
+ this.fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(this.fgProcs_AfterEdit);
+ this.fgProcs.AfterEdit += new C1.Win.C1FlexGrid.RowColEventHandler(this.fgProcs_AfterEdit);
+ //
+ // approvalProcedureBindingSource
+ //
+ this.approvalProcedureBindingSource.DataSource = typeof(VEPROMS.ApprovalProcedure);
+ //
+ // chkCascade2
+ //
+ //
+ //
+ //
+ this.chkCascade2.BackgroundStyle.Class = "";
+ this.chkCascade2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.chkCascade2.Location = new System.Drawing.Point(147, 150);
+ this.chkCascade2.Name = "chkCascade2";
+ this.chkCascade2.Size = new System.Drawing.Size(76, 23);
+ this.chkCascade2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.chkCascade2.TabIndex = 26;
+ this.chkCascade2.Text = "Cascade";
+ this.chkCascade2.CheckedChanged += new System.EventHandler(this.CascadeChecksUpdated);
+ //
+ // btnCheck2
+ //
+ this.btnCheck2.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnCheck2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnCheck2.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnCheck2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCheck2.Location = new System.Drawing.Point(147, 179);
+ this.btnCheck2.Name = "btnCheck2";
+ this.btnCheck2.Size = new System.Drawing.Size(127, 23);
+ this.btnCheck2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnCheck2.TabIndex = 23;
+ this.btnCheck2.Text = "Consistency Check";
+ this.btnCheck2.Click += new System.EventHandler(this.btnCheck_Click);
+ //
+ // ssMsg2
+ //
+ this.ssMsg2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.tsslMsg2});
+ this.ssMsg2.Location = new System.Drawing.Point(0, 552);
+ this.ssMsg2.Name = "ssMsg2";
+ this.ssMsg2.Size = new System.Drawing.Size(450, 22);
+ this.ssMsg2.TabIndex = 22;
+ //
+ // tsslMsg2
+ //
+ this.tsslMsg2.Name = "tsslMsg2";
+ this.tsslMsg2.Size = new System.Drawing.Size(0, 17);
+ //
+ // btnApprove2
+ //
+ this.btnApprove2.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnApprove2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnApprove2.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnApprove2.DataBindings.Add(new System.Windows.Forms.Binding("Enabled", this.approvalInfoBindingSource, "CanApprove", true));
+ this.btnApprove2.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.btnApprove2.Enabled = false;
+ this.btnApprove2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnApprove2.Location = new System.Drawing.Point(280, 179);
+ this.btnApprove2.Name = "btnApprove2";
+ this.btnApprove2.Size = new System.Drawing.Size(75, 23);
+ this.btnApprove2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnApprove2.TabIndex = 14;
+ this.btnApprove2.Text = "Approve";
+ this.btnApprove2.Click += new System.EventHandler(this.btnApprove_Click);
+ //
+ // btnCancel2
+ //
+ this.btnCancel2.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnCancel2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnCancel2.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnCancel2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnCancel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCancel2.Location = new System.Drawing.Point(361, 179);
+ this.btnCancel2.Name = "btnCancel2";
+ this.btnCancel2.Size = new System.Drawing.Size(75, 23);
+ this.btnCancel2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnCancel2.TabIndex = 13;
+ this.btnCancel2.Text = "Cancel";
+ //
+ // labelX14
+ //
+ this.labelX14.AutoSize = true;
+ //
+ //
+ //
+ this.labelX14.BackgroundStyle.Class = "";
+ this.labelX14.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX14.Location = new System.Drawing.Point(21, 64);
+ this.labelX14.Name = "labelX14";
+ this.labelX14.Size = new System.Drawing.Size(80, 15);
+ this.labelX14.TabIndex = 18;
+ this.labelX14.Text = "Revision Notes:";
+ //
+ // txtRevisionNotes2
+ //
+ this.txtRevisionNotes2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ //
+ //
+ //
+ this.txtRevisionNotes2.Border.Class = "TextBoxBorder";
+ this.txtRevisionNotes2.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.txtRevisionNotes2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.approvalInfoBindingSource, "RevNote", true));
+ this.txtRevisionNotes2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.txtRevisionNotes2.Location = new System.Drawing.Point(107, 64);
+ this.txtRevisionNotes2.Multiline = true;
+ this.txtRevisionNotes2.Name = "txtRevisionNotes2";
+ this.txtRevisionNotes2.Size = new System.Drawing.Size(327, 80);
+ this.txtRevisionNotes2.TabIndex = 17;
+ //
+ // labelX16
+ //
+ this.labelX16.AutoSize = true;
+ //
+ //
+ //
+ this.labelX16.BackgroundStyle.Class = "";
+ this.labelX16.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX16.Location = new System.Drawing.Point(21, 38);
+ this.labelX16.Name = "labelX16";
+ this.labelX16.Size = new System.Drawing.Size(80, 15);
+ this.labelX16.TabIndex = 16;
+ this.labelX16.Text = "Revision Stage:";
+ //
+ // cmbRevisionType2
+ //
+ this.cmbRevisionType2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmbRevisionType2.DataSource = this.revTypeBindingSource;
+ this.cmbRevisionType2.DisplayMember = "TypeName";
+ this.cmbRevisionType2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+ this.cmbRevisionType2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbRevisionType2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cmbRevisionType2.FormattingEnabled = true;
+ this.cmbRevisionType2.ItemHeight = 14;
+ this.cmbRevisionType2.Location = new System.Drawing.Point(107, 12);
+ this.cmbRevisionType2.Name = "cmbRevisionType2";
+ this.cmbRevisionType2.Size = new System.Drawing.Size(327, 20);
+ this.cmbRevisionType2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.cmbRevisionType2.TabIndex = 11;
+ this.cmbRevisionType2.ValueMember = "TypeID";
+ this.cmbRevisionType2.SelectedIndexChanged += new System.EventHandler(this.cmbRevisionType_SelectedIndexChanged);
+ //
+ // cmbRevisionStage2
+ //
+ this.cmbRevisionStage2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmbRevisionStage2.DataSource = this.stageInfoBindingSource;
+ this.cmbRevisionStage2.DisplayMember = "Name";
+ this.cmbRevisionStage2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+ this.cmbRevisionStage2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.cmbRevisionStage2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cmbRevisionStage2.FormattingEnabled = true;
+ this.cmbRevisionStage2.ItemHeight = 14;
+ this.cmbRevisionStage2.Location = new System.Drawing.Point(107, 38);
+ this.cmbRevisionStage2.Name = "cmbRevisionStage2";
+ this.cmbRevisionStage2.Size = new System.Drawing.Size(327, 20);
+ this.cmbRevisionStage2.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.cmbRevisionStage2.TabIndex = 15;
+ this.cmbRevisionStage2.ValueMember = "StageID";
+ this.cmbRevisionStage2.SelectedIndexChanged += new System.EventHandler(this.cmbRevisionStage_SelectedIndexChanged);
+ //
+ // labelX17
+ //
+ this.labelX17.AutoSize = true;
+ //
+ //
+ //
+ this.labelX17.BackgroundStyle.Class = "";
+ this.labelX17.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.labelX17.Location = new System.Drawing.Point(21, 12);
+ this.labelX17.Name = "labelX17";
+ this.labelX17.Size = new System.Drawing.Size(75, 15);
+ this.labelX17.TabIndex = 10;
+ this.labelX17.Text = "Revision Type:";
+ //
+ // pnlSelect
+ //
+ this.pnlSelect.Controls.Add(this.lblPhase);
+ this.pnlSelect.Controls.Add(this.chkCascadeMore);
+ this.pnlSelect.Controls.Add(this.btnReportMore);
+ this.pnlSelect.Controls.Add(this.pbMore);
+ this.pnlSelect.Controls.Add(this.btnCheckMore);
+ this.pnlSelect.Controls.Add(this.btnClear);
+ this.pnlSelect.Controls.Add(this.btnAll);
+ this.pnlSelect.Controls.Add(this.clbMore);
+ this.pnlSelect.Controls.Add(this.btnOkay);
+ this.pnlSelect.Controls.Add(this.btnCancelMore);
+ this.pnlSelect.Controls.Add(this.lblMore);
+ this.pnlSelect.Dock = System.Windows.Forms.DockStyle.Left;
+ this.pnlSelect.Location = new System.Drawing.Point(72, 0);
+ this.pnlSelect.Name = "pnlSelect";
+ this.pnlSelect.Size = new System.Drawing.Size(450, 574);
+ this.pnlSelect.TabIndex = 24;
+ this.pnlSelect.LocationChanged += new System.EventHandler(this.Panel_LocationChanged);
+ //
+ // lblPhase
+ //
+ this.lblPhase.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ //
+ //
+ //
+ this.lblPhase.BackgroundStyle.Class = "";
+ this.lblPhase.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.lblPhase.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lblPhase.Location = new System.Drawing.Point(300, 20);
+ this.lblPhase.Name = "lblPhase";
+ this.lblPhase.Size = new System.Drawing.Size(35, 38);
+ this.lblPhase.TabIndex = 32;
+ this.lblPhase.TextAlignment = System.Drawing.StringAlignment.Center;
+ //
+ // chkCascadeMore
+ //
+ this.chkCascadeMore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ //
+ //
+ //
+ this.chkCascadeMore.BackgroundStyle.Class = "";
+ this.chkCascadeMore.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.chkCascadeMore.Location = new System.Drawing.Point(131, 510);
+ this.chkCascadeMore.Name = "chkCascadeMore";
+ this.chkCascadeMore.Size = new System.Drawing.Size(89, 23);
+ this.chkCascadeMore.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.chkCascadeMore.TabIndex = 31;
+ this.chkCascadeMore.Text = "Cascade";
+ this.chkCascadeMore.CheckedChanged += new System.EventHandler(this.CascadeChecksUpdated);
+ //
+ // btnReportMore
+ //
+ this.btnReportMore.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnReportMore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnReportMore.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnReportMore.Enabled = false;
+ this.btnReportMore.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnReportMore.Location = new System.Drawing.Point(15, 539);
+ this.btnReportMore.Name = "btnReportMore";
+ this.btnReportMore.Size = new System.Drawing.Size(110, 23);
+ this.btnReportMore.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnReportMore.TabIndex = 30;
+ this.btnReportMore.Text = "View Report";
+ this.btnReportMore.Click += new System.EventHandler(this.btnReportMore_Click);
+ //
+ // pbMore
+ //
+ this.pbMore.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.pbMore.Location = new System.Drawing.Point(15, 35);
+ this.pbMore.Name = "pbMore";
+ this.pbMore.Size = new System.Drawing.Size(279, 23);
+ this.pbMore.TabIndex = 29;
+ this.pbMore.Visible = false;
+ //
+ // btnCheckMore
+ //
+ this.btnCheckMore.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnCheckMore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnCheckMore.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnCheckMore.Enabled = false;
+ this.btnCheckMore.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCheckMore.Location = new System.Drawing.Point(131, 539);
+ this.btnCheckMore.Name = "btnCheckMore";
+ this.btnCheckMore.Size = new System.Drawing.Size(145, 23);
+ this.btnCheckMore.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnCheckMore.TabIndex = 28;
+ this.btnCheckMore.Text = "Consistency Check";
+ this.btnCheckMore.Click += new System.EventHandler(this.btnCheckMore_Click);
+ //
+ // btnClear
+ //
+ this.btnClear.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnClear.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnClear.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnClear.Location = new System.Drawing.Point(341, 38);
+ this.btnClear.Name = "btnClear";
+ this.btnClear.Size = new System.Drawing.Size(97, 23);
+ this.btnClear.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnClear.TabIndex = 27;
+ this.btnClear.Text = "Clear All";
+ this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
+ //
+ // btnAll
+ //
+ this.btnAll.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnAll.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnAll.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnAll.Location = new System.Drawing.Point(341, 12);
+ this.btnAll.Name = "btnAll";
+ this.btnAll.Size = new System.Drawing.Size(97, 23);
+ this.btnAll.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnAll.TabIndex = 26;
+ this.btnAll.Text = "Select All";
+ this.btnAll.Click += new System.EventHandler(this.btnAll_Click);
+ //
+ // clbMore
+ //
+ this.clbMore.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.clbMore.CheckOnClick = true;
+ this.clbMore.FormattingEnabled = true;
+ this.clbMore.HorizontalScrollbar = true;
+ this.clbMore.Location = new System.Drawing.Point(15, 68);
+ this.clbMore.Name = "clbMore";
+ this.clbMore.Size = new System.Drawing.Size(423, 439);
+ this.sttMore.SetSuperTooltip(this.clbMore, new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Lemon));
+ this.clbMore.TabIndex = 25;
+ this.clbMore.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.clbMore_ItemCheck);
+ this.clbMore.MouseMove += new System.Windows.Forms.MouseEventHandler(this.clbMore_MouseMove);
+ //
+ // btnOkay
+ //
+ this.btnOkay.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnOkay.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnOkay.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnOkay.Enabled = false;
+ this.btnOkay.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnOkay.Location = new System.Drawing.Point(282, 539);
+ this.btnOkay.Name = "btnOkay";
+ this.btnOkay.Size = new System.Drawing.Size(75, 23);
+ this.btnOkay.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnOkay.TabIndex = 14;
+ this.btnOkay.Text = "Okay";
+ this.btnOkay.Click += new System.EventHandler(this.btnOkay_Click);
+ //
+ // btnCancelMore
+ //
+ this.btnCancelMore.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
+ this.btnCancelMore.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnCancelMore.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
+ this.btnCancelMore.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.btnCancelMore.Location = new System.Drawing.Point(363, 539);
+ this.btnCancelMore.Name = "btnCancelMore";
+ this.btnCancelMore.Size = new System.Drawing.Size(75, 23);
+ this.btnCancelMore.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnCancelMore.TabIndex = 13;
+ this.btnCancelMore.Text = "Cancel";
+ this.btnCancelMore.Click += new System.EventHandler(this.btnCancelMore_Click);
+ //
+ // lblMore
+ //
+ this.lblMore.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.lblMore.AutoSize = true;
+ //
+ //
+ //
+ this.lblMore.BackgroundStyle.Class = "";
+ this.lblMore.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+ this.lblMore.Location = new System.Drawing.Point(15, 12);
+ this.lblMore.Name = "lblMore";
+ this.lblMore.Size = new System.Drawing.Size(148, 15);
+ this.lblMore.TabIndex = 10;
+ this.lblMore.Text = "Select Procedures to Approve";
+ //
+ // sttMore
+ //
+ this.sttMore.CheckTooltipPosition = false;
+ this.sttMore.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
+ this.sttMore.PositionBelowControl = false;
+ //
+ // pnlRogue
+ //
+ this.pnlRogue.Dock = System.Windows.Forms.DockStyle.Left;
+ this.pnlRogue.Location = new System.Drawing.Point(0, 0);
+ this.pnlRogue.Name = "pnlRogue";
+ this.pnlRogue.Size = new System.Drawing.Size(72, 574);
+ this.pnlRogue.TabIndex = 25;
+ //
+ // dlgApproveProcedure
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1029, 574);
+ this.Controls.Add(this.pnlApprove);
+ this.Controls.Add(this.pnlSelect);
+ this.Controls.Add(this.pnlRogue);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "dlgApproveProcedure";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Select Procedures to Approve";
+ ((System.ComponentModel.ISupportInitialize)(this.approvalInfoBindingSource)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stageInfoBindingSource)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revTypeBindingSource)).EndInit();
+ this.pnlApprove.ResumeLayout(false);
+ this.pnlApprove.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.fgProcs)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.approvalProcedureBindingSource)).EndInit();
+ this.ssMsg2.ResumeLayout(false);
+ this.ssMsg2.PerformLayout();
+ this.pnlSelect.ResumeLayout(false);
+ this.pnlSelect.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.BindingSource stageInfoBindingSource;
+ private DevComponents.DotNetBar.Controls.CheckBoxX chkViewPDF;
+ private System.Windows.Forms.Panel pnlApprove;
+ private System.Windows.Forms.StatusStrip ssMsg2;
+ private System.Windows.Forms.ToolStripStatusLabel tsslMsg2;
+ private DevComponents.DotNetBar.ButtonX btnApprove2;
+ private DevComponents.DotNetBar.ButtonX btnCancel2;
+ private DevComponents.DotNetBar.LabelX labelX14;
+ private DevComponents.DotNetBar.Controls.TextBoxX txtRevisionNotes2;
+ private DevComponents.DotNetBar.LabelX labelX16;
+ private DevComponents.DotNetBar.Controls.ComboBoxEx cmbRevisionType2;
+ private DevComponents.DotNetBar.Controls.ComboBoxEx cmbRevisionStage2;
+ private DevComponents.DotNetBar.LabelX labelX17;
+ private System.Windows.Forms.BindingSource approvalInfoBindingSource;
+ private System.Windows.Forms.BindingSource revTypeBindingSource;
+ private DevComponents.DotNetBar.ButtonX btnCheck2;
+ private System.Windows.Forms.Panel pnlSelect;
+ private System.Windows.Forms.CheckedListBox clbMore;
+ private DevComponents.DotNetBar.ButtonX btnOkay;
+ private DevComponents.DotNetBar.ButtonX btnCancelMore;
+ private DevComponents.DotNetBar.LabelX lblMore;
+ private DevComponents.DotNetBar.ButtonX btnClear;
+ private DevComponents.DotNetBar.ButtonX btnAll;
+ private DevComponents.DotNetBar.SuperTooltip sttMore;
+ private DevComponents.DotNetBar.ButtonX btnCheckMore;
+ private System.Windows.Forms.ProgressBar pbMore;
+ private DevComponents.DotNetBar.ButtonX btnReportMore;
+ private DevComponents.DotNetBar.Controls.CheckBoxX chkCascade2;
+ private DevComponents.DotNetBar.Controls.CheckBoxX chkCascadeMore;
+ private DevComponents.DotNetBar.LabelX lblPhase;
+ private System.Windows.Forms.BindingSource approvalProcedureBindingSource;
+ private System.Windows.Forms.Panel pnlRogue;
+ private DevComponents.DotNetBar.ButtonX btnModifyList;
+ private DevComponents.DotNetBar.Controls.CheckBoxX chkSetAllDates;
+ private DevComponents.DotNetBar.ButtonX btnIncrement;
+ private C1.Win.C1FlexGrid.C1FlexGrid fgProcs;
+ }
+}
\ No newline at end of file
diff --git a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs
new file mode 100644
index 00000000..a2aa33a7
--- /dev/null
+++ b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs
@@ -0,0 +1,1131 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using VEPROMS.CSLA.Library;
+using Volian.Base.Library;
+using Volian.Print.Library;
+using System.IO;
+using System.Text.RegularExpressions;
+using DevComponents.DotNetBar;
+
+namespace VEPROMS
+{
+ public partial class dlgApproveProcedure : Form
+ {
+ public event DisplayConsistencyReportEvent ConsistencyPrintRequest;
+ private void OnConsistencyPrintRequest(ConsistencyReportArgs args)
+ {
+ if (ConsistencyPrintRequest != null)
+ ConsistencyPrintRequest(this, args);
+ }
+ private ApprovalInfo _MyApproval = new ApprovalInfo();
+ private bool _CheckForMore = false;
+ private DocVersionInfo _MyDocVersion;
+ public dlgApproveProcedure(DocVersionInfo myDocVersion)
+ {
+ this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
+ _MyDocVersion = myDocVersion;
+ InitializeComponent();
+ FlexGridAddEvents();
+ _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
+ SetupComboBoxes();
+ foreach (ProcedureInfo pi in myDocVersion.Procedures)
+ _MyApproval.AddProcedure(pi);
+ SetupMyApproval();
+ //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged);
+ //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged);
+ pnlApprove.SendToBack();
+ this.Width = pnlApprove.Width + this.Width - this.ClientSize.Width;
+ }
+
+ private void FlexGridAddEvents()
+ {
+ //fgProcs.ChangeEdit += new EventHandler(fgProcs_ChangeEdit);
+ //Console.WriteLine(fgProcs.ComboBoxEditor.GetType().Name);
+ //Console.WriteLine(fgProcs.Editor.GetType().Name);
+ //fgProcs.ImeModeChanged += new EventHandler(fgProcs_ImeModeChanged);
+ //fgProcs.LeaveEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_LeaveEdit);
+ //fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor);
+ //fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit);
+ //fgProcs.ValidateEdit += new C1.Win.C1FlexGrid.ValidateEditEventHandler(fgProcs_ValidateEdit);
+ fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp);
+ //fgProcs.MouseDown += new MouseEventHandler(fgProcs_MouseDown);
+ //fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp);
+ }
+
+ void fgProcs_MouseUp(object sender, MouseEventArgs e)
+ {
+ C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y);
+ Console.WriteLine("fgProcs_MouseUp X={0},Y={1},Row={2},Col={3}", e.X, e.Y, hti.Row, hti.Column);
+ }
+
+ void fgProcs_MouseDown(object sender, MouseEventArgs e)
+ {
+ C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y);
+ Console.WriteLine("fgProcs_MouseDown X={0},Y={1},Row={2},Col={3}", e.X, e.Y,hti.Row,hti.Column);
+
+ }
+
+ void fgProcs_ComboCloseUp(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
+ {
+ Console.WriteLine("fgProcs_ComboCloseUp e.row={0}, fgprocs.mouserow={1}", e.Row, fgProcs.MouseRow);
+ if (e.Row == fgProcs.MouseRow)
+ return;
+ fgProcs_AfterEdit(sender, e);
+ //Console.WriteLine("fgProcs_ComboCloseUp row: {0}, col: {1}, val: {2}, etostring: {3}", e.Row, e.Col, fgProcs[e.Row, e.Col], e.ToString());
+ }
+
+ void fgProcs_ValidateEdit(object sender, C1.Win.C1FlexGrid.ValidateEditEventArgs e)
+ {
+ Console.WriteLine("fgProcs_ValidateEdit");
+ }
+
+ void fgProcs_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
+ {
+
+ object val = fgProcs[e.Row, e.Col];
+ DateTime dt = (DateTime)val;
+ if (dt != null)
+ dt = dt.AddHours(1);
+ fgProcs[e.Row, e.Col] = dt;
+ Console.WriteLine("fgProcs_StartEdit val: {0}, dt: {1}",val,dt);
+ }
+
+ void fgProcs_SetupEditor(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
+ {
+ Console.WriteLine("fgProcs_SetupEditor");
+ }
+
+ void fgProcs_LeaveEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
+ {
+ object val = fgProcs[e.Row, e.Col];
+ DateTime dt = (DateTime)val;
+ if (dt != null && dt.Hour != 0)
+ dt = dt.AddHours(-1);
+ fgProcs[e.Row, e.Col] = dt;
+ Console.WriteLine("fgProcs_LeaveEdit val: {0}, dt: {1}, mouserow={2}, mousecol={3}", val, dt,fgProcs.MouseRow,fgProcs.MouseCol);
+ }
+
+ void fgProcs_ImeModeChanged(object sender, EventArgs e)
+ {
+ Console.WriteLine("fgProcs_ImeModeChanged");
+ }
+
+ void fgProcs_ChangeEdit(object sender, EventArgs e)
+ {
+ Console.WriteLine("fgProcs_ChangeEdit");
+ }
+ void Panel_LocationChanged(object sender, EventArgs e)
+ {
+ if (pnlApprove.Location.X == 0 && pnlSelect.Location.X == 0)
+ return;
+ if (pnlApprove.Location.X == 0)
+ {
+ chkViewPDF.Visible = false;
+ chkSetAllDates.Visible = true;
+ if (_MyApproval.MyProcedures.Count == 1)
+ {
+ this.Text = "Approve " + _MyApproval.MyProcedures[0].ProcInfo.DisplayNumber;
+ chkViewPDF.Visible = true;
+ chkSetAllDates.Visible = false;
+ }
+ else if (_MyApproval.MyProcedures.Count == _MyDocVersion.Procedures.Count)
+ this.Text = "Approve All Procedures";
+ else
+ this.Text = "Approve Selected Procedures";
+ InitializePanelApprove();
+ }
+ if (pnlSelect.Location.X == 0)
+ {
+ this.Text = "Select Procedures To Approve";
+ InitializePanelSelect();
+ }
+ }
+ private void InitializePanelSelect()
+ {
+ if (clbMore.Items.Count == 0)
+ {
+ foreach (ProcedureInfo pi in _MyDocVersion.Procedures)
+ {
+ clbMore.Items.Add(pi.DisplayNumber);
+ tmpProcedures.Add(pi.DisplayNumber, pi);
+ }
+ }
+ for (int i = 0; i < clbMore.Items.Count; i++)
+ {
+ ProcedureInfo pi = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[i].ToString())];
+ clbMore.SetItemChecked(i, _MyApproval.ProcedureExists(pi));
+ }
+ }
+ private void InitializePanelApprove()
+ {
+ SetupMyApproval();
+ }
+ private Dictionary tmpProcedures = new Dictionary();
+ public dlgApproveProcedure(DocVersionInfo myDocVersion, bool selectSome)
+ {
+ this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
+ _MyDocVersion = myDocVersion;
+ InitializeComponent();
+ FlexGridAddEvents();
+ _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated);
+ _CheckForMore = false;
+ //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged);
+ //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged);
+ pnlSelect.SendToBack();
+ this.Width = pnlSelect.Width + this.Width - this.ClientSize.Width; ;
+ }
+ public dlgApproveProcedure(ProcedureInfo myProcedure)
+ {
+ this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
+ _MyDocVersion = myProcedure.MyDocVersion;
+ InitializeComponent();
+ FlexGridAddEvents();
+ SetupComboBoxes();
+ _MyApproval.AddProcedure(myProcedure);
+ //SetupMyApproval();
+ //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged);
+ //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged);
+ pnlApprove.SendToBack();
+ this.Width = pnlApprove.Width;
+ }
+ void _MyApproval_StatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e)
+ {
+ tsslMsg2.Text = e.MyStatus;
+ Application.DoEvents();
+ }
+ private void SetupMyApproval()
+ {
+ approvalInfoBindingSource.DataSource = _MyApproval;
+ //if(_MyApproval.MyProcedures.Count == 1)
+ // lblOldRevNumber.Text = _MyApproval.RevNumber;
+ //else if (_MyApproval.MyProcedures.Count > 1)
+ // lblMaxRevNumber1.Text = GetMaxRevNumber();
+ _MyApproval.RevType = (revTypeBindingSource.Current as RevType).TypeID;
+ _MyApproval.RevStage = (stageInfoBindingSource.Current as StageInfo).StageID;
+ approvalInfoBindingSource.ResetBindings(false);
+ approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures;
+ approvalProcedureBindingSource.ResetBindings(false);
+ //this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest);
+ }
+ private string GetMaxRevNumber()
+ {
+ string mrn = string.Empty;
+ foreach (ApprovalProcedure ap in _MyApproval.MyProcedures)
+ {
+ int k = _MyApproval.FancyShmancyRevCompare(mrn, ap.RevNumber);
+ if (k < 0)
+ mrn = ap.RevNumber;
+ }
+ return mrn;
+ }
+ void dlgApproveProcedure_ConsistencyPrintRequest(object sender, ConsistencyReportArgs args)
+ {
+ foreach (ProcedureInfo pi in args.MyItems)
+ pi.IsSelected = _MyApproval.ProcedureExists(pi);
+ PDFConsistencyCheckReport rpt = new PDFConsistencyCheckReport(args.ReportName, args.MyItems);
+ rpt.BuildReport();
+ }
+ private void SetupComboBoxes()
+ {
+ RevTypes rt = new RevTypes();
+ foreach (int i in Enum.GetValues(typeof(Rev_Types)))
+ {
+ RevType t = new RevType(i, Enum.GetName(typeof(Rev_Types), i));
+ rt.Add(t);
+ }
+ revTypeBindingSource.DataSource = rt;
+ stageInfoBindingSource.DataSource = StageInfoList.Get();
+ }
+ private void btnApprove_Click(object sender, EventArgs e)
+ {
+ this.Cursor = Cursors.WaitCursor;
+ if(!_MyApproval.Approve(new Point(Left,Bottom)))
+ this.DialogResult = DialogResult.None;
+ this.Cursor = Cursors.Default;
+ }
+ private void cmbRevisionType_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ RevType rt = cmbRevisionType2.SelectedItem as RevType;
+ _MyApproval.RevType = rt.TypeID;
+ }
+ private void cmbRevisionStage_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ StageInfo si = cmbRevisionStage2.SelectedItem as StageInfo;
+ _MyApproval.RevStage = si.StageID;
+ }
+ private void clbMore_ItemCheck(object sender, ItemCheckEventArgs e)
+ {
+ if (e.NewValue == CheckState.Checked)
+ btnOkay.Enabled = true;
+ else
+ btnOkay.Enabled = (clbMore.CheckedItems.Count > 1);
+ btnCheckMore.Enabled = btnOkay.Enabled;
+ btnReportMore.Enabled = false;
+ }
+ private void btnOkay_Click(object sender, EventArgs e)
+ {
+ UpdateMyApproval();
+ //lbProcs.DataSource = null;
+ //lbProcs.DataSource = _MyApproval.MyProcedures;
+ //lbProcs.DisplayMember = "DisplayNumber";
+ approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures;
+ approvalProcedureBindingSource.ResetCurrentItem();
+ pnlApprove.SendToBack();
+ }
+ private void UpdateMyApproval()
+ {
+ if (clbMore.CheckedItems.Count == 0)
+ pnlApprove.SendToBack();
+ SetupComboBoxes();
+ for (int i = 0; i < clbMore.Items.Count; i++)
+ {
+ string xyz = clbMore.Items[i].ToString();
+ ProcedureInfo pi = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[i].ToString())];
+ if (clbMore.GetItemChecked(i))
+ {
+ if (!_MyApproval.ProcedureExists(pi))
+ _MyApproval.AddProcedure(pi);
+ }
+ else
+ {
+ if (_MyApproval.ProcedureExists(pi))
+ _MyApproval.DeleteProcedure(pi);
+ }
+ }
+ SetupMyApproval();
+ }
+ private void btnCheck_Click(object sender, EventArgs e)
+ {
+ //if (chkCascade1.Checked || chkCascade2.Checked)
+ //{
+ // MessageBox.Show("cascade");
+ //}
+ //else
+ //{
+ pnlSelect.SendToBack();
+ UpdateClbMore();
+ //}
+ }
+ private ItemInfoList _MyItemInfoList;
+ private void UpdateClbMore()
+ {
+ int checkedCount = clbMore.CheckedItems.Count;
+ int z = int.Parse("0" + lblPhase.Text);
+ z++;
+ lblPhase.Text = z.ToString();
+ string oldLabel = lblMore.Text;
+ pbMore.Visible = true;
+ pbMore.Maximum = _MyApproval.MyProcedures.Count;
+ ItemInfoList.ConsistencyCheckUpdated += new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated);
+ List myProcs = new List();
+ foreach (ApprovalProcedure ap in _MyApproval.MyProcedures)
+ myProcs.Add(ap.ProcInfo);
+ _MyItemInfoList = ItemInfoList.GetMoreProcedures(myProcs);
+ ItemInfoList.ConsistencyCheckUpdated -= new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated);
+ lblMore.Text = oldLabel;
+ pbMore.Visible = false;
+ //clbMore.Items.Clear();
+ //tmpProcedures.Clear();
+ for (int i = 0; i < clbMore.Items.Count; i++)
+ {
+ string info = clbMore.Items[i].ToString();
+ if(info.Contains(" - ("))
+ clbMore.Items[i] = info.Substring(0, info.IndexOf(" - ("));
+ }
+ foreach (ProcedureInfo npi in _MyItemInfoList)
+ {
+ string info = string.Format(npi.MyDifferenceReasons.StartsWith("No ") ? "{0}" : "{0} - ({1})", npi.DisplayNumber, npi.MyDifferenceReasons);
+ //checked list box
+ //int k = clbMore.Items.Add(info);
+ for (int i = 0; i < clbMore.Items.Count; i++)
+ {
+ if (clbMore.Items[i].ToString().StartsWith(npi.DisplayNumber))
+ {
+ clbMore.Items[i] = info;
+ tmpProcedures[npi.DisplayNumber] = npi;
+ if (chkCascade2.Checked || chkCascadeMore.Checked)
+ clbMore.SetItemChecked(i, true);
+ break;
+ }
+ }
+ }
+ Application.DoEvents();
+ clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = true;
+ //if (clbMore.Items.Count == 0)
+ //{
+ // clbMore.Items.Add("None Found");
+ // clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = false;
+ //}
+ lblMore.Text = string.Format("{0} Procedures, {1} Selected", clbMore.Items.Count, clbMore.CheckedItems.Count);
+ btnReportMore.Enabled = true;
+ _CheckForMore = true;
+
+ if (chkCascade2.Checked || chkCascadeMore.Checked)
+ {
+ if (clbMore.CheckedItems.Count > checkedCount)
+ {
+ //btnAll_Click(btnAll, new EventArgs());
+ UpdateMyApproval();
+ UpdateClbMore();
+ }
+ else
+ lblPhase.Text = "";
+ }
+ }
+ void ItemInfoList_ConsistencyCheckUpdated(object sender, ItemInfoListCCEventArgs args)
+ {
+ if (sender != null)
+ {
+ pbMore.Value = args.MyCount;
+ lblMore.Text = args.MyProcedure.DisplayNumber;
+ }
+ else
+ {
+ pbMore.Value = pbMore.Maximum;
+ lblMore.Text = "Querying Database";
+ }
+ Application.DoEvents();
+ }
+ //private void dtiRevisionDate_ValueChanged(object sender, EventArgs e)
+ //{
+ // DevComponents.Editors.DateTimeAdv.DateTimeInput dti = sender as DevComponents.Editors.DateTimeAdv.DateTimeInput;
+ //}
+ private void btnAll_Click(object sender, EventArgs e)
+ {
+ for (int i = 0; i < clbMore.Items.Count; i++)
+ clbMore.SetItemChecked(i, true);
+ }
+ private void btnClear_Click(object sender, EventArgs e)
+ {
+ for (int i = 0; i < clbMore.Items.Count; i++)
+ clbMore.SetItemChecked(i, false);
+ }
+ private void btnCancelMore_Click(object sender, EventArgs e)
+ {
+ if (!_CheckForMore)
+ {
+ this.Close();
+ return;
+ }
+ //if (_MyApproval.MyProcedures.Count == 1)
+ // pnlOne.SendToBack();
+ //else
+ pnlApprove.SendToBack();
+ }
+ //private void tsmiRemove_Click(object sender, EventArgs e)
+ //{
+ // ApprovalProcedure ap = approvalProcedureBindingSource.Current as ApprovalProcedure;
+ // _MyApproval.RemoveProcedure(ap.ProcInfo);
+ // approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures;
+ // approvalProcedureBindingSource.ResetCurrentItem();
+ // //_MyApproval.RemoveProcedure(lbProcs.SelectedItem as ProcedureInfo);
+ // //lbProcs.DataSource = null;
+ // //lbProcs.DataSource = _MyApproval.MyProcedures;
+ // //lbProcs.DisplayMember = "DisplayNumber";
+ //}
+ private int _LastIndex = -1;
+ private void clbMore_MouseMove(object sender, MouseEventArgs e)
+ {
+ if (_MyApproval.MyProcedures.Count > 0)
+ {
+ int itemIndex = clbMore.IndexFromPoint(new Point(e.X, e.Y));
+ if (itemIndex == -1)
+ sttMore.HideTooltip();
+ if (itemIndex == _LastIndex)
+ return;
+ _LastIndex = itemIndex;
+ if (itemIndex >= 0)
+ {
+ if (clbMore.Items[itemIndex] != null)
+ {
+ SuperTooltipInfo stti = sttMore.GetSuperTooltip(clbMore);
+ //string xyz = GetDisplayNumberOnly(clbMore.Items[itemIndex].ToString());
+ //string headerText = tmpProcedures[xyz].DisplayNumber;
+ //string bodyText = tmpProcedures[xyz].MyDifferencesText;
+ stti.HeaderText = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[itemIndex].ToString())].DisplayNumber;
+ stti.BodyText = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[itemIndex].ToString())].MyDifferencesText;
+ stti.FooterVisible = false;
+ using (Graphics g = CreateGraphics())
+ {
+ SizeF sf = g.MeasureString(stti.BodyText, this.Font);
+ stti.CustomSize = new Size(10 + sf.ToSize().Width, 0);
+ }
+ sttMore.ShowTooltip(sender);
+ return;
+ }
+ }
+ }
+ //sttMore.HideTooltip();
+ }
+ private string GetDisplayNumberOnly(string s)
+ {
+ int d = s.IndexOf(" - ");
+ if (d > -1)
+ s = s.Substring(0, d).Trim();
+ return s;
+ }
+ private void btnCheckMore_Click(object sender, EventArgs e)
+ {
+ UpdateMyApproval();
+ UpdateClbMore();
+ }
+ private void btnReportMore_Click(object sender, EventArgs e)
+ {
+ OnConsistencyPrintRequest(new ConsistencyReportArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MyConsistency.pdf", _MyItemInfoList));
+ }
+ private void CascadeChecksUpdated(object sender, EventArgs e)
+ {
+ DevComponents.DotNetBar.Controls.CheckBoxX cb = sender as DevComponents.DotNetBar.Controls.CheckBoxX;
+ if (cb != null)
+ {
+ chkCascade2.Checked = chkCascadeMore.Checked = cb.Checked;
+ }
+ }
+ private void fgProcs_AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
+ {
+ ApprovalProcedure ap = approvalProcedureBindingSource.Current as ApprovalProcedure;
+ if (e.Col == 1)
+ { //revnumber
+ ap.RevNumber = fgProcs[e.Row, e.Col].ToString();
+ _MyApproval.Refresh();
+ approvalInfoBindingSource.ResetBindings(false);
+ bool ok = true;
+ foreach (ApprovalProcedure app in _MyApproval.MyProcedures)
+ {
+ ok = ok && !app.RevNumber.Contains(" ?");
+ }
+ btnApprove2.Enabled = ok;
+ }
+ if (e.Col == 2)
+ { //revdate
+ DateTime dts = DateTime.Parse(fgProcs[e.Row, e.Col].ToString());
+ Console.WriteLine("fgProcs_AfterEdit e.row={0}, fgprocs.mouserow={1}, ap.revdate={2}, dts={3}", e.Row, fgProcs.MouseRow,ap.RevDate,dts);
+ int fgmr = fgProcs.MouseRow;
+ if (e.Row == fgmr && ap.RevDate == dts)
+ return;
+ ap.RevDate = dts;
+ if (chkSetAllDates.Checked)
+ {
+ foreach (ApprovalProcedure app in _MyApproval.MyProcedures)
+ {
+ app.RevDate = ap.RevDate;
+ }
+ Console.WriteLine("updating dates");
+ approvalProcedureBindingSource.ResetBindings(false);
+// tmrRefresh.Enabled = true;
+ }
+ }
+ }
+ //private void tsmiAddMore_Click(object sender, EventArgs e)
+ //{
+ // pnlSelect.SendToBack();
+ //}
+ private void btnModifyList_Click(object sender, EventArgs e)
+ {
+ pnlSelect.SendToBack();
+ }
+
+ private void btnIncrement_Click(object sender, EventArgs e)
+ {
+ StringBuilder sb = new StringBuilder();
+ string sep = "Procedures that failed to increment\r\n\r\n";
+ foreach (ApprovalProcedure ap in _MyApproval.MyProcedures)
+ if (!IncrementRev(ap))
+ {
+ sb.Append(sep + ap.DisplayNumber);
+ sep = "\r\n";
+ }
+ approvalProcedureBindingSource.ResetBindings(false);
+ if (sb.Length > 0)
+ {
+ MessageBox.Show(sb.ToString(), "Increment Failures", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ btnApprove2.Enabled = false;
+ }
+ else
+ btnApprove2.Enabled = true;
+ }
+ private bool IncrementRev(ApprovalProcedure ap)
+ {
+ bool rv = true;
+ if (Regex.IsMatch(ap.RevNumber, "^[0-9]+$"))
+ ap.RevNumber = (int.Parse(ap.RevNumber) + 1).ToString();
+ else if (Regex.IsMatch(ap.RevNumber, "^[0-9]*[a-yA-Y]+$"))
+ {
+ char lastCar = ap.RevNumber[ap.RevNumber.Length - 1];
+ lastCar++;
+ ap.RevNumber = ap.RevNumber.Substring(0, ap.RevNumber.Length - 1) + lastCar.ToString();
+ }
+ else if (ap.RevNumber == string.Empty)
+ ap.RevNumber = "1";
+ else if (Regex.IsMatch(ap.RevNumber, "^[0-9.]+[.][0-9]+$"))
+ {
+ string[] parts = ap.RevNumber.Split(".".ToCharArray());
+ string sep = "";
+ string lastPart = parts[parts.Length - 1];
+ int w = lastPart.Length;
+ lastPart = (int.Parse(lastPart) + 1).ToString();
+ //if(w > lastPart.Length)
+ lastPart = lastPart.PadLeft(w, '0');
+ parts[parts.Length - 1] = lastPart;
+ StringBuilder sb = new StringBuilder();
+ foreach (string part in parts)
+ {
+ sb.Append(sep + part);
+ sep = ".";
+ }
+ ap.RevNumber = sb.ToString();
+ }
+ else if (Regex.IsMatch(ap.RevNumber, "[?]$"))
+ rv = false; //do nothing
+ else
+ {
+ ap.RevNumber += " ?";
+ rv = false;
+ }
+ return rv;
+ }
+ }
+ public class ApprovalProcedure
+ {
+ private ProcedureInfo _ProcInfo;
+ public ProcedureInfo ProcInfo
+ {
+ get { return _ProcInfo; }
+ set { _ProcInfo = value; }
+ }
+ private string _RevNumber;
+ public string RevNumber
+ {
+ get { return _RevNumber; }
+ set { _RevNumber = value.Trim(); }
+ }
+ private DateTime _RevDate;
+ public DateTime RevDate
+ {
+ get { return _RevDate; }
+ set { _RevDate = value; }
+ }
+ public string DisplayNumber
+ {
+ get { return _ProcInfo.DisplayNumber; }
+ }
+ public override string ToString()
+ {
+ return string.Format("{0}\t{1}\t{2:M/d/yyyy}", _ProcInfo.DisplayNumber, _RevNumber, _RevDate);
+ }
+ public ApprovalProcedure(ProcedureInfo proc)
+ {
+ ProcInfo = proc;
+ RevNumber = proc.ProcedureConfig.Print_Rev == string.Empty ? "0" : proc.ProcedureConfig.Print_Rev;
+ DateTime revdate;
+ string print_revdate = proc.ProcedureConfig.Print_RevDate;
+ if (print_revdate == string.Empty && DateTime.TryParse(RevNumber, out revdate))
+ ;
+ else
+ revdate = DateTime.TryParse(proc.ProcedureConfig.Print_RevDate.Replace("-","/").Replace("00/","01/"), out revdate) ? revdate : DateTime.Now;
+ RevDate = revdate;
+ }
+ }
+ public class ApprovalMessageArgs : EventArgs
+ {
+ public ApprovalMessageArgs(string msg)
+ {
+ _MyStatus = msg;
+ }
+ private string _MyStatus;
+ public string MyStatus
+ {
+ get { return _MyStatus; }
+ set { _MyStatus = value; }
+ }
+ }
+ public delegate void ApprovalStatusChangeEvent(ApprovalInfo sender, ApprovalMessageArgs e);
+ public class ApprovalInfo
+ {
+ public event ApprovalStatusChangeEvent StatusUpdated;
+ public void OnStatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e)
+ {
+ if (StatusUpdated != null)
+ StatusUpdated(sender, e);
+ }
+ private int _RevType;
+ public int RevType
+ {
+ get { return _RevType; }
+ set { _RevType = value; }
+ }
+ private string _RevNumber;
+ public string RevNumber
+ {
+ get { return _RevNumber; }
+ set { _RevNumber = value; }
+ }
+ private Nullable _RevDate;
+ public Nullable RevDate
+ {
+ get { return _RevDate == null ? _RevDate : _RevDate.Value; }
+ set { _RevDate = value; }
+ }
+ private int _RevStage;
+ public int RevStage
+ {
+ get { return _RevStage; }
+ set { _RevStage = value; }
+ }
+ private string _RevNote;
+ public string RevNote
+ {
+ get { return _RevNote; }
+ set { _RevNote = value; }
+ }
+ private bool _ViewPDF;
+ public bool ViewPDF
+ {
+ get { return _ViewPDF; }
+ set { _ViewPDF = value; }
+ }
+ private string _MsgNumber;
+ public string MsgNumber
+ {
+ get { return _MsgNumber; }
+ set { _MsgNumber = value; }
+ }
+ private string _MsgDate;
+ public string MsgDate
+ {
+ get { return _MsgDate; }
+ set { _MsgDate = value; }
+ }
+ private bool _CanIncrement;
+ public bool CanIncrement
+ {
+ get { return _CanIncrement; }
+ set { _CanIncrement = value; }
+ }
+ private List _MyProcedures;
+ public List MyProcedures
+ {
+ get { return _MyProcedures; }
+ //set { _MyProcedures = value; }
+ }
+ public ApprovalInfo()
+ {
+ _MyProcedures = new List();
+ }
+ private static string FormatRev(Match m)
+ {
+ return "".PadLeft(5 - m.Groups[1].Value.Length, '0') + m.Groups[1].Value;
+ }
+ public void AddProcedure(ProcedureInfo proc)
+ {
+ ApprovalProcedure ap = new ApprovalProcedure(proc);
+ MyProcedures.Add(ap);
+ Refresh();
+ }
+ public void RemoveProcedure(ProcedureInfo pi)
+ {
+ ApprovalProcedure apr = null;
+ foreach (ApprovalProcedure ap in MyProcedures)
+ {
+ if (ap.ProcInfo == pi)
+ {
+ apr = ap;
+ break;
+ }
+ }
+ MyProcedures.Remove(apr);
+ Refresh();
+ }
+ public bool ProcedureExists(ProcedureInfo pi)
+ {
+ foreach (ApprovalProcedure pp in MyProcedures)
+ {
+ if(pp.ProcInfo.ItemID == pi.ItemID)
+ return true;
+ }
+ return false;
+ }
+ public void Refresh()
+ {
+ bool ok = true;
+ int rv = 0;
+ foreach (ApprovalProcedure ap in MyProcedures)
+ {
+ ok = ok && int.TryParse(ap.RevNumber, out rv);
+ }
+ _CanIncrement = ok;
+ //if (MyProcedures.Count == 1)
+ //{
+ // ProcedureInfo pi = _MyProcedures[0].ProcInfo;
+ // RevNumber = pi.ProcedureConfig.Print_Rev == string.Empty ? "0" : pi.ProcedureConfig.Print_Rev;
+ // DateTime revdate = pi.ProcedureConfig.Print_RevDate == string.Empty ? DateTime.Now : DateTime.TryParse(pi.ProcedureConfig.Print_RevDate, out revdate) ? revdate : DateTime.Now;
+ // RevDate = revdate;
+ // RevNote = string.Empty;
+ // ViewPDF = false;
+ //}
+ //else if (MyProcedures.Count > 1)
+ //{
+ // Regex myRegEx = new Regex("^([0-9]{1,5})");
+ // SortedList printRevs = new SortedList();
+ // SortedList printRevDates = new SortedList();
+ // string printRev = string.Empty;
+ // foreach (ApprovalProcedure pi in MyProcedures)
+ // {
+ // printRev = myRegEx.Replace(pi.RevNumber, new MatchEvaluator(FormatRev));
+ // printRev = printRev == string.Empty ? "0" : printRev;
+ // if (printRev != string.Empty)
+ // if (!printRevs.ContainsKey(printRev))
+ // printRevs.Add(printRev, pi.ProcInfo);
+ // if (pi.RevDate != null)
+ // if (!printRevDates.ContainsKey(pi.RevDate.ToString()))
+ // printRevDates.Add(pi.RevDate.ToString(), pi.ProcInfo);
+ // }
+ // if (printRevs.Count > 1)
+ // {
+ // ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]];
+ // RevNumber = "*";
+ // MsgNumber = "Multiple Revision Numbers found. Enter asterisk (*) to use current revision numbers or plus sign (+) to increment revision numbers";
+ // }
+ // else if (printRevs.Count == 1)
+ // {
+ // ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]];
+ // RevNumber = pi.ProcedureConfig.Print_Rev;
+ // MsgNumber = string.Empty;
+ // }
+ // if (printRevDates.Count > 1)
+ // {
+ // RevDate = null;
+ // MsgDate = "Multiple Revision Dates found. Use current revision dates or manually assign revision date by selecting a date";
+ // }
+ // else if (printRevDates.Count == 1)
+ // {
+ // ProcedureInfo pi = printRevDates[printRevDates.Keys[printRevDates.Count - 1]];
+ // RevDate = DateTime.Parse(pi.ProcedureConfig.Print_RevDate);
+ // MsgDate = string.Empty;
+ // }
+ // else if (printRevDates.Count == 0)
+ // RevDate = DateTime.Now;
+ //}
+ }
+ public void DeleteProcedure(ProcedureInfo pi)
+ {
+ ApprovalProcedure tpi = null;
+ foreach (ApprovalProcedure pii in MyProcedures)
+ {
+ if (pii.ProcInfo.ItemID == pi.ItemID)
+ tpi = pii;
+ }
+ if (tpi != null)
+ {
+ MyProcedures.Remove(tpi);
+ Refresh();
+ }
+ }
+ public bool CanApprove
+ {
+ get { return _RevType > 0 && _RevNumber != string.Empty && _RevStage > 0; }
+ }
+ public int FancyShmancyRevCompare(string s1, string s2)
+ {
+ if (s1 == s2)
+ return 0;
+ while (s1 != string.Empty && s2 != string.Empty)
+ {
+ //look for numbers
+ Match m1 = Regex.Match(s1, "^[0-9]+");
+ Match m2 = Regex.Match(s2, "^[0-9]+");
+ if (m1.Length > 0 && m2.Length > 0)
+ {
+ int i1 = int.Parse(m1.Value);
+ int i2 = int.Parse(m2.Value);
+ if (i1 < i2)
+ return -1;
+ if (i1 > i2)
+ return 1;
+ s1 = s1.Substring(m1.Length);
+ s2 = s2.Substring(m2.Length);
+ }
+ else
+ {
+ if (m1.Length > 0)
+ return 1;
+ if (m2.Length > 0)
+ return -1;
+ }
+ //look for letters
+ m1 = Regex.Match(s1, "^[A-Za-z]+");
+ m2 = Regex.Match(s2, "^[A-Za-z]+");
+ if (m1.Length > 0 && m2.Length > 0)
+ {
+ if (m1.Length > m2.Length)
+ return 1;
+ if (m1.Length < m2.Length)
+ return -1;
+ int c = m1.Value.CompareTo(m2.Value);
+ if (c != 0)
+ return c;
+ s1 = s1.Substring(m1.Length);
+ s2 = s2.Substring(m2.Length);
+ }
+ else
+ {
+ if (m1.Length > 0)
+ return 1;
+ if (m2.Length > 0)
+ return -1;
+ }
+ //look for symbols
+ m1 = Regex.Match(s1, "^[^0-9A-Za-z]+");
+ m2 = Regex.Match(s2, "^[^0-9A-Za-z]+");
+ if (m1.Length > 0 && m2.Length > 0)
+ {
+ int c = m1.Value.CompareTo(m2.Value);
+ if (c != 0)
+ return c;
+ s1 = s1.Substring(m1.Length);
+ s2 = s2.Substring(m2.Length);
+ }
+ else
+ {
+ if (m1.Length > 0)
+ return 1;
+ if (m2.Length > 0)
+ return -1;
+ }
+ }
+ return s1.CompareTo(s2);
+ }
+ public bool Approve(Point location)
+ {
+ ViewPDF = ViewPDF && MyProcedures.Count == 1;
+ foreach (ApprovalProcedure ap in MyProcedures)
+ {
+ ProcedureInfo pi = ap.ProcInfo;
+ OnStatusUpdated(this, new ApprovalMessageArgs(string.Format("Processing {0}", pi.DisplayNumber)));
+ RevisionInfo ric = RevisionInfo.GetCurrentByItemID(pi.ItemID);
+ RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID);
+ DateTime myDTS = pi.DTS;
+ if (ric != null && ap.RevNumber == ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1)
+ {
+ myDTS = rip.DTS;
+ UpdateProcedureDTS(pi, myDTS);
+ }
+ string summaryPDF = VlnSettings.TemporaryFolder + @"\MySummary.pdf";
+ ContentAuditInfoList cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false);
+ AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID);
+ Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(summaryPDF, pi, cail, aail);
+ myChronoRpt.BuildSummary(ViewPDF);
+ FileInfo pdfFile = new FileInfo(summaryPDF);
+ FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ byte[] summaryBuf = new byte[pdfFile.Length];
+ fs.Read(summaryBuf, 0, summaryBuf.Length);
+ fs.Close();
+ Revision revision = Revision.GetByItemIDAndRevisionNumber(pi.ItemID, ap.RevNumber);
+ if (revision == null)
+ revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, "", DateTime.Now, Volian.Base.Library.VlnSettings.UserID);
+ else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate)
+ {
+ revision.Notes = RevNote;
+ revision.RevisionDate = ap.RevDate;
+ revision = revision.Save();
+ }
+ Check check = Check.MakeCheck(revision, Stage.Get(RevStage), RevisionInfo.BuildRevisionChecks(pi));
+ //make pdf with promsprinter and get byte stream
+ string pdfTmp = string.Format(@"{0}.pdf", pi.DisplayNumber);
+ string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp);
+ UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS);
+ string waterMark = Stage.Get(RevStage).IsApproved > 0 ? null : Stage.Get(RevStage).Name;
+ frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumber, ap.RevDate.ToString("MM/dd/yyyy"), waterMark, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(), pdfTmp, location);
+ frm.AllowAllWatermarks = true;
+ frm.CloseWhenDone = !ViewPDF;
+ frm.ShowDialog();
+ pdfFile = new FileInfo(pdfPath);
+ fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ byte[] buf = new byte[pdfFile.Length];
+ fs.Read(buf, 0, buf.Length);
+ fs.Close();
+ VEPROMS.CSLA.Library.Version version = VEPROMS.CSLA.Library.Version.MakeVersion(revision, Stage.Get(RevStage), buf, summaryBuf, DateTime.Now, VlnSettings.UserID);
+ StageInfo si = StageInfo.Get(RevStage);
+ if (si.IsApproved == 1)
+ UpdateProcedureDTS(pi, DateTime.Now);
+ }
+ return true;
+ #region old code
+ //if (MyProcedures.Count == 1)
+ //{
+ // ApprovalProcedure ap = MyProcedures[0];
+ // //string revnum = RevNumber == "*" ? pi.ProcedureConfig.Print_Rev : RevNumber == "+" ? (int.Parse(Regex.Replace(pi.ProcedureConfig.Print_Rev, "^ *([0-9]*)[^0-9]*$", "0$1")) + 1).ToString() : RevNumber;
+ // //if (FancyShmancyRevCompare(revnum, ric.RevisionNumber) < 0)
+ // //{
+ // // MessageBox.Show("Revision Number must be greater than or equal to current revision","Revision Number Error",MessageBoxButtons.OK,MessageBoxIcon.Stop);
+ // // return false;
+ // //}
+ // //jcb add 20111029 chronology report
+ // //end jcb add 20111029 chronology report
+ //}
+ //else
+ //{
+ // ViewPDF = false;
+ // if (RevNumber != "*" && RevNumber != "+")
+ // {
+ // //need to check all procedures for adequate rev number
+ // bool hdr = false;
+ // StringBuilder msg = new StringBuilder();
+ // foreach (ApprovalProcedure ap in MyProcedures)
+ // {
+ // ProcedureInfo pi = ap.ProcInfo;
+ // RevisionInfo ri = RevisionInfo.GetCurrentByItemID(pi.ItemID);
+ // if (FancyShmancyRevCompare(RevNumber, ri.RevisionNumber) < 0)
+ // {
+ // if (!hdr)
+ // {
+ // msg.Append("Revision Number is not greater than or equal to the current revision for the following procedure(s):");
+ // msg.AppendLine();
+ // msg.AppendLine();
+ // hdr = true;
+ // }
+ // msg.Append(string.Format("{0} Revision {1}", pi.DisplayNumber, pi.ProcedureConfig.Print_Rev));
+ // msg.AppendLine();
+ // }
+ // }
+ // if (msg.Length > 0)
+ // {
+ // MessageBox.Show(msg.ToString(), "Revision Number Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
+ // return false;
+ // }
+ // }
+ // foreach (ApprovalProcedure ap in MyProcedures)
+ // {
+ // ProcedureInfo pi = ap.ProcInfo;
+ // OnStatusUpdated(this,new ApprovalMessageArgs(string.Format("Processing {0}", pi.DisplayNumber)));
+ // //jcb add 20111029 chronology report
+ // string summaryPDF = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MySummary.pdf";
+ // ContentAuditInfoList cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false);
+ // AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID);
+ // Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(summaryPDF, pi, cail, aail);
+ // myChronoRpt.BuildSummary(ViewPDF);
+ // FileInfo pdfFile = new FileInfo(summaryPDF);
+ // FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ // byte[] summaryBuf = new byte[pdfFile.Length];
+ // fs.Read(summaryBuf, 0, summaryBuf.Length);
+ // fs.Close();
+ // //end jcb add 20111029 chronology report
+ // RevisionInfo ric = RevisionInfo.GetCurrentByItemID(pi.ItemID);
+ // RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID);
+ // string revnum = RevNumber == "*" ? pi.ProcedureConfig.Print_Rev : RevNumber == "+" ? (int.Parse(Regex.Replace(pi.ProcedureConfig.Print_Rev, "^ *([0-9]*)[^0-9]*$", "0$1")) + 1).ToString() : RevNumber;
+ // DateTime myDTS = pi.DTS;
+ // if (ric != null && revnum == ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1)
+ // {
+ // myDTS = rip.DTS;
+ // UpdateProcedureDTS(pi, myDTS);
+ // }
+ // DateTime dts = RevDate == null ? pi.ProcedureConfig.Print_RevDate == string.Empty ? DateTime.Now : DateTime.Parse(pi.ProcedureConfig.Print_RevDate) : RevDate.Value;
+ // Revision revision = Revision.GetByItemIDAndRevisionNumber(pi.ItemID, revnum);
+ // if(revision == null)
+ // revision = Revision.MakeRevision(pi.ItemID, RevType, revnum, dts, RevNote, "", DateTime.Now, Volian.Base.Library.VlnSettings.UserID);
+ // else if (revision.Notes != RevNote || revision.RevisionDate != dts)
+ // {
+ // revision.Notes = RevNote;
+ // revision.RevisionDate = dts;
+ // revision = revision.Save();
+ // }
+ // Check check = Check.MakeCheck(revision, Stage.Get(RevStage), RevisionInfo.BuildRevisionChecks(pi));
+ // string pdfTmp = string.Format(@"{0}.pdf", pi.DisplayNumber);
+ // string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp);
+ // UpdateProcedureConfig(pi, revnum, dts, myDTS);
+ // string waterMark = Stage.Get(RevStage).Name == "Approved" ? "" : Stage.Get(RevStage).Name;
+ // frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumber, ap.RevDate.ToString(), waterMark, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(), pdfTmp, location);
+ // frm.CloseWhenDone = !ViewPDF;
+ // frm.ShowDialog();
+ // //PromsPrinter pp = new PromsPrinter(pi, revnum, dts.ToString(), "", false, "", false, true, new ChangeBarDefinition(), pdfTmp);
+ // //pp.Print(VlnSettings.TemporaryFolder);
+ // pdfFile = new FileInfo(pdfPath);
+ // fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ // byte[] buf = new byte[pdfFile.Length];
+ // fs.Read(buf, 0, buf.Length);
+ // fs.Close();
+ // VEPROMS.CSLA.Library.Version version = VEPROMS.CSLA.Library.Version.MakeVersion(revision, Stage.Get(RevStage), buf, summaryBuf, DateTime.Now, VlnSettings.UserID);
+ // StageInfo si = StageInfo.Get(RevStage);
+ // if(si.IsApproved == 1)
+ // UpdateProcedureDTS(pi, DateTime.Now);
+ // //pdfFile.Delete();
+ // }
+ // return true;
+ //}
+ #endregion
+ }
+
+ private void UpdateProcedureDTS(ProcedureInfo pi, DateTime dts)
+ {
+ using (Item itm = Item.Get(pi.ItemID))
+ {
+ itm.DTS = dts;
+ itm.Save();
+ }
+ }
+ private void UpdateProcedureConfig(ProcedureInfo procedureInfo, string revNumber, DateTime revDate, DateTime dts)
+ {
+ ProcedureConfig pc = procedureInfo.MyConfig as ProcedureConfig;
+ if (pc == null) return;
+ pc.Print_Rev = revNumber;
+ pc.Print_RevDate = revDate.ToString();
+ using (Item itm = Item.Get(procedureInfo.ItemID))
+ {
+ itm.MyContent.Config = pc.ToString();
+ itm.DTS = dts;
+ itm.UserID = Volian.Base.Library.VlnSettings.UserID;
+ itm.Save();
+ }
+
+ }
+ }
+ public class RevType
+ {
+ private int _TypeID;
+ public int TypeID
+ {
+ get { return _TypeID; }
+ set { _TypeID = value; }
+ }
+ private string _TypeName;
+ public string TypeName
+ {
+ get { return _TypeName; }
+ set { _TypeName = value; }
+ }
+ public RevType(int i, string s)
+ {
+ _TypeID = i;
+ _TypeName = s;
+ }
+ }
+ public class RevTypes : List
+ {
+ }
+ public delegate void DisplayConsistencyReportEvent(object sender, ConsistencyReportArgs args);
+ public class ConsistencyReportArgs : EventArgs
+ {
+ private string _ReportName;
+ public string ReportName
+ {
+ get { return _ReportName; }
+ set { _ReportName = value; }
+ }
+ private ItemInfoList _MyItems;
+ public ItemInfoList MyItems
+ {
+ get { return _MyItems; }
+ set { _MyItems = value; }
+ }
+ public ConsistencyReportArgs(string reportName, ItemInfoList myItems)
+ {
+ _ReportName = reportName;
+ _MyItems = myItems;
+ }
+ }
+}
\ No newline at end of file
diff --git a/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs b/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs
index 0c09c8bf..0aa6cc63 100644
--- a/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs
+++ b/PROMS/VEPROMS User Interface/frmPDFStatusForm.cs
@@ -50,6 +50,11 @@ namespace VEPROMS
this.Text = "Creating PDF of " + myItem.DisplayNumber;
_NewLocation = newLocation;
}
+ public bool AllowAllWatermarks
+ {
+ get { return MyPromsPrinter.AllowAllWatermarks; }
+ set { MyPromsPrinter.AllowAllWatermarks = value; }
+ }
void pp_StatusChanged(object sender, PromsPrintStatusArgs args)
{
if (args.Type == PromsPrinterStatusType.ProgressSetup)
diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs
index 45ec1853..97e92f54 100644
--- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs
+++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs
@@ -195,14 +195,63 @@ namespace VEPROMS
displaySearch1.PrintRequest += new DisplaySearchEvent(displaySearch1_PrintRequest);
displayHistory.ChronologyPrintRequest += new DisplayHistoryReportEvent(displayHistory_ChronologyPrintRequest);
displayHistory.SummaryPrintRequest += new DisplayHistoryReportEvent(displayHistory_SummaryPrintRequest);
+ displayHistory.AnnotationRestored += new AnnotationRestoredHandler(displayHistory_AnnotationRestored);
this.Activated += new EventHandler(frmVEPROMS_Activated);
VlnSettings.StepTypeToolType = Settings.Default.StepTypeToolTip;
displayLibDocs.PrintRequest += new DisplayLibDocEvent(displayLibDocs_PrintRequest);
ContentInfo.InfoChanged += new ContentInfoEvent(RefreshDisplayHistory);
+ AnnotationInfo.InfoChanged += new AnnotationInfoEvent(RefreshDisplayHistory);
ItemInfo.InfoRestored += new ItemInfoEvent(RefreshDisplayHistory);
ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory);
tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure);
tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures);
+ tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure);
+ tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures);
+ tv.ApproveSomeProcedures += new vlnTreeViewEvent(tv_ApproveSomeProcedures);
+ tv.ReportAllProceduresInconsistencies += new vlnTreeViewEvent(tv_ReportAllProceduresInconsistencies);
+ }
+
+ void displayHistory_AnnotationRestored(AnnotationInfo restoredAnnotationInfo, ItemInfo currentItem)
+ {
+ ctrlAnnotationDetails.UpdateAnnotationGrid(currentItem);
+ }
+
+ void tv_ReportAllProceduresInconsistencies(object sender, vlnTreeEventArgs args)
+ {
+ DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo;
+ if (dvi == null) return;
+ this.Cursor = Cursors.WaitCursor;
+ ItemInfoList iil = ItemInfoList.GetAllInconsistencies(dvi.VersionID);
+ Volian.Print.Library.PDFConsistencyCheckReport rpt = new Volian.Print.Library.PDFConsistencyCheckReport(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\AllInconsistencies.pdf", iil);
+ rpt.BuildAllReport(dvi);
+ this.Cursor = Cursors.Default;
+ }
+
+ void tv_ApproveSomeProcedures(object sender, vlnTreeEventArgs args)
+ {
+ DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo;
+ if (dvi == null) return;
+ dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, true);
+ dlg.ShowDialog(this);
+ displayHistory.RefreshList();
+ }
+
+ void tv_ApproveAllProcedures(object sender, vlnTreeEventArgs args)
+ {
+ DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo;
+ if (dvi == null) return;
+ dlgApproveProcedure dlg = new dlgApproveProcedure(dvi);
+ dlg.ShowDialog(this);
+ displayHistory.RefreshList();
+ }
+
+ void tv_ApproveProcedure(object sender, vlnTreeEventArgs args)
+ {
+ ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
+ if (pi == null) return;
+ dlgApproveProcedure dlg = new dlgApproveProcedure(pi);
+ dlg.ShowDialog(this);
+ displayHistory.RefreshList();
}
void tv_PrintAllProcedures(object sender, vlnTreeEventArgs args)
@@ -1125,7 +1174,7 @@ namespace VEPROMS
_CurrentItem = null;
ctrlAnnotationDetails.CurrentAnnotation = null;
ctrlAnnotationDetails.Annotations = null;
- infotabRO.Visible = infotabTransition.Visible = infotabTags.Visible = false;
+ infotabRO.Visible = infotabTransition.Visible = infotabTags.Visible = infotabHistory.Visible = false;
// When infotabTags is set to InVisible, the matching panel also needs to be set to invisible
infotabControlPanelTags.Visible = false;
displayTags.Visible = false;