diff --git a/PROMS/DataLoader/Properties/Settings.Designer.cs b/PROMS/DataLoader/Properties/Settings.Designer.cs
index 564d3ec5..c29c2bc8 100644
--- a/PROMS/DataLoader/Properties/Settings.Designer.cs
+++ b/PROMS/DataLoader/Properties/Settings.Designer.cs
@@ -310,5 +310,29 @@ namespace DataLoader.Properties {
this["GenMacFolder"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool LoadApproved {
+ get {
+ return ((bool)(this["LoadApproved"]));
+ }
+ set {
+ this["LoadApproved"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("Phase4")]
+ public string Phase4 {
+ get {
+ return ((string)(this["Phase4"]));
+ }
+ set {
+ this["Phase4"] = value;
+ }
+ }
}
}
diff --git a/PROMS/DataLoader/Properties/Settings.settings b/PROMS/DataLoader/Properties/Settings.settings
index aa0e3e2c..f6e15f4b 100644
--- a/PROMS/DataLoader/Properties/Settings.settings
+++ b/PROMS/DataLoader/Properties/Settings.settings
@@ -74,5 +74,11 @@
c:\development\genmacall
+
+ False
+
+
+ Phase4
+
\ No newline at end of file
diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs
index 97e92f54..898cc2b3 100644
--- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs
+++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs
@@ -18,6 +18,7 @@ using VEPROMS.Properties;
using Volian.Controls.Library;
using DescriptiveEnum;
using Volian.Base.Library;
+using Volian.Print.Library;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
@@ -209,6 +210,20 @@ namespace VEPROMS
tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures);
tv.ApproveSomeProcedures += new vlnTreeViewEvent(tv_ApproveSomeProcedures);
tv.ReportAllProceduresInconsistencies += new vlnTreeViewEvent(tv_ReportAllProceduresInconsistencies);
+ tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF);
+ }
+
+ void tv_ViewPDF(object sender, vlnTreeViewPdfArgs args)
+ {
+ byte[] buffer;
+ if (args.MyWatermark != string.Empty)
+ buffer = PromsPrinter.WatermarkPDF(args.MyBuffer, args.MyWatermark);
+ else
+ buffer = args.MyBuffer;
+ FileStream fs = new FileStream(args.MyFilename, FileMode.Create);
+ fs.Write(buffer, 0, buffer.Length);
+ fs.Close();
+ System.Diagnostics.Process.Start(args.MyFilename);
}
void displayHistory_AnnotationRestored(AnnotationInfo restoredAnnotationInfo, ItemInfo currentItem)
diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs b/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs
index 28b3eac8..0b0e5987 100644
--- a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs
+++ b/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs
@@ -4,6 +4,7 @@ using System.Collections.Specialized;
using System.Text;
using System.ComponentModel;
using System.Text.RegularExpressions;
+using System.IO;
namespace VEPROMS.CSLA.Library
{
@@ -110,6 +111,18 @@ namespace VEPROMS.CSLA.Library
_DocVersionInfo = _ROFstInfo.docVer==null?null: DocVersionInfo.Get(_ROFstInfo.docVer.VersionID);
ParseIntoDictionary(rofstinfo.ROLookup);
}
+ public ROFSTLookup(string filePath)
+ {
+ _ROFstInfo = null;
+ _ROFst = null;
+ _DocVersionInfo = null;
+ FileInfo rofstFile = new FileInfo(filePath);
+ FileStream fs = rofstFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
+ byte[] buf = new byte[rofstFile.Length];
+ fs.Read(buf, 0, buf.Length);
+ fs.Close();
+ ParseIntoDictionary(buf);
+ }
#endregion
#region PropertiesAndData
public roHdr myHdr;
diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs
index d1a9d5d8..7af6da05 100644
--- a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs
+++ b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs
@@ -130,6 +130,64 @@ namespace VEPROMS.CSLA.Library
_DocumentConfig = null;
}
#endregion
+ public static DocumentInfo GetByLibDocName(string libdoc, int versionID)
+ {
+ try
+ {
+ DocumentInfo tmp = DataPortal.Fetch(new LibDocCriteria(libdoc, versionID));
+ return tmp;
+ }
+ catch (Exception ex)
+ {
+ throw new DbCslaException("Error on DocumentInfo.GetByLibDocName", ex);
+ }
+ }
+ [Serializable()]
+ protected class LibDocCriteria
+ {
+ private string _LibDoc;
+ public string LibDoc
+ { get { return _LibDoc; } }
+ private int _VersionID;
+ public int VersionID
+ { get { return _VersionID; } }
+ public LibDocCriteria(string libdoc, int versionid)
+ {
+ _LibDoc = libdoc;
+ _VersionID = versionid;
+ }
+ }
+ private void DataPortal_Fetch(LibDocCriteria criteria)
+ {
+ if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfo.DataPortal_Fetch", GetHashCode());
+ try
+ {
+ using (SqlConnection cn = Database.VEPROMS_SqlConnection)
+ {
+ using (SqlCommand cm = cn.CreateCommand())
+ {
+ cm.CommandType = CommandType.StoredProcedure;
+ cm.CommandText = "getDocumentByLibDoc";
+ cm.Parameters.AddWithValue("@LibDoc", criteria.LibDoc);
+ cm.Parameters.AddWithValue("@VersionID", criteria.VersionID);
+ using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
+ {
+ if (!dr.Read())
+ {
+ _ErrorMessage = "No Record Found";
+ return;
+ }
+ ReadData(dr);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentInfo.DataPortal_Fetch", ex);
+ throw new DbCslaException("DocumentInfo.DataPortal_Fetch", ex);
+ }
+ }
}
public partial class DocumentInfoList
diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs
index 46966861..b0337ba3 100644
--- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs
+++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs
@@ -1302,6 +1302,7 @@ namespace VEPROMS.CSLA.Library
retval = ReplaceSpecialCharacters(retval);
retval = retval.Replace("\u2011","-");
retval = retval.Replace("\r\n", ";");
+ retval = retval.Replace("\n", ";"); //added for consistency checking with approved version
return retval;
}
public static string StripRtfFormatting(string rtf)
diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs
index 5f0e078d..ad9250f1 100644
--- a/PROMS/Volian.Controls.Library/vlnTreeView.cs
+++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs
@@ -28,6 +28,7 @@ namespace Volian.Controls.Library
public delegate DialogResult vlnTreeViewPSIEvent(object sender, vlnTreeEventArgs args);
public delegate void vlnTreeViewSectionInfoEvent(object sender, vlnTreeSectionInfoEventArgs args);
public delegate void WordSectionDeletedEvent(object sender, WordSectionEventArgs args);
+ public delegate void vlnTreeViewPdfEvent(object sender, vlnTreeViewPdfArgs args);
public partial class vlnTreeSectionInfoEventArgs
{
private bool _IsDeleting = false;
@@ -52,6 +53,33 @@ namespace Volian.Controls.Library
_IsDeleting = isDeleting;
}
}
+ public partial class vlnTreeViewPdfArgs
+ {
+ private string _MyFilename;
+ public string MyFilename
+ {
+ get { return _MyFilename; }
+ set { _MyFilename = value; }
+ }
+ private byte[] _MyBuffer;
+ public byte[] MyBuffer
+ {
+ get { return _MyBuffer; }
+ set { _MyBuffer = value; }
+ }
+ private string _MyWatermark;
+ public string MyWatermark
+ {
+ get { return _MyWatermark; }
+ set { _MyWatermark = value; }
+ }
+ public vlnTreeViewPdfArgs(string filename, byte[] buffer, string watermark)
+ {
+ _MyFilename = filename;
+ _MyBuffer = buffer;
+ _MyWatermark = watermark;
+ }
+ }
public partial class vlnTreeEventArgs
{
#region Business Methods
@@ -277,6 +305,11 @@ namespace Volian.Controls.Library
ItemInfo _LastItemInfo = null;
#endregion
#region Events
+ public event vlnTreeViewPdfEvent ViewPDF;
+ private void OnViewPDF(object sender, vlnTreeViewPdfArgs args)
+ {
+ if (ViewPDF != null) ViewPDF(sender, args);
+ }
public event vlnTreeViewItemInfoDeleteEvent DeleteItemInfo;
private bool OnDeleteItemInfo(object sender, vlnTreeItemInfoEventArgs args)
{
@@ -549,56 +582,83 @@ namespace Volian.Controls.Library
RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID);
if (ril.Count == 0) return;
MenuItem mi = menuItemCollection.Add("Versions");
+ int lastApprovedRevisionID = 0;
foreach (RevisionInfo ri in ril)
{
MenuItem mir = mi.MenuItems.Add(ri.ToString());
mir.Tag = ri;
- mir.Click += new EventHandler(ApprovedRevision_Click);
+ if (ri.LatestVersion.MyStage.IsApproved > 0 && (ri.RevisionID > lastApprovedRevisionID))
+ lastApprovedRevisionID = ri.RevisionID;
+ //mir.Click += new EventHandler(ApprovedRevision_Click);
//added jcb 20111031
- MenuItem mirp = mir.MenuItems.Add("View Procedure");
- mirp.Tag = ri;
- mirp.Click += new EventHandler(ApprovedRevision_Click);
- MenuItem mirs = mir.MenuItems.Add("View Summary of Changes");
- mirs.Tag = ri;
- mirs.Click += new EventHandler(SummaryOfChanges_Click);
+ if (ri.LatestVersion.PDF != null)
+ {
+ MenuItem mirp = mir.MenuItems.Add("View Procedure");
+ mirp.Tag = ri;
+ mirp.Click += new EventHandler(ApprovedRevision_Click);
+ }
+ if (ri.LatestVersion.SummaryPDF != null)
+ {
+ MenuItem mirs = mir.MenuItems.Add("View Summary of Changes");
+ mirs.Tag = ri;
+ mirs.Click += new EventHandler(SummaryOfChanges_Click);
+ }
//end added jcb 20111031
+ mi.Tag = lastApprovedRevisionID;
}
}
void ApprovedRevision_Click(object sender, EventArgs e)
{
+ bool superceded = false;
MenuItem mi = sender as MenuItem;
if (mi == null) return;
RevisionInfo ri = mi.Tag as RevisionInfo;
- System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri));
+ {
+ MenuItem mip = mi.Parent as MenuItem;
+ if (ri.RevisionID < int.Parse(mip.Parent.Tag.ToString()))
+ superceded = true;
+ }
+ vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
+ OnViewPDF(sender, args);
+// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
}
void SummaryOfChanges_Click(object sender, EventArgs e)
{
MenuItem mi = sender as MenuItem;
if (mi == null) return;
RevisionInfo ri = mi.Tag as RevisionInfo;
- System.Diagnostics.Process pps = System.Diagnostics.Process.Start(GetDocSummaryPdf(ri));
- }
- private string GetDocPdf(RevisionInfo ri)
- {
- string fileName = Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber);
- FileInfo fi = new FileInfo(VlnSettings.TemporaryFolder + @"\" + fileName);
- FileStream fs = fi.Create();
- byte[] myPdf = ri.LatestVersion.PDF;
- if (myPdf != null) fs.Write(myPdf, 0, myPdf.Length);
- fs.Close();
- return VlnSettings.TemporaryFolder + @"\" + fileName;
- }
- private string GetDocSummaryPdf(RevisionInfo ri)
- {
- string fileName = Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber + " Summary of Changes");
- FileInfo fi = new FileInfo(VlnSettings.TemporaryFolder + @"\" + fileName);
- FileStream fs = fi.Create();
- byte[] myPdf = ri.LatestVersion.SummaryPDF;
- if (myPdf != null) fs.Write(myPdf, 0, myPdf.Length);
- fs.Close();
- return VlnSettings.TemporaryFolder + @"\" + fileName;
+ vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber + " Summary of Changes"), ri.LatestVersion.SummaryPDF, "");
+ OnViewPDF(sender, args);
+ // System.Diagnostics.Process pps = System.Diagnostics.Process.Start(GetDocSummaryPdf(ri));
}
+ //private string GetDocPdf(RevisionInfo ri, bool superceded)
+ //{
+ // string fileName = Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber);
+ // FileInfo fi = new FileInfo(VlnSettings.TemporaryFolder + @"\" + fileName);
+ // FileStream fs = fi.Create();
+ // byte[] myPdf = ri.LatestVersion.PDF;
+ // if (myPdf != null) fs.Write(myPdf, 0, myPdf.Length);
+ // fs.Close();
+ // if (superceded)
+ // AddSupercededWatermark(VlnSettings.TemporaryFolder + @"\" + fileName);
+ // return VlnSettings.TemporaryFolder + @"\" + fileName;
+ //}
+
+ //private void AddSupercededWatermark(string p)
+ //{
+ // MessageBox.Show("superceded");
+ //}
+ //private string GetDocSummaryPdf(RevisionInfo ri)
+ //{
+ // string fileName = Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber + " Summary of Changes");
+ // FileInfo fi = new FileInfo(VlnSettings.TemporaryFolder + @"\" + fileName);
+ // FileStream fs = fi.Create();
+ // byte[] myPdf = ri.LatestVersion.SummaryPDF;
+ // if (myPdf != null) fs.Write(myPdf, 0, myPdf.Length);
+ // fs.Close();
+ // return VlnSettings.TemporaryFolder + @"\" + fileName;
+ //}
private bool AddToInsertMenu(ItemInfo ii, int ba) // 0 = before, 1 = after
diff --git a/PROMS/Volian.Print.Library/PDFConsistencyCheckReport.cs b/PROMS/Volian.Print.Library/PDFConsistencyCheckReport.cs
index 00c797de..63673c84 100644
--- a/PROMS/Volian.Print.Library/PDFConsistencyCheckReport.cs
+++ b/PROMS/Volian.Print.Library/PDFConsistencyCheckReport.cs
@@ -134,7 +134,14 @@ namespace Volian.Print.Library
PdfPTable t = CreatePdfPTable(cols);
CreatePageHeader(t, f1, f4, cols, paddingBottom, "Approval Consistency Report", "Procedures currently selected to be approved");
//more stuff
- foreach (ProcedureInfo pi in MyItemInfoList)
+ /*
+ Csla.SortedBindingList sortedResults = new Csla.SortedBindingList(_SearchResults);
+ sortedResults.ApplySort(_DisplayMember, ListSortDirection.Ascending);
+ lbSrchResults.DataSource = sortedResults;
+ */
+ Csla.SortedBindingList sortedProcs = new Csla.SortedBindingList(MyItemInfoList);
+ sortedProcs.ApplySort("DisplayNumber", System.ComponentModel.ListSortDirection.Ascending);
+ foreach (ProcedureInfo pi in sortedProcs)
{
if (pi.IsSelected)
{
diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs b/PROMS/Volian.Print.Library/PromsPrinter.cs
index 18f9f926..81ee712f 100644
--- a/PROMS/Volian.Print.Library/PromsPrinter.cs
+++ b/PROMS/Volian.Print.Library/PromsPrinter.cs
@@ -676,5 +676,39 @@ namespace Volian.Print.Library
myPageHelper.MySection = saveSect;
myPageHelper.OnFoldoutPage = false;
}
+ public static byte[] WatermarkPDF(byte[] buffer, string watermark)
+ {
+ PdfReader reader = new PdfReader(buffer);
+ MemoryStream ms = new MemoryStream();
+ PdfStamper stamper = new PdfStamper(reader, ms);
+ PdfLayer layer = new PdfLayer("Watermark", stamper.Writer);
+ layer.SetPrint("Print", true);
+ for (int i = 1; i <= reader.NumberOfPages; i++)
+ {
+ PdfContentByte cb = stamper.GetUnderContent(i);
+ cb.SaveState();
+ cb.BeginLayer(layer);
+ SvgWatermark wm = new SvgWatermark(cb, watermark, System.Drawing.Color.Blue, .15F);
+ wm.SetSquareDotPattern(.7F);
+ //wm.SetTextPattern(8, 3);
+ //wm.SetTextPattern2(8);
+ //wm.SetHashPattern(1, 6);
+ //wm.SetDotPattern(5, 2);
+ wm.Draw();
+ cb.EndLayer();
+ cb.RestoreState();
+ }
+ stamper.Close();
+ /*
+ cb.SaveState();
+ if (_WatermarkLayer != null) cb.BeginLayer(_WatermarkLayer);
+ SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.Blue, .15F);
+ myWatermark.SetSquareDotPattern(.7F);
+ myWatermark.Draw();
+ if (_WatermarkLayer != null) cb.EndLayer();
+ cb.RestoreState();
+ */
+ return ms.ToArray();
+ }
}
}
diff --git a/PROMS/Volian.Utils.Library/vlnObject/vlnControl.xml b/PROMS/Volian.Utils.Library/vlnObject/vlnControl.xml
index fc0d37cb..44fc9861 100644
--- a/PROMS/Volian.Utils.Library/vlnObject/vlnControl.xml
+++ b/PROMS/Volian.Utils.Library/vlnObject/vlnControl.xml
@@ -150,10 +150,10 @@
child="version">
-
+
-
+