/// <summary> /// Keep the combo and textboxes together /// </summary> public static void ReconcileKeyMinistryFromCombo(GiftBatchTDSAGiftDetailRow ACurrentDetailRow, TCmbAutoPopulated ACmbKeyMinistries, TextBox ATxtDetailRecipientKeyMinistry, bool AInEditModeFlag, bool ABatchUnpostedFlag) { if (ABatchUnpostedFlag && AInEditModeFlag) { string keyMinistry = string.Empty; bool isEmptyDetailRow = (ACurrentDetailRow == null); if (!isEmptyDetailRow && (ACmbKeyMinistries.SelectedIndex > -1)) { keyMinistry = ACmbKeyMinistries.GetSelectedDescription(); } ATxtDetailRecipientKeyMinistry.Text = keyMinistry; } }
public void TestComboboxEmptyDescriptionBug() { TCmbAutoPopulated cmb = new TCmbAutoPopulated(); DataTable detailTable = TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.MotivationList, FLedgerNumber); Assert.AreNotEqual(0, detailTable.Rows.Count, "There should be a motivation detail in the cached table"); cmb.Name = "TestCombobox"; cmb.InitialiseUserControl(detailTable, AMotivationDetailTable.GetMotivationDetailCodeDBName(), AMotivationDetailTable.GetMotivationDetailDescDBName(), null); cmb.AppearanceSetup(new int[] { -1, 150 }, -1); Form TestForm = new Form(); TestForm.Controls.Add(cmb); TestForm.Show(); cmb.SelectedIndex = 1; Assert.AreEqual(cmb.GetSelectedString(), "KEYMIN"); Assert.AreEqual(cmb.GetSelectedDescription(), "Key Ministry Gift"); cmb.SelectedIndex = 0; Assert.AreEqual(cmb.GetSelectedString(), "FIELD"); Assert.AreEqual(cmb.GetSelectedDescription(), "Field Gift"); }
/// <summary> /// Call when the key ministry changes /// </summary> public static void OnKeyMinistryChanged(GiftBatchTDSAGiftDetailRow ACurrentDetailRow, TFrmPetraEditUtils APetraUtilsObject, TCmbAutoPopulated ACmbKeyMinistries, TtxtAutoPopulatedButtonLabel ATxtDetailRecipientKey, TextBox ATxtDetailRecipientKeyMinistry, bool ARecipientKeyChangingFlag, ref bool AInKeyMinistryChangingFlag) { if ((ACurrentDetailRow == null) || AInKeyMinistryChangingFlag || ARecipientKeyChangingFlag || APetraUtilsObject.SuppressChangeDetection || ATxtDetailRecipientKeyMinistry.Visible) { return; } string KeyMinistry = ACmbKeyMinistries.GetSelectedDescription(); string RecipientKey = ACmbKeyMinistries.GetSelectedInt64().ToString(); try { AInKeyMinistryChangingFlag = true; if (ACmbKeyMinistries.Count == 0) { ACmbKeyMinistries.SelectedIndex = -1; if (ATxtDetailRecipientKeyMinistry.Text != string.Empty) { ATxtDetailRecipientKeyMinistry.Text = string.Empty; } } else { // if key ministry has actually changed if ((ATxtDetailRecipientKeyMinistry.Text != KeyMinistry) || (ACurrentDetailRow.RecipientKeyMinistry != KeyMinistry)) { ATxtDetailRecipientKeyMinistry.Text = KeyMinistry; ACurrentDetailRow.RecipientKeyMinistry = KeyMinistry; } if (Convert.ToInt64(ATxtDetailRecipientKey.Text) != Convert.ToInt64(RecipientKey)) { ATxtDetailRecipientKey.Text = RecipientKey; } } } finally { AInKeyMinistryChangingFlag = false; } }