From 99792ab13e64220a4ffdc90bae5a9f8a9da5e981 Mon Sep 17 00:00:00 2001 From: Rich Date: Thu, 14 Nov 2013 21:28:25 +0000 Subject: [PATCH] Added code to allow storing approved pdf's into database for multiunit sites. --- PROMS/DataLoader/Approve.cs | 57 +++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/PROMS/DataLoader/Approve.cs b/PROMS/DataLoader/Approve.cs index f2d87fcd..7d6df00f 100644 --- a/PROMS/DataLoader/Approve.cs +++ b/PROMS/DataLoader/Approve.cs @@ -24,7 +24,7 @@ namespace DataLoader if (dvi.Procedures.Count > 0) { if (!frmMain.MySettings.OnlyThisSet || frmMain.MySettings.ProcedureSetPath.ToUpper() == dvi.MyFolder.Title.ToUpper()) - { + { string approvedFolder = dvi.MyFolder.Title + @"\APPROVED"; //B2012-094 fix if (!Directory.Exists(approvedFolder)) frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved folder does not exist"; @@ -53,16 +53,30 @@ namespace DataLoader private bool BuildApprovedRevision(Stage myStage, string approvedFolder, DocVersionInfo dvi) { bool rv = false; - ApprovedFolder af = new ApprovedFolder(approvedFolder); - foreach (ProcedureInfo pi in dvi.Procedures) + if (dvi.MultiUnitCount <= 1) { - rv |= BuildApprovedRevision(myStage, af, pi); + ApprovedFolder af = new ApprovedFolder(approvedFolder); + foreach (ProcedureInfo pi in dvi.Procedures) + { + rv |= BuildApprovedRevision(myStage, af, pi, 0); + } + } + else + { + ApprovedFolder af = new ApprovedFolder(approvedFolder, dvi); + foreach (ProcedureInfo pi in dvi.Procedures) + { + for (int i = 1; i <= dvi.MultiUnitCount; i++) + rv |= BuildApprovedRevision(myStage, af, pi, i); + } } return rv; } - private bool BuildApprovedRevision(Stage myStage, ApprovedFolder af, ProcedureInfo pi) + private bool BuildApprovedRevision(Stage myStage, ApprovedFolder af, ProcedureInfo pi, int selectedSlave) { bool rv = false; + if (selectedSlave > 0) + pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave; frmMain.MyInfo = string.Format("Loading approved data for Procedure: {0}", pi.DisplayNumber); // if working draft procedure does not exist in approved folder, don't bother processing if (!af.EntryFromProc.ContainsKey(pi.DisplayNumber)) return rv; @@ -109,6 +123,8 @@ namespace DataLoader string notes = "Migration Of Current Approved Revision"; RevisionConfig cfg = new RevisionConfig(); cfg.History_StartDate = pinf.StartDateTime; + if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) + cfg.Applicability_Index = pi.MyDocVersion.DocVersionConfig.SelectedSlave; string config = cfg.ToString(); System.DateTime dts = pi.DTS; string userID = pinf.UserID; @@ -287,6 +303,28 @@ namespace DataLoader FillLibDocs(); _Lookup = new ROFSTLookup(string.Format(@"{0}\RO.FST", Path)); } + public ApprovedFolder(string path, DocVersionInfo dvi) + { + _Path = path; + FillROs(); + FillLibDocs(); + _Lookup = new ROFSTLookup(string.Format(@"{0}\RO.FST", Path)); + _EntryFromProc = FillEntryFromProcMulti(dvi); + } + + private Dictionary FillEntryFromProcMulti(DocVersionInfo dvi) + { + Dictionary rv = new Dictionary(); + for (int i = 1; i <= dvi.MultiUnitCount; i++) + { + foreach (ProcedureInfo pi in dvi.Procedures) + { + pi.MyDocVersion.DocVersionConfig.SelectedSlave = i; + rv.Add(pi.DisplayNumber, new ProcInfo(pi, Path)); + } + } + return rv; + } private void FillLibDocs() { @@ -383,6 +421,15 @@ namespace DataLoader get { return _ReviewDate; } set { _ReviewDate = value; } } + public ProcInfo(ProcedureInfo pi, string afpath) + { + Number = pi.DisplayNumber; + Entry = pi.DisplayText; + UserID = pi.UserID; + StartDateTime = pi.DTS; + RevDate = pi.ProcedureConfig.Print_RevDate; + Rev = pi.ProcedureConfig.Print_Rev; + } public ProcInfo(DataRow dr, string afpath) { Number = dr["NUMBER"].ToString();