Reallocation Tests

From OpenPetra Wiki
Jump to navigation Jump to search

The Test Idea

The idea of the test is of getting test data by some test accountings in petra.

Let us assume the following situation as the sum of the accountings of a year. Here we only have the following account codes

  1. The account code for the bank = 6200
  2. The account code for the gift = 0200
  3. The account code for the expense 4100

And the following cost centres:

  1. 4300 (=Standard CC for ledger 43)
  2. 4301
  3. 4302
  4. 4303

Then we account some gifts: (Notatation is Cost centre code: account code and the direction is credit account to debit account.

  1. 4301:0200 -> 4301:6200 - 100 Euro
  2. 4302:0200 -> 4302:6200 - 200 Euro
  3. 4303:0200 -> 4303:6200 - 300 Euro

and some expenses:

  1. 4301:6200 -> 4301:4100 - 150 Euro
  2. 4302:6200 -> 4302:4100 - 150 Euro
  3. 4303:6200 -> 4303:4100 - 200 Euro


Reference data from Petra

GLM-Screenshoots before the Reallocation is done

In petra I've the ledger 37 "UK National Office" and in open Petra I've 47 - "German". So I've to chose an other account numer for 0200 and the best choice is 0900. Furthermore in petra the glm-table hold more data than in open petra. So in petra we have three filtered screenshoots.

Reallocation-petra-0900-before.JPG

Reallocation-petra-4100-before.JPG

Reallocation-petra-6200-before.JPG

And in Openpetra we have one screen shoot.

Reallocation-before.JPG

GLM-Screenshoots after the Reallocation is done

Reallocation-petra-0900-after.JPG

Reallocation-petra-4100-after.JPG

Reallocation-petra-6200-after.JPG

The account 9700 hold some other petra test results too. The correct value is 100.

Reallocation-petra-9700-after.JPG

Informal Comments on the test results

Inside the petra routines there are two main routine parts, the reallocation and the close-glm-routine. The petra screenshoot shows the result of both operation(s) and the openpetra screenshoots only shows the reallocation part. Actually I've used the TCommonAccountingTool either to create the test data accountings (code followed) and to create the reallocation accountings which is a little bit more complex.

TCommonAccountingTool is a system which directly acts to the web connector routines SaveGLbatchtTDS and PostGLBatch and this only in the last command "CloseSaveAndPost" but without using the webconnector routines directly to avoid RequireModulePermission conflicts.

TCommonAccountingTool commonAccountingTool =
  new TCommonAccountingTool(intLedgerNumber, "NUNIT");
commonAccountingTool.AddBaseCurrencyJournal();
commonAccountingTool.JournalDescription = "Test Data accounts";
string strAccountGift = "0200";
string strAccountBank = "6200";
string strAccountExpense = "4100";

// Accounting of some gifts ...
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountBank, "4301", "Gift Example", "Debit", CommonAccountingConstants.IS_DEBIT, 100);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountBank, "4302", "Gift Example", "Debit", CommonAccountingConstants.IS_DEBIT, 200);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountBank, "4303", "Gift Example", "Debit", CommonAccountingConstants.IS_DEBIT, 300);

commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountGift, "4301", "Gift Example", "Credit", CommonAccountingConstants.IS_CREDIT, 100);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountGift, "4302", "Gift Example", "Credit", CommonAccountingConstants.IS_CREDIT, 200);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountGift, "4303", "Gift Example", "Credit", CommonAccountingConstants.IS_CREDIT, 300);


// Accounting of some expenses ...

commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountExpense, "4301", "Expense Example", "Debit", CommonAccountingConstants.IS_DEBIT, 150);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountExpense, "4302", "Expense Example", "Debit", CommonAccountingConstants.IS_DEBIT, 150);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountExpense, "4303", "Expense Example", "Debit", CommonAccountingConstants.IS_DEBIT, 200);

commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountBank, "4301", "Expense Example", "Credit", CommonAccountingConstants.IS_CREDIT, 150);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountBank, "4302", "Expense Example", "Credit", CommonAccountingConstants.IS_CREDIT, 150);
commonAccountingTool.AddBaseCurrencyTransaction(
  strAccountBank, "4303", "Expense Example", "Credit", CommonAccountingConstants.IS_CREDIT, 200);

commonAccountingTool.CloseSaveAndPost();

Formal Test Rules

So let us define the following reallocation rules

  1. a_ledger_number_i and a_year_i are fixed values.
  2. For each pair of a_account_code_c and a_cost_centre_code_c a new glm-record shall be created.
  3. If the account is of the type Income or Expense, the a_ytd_actual_base_n of both glm records are 0 and a_closing_period_actual_base_n of the ealier year holds the last value.
  4. The glm-record of a bank account - account of the type Assert - only shall be copied
  5. The example has used 9700 a fund balance account. This account - type equity - is used to account against it all accounts of type income and expense.

Test cases

And now you can compare to the results in openpetra

a) after a reallocation

Reallocation-after.JPG

b) after an additional move of the glm-info into the next year has been done

Glm-new-year-after.JPG

The first operation is only used for accounts of type income and expense and the glm-move shall be used for all accounts.