public void Init() { TPetraServerConnector.Connect(); System.Diagnostics.Debug.WriteLine("Init: " + this.ToString()); LoadTestTata(); }
public void Init() { //new TLogging("TestServer.log"); TPetraServerConnector.Connect("../../etc/TestServer.config"); FLedgerNumber = TAppSettingsManager.GetInt32("LedgerNumber", 43); TLogging.Log("Ledger Number = " + FLedgerNumber); }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); EventPartnerKey = TAppSettingsManager.GetInt64("ConferenceTool.EventPartnerKey", 1110198); EventCode = TAppSettingsManager.GetValue("ConferenceTool.EventCode", "SC001CNGRSS08"); }
public void Init() { CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect("../../etc/TestServer.config"); TDataBase db = DBAccess.Connect("AddressToolsTest"); PPartnerRow Partner1 = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS, db); TestPartnerKey = Partner1.PartnerKey; //Guard assert: ensure database has been properly reset TDBTransaction ATransaction = new TDBTransaction(); DataTable ResultTable = null; string Query = string.Format("SELECT * FROM p_location WHERE p_site_key_n = {0} AND p_location_key_i = {1}", DomainManager.GSiteKey, LocationKey); db.ReadTransaction( ref ATransaction, delegate { ResultTable = ATransaction.DataBaseObj.SelectDT(Query, "CheckLocations", ATransaction); }); Assert.AreEqual(0, ResultTable.Rows.Count); }
public void ForeignCurrencySupplier_ExpectDocumentPostingPayingAndReversingWorking() { // // Arrange // decimal APAccountBalanceBefore; decimal BankAccountBefore; decimal RevalAccountBefore; TVerificationResultCollection VerificationResult; int PaymentNumber; List <int> DocumentIDs; AAPInfos APInfos; CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect(); TDataBase db = DBAccess.Connect("ForeignCurrencySupplier_ExpectDocumentPostingPayingAndReversingWorking"); TDBTransaction transaction = db.BeginTransaction(IsolationLevel.Serializable); // Post and pay a document with a foreign currency supplier APInfos = PostAndPayForeignSupplierAPDocument("Test Reverse", out PaymentNumber, out DocumentIDs, out APAccountBalanceBefore, out BankAccountBefore, out RevalAccountBefore, db); transaction.Commit(); transaction = db.BeginTransaction(IsolationLevel.Serializable); // // Act: Immediately "un-pay" and "un-post" this invoice! // VerificationResult = ReversePayment(PaymentNumber, APInfos.PeriodEndDate, DocumentIDs, APInfos.ApDS, db); CommonNUnitFunctions.EnsureNullOrEmptyVerificationResult(VerificationResult); // Guard Assert transaction.Commit(); transaction = db.BeginTransaction(IsolationLevel.Serializable); // Save the current amount on the AP account decimal APAccountBalanceAfter = new TGet_GLM_Info(FLedgerNumber, APInfos.ApAccountCode, APInfos.CostCentreCode, db).YtdActual; decimal BankAccountAfter = new TGet_GLM_Info(FLedgerNumber, APInfos.BankAccount, APInfos.CostCentreCode, db).YtdForeign; decimal RevalAccountAfter = new TGet_GLM_Info(FLedgerNumber, APInfos.ForexGainsLossesAccount, APInfos.CostCentreCode, db).YtdActual; // // Primary Assert: Reversal OK? // // Now I can see whether anything is left over by all these // various transactions, that should have added up to 0. // Check the amount on the AP account Assert.AreEqual(APAccountBalanceBefore, APAccountBalanceAfter, "After paying then reversing, the AP account should be as before."); Assert.AreEqual(BankAccountBefore, BankAccountAfter, "After paying then reversing, the Bank account should be as before."); Assert.AreEqual( Math.Round(RevalAccountAfter, 2), Math.Round(RevalAccountBefore, 2), "After paying then reversing, the Forex Gains/Losses Account account should be as before."); transaction.Commit(); }
public void Init() { TPetraServerConnector.Connect(); FLedgerNumber = CommonNUnitFunctions.CreateNewLedger(); FledgerInfo = new TLedgerInfo(FLedgerNumber); System.Diagnostics.Debug.WriteLine("Init: " + this.ToString()); }
/// <summary> /// print single gift receipt /// </summary> //[Test] public void TestSingleReceipt() { CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect("../../etc/TestServer.config"); // import a test gift batch TVerificationResultCollection VerificationResult; if (!TGiftAnnualReceiptTest.ImportAndPostGiftBatch(FLedgerNumber, out VerificationResult)) { Assert.Fail("ImportAndPostGiftBatch failed: " + VerificationResult.BuildVerificationResultString()); } string formletterTemplateFile = TAppSettingsManager.GetValue("ReceiptTemplate.file", "../../csharp/ICT/Testing/lib/MFinance/SampleData/SingleGiftReceiptTemplate.html"); Encoding encodingOfHTMLfile = TTextFile.GetFileEncoding(formletterTemplateFile); StreamReader sr = new StreamReader(formletterTemplateFile, encodingOfHTMLfile, false); string FileContent = sr.ReadToEnd(); sr.Close(); string formletterExpectedFile = TAppSettingsManager.GetValue("ReceiptExpected.file", "../../csharp/ICT/Testing/lib/MFinance/SampleData/SingleGiftReceiptExpected.html"); //TODO: Calendar vs Financial Date Handling - Check if this should use financial year start/end and not assume calendar string receipts; string receiptsPDF; bool result = TReceiptingWebConnector.CreateAnnualGiftReceipts(FLedgerNumber, "Annual", new DateTime(DateTime.Today.Year, 1, 1), new DateTime(DateTime.Today.Year, 12, 31), FileContent, null, String.Empty, null, String.Empty, "de-DE", out receiptsPDF, out receipts); Assert.AreEqual(true, result, "receipt was empty"); StreamWriter sw = new StreamWriter(formletterExpectedFile + ".new", false, encodingOfHTMLfile); sw.WriteLine(receipts); sw.WriteLine(); sw.Close(); SortedList <string, string> ToReplace = new SortedList <string, string>(); ToReplace.Add("#TODAY#", DateTime.Now.ToString("d. MMMM yyyy")); ToReplace.Add("#THISYEAR#", DateTime.Today.Year.ToString()); Assert.IsTrue( TTextFile.SameContent(formletterExpectedFile, formletterExpectedFile + ".new", true, ToReplace, true), "receipt was not printed as expected, check " + formletterExpectedFile + ".new"); File.Delete(formletterExpectedFile + ".new"); }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); // These will be our test ledger numbers FTestLedgerList.AddRange(new int[] { 9997, 9998, 9999 }); // Load existing data FMainDS = new GLSetupTDS(); try { TDBTransaction transaction = new TDBTransaction(); TDataBase db = DBAccess.Connect("Init"); db.ReadTransaction( ref transaction, delegate { ALedgerAccess.LoadAll(FMainDS, transaction); }); // Check that our test rows are not in the database already if (!FindTestRows(FTestLedgerList)) { // Get the initial number of available ledgers FInitialLedgerCount = TGLSetupWebConnector.GetAvailableLedgers().DefaultView.Count; bool SubmitOK = true; db.WriteTransaction( ref transaction, ref SubmitOK, delegate { // Add our test rows AddTestRow(FTestLedgerList[0], "NUnitTestLedger1", false); AddTestRow(FTestLedgerList[1], "NUnitTestLedger2", true, "JPY"); AddTestRow(FTestLedgerList[2], "NUnitTestLedger2", true); // Save these new rows ALedgerAccess.SubmitChanges(FMainDS.ALedger, transaction); FMainDS.AcceptChanges(); }); FInitSucceeded = true; } } catch (Exception ex) { FInitExceptionMessage = ex.Message; } }
public void SimpleDocument_ExpectPostingAndPayingWorking() { // // Arrange // decimal Amount = 399.0m; decimal APAccountBalanceBefore; decimal ABankAccountBefore; decimal AExpAccountBefore; TVerificationResultCollection VerificationResult; List <int> DocumentIDs; int PaymentNumber; AAPInfos APInfos; CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect(); TDataBase db = DBAccess.Connect("SimpleDocument_ExpectPostingAndPayingWorking"); TDBTransaction transaction = db.BeginTransaction(IsolationLevel.Serializable); APInfos = PostSimpleAPDocument(Amount, "Test", "Detail Item", out APAccountBalanceBefore, out ABankAccountBefore, out AExpAccountBefore, out DocumentIDs, db); transaction.Commit(); transaction = db.BeginTransaction(IsolationLevel.Serializable); // // Act: Pay the AP document // VerificationResult = PayAPDocument(APInfos.ApDS.AApDocument[0].ApDocumentId, Amount, APInfos.BankAccount, APInfos.CurrencyCode, APInfos.PeriodEndDate, out PaymentNumber, null, db); CommonNUnitFunctions.EnsureNullOrEmptyVerificationResult(VerificationResult); // Guard Assert transaction.Commit(); // Save the current amount on the AP account decimal APAccountBalanceAfter = new TGet_GLM_Info(FLedgerNumber, APInfos.ApAccountCode, APInfos.CostCentreCode, db).YtdActual; decimal BankAccountAfter = new TGet_GLM_Info(FLedgerNumber, APInfos.BankAccount, APInfos.CostCentreCode, db).YtdActual; // // Primary Assert: Paying OK? // // Check the amount on the AP account Assert.AreEqual(0.0m, APAccountBalanceAfter - APAccountBalanceBefore, "after paying the invoice, the AP account should be cleared"); Assert.AreEqual((-1.0m) * Amount, BankAccountAfter - ABankAccountBefore, "after paying the invoice, the bank account should be credited"); }
/// <summary> /// Program entry point. /// </summary> private static void Main(string[] args) { // need to call with config file as parameter: -C:/home/USERNAME/etc/PetraServerConsole.config TPetraServerConnector.Connect(); TBankStatementImport import = new TBankStatementImport(); BankImportTDS StatementAndTransactionsDS = import.ImportBankStatementNonInteractive( TAppSettingsManager.GetInt32("ledger"), TAppSettingsManager.GetValue("bankaccount"), TAppSettingsManager.GetValue("file")); Int32 AFirstStatementKey; TBankImportWebConnector.StoreNewBankStatement(StatementAndTransactionsDS, out AFirstStatementKey); TPetraServerConnector.Disconnect(); }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); // These will be our test ledger numbers FTestLedgerList.AddRange(new int[] { 9997, 9998, 9999 }); // Load existing data FMainDS = new GLSetupTDS(); try { TDBTransaction transaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref transaction, delegate { ALedgerAccess.LoadAll(FMainDS, transaction); }); // Check that our test rows are not in the database already if (!FindTestRows(FTestLedgerList)) { // Get the initial number of available ledgers FInitialLedgerCount = TGLSetupWebConnector.GetAvailableLedgers().DefaultView.Count; // Add our test rows AddTestRow(FTestLedgerList[0], "NUnitTestLedger1", false); AddTestRow(FTestLedgerList[1], "NUnitTestLedger2", true, "JPY"); AddTestRow(FTestLedgerList[2], "NUnitTestLedger2", true); // Save these new rows ALedgerAccess.SubmitChanges(FMainDS.ALedger, null); FMainDS.AcceptChanges(); FInitSucceeded = true; } } catch (Exception ex) { FInitExceptionMessage = ex.Message; } }
public void Init() { TPetraServerConnector.Connect(); FLedgerNumber = CommonNUnitFunctions.CreateNewLedger(); // add costcentre 7300 for gift batch ACostCentreTable CostCentres = new ACostCentreTable(); ACostCentreRow CCRow = CostCentres.NewRowTyped(); CCRow.LedgerNumber = FLedgerNumber; CCRow.CostCentreCode = "7300"; CCRow.CostCentreName = "7300"; CCRow.CostCentreType = MFinanceConstants.FOREIGN_CC_TYPE; CCRow.CostCentreToReportTo = MFinanceConstants.INTER_LEDGER_HEADING; CCRow.PostingCostCentreFlag = true; CCRow.CostCentreActiveFlag = true; CostCentres.Rows.Add(CCRow); ACostCentreAccess.SubmitChanges(CostCentres, null); System.Diagnostics.Debug.WriteLine("Init: " + this.ToString()); }
public void ForeignCurrencySupplier_ExpectDocumentPostingAndPayingWorking() { // // Arrange // int PaymentNumber; List <int> DocumentIDs; decimal APAccountBalanceBefore; decimal BankAccountBefore; decimal RevalAccountBefore; CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect(); TDataBase db = DBAccess.Connect("ForeignCurrencySupplier_ExpectDocumentPostingPayingAndReversingWorking"); TDBTransaction transaction = db.BeginTransaction(IsolationLevel.Serializable); // Act and Assert: both encapsulated in the method that gets called! PostAndPayForeignSupplierAPDocument("Test", out PaymentNumber, out DocumentIDs, out APAccountBalanceBefore, out BankAccountBefore, out RevalAccountBefore, db); transaction.Commit(); }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); CommonNUnitFunctions.ResetDatabase(); PPartnerRow Partner1 = TCreateTestPartnerData.CreateNewFamilyPartner(MainDS); TestPartnerKey = Partner1.PartnerKey; //Guard assert: ensure database has been properly reset TDBTransaction ATransaction = null; DataTable ResultTable = null; string Query = string.Format("SELECT * FROM p_location WHERE p_site_key_n = {0} AND p_location_key_i = {1}", DomainManager.GSiteKey, LocationKey); DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref ATransaction, delegate { ResultTable = DBAccess.GetDBAccessObj(ATransaction).SelectDT(Query, "CheckLocations", ATransaction); }); Assert.AreEqual(0, ResultTable.Rows.Count); }
public void Init() { new TLogging("../../log/TestServer.log"); FServerManager = TPetraServerConnector.Connect("../../etc/TestServer.config"); }
public void Init() { TPetraServerConnector.Connect(); }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); FLedgerNumber = TAppSettingsManager.GetInt32("LedgerNumber", 43); }
public void Init() { TPetraServerConnector.Connect(); PrepareTestCaseData(); }
/// <summary> /// Creates Sample Data using the raw data provided and exports this to the Petra Server /// </summary> /// <param name="args"></param> public static void Main(string[] args) { TLogging.Log("Running Sample Data Constructor"); try { TLogging.Log("(1) Initialize (check availability of resources, start the server)"); TLogging.Log("\tStarting the server..."); // use the config file defined on the command line with -C: TPetraServerConnector.Connect(string.Empty); // data directory containing the raw data files created by benerator string datadirectory = TAppSettingsManager.GetValue("dir.data.generated"); eOperations operation = eOperations.importPartners | eOperations.importRecipients | eOperations.ledgerOneYear; if (TAppSettingsManager.GetValue("operation", false) == "secondLedger") { operation = eOperations.secondLedger; } else if (TAppSettingsManager.GetValue("operation", false) == "ledgerMultipleYears") { operation = eOperations.importPartners | eOperations.importRecipients | eOperations.ledgerMultipleYears; } if ((int)(operation & eOperations.importPartners) > 0) { TLogging.Log("(2) Import partners"); SampleDataBankPartners.GenerateBanks( Path.Combine(datadirectory, "banks.csv")); SampleDataDonors.GenerateFamilyPartners( Path.Combine(datadirectory, "people.csv")); TLogging.Log("(3) Import organisations"); SampleDataOrganisations.GenerateOrganisationPartners( Path.Combine(datadirectory, "organisations.csv")); } TLogging.Log("(4) Import recipients"); if ((int)(operation & eOperations.importRecipients) > 0) { // parse random data generated by benerator SampleDataUnitPartners.GenerateFields( Path.Combine(datadirectory, "fields.csv")); SampleDataUnitPartners.GenerateKeyMinistries( Path.Combine(datadirectory, "keymins.csv")); SampleDataWorkers.GenerateWorkers( Path.Combine(datadirectory, "workers.csv")); } if ((int)(operation & eOperations.ledgerOneYear) > 0) { SampleDataLedger.FLedgerNumber = 43; SampleDataLedger.FNumberOfClosedPeriods = CalculatedNumberOfClosedPeriods(0); SampleDataLedger.InitCalendar(); SampleDataLedger.InitExchangeRate(); SampleDataLedger.PopulateData(datadirectory, true); TLogging.Log("Please explicitely run nant importDemodata -D:operation=secondLedger"); TLogging.Log(" or nant importDemodata -D:operation=ledgerMultipleYears"); } if ((int)(operation & eOperations.ledgerMultipleYears) > 0) { SampleDataLedger.FLedgerNumber = 43; SampleDataLedger.FNumberOfClosedPeriods = TAppSettingsManager.GetInt32("NumberOfClosedPeriods", CalculatedNumberOfClosedPeriods(2)); SampleDataLedger.InitCalendar(); SampleDataLedger.InitExchangeRate(); SampleDataLedger.PopulateData(datadirectory, true); } if ((int)(operation & eOperations.secondLedger) > 0) { TLogging.Log("creating a second ledger"); // this ledger starts in period 4 SampleDataLedger.FLedgerNumber = 44; SampleDataLedger.FNumberOfClosedPeriods = CalculatedNumberOfClosedPeriods(0) - 3; SampleDataLedger.CreateNewLedger(); SampleDataLedger.InitExchangeRate(); SampleDataUnitPartners.FLedgerNumber = SampleDataLedger.FLedgerNumber; SampleDataLedger.PopulateData(datadirectory); } TLogging.Log("Completed."); } catch (Exception e) { TLogging.Log(e.Message); TLogging.Log(e.StackTrace); Environment.Exit(-1); } }
/// <summary> /// Creates Sample Data using the raw data provided and exports this to the Petra Server /// </summary> /// <param name="args"></param> public static void Main(string[] args) { TLogging.Log("Running Sample Data Constructor"); try { TLogging.Log("(1) Initialize (check availability of resources, start the server)"); TLogging.Log("\tStarting the server..."); // use the config file defined on the command line with -C: TPetraServerConnector.Connect(string.Empty); // data directory containing the raw data files created by benerator string datadirectory = TAppSettingsManager.GetValue("dir.data.generated"); string operation = TAppSettingsManager.GetValue("operation", "importPartners"); if ((operation == "importPartners") || (operation == "all")) { TLogging.Log("(2) Import partners"); SampleDataBankPartners.GenerateBanks( Path.Combine(datadirectory, "banks.csv")); SampleDataDonors.GenerateFamilyPartners( Path.Combine(datadirectory, "people.csv")); TLogging.Log("(3) Import organisations"); SampleDataOrganisations.GenerateOrganisationPartners( Path.Combine(datadirectory, "organisations.csv")); } TLogging.Log("(4) Import recipients"); operation = TAppSettingsManager.GetValue("operation", "importRecipients"); if ((operation == "importRecipients") || (operation == "all")) { // parse random data generated by benerator SampleDataUnitPartners.GenerateFields( Path.Combine(datadirectory, "fields.csv")); SampleDataUnitPartners.GenerateKeyMinistries( Path.Combine(datadirectory, "keymins.csv")); SampleDataWorkers.GenerateWorkers( Path.Combine(datadirectory, "workers.csv")); } operation = TAppSettingsManager.GetValue("operation", "populateFirstLedger"); if ((operation == "populateFirstLedger") || (operation == "all")) { SampleDataLedger.FLedgerNumber = 43; SampleDataLedger.FNumberOfClosedPeriods = TAppSettingsManager.GetInt32("NumberOfClosedPeriods", 26); SampleDataLedger.InitCalendar(); SampleDataLedger.InitExchangeRate(); SampleDataLedger.PopulateData(datadirectory); } if (operation == "secondLedger") { TLogging.Log("creating a second ledger"); SampleDataLedger.FLedgerNumber = 44; SampleDataLedger.FNumberOfClosedPeriods = 6; SampleDataLedger.CreateNewLedger(); SampleDataLedger.InitExchangeRate(); SampleDataUnitPartners.FLedgerNumber = SampleDataLedger.FLedgerNumber; SampleDataUnitPartners.GenerateFieldsFinanceOnly( Path.Combine(datadirectory, "fields.csv")); SampleDataLedger.PopulateData(datadirectory); } else { TLogging.Log("Please explicitely run nant importDemodata -D:operation=secondLedger"); } TLogging.Log("(9) Creating applications for conference"); operation = TAppSettingsManager.GetValue("operation", "conferenceApplications"); if (operation == "conferenceApplications") { SampleDataConferenceApplicants.GenerateApplications(Path.Combine(datadirectory, "conferenceApplications.csv")); } else { TLogging.Log("Please explicitely run nant importDemodata -D:operation=conferenceApplications"); } TLogging.Log("Completed."); } catch (Exception e) { TLogging.Log(e.Message); TLogging.Log(e.StackTrace); Environment.Exit(-1); } }
/// main method public static void Main(string[] args) { TPetraServerConnector.Connect("../../etc/TestServer.config"); try { string OutputPath = TAppSettingsManager.GetValue("OutputPath", "../../delivery/GDPdU/data"); if (!Directory.Exists(OutputPath)) { Directory.CreateDirectory(OutputPath); } string SummaryCostCentres = TAppSettingsManager.GetValue("SummaryCostCentres", "4300S"); string IgnoreCostCentres = TAppSettingsManager.GetValue("IgnoreCostCentres", "xyz"); string IgnoreAccounts = TAppSettingsManager.GetValue("IgnoreAccounts", "4300S,GIFT"); string IncludeAccounts = TAppSettingsManager.GetValue("IncludeAccounts", "4310"); string FinancialYears = TAppSettingsManager.GetValue("FinancialYearNumber", "0"); string IgnoreTransactionsByReference = TAppSettingsManager.GetValue("IgnoreReference", "L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12"); int FirstFinancialYear = TAppSettingsManager.GetInt32("FirstFinancialYear", DateTime.Now.Year); int LedgerNumber = TAppSettingsManager.GetInt32("LedgerNumber", 43); char CSVSeparator = TAppSettingsManager.GetValue("CSVSeparator", ";")[0]; string NewLine = "\r\n"; string culture = TAppSettingsManager.GetValue("culture", "de-DE"); string ReportingCostCentres = TFinanceReportingWebConnector.GetReportingCostCentres(LedgerNumber, SummaryCostCentres, IgnoreCostCentres); //TLogging.Log("cost centres " + ReportingCostCentres); //TLogging.Log("accounts " + IncludeAccounts); if (TAppSettingsManager.GetBoolean("IgnorePersonCostCentres", true)) { ReportingCostCentres = TGDPdUExportAccountsAndCostCentres.WithoutPersonCostCentres(LedgerNumber, ReportingCostCentres); } IgnoreAccounts = TFinanceReportingWebConnector.GetReportingAccounts(LedgerNumber, IgnoreAccounts, IncludeAccounts); // set decimal separator, and thousands separator Ict.Common.Catalog.SetCulture(culture); List <string> CostCentresInvolved = new List <string>(); List <string> AccountsInvolved = new List <string>(); foreach (string FinancialYearString in FinancialYears.Split(new char[] { ',' })) { Int32 FinancialYear = Convert.ToInt32(FinancialYearString); string OutputPathForYear = Path.Combine(OutputPath, (FirstFinancialYear + FinancialYear).ToString()); if (!Directory.Exists(OutputPathForYear)) { Directory.CreateDirectory(OutputPathForYear); } TGDPdUExportWorkers.Export(OutputPathForYear, CSVSeparator, NewLine, LedgerNumber * 1000000, FirstFinancialYear + FinancialYear); TGDPdUExportTransactions.ExportGLTransactions(OutputPathForYear, CSVSeparator, NewLine, LedgerNumber, FinancialYear, ReportingCostCentres, IgnoreAccounts, IgnoreTransactionsByReference, ref CostCentresInvolved, ref AccountsInvolved); TGDPdUExportBalances.ExportGLBalances(OutputPathForYear, CSVSeparator, NewLine, LedgerNumber, FinancialYear, ReportingCostCentres, IgnoreAccounts); } TGDPdUExportAccountsAndCostCentres.ExportCostCentres(OutputPath, CSVSeparator, NewLine, LedgerNumber, CostCentresInvolved); TGDPdUExportAccountsAndCostCentres.ExportAccounts(OutputPath, CSVSeparator, NewLine, LedgerNumber, AccountsInvolved); } catch (Exception e) { TLogging.Log(e.ToString()); } if (TAppSettingsManager.GetValue("interactive", "true") == "true") { Console.WriteLine("Please press Enter to continue..."); Console.ReadLine(); } }
public void Init() { TPetraServerConnector.Connect("../../etc/TestServer.config"); }
public void TestExportGifts() { int LedgerNumber = FLedgerNumber; string CostCentre = "7300"; string AcctCode = "0200"; string MonthName = "January"; int PeriodNumber = 1; DateTime PeriodStartDate = new DateTime(DateTime.Today.Year, 1, 1); DateTime PeriodEndDate = new DateTime(DateTime.Today.Year, 1, 31); string Base = MFinanceConstants.CURRENCY_BASE; int IchNumber = 0; DataTable TableForExport = new DataTable(); // otherwise period 1 might have been closed already CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect("../../etc/TestServer.config"); TDataBase db = DBAccess.Connect("TestExportGifts"); // need to create gifts first TStewardshipCalculationTest.ImportAndPostGiftBatch(PeriodEndDate, db); //Perform stewardship calculation TVerificationResultCollection VerificationResults; List <Int32> glBatchNumbers; TStewardshipCalculationWebConnector.PerformStewardshipCalculation(FLedgerNumber, PeriodNumber, out glBatchNumbers, out VerificationResults, db); VerificationResults = new TVerificationResultCollection(); //Create DataTable to receive exported transactions TableForExport.Columns.Add("CostCentre", typeof(string)); TableForExport.Columns.Add("Account", typeof(string)); TableForExport.Columns.Add("LedgerMonth", typeof(string)); TableForExport.Columns.Add("ICHPeriod", typeof(string)); TableForExport.Columns.Add("Date", typeof(DateTime)); TableForExport.Columns.Add("IndividualDebitTotal", typeof(decimal)); TableForExport.Columns.Add("IndividualCreditTotal", typeof(decimal)); TGenHOSAFilesReportsWebConnector.ExportGifts(LedgerNumber, CostCentre, AcctCode, MonthName, PeriodNumber, PeriodStartDate, PeriodEndDate, Base, IchNumber, TableForExport, VerificationResults, db); TableForExport.AcceptChanges(); DataRow[] DR = TableForExport.Select(); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResults, "HOSA - Performing Export of gifts Failed!"); Assert.IsTrue((DR.Length > 0), "HOSA - Performing Export of gifts Failed to return any rows!"); }
public void Init() { //new TLogging("TestServer.log"); TPetraServerConnector.Connect("../../etc/TestServer.config"); }
public void T0_Consolidation() { // reset the database, so that there is no consolidated budget CommonNUnitFunctions.ResetDatabase(); TPetraServerConnector.Connect("../../etc/TestServer.config"); TDataBase db = DBAccess.Connect("T0_Consolidation"); string budgetTestFile = TAppSettingsManager.GetValue("GiftBatch.file", CommonNUnitFunctions.rootPath + "/csharp/ICT/Testing/lib/MFinance/SampleData/BudgetImport-All.csv"); int BudgetsAdded; int BudgetsUpdated; int BudgetsFailed; TVerificationResultCollection VerificationResult; BudgetTDS ImportDS = new BudgetTDS(); string ImportString = File.ReadAllText(budgetTestFile); // import budget from CSV decimal RowsImported = TBudgetMaintainWebConnector.ImportBudgets( FLedgerNumber, ImportString, budgetTestFile, new string[] { ",", "dmy", "American" }, ref ImportDS, out BudgetsAdded, out BudgetsUpdated, out BudgetsFailed, out VerificationResult); Assert.AreNotEqual(0, RowsImported, "expect to import several rows"); CommonNUnitFunctions.EnsureNullOrOnlyNonCriticalVerificationResults(VerificationResult, "ImportBudgets has critical errors:"); BudgetTDSAccess.SubmitChanges(ImportDS, db); // check for value in budget table string sqlQueryBudget = String.Format( "SELECT {0} FROM PUB_{1}, PUB_{2} WHERE {1}.a_budget_sequence_i = {2}.a_budget_sequence_i AND a_period_number_i = 1 AND " + "a_ledger_number_i = {3} AND a_revision_i = 0 AND a_year_i = 0 AND a_account_code_c = '0300' AND a_cost_centre_code_c = '4300'", ABudgetPeriodTable.GetBudgetBaseDBName(), ABudgetTable.GetTableDBName(), ABudgetPeriodTable.GetTableDBName(), FLedgerNumber); TDBTransaction Transaction = new TDBTransaction(); decimal budgetValue = -1; db.ReadTransaction(ref Transaction, delegate { budgetValue = Convert.ToDecimal(db.ExecuteScalar(sqlQueryBudget, Transaction)); }); Assert.AreEqual(250m, budgetValue, "problem with importing budget from CSV"); // check for zero in glmperiod budget: that row does not even exist yet, so check that it does not exist string sqlQueryCheckEmptyConsolidatedBudget = String.Format( "SELECT COUNT(*) FROM PUB_{0}, PUB_{1} WHERE {0}.a_glm_sequence_i = {1}.a_glm_sequence_i AND a_period_number_i = 1 AND " + "a_ledger_number_i = {2} AND a_year_i = 0 AND a_account_code_c = '0300' AND a_cost_centre_code_c = '4300'", AGeneralLedgerMasterPeriodTable.GetTableDBName(), AGeneralLedgerMasterTable.GetTableDBName(), FLedgerNumber); Transaction = new TDBTransaction(); db.ReadTransaction(ref Transaction, delegate { Assert.AreEqual(0, db.ExecuteScalar(sqlQueryCheckEmptyConsolidatedBudget, Transaction), "budget should not be consolidated yet"); }); // consolidate the budget TBudgetConsolidateWebConnector.ConsolidateBudgets(FLedgerNumber, true); // check for correct value in glmperiod budget string sqlQueryConsolidatedBudget = String.Format( "SELECT {0} FROM PUB_{1}, PUB_{2} WHERE {1}.a_glm_sequence_i = {2}.a_glm_sequence_i AND a_period_number_i = 1 AND " + "a_ledger_number_i = {3} AND a_year_i = 0 AND a_account_code_c = '0300' AND a_cost_centre_code_c = '4300'", AGeneralLedgerMasterPeriodTable.GetBudgetBaseDBName(), AGeneralLedgerMasterPeriodTable.GetTableDBName(), AGeneralLedgerMasterTable.GetTableDBName(), FLedgerNumber); Transaction = new TDBTransaction(); decimal consolidatedBudgetValue = -1; db.ReadTransaction(ref Transaction, delegate { consolidatedBudgetValue = Convert.ToDecimal(db.ExecuteScalar(sqlQueryConsolidatedBudget, Transaction)); }); Assert.AreEqual(250m, consolidatedBudgetValue, "budget should now be consolidated"); // TODO: also check some summary account and cost centre for summed up budget values // check how reposting a budget works string sqlChangeBudget = String.Format("UPDATE PUB_{0} SET {1} = 44 WHERE a_period_number_i = 1 AND " + "EXISTS (SELECT * FROM PUB_{2} WHERE {0}.a_budget_sequence_i = {2}.a_budget_sequence_i AND a_ledger_number_i = {3} " + "AND a_year_i = 0 AND a_revision_i = 0 AND a_account_code_c = '0300' AND a_cost_centre_code_c = '4300')", ABudgetPeriodTable.GetTableDBName(), ABudgetPeriodTable.GetBudgetBaseDBName(), ABudgetTable.GetTableDBName(), FLedgerNumber); bool SubmissionOK = true; Transaction = new TDBTransaction(); db.WriteTransaction(ref Transaction, ref SubmissionOK, delegate { db.ExecuteNonQuery(sqlChangeBudget, Transaction); }); // post all budgets again TBudgetConsolidateWebConnector.ConsolidateBudgets(FLedgerNumber, true); Transaction = new TDBTransaction(); db.ReadTransaction(ref Transaction, delegate { consolidatedBudgetValue = Convert.ToDecimal(db.ExecuteScalar(sqlQueryConsolidatedBudget, Transaction)); }); Assert.AreEqual(44.0m, consolidatedBudgetValue, "budget should be consolidated with the new value"); // post only a modified budget (testing UnPostBudget) sqlChangeBudget = String.Format("UPDATE PUB_{0} SET {1} = 65 WHERE a_period_number_i = 1 AND " + "EXISTS (SELECT * FROM PUB_{2} WHERE {0}.a_budget_sequence_i = {2}.a_budget_sequence_i AND a_ledger_number_i = {3} " + "AND a_year_i = 0 AND a_revision_i = 0 AND a_account_code_c = '0300' AND a_cost_centre_code_c = '4300')", ABudgetPeriodTable.GetTableDBName(), ABudgetPeriodTable.GetBudgetBaseDBName(), ABudgetTable.GetTableDBName(), FLedgerNumber); string sqlMarkBudgetForConsolidation = String.Format("UPDATE PUB_{0} SET {1} = false WHERE " + "a_ledger_number_i = {2} " + "AND a_year_i = 0 AND a_revision_i = 0 AND a_account_code_c = '0300' AND a_cost_centre_code_c = '4300'", ABudgetTable.GetTableDBName(), ABudgetTable.GetBudgetStatusDBName(), FLedgerNumber); SubmissionOK = true; Transaction = new TDBTransaction(); db.WriteTransaction(ref Transaction, ref SubmissionOK, delegate { db.ExecuteNonQuery(sqlChangeBudget, Transaction); db.ExecuteNonQuery(sqlMarkBudgetForConsolidation, Transaction); }); // post only modified budget again TBudgetConsolidateWebConnector.ConsolidateBudgets(FLedgerNumber, false); Transaction = new TDBTransaction(); db.ReadTransaction( ref Transaction, delegate { consolidatedBudgetValue = Convert.ToDecimal(db.ExecuteScalar(sqlQueryConsolidatedBudget, Transaction)); }); Assert.AreEqual(65.0m, consolidatedBudgetValue, "budget should be consolidated with the new value, after UnPostBudget"); // TODO: test forwarding periods. what happens to next year values, when there is no next year glm record yet? }