Ability to Enter Account to General Ledger Entry and Vice versa (Batch Transactions)

Target release16.03.RELEASE
EpicMifosX-2182
Document status
DRAFT
Document ownerIppez Robert
Designer
Developers
QASubramanya

Feature Name

Account to Journal Entries Posting and Vice versa

Overview

There are times when a client will need to make payments to MFI/SACCO or MFI/SACCO needs to make payments to a client/group account. Mifos X at the moment doesn't support GL to Client account entry and vice versa.

Feature Summary

This feature will extend the possibility to have two way account entries between GL Accounts and Client/Group Accounts. It will cover Share , Loans, Savings, Fixed Deposit and Recurring Deposit Accounts and will extend to both Individual Client Account and Group Accounts. All Customer Accounts must be affected by these changes .ie should be able to post to and from any customer account.


Generic Parameter for any batch

Batch Name. You can use any name that is relevant to the nature of the batch transaction e.g Staff Payroll.

There will be six (5) types of batch transactions that the system can accommodate:

Batch Type: 001 Mixed Account Batch.  In this batch type, you can post (a) transfer transactions between customer accounts and (b) transactions between customer and GL accounts and (c) transactions between GL account. This advantage of using this batch type is its great flexibility, the disadvantage is that data entry is rather cumbersome.

Batch Type: 002 Customer Account Debit List. In this batch type, you can post the multiple debit transactions to customer accounts, such as loan disbursements in the field against one single GL account. Although the flexibility is limited, data entry is fast and simply.

Batch Type: 003 Customer Account Credit List. In this batch type, you can post multiple credit transactions of customer accounts, against one GL account. It can be used for example for loan collection in the field, savings deposits collected in the field, or a series of salary credits to savings accounts (also called "payroll servicing").

Batch Type: 004 GL Journal Batch. In this batch type, you can post only transactions between GL accounts. Transactions to customer accounts are not possible.

Batch Type: 005 Customer Account Transfer. In this batch type, you can post only transactions that are transfers between customer accounts. If one of the two sides of the transaction cannot be passed, then both sides (the debit as well as the credit) will be cancelled.

 

Default Value Date. Type the date that will serve as default display for each of the transactions of the batch. (NOTE: The date can be back-dated. Forward-dating is not allowed by the system.)

Currency Type. Select current currency type.

Total Amount. Type the total debit or credit amount of all the transactions in the batch.

Default Description. Type an appropriate description for the batch. This will be displayed while you are posting the transactions.

Background and strategic fit

Strategic vision of The Mifos Initiative to support two-way account entries


Business Need

Batch Transactions - Post Transaction (GL)

This provides the facility to post multiple customer accounts and/or general ledger (GL) accounts transactions in just one batch. Note that a user require different rights to (i) create (ii) approve (iii) process the batches. These rights can be held by different persons, which gives greater control and accountability or by one person (in which cases mistakes my go undetected). The other two operations are "Approve Batch" and "Update Batch".

When you access this menu, you can (a) create a new batch to post your transactions or (b) access an existing batch that has been created but not used yet to update accounts. When you access an existing batch, you can proceed to continue posting additional transactions.

To create a new batch:

  • Click on the New button.

  • You will be prompted by the system to the New Batch window where you will fill out the following batch information:

  1. Batch Name. You can use any name that is relevant to the nature of the batch transaction.

  2. Batch Type. From the pop-up list, select the type of batch.

  3. Default Value Date. Type the date that will serve as default display for each of the transactions of the batch. (NOTE: The date can be back-dated. Forward-dating is not allowed by the system.)

  4. Currency Type. Type the currency involved in the transactions.

  5. Total Amount. Type the total debit or credit amount of all the transactions in the batch.

  6. Default Description. Type an appropriate description for the batch. This will be displayed while you are posting the transactions.

  • The system will then display numbered transaction lines where you can post the details of the transactions.

  • Edit Button. You can make changes in the batch information as long as it is not updated yet. If the batch is approved already, you can still edit the batch information but it will have to undergo approval again.

To post the batch transactions:

  • If the type of batch is a Credit List, or Debit List select the appropriate Contra Account for the transactions.

  • Post the details of each transaction in transaction lines.

  • If you are authorized to approve the batch and update the accounts in the batch, click on the Approve button and then the Update button. Otherwise, the authorized teller will have to accomplish the approval and updating. (NOTE: If you are not authorized to approve and update, the Approve button and the Update button are not highlighted and enabled.)

Select the batch to be approved from the batch number selection form. To approve a batch, the batch must be balanced (debits and credits must be equal) and you must have the teller rights to approve the batch

Batch Transactions - Approve Batch (GL)

To approve the batch transactions:

  • If you are authorized to approve the batch transaction, the Approve button will be highlighted and enabled. Click on this button.

  • The system will ask if you want to continue approving the batch. Click the Yes button if you want to proceed.

  • The system will confirm that the batch is approved.

  • If you are authorized to update the batch transaction, you can proceed to update the batch transaction. Click on the Update button.

Batch Transactions - Update Batch (GL)

Select the batch to be updated (or processed) from the batch number selection form. To update a batch, the batch must be balanced (debits and credits must be equal), approved, and you must have the user rights to update the batch

To update the batch transactions:

  • If you are authorized to update the accounts in the approved batch transaction, the Update button will be highlighted and enabled. Click on this button.

  • The system will ask if you want to continue updating. Click the Yes button if you want to proceed. The system will confirm that the accounts are updated.

Batch Transactions - Reusable Batches (GL)

Reusable batches are meant for posting the repeated transactions such as salary list.  Using reusable batch you can just create it once and then every time you need to post salaries you can just reuse the same batch and just edit the value date, and do some minor changes in the list.  

You can create new batch by clicking New button then a small screen will show up. You have to fill the entire form, then click OK and you will receive new batch in the list.

Feature Requirements

For detailed functional specs refer to this document

Requirements/User Stories


#TitleUser StoryImportanceNotes
1Create Savings Account to GL EntryAs an accountant, i would like to be able to make a transfer from a Savings Account  to a General Ledger Account and vice versa


Create Loan Account to GL Entry

As an accountant, i would like to be able to make a transfer from a Loan Account  to a General Ledger Account and vice versa



Create Share Account to GL Entry

As an accountant, i would like to be able to make transfer from a General Ledger Account (e.g Cash at Hand) to Client's  Share Account  and Vice versa



Create Recurring Deposit Account to GL EntryAs an accountant, i would like to be able to make transfer from a General Ledger Account (e.g Cash at Hand) to Client's  RD Account and Vice versa

Some Use Cases

  • Posting of Manually calculated interest on Savings e.g Some SACCO opt to calculating and posting interest on savings manually at a specific period of the year. For all clients interest is calculated and these have to be posting on their (clients savings account) with description such as "Int. on Savings 2017" IN Which case we use either Batch Type: 001 Mixed Account Batch. or  Batch Type: 003 Customer Account Credit List  where we post multiple credit transactions of customer accounts, against one GL account i.e  Debit Customer Saving Accounts and Credit one GL Account (Contra Account) - Interest Expense on Savings (GL)
  • Salary Payment to Staff - MFI/SACCO makes it compulsory for staff to open savings account where salaries are posted at the end of the month. Debit Staff Savings Account and Credit Salary Payable GL Account (Contra Account)
  • Posting/Adjustment to Clients Account from a GL Account, e.g Suspense Debitors/Creditors 
  • Adjustment to Interest on TD - Some times the interest calculated by system is either less or more, due to difference in number of days in a month. if Interest is less than manually calculated, the difference in interest earned by the client's TD has to be posted to client's savings account DR. Interest Payable on Fixed Deposit (GL) and Credit Client's Savings Account and if more withdraw the difference from client's savings account and post it to Interest Payable on Fixed Deposit Account by DR . Client Savings A/C and DR. Interest Payable on Fixed Deposit (GL)
  • Batch Loan disbursement - DR. Loan Accounts and CR. Saving Accounts
  • Dividend posting - DR. Dividend Payable GL A/C (Contra Accountand CR. Saving Accounts
  • Membership renewalsDR . Client Savings A/C and DR. Membership Account (GL)
  • Ledger Fees payment - DR . Client Savings A/C and DR. Ledger Fees Account (GL)
  • Client makes deposit through SACCO Bank Account in another bank say Bank A, when bank statements are got from the bank in which the SACCO holds its account, the money deposited by the client has to be posted to his savings account if it's for savings purpose or if its for loan servicing then it has to be taken to client's loan account DR. Cash at Bank A (GL)  and CR. Clients Loan A/C or Loan A/C depending on clients interest


Attributes


AttributeDescriptionNotes
Batch NumberAuto generated by system
Batch NameSee above description for this
Batch Typedrop-down with list of the 5 batch types as above


Default Value DateSee above description for this
Total AmountSee above description for this
Default DescriptionSee above description for this
Currency TypeSee above description for this

Security and Permissions

Permissions include:- Create Batch, Approve Batch, Update Batch

Once a batch is opened by a user, it's should not be visible to other users who try to get batch list. and when the user close the batch window, its visible to all users again.

Before next line in a batch is processed, the current line has to be validated and if errors occur, high the batch line and show error description e.g account not found, debit amount is greater or less that credit amount etch

Mifos Functionality Enhancements

New Screens

Changes to Existing Screens

Changes/Enhancements to Batch Jobs

For batches which are many to be entered through the screen manually, there should be possibility to import it either from Excel or .txt file. However the batch type should be put at the back of the mind when handling the logic here.

Examples of batches which need import include those of:-

  • Annual Membership fees payment
  • Manual Interest on Savings posting
  • Dividend Posting etch

Changes/Enhancements to Accounting Entries

User interaction and design

Exception Handling

Reporting

Each batch report should be printable and can be displayed after successfully update for a user to decide if to print of not. This should be a Pentaho report and can 

APIs

Notes

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Out of Scope