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(); }