/// <summary> /// Show or Hide this option in the given menu /// </summary> private void EnableDisableChildOption(TTaskList ATaskList, String AOptionName, Boolean AIsAllowed, XmlNode ANode) { while (ANode != null) { EnableDisableChildOption(ATaskList, AOptionName, AIsAllowed, ANode.FirstChild); if (ANode.Name == AOptionName) { ATaskList.EnableDisableTaskItem(ANode, AIsAllowed); } ANode = ANode.NextSibling; } }
private void UpdateSubsystemLinkStatus(int ALedgerNumber, TTaskList ATaskList, XmlNode ATaskListNode) { bool ServerCallSuccessful; ALedgerRow LedgerDR = null; if ((ATaskListNode != null) && (ATaskListNode.ParentNode != null) && (ATaskListNode.ParentNode.Name == "Finance")) { try { LedgerDR = ((ALedgerTable)TDataCache.TMFinance.GetCacheableFinanceTable( TCacheableFinanceTablesEnum.LedgerDetails, ALedgerNumber))[0]; } catch (ECachedDataTableLoadingRetryGotCancelledException Exc) { TLogging.Log("Loading of Cacheable DataTable 'LedgerDetails' failed; the CLIENT NEEDS TO BE RESTARTED! " + "Details: " + Exc.ToString()); // RESTART CLIENT! PetraClientShutdown.Shutdown.StopPetraClient(true, true, true, StrDataLoadingErrorMessage); } XmlNode TempNode = ATaskListNode.ParentNode.FirstChild; while (TempNode != null) { ServerCallSuccessful = false; Ict.Common.DB.TServerBusyHelper.CoordinatedAutoRetryCall("Finance Sub-system Activated inquiry", ref ServerCallSuccessful, delegate { if (TempNode.Name == "GiftProcessing") { ATaskList.EnableDisableTaskItem(TempNode, TRemote.MFinance.Setup.WebConnectors.IsGiftProcessingSubsystemActivated(ALedgerNumber)); } else if (TempNode.Name == "AccountsPayable") { ATaskList.EnableDisableTaskItem(TempNode, TRemote.MFinance.Setup.WebConnectors.IsAccountsPayableSubsystemActivated(ALedgerNumber)); } ServerCallSuccessful = true; }); if (!ServerCallSuccessful) { TLogging.Log("Inquiring of Finance Subsystems' Activated States failed; the CLIENT NEEDS TO BE RESTARTED!"); TServerBusyHelperGui.ShowLoadingOfDataGotCancelledDialog(); // RESTART CLIENT! PetraClientShutdown.Shutdown.StopPetraClient(true, true, true, StrDataLoadingErrorMessage); // ALL-IMPORTANT EXIT statement: without this, a number of OpenPetra Clients might get // started from within this while loop!!! Environment.Exit(0); } TempNode = TempNode.NextSibling; } // while EnableDisableChildOption(ATaskList, "SuspenseAccounts", LedgerDR.SuspenseAccountFlag, ATaskListNode.ParentNode); } // if }
private void UpdateSubsystemLinkStatus(int ALedgerNumber, TTaskList ATaskList, XmlNode ATaskListNode) { if ((ATaskListNode != null) && (ATaskListNode.ParentNode != null) && (ATaskListNode.ParentNode.Name == "Finance")) { ALedgerRow ledger = ((ALedgerTable)TDataCache.TMFinance.GetCacheableFinanceTable( TCacheableFinanceTablesEnum.LedgerDetails, ALedgerNumber))[0]; XmlNode TempNode = ATaskListNode.ParentNode.FirstChild; while (TempNode != null) { if (TempNode.Name == "GiftProcessing") { ATaskList.EnableDisableTaskItem(TempNode, TRemote.MFinance.Setup.WebConnectors.IsGiftProcessingSubsystemActivated(ALedgerNumber)); } else if (TempNode.Name == "AccountsPayable") { ATaskList.EnableDisableTaskItem(TempNode, TRemote.MFinance.Setup.WebConnectors.IsAccountsPayableSubsystemActivated(ALedgerNumber)); } TempNode = TempNode.NextSibling; } // while EnableDisableChildOption(ATaskList, "SuspenseAccounts", ledger.SuspenseAccountFlag, ATaskListNode.ParentNode); } // if }