From 662af0e33422b7f8dac3baf2178431ed7cc592a1 Mon Sep 17 00:00:00 2001 From: Rich Date: Mon, 23 Jan 2012 13:41:41 +0000 Subject: [PATCH] corrected jcb server name in database connection strings allow watermarks from approval process handlers for vlnTreeView events supporting approval process approval process dialog --- PROMS/VEPROMS User Interface/App.config | 6 +- .../dlgApproveProcedure.Designer.cs | 632 +++++++++ .../dlgApproveProcedure.cs | 1131 +++++++++++++++++ .../frmPDFStatusForm.cs | 5 + PROMS/VEPROMS User Interface/frmVEPROMS.cs | 51 +- 5 files changed, 1821 insertions(+), 4 deletions(-) create mode 100644 PROMS/VEPROMS User Interface/dlgApproveProcedure.Designer.cs create mode 100644 PROMS/VEPROMS User Interface/dlgApproveProcedure.cs 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;