From 35da7c427470da308e4648442547e6e939acfe80 Mon Sep 17 00:00:00 2001 From: Rich Date: Tue, 4 Dec 2012 22:44:00 +0000 Subject: [PATCH] Added ApplicabilityIndex property to dlgApproveProcedure class Set ApplicabilityIndex to DocVersionConfig.SelectedSlave Set DocVersionConfig.SelectedSlave to ApplicabilityIndex for each procedure in DocVersion Set DocVersionConfig.SelectedSlave to DocVersionConfig.SelectedSlave of first procedure to be approved for each procedure listed in select procedure panel Set ProcedureConfig.SelectedSlave to DocVersionConfig.SelectedSlave in constructor for ApprovalProcedure class Retrieve current RevisionInfo for ApprovalProcedure class Approve method For each procedure to be approved, retreive current RevisionInfo Set myDTS variable to current RevisonInfo DTS if RevNumber is different and latest version is approved Populate ContentAuditInfoList and AnnotationAuditInfoList for selected unit Retrieve Revison object for selected unit Added required closing brace Store DocVersionConfig.SelectedSlave value to selectedSlave variable then reset DocVersionConfig.SelectedSlave to 0 Update ProcedureConfig based on selectedSlave variable value based on whether StageInfo is approved or not approved Reset DocVersionConfig.SelectedSlave to value of selectedSlave variable Changed UpdateProcedureConfig method to inlcude selectedSlave parameter Set ProcedureConfig SelectedSlave property to passed selectedSlave parameter value Comment out updating Item DTS during ProcedureConfig update --- .../dlgApproveProcedure.cs | 115 ++++++++++++++---- 1 file changed, 90 insertions(+), 25 deletions(-) diff --git a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs index a047597c..6df32854 100644 --- a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs +++ b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs @@ -33,11 +33,18 @@ namespace VEPROMS tsslStatus.Text = value ? "" : "Need to correct the Rev Numbers marked with Question Marks"; } } + private int _ApplicabilityIndex = 0; + public int ApplicabilityIndex + { + get { return _ApplicabilityIndex; } + set { _ApplicabilityIndex = value; } + } private ApprovalInfo _MyApproval = new ApprovalInfo(); private bool _CheckForMore = false; private DocVersionInfo _MyDocVersion; public dlgApproveProcedure(DocVersionInfo myDocVersion) { + ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave; this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); _MyDocVersion = myDocVersion; InitializeComponent(); @@ -45,7 +52,10 @@ namespace VEPROMS _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated); SetupComboBoxes(); foreach (ProcedureInfo pi in myDocVersion.Procedures) + { + pi.MyDocVersion.DocVersionConfig.SelectedSlave = ApplicabilityIndex; _MyApproval.AddProcedure(pi); + } SetupMyApproval(); //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); @@ -162,6 +172,7 @@ namespace VEPROMS { foreach (ProcedureInfo pi in _MyDocVersion.Procedures) { + pi.MyDocVersion.DocVersionConfig.SelectedSlave = _MyDocVersion.DocVersionConfig.SelectedSlave; clbMore.Items.Add(pi.DisplayNumber); tmpProcedures.Add(pi.DisplayNumber, pi); } @@ -637,6 +648,7 @@ namespace VEPROMS } public ApprovalProcedure(ProcedureInfo proc) { + proc.ProcedureConfig.SelectedSlave = proc.MyDocVersion.DocVersionConfig.SelectedSlave; ProcInfo = proc; RevNumber = proc.ProcedureConfig.Print_Rev == string.Empty ? "0" : proc.ProcedureConfig.Print_Rev; //AppRevDate Change @@ -929,7 +941,8 @@ namespace VEPROMS StageInfo nsi = StageInfo.Get(RevStage); foreach (ApprovalProcedure ap in MyProcedures) //spin thru looking for updating current revision { - RevisionInfo ric = RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); + //RevisionInfo ric = RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); + RevisionInfo ric = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(ap.ProcInfo.ItemID,ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); if (ric != null) { VersionInfo vi = ric.LatestVersion; @@ -950,17 +963,40 @@ namespace VEPROMS { ProcedureInfo pi = ap.ProcInfo; OnStatusUpdated(this, new ApprovalMessageArgs(string.Format("Processing {0}", pi.DisplayNumber))); - RevisionInfo ric = RevisionInfo.GetCurrentByItemID(pi.ItemID); + RevisionInfo ric = pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(pi.ItemID,pi.MyDocVersion.DocVersionConfig.SelectedSlave) : 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 = ric.MyConfig.History_StartDate; - UpdateProcedureDTS(pi, myDTS); + //UpdateProcedureDTS(pi, myDTS); + } + if (ric != null && ap.RevNumber != ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1) + { + myDTS = ric.DTS; +// myDTS = DateTime.Parse(pi.ProcedureConfig.Print_RevDate); } string summaryPDF = VlnSettings.TemporaryFolder + @"\MySummary.pdf"; - ContentAuditInfoList cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false); - AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID); + ContentAuditInfoList cail; + AnnotationAuditInfoList aail; + if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) + { + cail = ContentAuditInfoList.GetSummaryByUnit(pi.ItemID, pi.ItemID, false, pi.MyDocVersion.DocVersionConfig.SelectedSlave); + aail = AnnotationAuditInfoList.GetChronologyByUnit(pi.ItemID, pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave); + } + else + { + cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false); + aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID); + } + if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) + { + pi = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, pi.MyDocVersion.DocVersionConfig.SelectedSlave); + } + //else + //{ + // pi = ProcedureInfo.GetItemAndChildren(pi.ItemID, 0); + //} Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(summaryPDF, pi, cail, aail); myChronoRpt.BuildSummary(ViewPDF); FileInfo pdfFile = new FileInfo(summaryPDF); @@ -968,22 +1004,47 @@ namespace VEPROMS 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 = null; + if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0) { - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = pi.DTS; - //cfg.Save(); - revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); -// revision.MyConfig.History_StartDate = pi.DTS; -// revision.MyConfig.Save(); -// revision = revision.Save(); + revision = Revision.GetByItemIDAndRevisionNumberAndUnitID(pi.ItemID, ap.RevNumber, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave); + if (revision == null) + { + RevisionConfig cfg = new RevisionConfig(); + cfg.History_StartDate = pi.DTS; + cfg.Applicability_Index = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave; + //cfg.Save(); + revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); + // revision.MyConfig.History_StartDate = pi.DTS; + // revision.MyConfig.Save(); + // revision = revision.Save(); + } + else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) + { + revision.Notes = RevNote; + revision.RevisionDate = ap.RevDate; + revision = revision.Save(); + } } - else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) + else { - revision.Notes = RevNote; - revision.RevisionDate = ap.RevDate; - revision = revision.Save(); + revision = Revision.GetByItemIDAndRevisionNumber(pi.ItemID, ap.RevNumber); + if (revision == null) + { + RevisionConfig cfg = new RevisionConfig(); + cfg.History_StartDate = pi.DTS; + //cfg.Save(); + revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); + // revision.MyConfig.History_StartDate = pi.DTS; + // revision.MyConfig.Save(); + // revision = revision.Save(); + } + else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) + { + revision.Notes = RevNote; + revision.RevisionDate = ap.RevDate; + revision = revision.Save(); + } } DateTime currentDTS = DateTime.Now; Check check = Check.MakeCheck(revision, Stage.Get(RevStage), RevisionInfo.BuildRevisionChecks(pi), currentDTS, VlnSettings.UserID); @@ -996,9 +1057,9 @@ namespace VEPROMS using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildren(pi.ItemID)) { frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - frm.AllowAllWatermarks = true; - frm.CloseWhenDone = !ViewPDF; - frm.ShowDialog(); + frm.AllowAllWatermarks = true; + frm.CloseWhenDone = !ViewPDF; + frm.ShowDialog(); } pdfFile = new FileInfo(pdfPath); fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); @@ -1007,11 +1068,14 @@ namespace VEPROMS fs.Close(); VEPROMS.CSLA.Library.Version version = VEPROMS.CSLA.Library.Version.MakeVersion(revision, Stage.Get(RevStage), buf, summaryBuf, currentDTS, VlnSettings.UserID); StageInfo si = StageInfo.Get(RevStage); + int selectedSlave = pi.MyDocVersion.DocVersionConfig.SelectedSlave; + pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; if (si.IsApproved == 1) - UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, DateTime.Now); + UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, DateTime.Now, selectedSlave); else - UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS); + UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS, selectedSlave); //UpdateProcedureDTS(pi, DateTime.Now); + pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave; } return true; } @@ -1024,17 +1088,18 @@ namespace VEPROMS itm.Save(); } } - private void UpdateProcedureConfig(ProcedureInfo procedureInfo, string revNumber, DateTime revDate, DateTime dts) + private void UpdateProcedureConfig(ProcedureInfo procedureInfo, string revNumber, DateTime revDate, DateTime dts, int selectedSlave) { ProcedureConfig pc = procedureInfo.MyConfig as ProcedureConfig; if (pc == null) return; + pc.SelectedSlave = selectedSlave; pc.Print_Rev = revNumber; //AppRevDate Change pc.Print_RevDate = revDate.ToString("MM/dd/yyyy"); using (Item itm = Item.Get(procedureInfo.ItemID)) { itm.MyContent.Config = pc.ToString(); - itm.DTS = dts; + //itm.DTS = dts; itm.UserID = Volian.Base.Library.VlnSettings.UserID; itm.Save(); }