From b10d66fc53f0fdff3d356fe8d05d83fa1d711552 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 21 Jan 2022 14:35:17 +0000 Subject: [PATCH] C2022-001 fixed index out of range when updating RO values C2022-001 pass in Otherxxx parent/child information to get correct child RO value C2022-001 new logic to get parent (default) RO value. --- PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs | 2 +- PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs | 12 +++++++++++- PROMS/Volian.Controls.Library/DisplayRO.cs | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs index b9864362..aa127d47 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs @@ -397,7 +397,7 @@ namespace VEPROMS.CSLA.Library } string defPrefix = tText.Substring(start - 3, 3); if (defPrefix != @"\v ") throw new Exception(string.Format("rtf string {0} does not match expected format", defPrefix)); - string txt = tText.Substring(lastIndex, start - lastIndex - 3); + string txt = tText.Substring(lastIndex, start - (lastIndex - 3)); int lastSlash = txt.LastIndexOf(@"\"); int lastSpace = txt.LastIndexOf(" "); int lastCR = txt.LastIndexOf("\r"); diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index cbde52fb..e2ddfdd0 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -1049,9 +1049,19 @@ namespace VEPROMS.CSLA.Library } if (docVersionInfo.DocVersionAssociationCount == 1) { + string otherChildUnit = null; ROFstInfo rofstinfo = docVersionInfo.DocVersionAssociations[0].MyROFst; //rofstinfo.docVer = docVersionInfo; - ROFSTLookup lookup = rofstinfo.GetROFSTLookup(docVersionInfo); + string rawPrcNum = itemInfo.MyProcedure.MyContent.Number; + // C2022-001 see if we need to get the Other child info from ROLookUp + if (rawPrcNum.ToUpper().StartsWith(" in its definiation (procedure property page) + { + string procnum = itemInfo.MyProcedure.DisplayNumber; // get the cooked (resolved) procedure number + int idx = procnum.IndexOf('-'); + otherChildUnit = procnum.Substring(0, idx); // we need to get RO info for the Other child applicability - this gets child's number + } + + ROFSTLookup lookup = rofstinfo.GetROFSTLookup(docVersionInfo, otherChildUnit); lookup.MyDocVersionInfo = docVersionInfo; //DateTime dts = DateTime.Now; if (itemInfo.MyContent.ContentGridCount > 0) diff --git a/PROMS/Volian.Controls.Library/DisplayRO.cs b/PROMS/Volian.Controls.Library/DisplayRO.cs index cf1520a4..7b3304d4 100644 --- a/PROMS/Volian.Controls.Library/DisplayRO.cs +++ b/PROMS/Volian.Controls.Library/DisplayRO.cs @@ -331,7 +331,8 @@ namespace Volian.Controls.Library int EndCVidx = rntval.IndexOf(" /APL>", startCVIdx); string aplicValues = rntval.Substring(startCVIdx, EndCVidx + 6 - startCVIdx); int endDefIdx = rntval.IndexOf(",", startCVIdx); - string defValue = rntval.Substring(startCVIdx + 16, endDefIdx - (startCVIdx + 16)); + // C2022-001 - handle if there is no child value in the RO FSt + string defValue = rntval.Substring(startCVIdx + 16, ((endDefIdx > 0) ? endDefIdx : EndCVidx) - (startCVIdx + 16)); rntval = rntval.Replace(aplicValues, defValue); } return rntval;