C2025-015 Added logic to make approved PDF names unique to allow procedures from different sets or different revs of the same procedure to be opened (viewed) at the same time.

This commit is contained in:
2025-08-12 09:21:26 -04:00
parent 7b3f78f745
commit 41e969f79e

View File

@@ -1606,6 +1606,27 @@ namespace Volian.Controls.Library
FlexibleMessageBox.Show("Approved procedure saved to import file " + fileName, "Creating Export of Approved Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//C2025-015 Get a partial folder path. This will be used in building the PDF file name when viewing Approved procedures
string ProcFolderPathforApprovedPDF(string fullPath)
{
string rtnStr = "";
try
{
// the fullPath string that is passed in ends with the Working Draft node. We want to trim that off
string[] strParts = fullPath.Substring(0, fullPath.LastIndexOf("\\")).Split('\\'); //fullPath.Replace("\\Working Draft","").Split('\\');
int lastPart = Math.Max(strParts.Length - 1, 0);
rtnStr = strParts[lastPart];
if (rtnStr.ToUpper().StartsWith("UNIT"))
{
rtnStr = strParts[lastPart - 1] + "_" + rtnStr;
}
}
catch
{
rtnStr = fullPath.Replace("\\", "_"); // just return the full path with _ intead of backslashes
}
return rtnStr;
}
void ApprovedRevision_Click(object sender, EventArgs e)
{
@@ -1619,7 +1640,10 @@ namespace Volian.Controls.Library
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
superceded = true;
}
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
ProcedureInfo prcInfo = ProcedureInfo.Get(ri.ItemID);
// C2025-015 build a file name that includes a partial folder path and approved revision number
string approvedPDFName = string.Format("{0}_{1} Revision {2}", ProcFolderPathforApprovedPDF(prcInfo.SearchDVPath_clean), prcInfo.PDFNumber,ri.RevisionNumber);
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(approvedPDFName), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
OnViewPDF(sender, args);
// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded));
}
@@ -1628,6 +1652,7 @@ namespace Volian.Controls.Library
bool superceded = false;
MenuItem mi = sender as MenuItem;
if (mi == null) return;
string childName = "";
//RevisionInfo ri = mi.Tag as RevisionInfo;
RevisionInfo ri = RevisionInfo.Get(int.Parse(mi.Tag.ToString()));
{
@@ -1635,12 +1660,22 @@ namespace Volian.Controls.Library
//B2021-086 Added the check for the last revision stage is an Approved stage
if ((ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) && ri.LatestVersion.MyStage.IsApproved != 0)
superceded = true;
// C2025_015 get the child's name to append to file name
mip = mip.Parent as MenuItem;
if (mip != null)
{
childName = "_" + mip.Text;
}
}
ItemInfo ii = ItemInfo.Get(ri.ItemID);
ii.MyDocVersion.DocVersionConfig.SelectedSlave = ri.MyConfig.Applicability_Index;
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : "");
ProcedureInfo prcInfo = ProcedureInfo.Get(ri.ItemID);
if (prcInfo.MyContent.Number.ToUpper().Contains("<U") || ii.MyDocVersion.DocVersionConfig.Unit_ProcedureNumber.Contains("#"))
childName = ""; // unit identification already part of procedure number-no need to add the child name to the PDF file name
// C2025-015 build a file name that includes a partial folder path, the child name and approved revision number
string approvedPDFName = string.Format("{0}{1}_{2} Revision {3}", ProcFolderPathforApprovedPDF(prcInfo.SearchDVPath_clean),childName, prcInfo.PDFNumber, ri.RevisionNumber);
vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(approvedPDFName), 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)
{