コード例 #1
0
        public void Init()
        {
            TPetraServerConnector.Connect();
            System.Diagnostics.Debug.WriteLine("Init: " + this.ToString());

            LoadTestTata();
        }
コード例 #2
0
 public void Init()
 {
     //new TLogging("TestServer.log");
     TPetraServerConnector.Connect("../../etc/TestServer.config");
     FLedgerNumber = TAppSettingsManager.GetInt32("LedgerNumber", 43);
     TLogging.Log("Ledger Number = " + FLedgerNumber);
 }
コード例 #3
0
        public void Init()
        {
            TPetraServerConnector.Connect("../../etc/TestServer.config");

            EventPartnerKey = TAppSettingsManager.GetInt64("ConferenceTool.EventPartnerKey", 1110198);
            EventCode       = TAppSettingsManager.GetValue("ConferenceTool.EventCode", "SC001CNGRSS08");
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: Test.AP.cs プロジェクト: mechandavid/openpetra
        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();
        }
コード例 #6
0
        public void Init()
        {
            TPetraServerConnector.Connect();
            FLedgerNumber = CommonNUnitFunctions.CreateNewLedger();
            FledgerInfo   = new TLedgerInfo(FLedgerNumber);

            System.Diagnostics.Debug.WriteLine("Init: " + this.ToString());
        }
コード例 #7
0
        /// <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");
        }
コード例 #8
0
        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;
            }
        }
コード例 #9
0
ファイル: Test.AP.cs プロジェクト: mechandavid/openpetra
        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");
        }
コード例 #10
0
        /// <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();
        }
コード例 #11
0
        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;
            }
        }
コード例 #12
0
        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());
        }
コード例 #13
0
ファイル: Test.AP.cs プロジェクト: mechandavid/openpetra
        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();
        }
コード例 #14
0
ファイル: AddressTools.test.cs プロジェクト: lxhelp/openpetra
        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);
        }
コード例 #15
0
 public void Init()
 {
     new TLogging("../../log/TestServer.log");
     FServerManager = TPetraServerConnector.Connect("../../etc/TestServer.config");
 }
コード例 #16
0
 public void Init()
 {
     TPetraServerConnector.Connect();
 }
コード例 #17
0
 public void Init()
 {
     TPetraServerConnector.Connect("../../etc/TestServer.config");
     FLedgerNumber = TAppSettingsManager.GetInt32("LedgerNumber", 43);
 }
コード例 #18
0
ファイル: Test.GL.Import.cs プロジェクト: lulzzz/openpetra
 public void Init()
 {
     TPetraServerConnector.Connect();
     PrepareTestCaseData();
 }
コード例 #19
0
ファイル: Program.cs プロジェクト: ip-config/openpetra
        /// <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);
            }
        }
コード例 #20
0
ファイル: Program.cs プロジェクト: petes05/openpetra
        /// <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);
            }
        }
コード例 #21
0
ファイル: main.cs プロジェクト: weiplanet/openpetra
        /// 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();
            }
        }
コード例 #22
0
 public void Init()
 {
     TPetraServerConnector.Connect("../../etc/TestServer.config");
 }
コード例 #23
0
        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!");
        }
コード例 #24
0
 public void Init()
 {
     //new TLogging("TestServer.log");
     TPetraServerConnector.Connect("../../etc/TestServer.config");
 }
コード例 #25
0
        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?
        }