Multiple return values were check uppercase ROID against a mixed case ROID and returning the wrong selection.
If the return value from rolookup is a Unit RO, convert it to it's value.
This commit is contained in:
		@@ -252,6 +252,21 @@ namespace VEPROMS.CSLA.Library
 | 
				
			|||||||
			s2 = s2.Replace("-", @"\u8209?");
 | 
								s2 = s2.Replace("-", @"\u8209?");
 | 
				
			||||||
			return s2;
 | 
								return s2;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							private string FixUnitROs(string val)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (val.StartsWith("<U-"))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (val.ToUpper() == "<U-TEXT>") val = _ROFstInfo.docVer.DocVersionConfig.Unit_Text;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-NUMBER>") val = _ROFstInfo.docVer.DocVersionConfig.Unit_Number;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-NAME>") val = _ROFstInfo.docVer.DocVersionConfig.Unit_Name;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-ID>") val = _ROFstInfo.docVer.DocVersionConfig.Unit_ID;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-OTHER TEXT>") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Text;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-OTHER NUMBER>") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Number;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-OTHER NAME>") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Name;
 | 
				
			||||||
 | 
									else if (val.ToUpper() == "<U-OTHER ID>") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_ID;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								return val;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		// this only gets rochild values. Later we may want another
 | 
							// this only gets rochild values. Later we may want another
 | 
				
			||||||
		// dictionary to get groups.
 | 
							// dictionary to get groups.
 | 
				
			||||||
		public string GetRoValue(string ROID16)
 | 
							public string GetRoValue(string ROID16)
 | 
				
			||||||
@@ -263,14 +278,14 @@ namespace VEPROMS.CSLA.Library
 | 
				
			|||||||
			{
 | 
								{
 | 
				
			||||||
				rochild rochld = (rochild)dicRos[ROID.ToUpper()];
 | 
									rochild rochld = (rochild)dicRos[ROID.ToUpper()];
 | 
				
			||||||
				if (rochld.value != null && rochld.value != string.Empty)
 | 
									if (rochld.value != null && rochld.value != string.Empty)
 | 
				
			||||||
					return rochld.value;
 | 
										return FixUnitROs( rochld.value);
 | 
				
			||||||
				if (rochld.children != null)
 | 
									if (rochld.children != null)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					foreach (rochild child in rochld.children)
 | 
										foreach (rochild child in rochld.children)
 | 
				
			||||||
						if (child.roid.ToUpper() == ROID16 || (child.roid.EndsWith("0041") && ROID16.EndsWith("0000")))
 | 
											if (child.roid.ToUpper() == ROID16.ToUpper() || (child.roid.EndsWith("0041") && ROID16.EndsWith("0000")))
 | 
				
			||||||
							return child.value;
 | 
												return FixUnitROs(child.value);
 | 
				
			||||||
					// if there isn't a specific match for multi-return values, default to the first child. 
 | 
										// if there isn't a specific match for multi-return values, default to the first child. 
 | 
				
			||||||
					return rochld.children[0].value;
 | 
										return FixUnitROs(rochld.children[0].value);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			//if (ROID == "FFFF00000001") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Number;
 | 
								//if (ROID == "FFFF00000001") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Number;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user