Views
Contents
- Overview
- Before you run Mifos...
- Before your users access Mifos...
Overview
The following configuration topics are for system administrators and Mifos specialists who are deploying Mifos version 1.2.x.
The topics assume that you have installed Mifos and configured its third-party applications as described in Installing Mifos, and that you are ready to configure the administrative settings in Mifos. After you configure these settings, your Mifos deployment will be ready for you or someone else to create loan and savings products, add new clients and groups, open accounts for clients and groups, and configure reporting.
The administrative configuration process involves two groups of settings, which should be configured at two different times:
- Before you run Mifos: Certain administrative settings can only be configured when Mifos is not running. Among them are settings whose default values you have only one opportunity to change-before you run Mifos for the first time.
- Before your users access Mifos: There are also administrative settings you should configure before your users access Mifos. You configure these settings via the Mifos user interface, on the Admin tab.
Note for version 1.0 users: Changes since Mifos version 1.0 include moving install-time settings out of the database and into plain-text files. If you are using Mifos version 1.0, see Configuring Mifos version 1.0.
Before you run Mifos...
This section describes the install-time settings in Mifos, or those that can only be configured when Mifos is not running. It also describes install-time settings whose values can only be changed to non-default values once, before you run Mifos for the first time.
About the One-Time Settings
When Mifos runs for the first time, it writes values to its database. Although many of these values can be changed later, some cannot. Specifically, the values from the Chart of Accounts can only be written to the database once. Similarly, TRAPDOOR properties in the application configuration file can only be assigned non-default values once, before you run Mifos for the first time. After that point, a TRAPDOOR property value can only be changed to its default setting.
Using a Custom Chart of Accounts
The Chart of Accounts used by Mifos can be customized to exclude certain General Ledger (GL) accounts or use a different hierarchy of accounts. Note that you have only one opportunity to make these customizations, before you run Mifos for the first time.
To customize the Chart of Accounts:
- Create a copy of the default Chart of Accounts configuration file that ships with Mifos and name it mifosChartOfAccounts.custom.xml.
- Customize mifosChartofAccounts.custom.xml as described in Accounting in Mifos.
- Place your customized file on the app server classpath before you run your first instance of Mifos in your final, production environment.
Note: Once Mifos is deployed, you won't be able to delete GL accounts or change the account hierarchy. See the bulleted lists below for more information.
After Mifos is deployed, you can only make the following changes to your GL accounts:
- Add new GL accounts (excluding top-level accounts)
- Change account names (excluding top-level accounts)
You cannot make the following GL account changes after Mifos is deployed:
- Delete GL accounts
- Create new top-level accounts
- Modify top-level account names
- Modify the account hierarchy (moving parents/children)
- Modify GL codes
Creating your own Financial Action Mappings
Unlike the Chart of Accounts, financial action mappings can be customized any time Mifos is not running.
GL accounts are used in conjunction with particular actions. For example, when principal is added to a new loan account (a credit), Mifos choses a GL account based on a mapping. The default mappings that Mifos uses are stored in applicationContext.xml, a file that ships with Mifos. For Mifos to function correctly, all actions must be mapped to an existing GL account.
To customize the financial action mappings:
- Create a file named mifosBeanConfig.custom.xml.
- Customize mifosBeanConfig.custom.xml (see the example below).
- Place your customized file on the app server classpath while Mifos is not running. The mappings will take effect once Mifos is restarted.
Example
Use the following as a starting point for creating your own mifosBeanConfig.custom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id = "financialRules"
class="org.mifos.application.accounts.financial.util.helpers.FinancialRules"
abstract="false" factory-method="getInstance">
<property name="actionToDebitAccount">
<map>
<entry key="PRINCIPALPOSTING" value="11201"/>
<entry key="INTERESTPOSTING" value="11201"/>
<entry key="FEEPOSTING" value="11201"/>
<entry key="PENALTYPOSTING" value="11200"/>
<entry key="ROUNDING" value="31401"/>
<entry key="MANDATORYDEPOSIT" value="11201"/>
<entry key="VOLUNTORYDEPOSIT" value="11201"/>
<entry key="MANDATORYWITHDRAWAL" value="24000"/>
<entry key="VOLUNTORYWITHDRAWAL" value="23000"/>
<entry key="SAVINGS_INTERESTPOSTING" value="41000"/>
<entry key="DISBURSAL" value="13101"/>
<entry key="MISCFEEPOSTING" value="11201"/>
<entry key="MISCPENALTYPOSTING" value="11201"/>
<entry key="CUSTOMERACCOUNTMISCFEESPOSTING" value="11201"/>
<entry key="MANDATORYDEPOSIT_ADJUSTMENT" value="24000"/>
<entry key="VOLUNTORYDEPOSIT_ADJUSTMENT" value="23000"/>
<entry key="MANDATORYWITHDRAWAL_ADJUSTMENT" value="11201"/>
<entry key="VOLUNTORYWITHDRAWAL_ADJUSTMENT" value="11201"/>
<entry key="WRITEOFF" value="13201"/>
</map>
</property>
<property name="actionToCreditAccount">
<map>
<entry key="PRINCIPALPOSTING" value="13100"/>
<entry key="INTERESTPOSTING" value="31100"/>
<entry key="FEEPOSTING" value="31300"/>
<entry key="PENALTYPOSTING" value="31102"/>
<entry key="ROUNDING" value="31401"/>
<entry key="MANDATORYDEPOSIT" value="24000"/>
<entry key="VOLUNTORYDEPOSIT" value="23000"/>
<entry key="MANDATORYWITHDRAWAL" value="11201"/>
<entry key="VOLUNTORYWITHDRAWAL" value="11201"/>
<entry key="SAVINGS_INTERESTPOSTING" value="24100"/>
<entry key="DISBURSAL" value="11201"/>
<entry key="MISCFEEPOSTING" value="31301"/>
<entry key="MISCPENALTYPOSTING" value="31102"/>
<entry key="CUSTOMERACCOUNTMISCFEESPOSTING" value="31301"/>
<entry key="MANDATORYDEPOSIT_ADJUSTMENT" value="11201"/>
<entry key="VOLUNTORYDEPOSIT_ADJUSTMENT" value="11201"/>
<entry key="MANDATORYWITHDRAWAL_ADJUSTMENT" value="24000"/>
<entry key="VOLUNTORYWITHDRAWAL_ADJUSTMENT" value="23000"/>
<entry key="WRITEOFF" value="13101"/>
</map>
</property>
</bean>
</beans>
You may notice that other unrelated sections from applicationContext.xml have been omitted. This is intentional. The code that parses this XML configuration file allows for partial changes, and only those settings specific to financial action mappings in mifosBeanConfig.custom.xml can be customized.
Action names are actually constants in the FinancialActionConstants enum class. All actions must be mapped (except, currently, PENALTYPOSTING and REVERSAL_ADJUSTMENT) because Mifos assumes they are. For example, Mifos expects the mapping to contain a ROUNDING account. If the mapping doesn't exist, the application may crash or corrupt data because it cannot find an account with which to resolve rounded amounts.
Values may be changed, but they must point to GL account codes as specified in the Chart of Accounts.
Customizing the Application Configuration File
Mifos ships with a default application configuration file (applicationConfiguration.default.properties) that controls many aspects of how Mifos is set up, including which currency and locale it uses, its accounting rules, and many other important settings. You should never edit this default configuration file directly. Instead, use the file applicationConfiguration.custom.properties to override the values you want to change:
To use the custom application configuration file:
- Open the file applicationConfiguration.custom.properties in the conf folder of the Mifos install package. This file contains all the same properties and values as the default version.
- Uncomment the properties whose values you want to change and edit the values. Pay special attention to TRAPDOOR properties.
- Save applicationConfiguration.custom.properties and place it on the app server classpath .
Locale
The following settings in your applictionConfiguration.custom.properties file control locale in Mifos. While future releases of Mifos may expand on this feature, for version 1.2, use only the Language and Country codes described below.
Language
In Mifos, settings for country and language work together to create a locale-specific user interface. Choose the language you want first, then use the CountryCode value that must be paired with that language.
Use the following table to determine which LanguageCodes and CountryCodes must be paired with one another:
| For locales using this language... | use this CountryCode | and this LanguageCode |
|---|---|---|
| Spanish | ES | ES |
| French | FR | FR |
| English | GB | EN |
Example: Setting Localization.LanguageCode to FR and Localization.CountryCode to FR cause Mifos to display a French user interface.
Country
In Mifos, settings for country and language work together to create a locale-specific user interface. To get the language you want, it's possible that you will have to use a country code that doesn't reflect where Mifos will be installed.
Use the following table to determine which LanguageCodes and CountryCodes must be paired with one another:
| For locales using this language... | use this CountryCode | and this LanguageCode |
|---|---|---|
| Spanish | ES | ES |
| French | FR | FR |
| English | GB | EN |
Example: Setting Localization.LanguageCode to FR and Localization.CountryCode to FR cause Mifos to display a French user interface.
Accounting
The accounting settings in applictionConfiguration.custom.properties tell Mifos which currency you want to use and provide information it needs to calculate repayment schedules, including how many decimal places of precision should be used, and how repayments should be rounded and adjusted.
Currency
The currency that Mifos uses.
This setting causes Mifos to use either the euro, pound, rupee, or dollar internally, in its calculations and database. Externally, you will see no effect. The user interface does not display currency symbols ($, £, etc.). This is a known issue.
Example: AccountingRules.CurrencyCode=INR causes Mifos to use the Indian rupee as the currency.
Number of interest-bearing days
The number of days per year that should be used by Mifos in its interest calculations.
This setting does not apply to meeting scheduling. The meeting calendar always has 365 days. This setting also doesn't apply to fees and penalties calculation and repayment schedule generation. Because of its dependencies, once you configure this setting, you should not change it. For example, in the case of a moratorium, the loan schedule is recalculated, and changing the number of interest-bearing days in a year could change the calculation results.
Example: AccountingRules.NumberOfInterestDays=365 causes Mifos to use 365 days in its interest calculations.
Number of digits after decimal
The number of digits after the decimal that Mifos will carry for the currency.
This setting interacts with the rounding mode settings: Rounding mode for currency, Rounding mode for repayments, and Rounding mode for final payment.
While most MFIs use a value that represents the currency's finest level of precision, some do not. For example, the Tunisian dinar's smallest denomination is the milem, which is 1/1000 of a dinar. Instead of setting AccountingRules.DigitsAfterDecimal to 3, which would represent the dinar's finest level of precision, a Tunisian MFI might set AccountingRules.DigitsAfterDecimal to 2 (1/100 of a dinar).
Example: If AccountingRules.CurrencyCode=USD and AccountingRules.DigitsAfterDecimal=2, the number of digits Mifos will carry represents the currency's finest level of precision (1/100 of a dollar, or a penny).
Number of digits after decimal for interest
The number of digits after the decimal that Mifos will carry for interest.
Maximum interest rate
The maximum allowable interest rate.
Unless you're advised otherwise by a Mifos specialist, use the default value for this setting (999).
Example: AccountingRules.MaxInterest=999 means that the interest rate Mifos uses for its calculations can be as high as 999%.
Minimum interest rate
The minimum allowable interest rate.
Unless you're advised otherwise by a Mifos specialist, use the default value for this setting (0).
Example: AccountingRules.MinInterest=0 means that the interest rate Mifos uses for its calculations can be as low as 0%.
Rounding mode for currency
How Mifos rounds currency amounts.
This setting interacts with Number of digits after decimal.
Example: Assuming that Number of digits after decimal is set to 1, a value of...
- HALF_UP means that if the discarded digit is 5 or greater, the next digit is rounded up. 42.45 rounds to 42.5. 42.44 rounds to 42.4.
- FLOOR rounds the amount down to the nearest digit even if the discarded digit is 5 or greater. 42.45 rounds to 42.4.
- CEILING means that if the discarded digit is anything but zero, the next digit is rounded up. 42.41 rounds to 42.5.
Rounding mode for repayments
How Mifos rounds repayment amounts when it calculates repayment schedules—except for the last scheduled repayment.
This setting interacts with Number of digits after decimal.
Example: Assuming that Number of digits after decimal is set to 2, a value of...
- HALF_UP means that if the discarded digit is 5 or greater, the next digit is rounded up. 42.485 rounds to 42.49. 42.481 rounds to 42.48.
- FLOOR rounds the amount down to the nearest digit even if the discarded digit is 5 or greater. 42.486 rounds to 42.48.
- CEILING means that if the discarded digit is anything but zero, the next digit is rounded up. 42.481 rounds to 42.49.
Rounding precision for repayments
The decimal place repayments are rounded to when Mifos calculates the loan repayment schedule.
The precision you use must be equal to or less precise than what you specify for Number of digits after decimal. This setting does not affect the last repayment—use Rounding precision for final payment instead.
Example: If the currency is...
- INR, a value of 1 rounds to the closest whole rupee.
- GBP, a value of 0.5 rounds to the closest 50 pence.
- USD, a value of 0.1 rounds to the closest dime. If Number of digits after decimal is set to 1, this is the limit of precision, even though this currency has a smaller denomination (the penny).
How rounding interacts with Number of digits after decimal: The value you use for Rounding precision for repayments cannot be more precise than what you use for Number of digits after decimal. For example, you cannot specify 2 for Number of digits after decimal and 0.001 (which requires three digits after the decimal) for Rounding precision for repayments. You can specify 3 for Number of digits after decimal and 0.01 for Rounding precision for repayments. Note that in this latter situation, the amounts stored in the database will use three decimal places but the amounts that you view in the Mifos user interface will use two.
Rounding mode for final payment
How Mifos rounds the final scheduled repayment.
See Rounding rules for loan payment schedules for a discussion of why you may choose to use a different rounding mode for the final repayment versus other repayments.
Example: Assuming that Number of digits after decimal is set to 2, a value of...
- HALF_UP means that if the discarded digit is 5 or greater, the next digit is rounded up. 42.485 rounds to 42.49. 42.481 rounds to 42.48.
- FLOOR rounds the amount down to the nearest digit even if the discarded digit is 5 or greater. 42.486 rounds to 42.48.
- CEILING means that if the discarded digit is anything but zero, the next digit is rounded up. 42.481 rounds to 42.49.
Rounding precision for final payment
The decimal place the final repayment is rounded to when Mifos calculates the loan repayment schedule.
The decimal place you choose can't have a greater precision than what you specify for Number of digits after decimal. In addition, the degree of precision used for the final repayment cannot be greater than what you use for the other repayments—see the examples.
Example: If the currency is...
- INR, a value of 1 rounds to the closest whole rupee.
- GBP, a value of 0.5 rounds to the closest 50 pence.
- USD, a value of 0.1 rounds to the closest dime. If Number of digits after decimal is set to 1, this is the limit of precision, even though this currency has a smaller unit (the penny).
How rounding interacts with Number of digits after decimal: The value of Rounding precision for repayments cannot be more precise than that of Number of digits after decimal. For example, you cannot specify 2 for Number of digits after decimal and 0.001 (which requires three digits after the decimal) for Rounding precision for repayments. You can specify 3 for Number of digits after decimal and 0.01 for Rounding precision for repayments. Note that in this latter situation, the amounts stored in the database will use three decimal places but the amounts that you view in the Mifos user interface will use two.
About the precision used for final repayments: The precision you use for Rounding precision for final payments must be equal to or less precise than the precision you use for Rounding precision for repayments. For example, if you set Rounding precision for repayments to 0.5, you can only set Rounding precision for final repayments to 0.5 or 1 — you can't set Rounding precision for final repayment to a finer degree of precision (0.1, 0.01, 0.001).
Calendar
In Mifos, the fiscal year starts on January 1 and ends December 31. Use the Calendar section of applictionConfiguration.custom.properties to configure other aspects of the MFI's calendar, including which days are working days and how repayment meetings should be handled if a meeting falls on on a non-working day.
Working days
The days of the week that are workdays.
Mifos uses the first day you specify as the start of the fiscal week. It uses the days you do not specify as non-workdays. You must specify at least one workday. Each workday you specify should be separated by a comma with no spaces on either side.
Example: FiscalCalendarRules.WorkingDays=MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY causes Mifos to treat Monday as the start of the fiscal week, for reporting purposes, and Sunday as a non-workday.
Schedule for meeting on non-working day
How Mifos handles rescheduling a repayment or meeting when it falls on a non-workday.
This property applies to non-workdays, not holidays (see Defining Holidays for how to reschedule payments that fall on holidays). Mifos can either schedule the repayment or meeting for the same day (regardless of it being a non-workday), the next workday, or the next scheduled meeting or repayment.
Example: If FiscalCalendarRules.ScheduleTypeForMeetingOnHoliday=same_day, repayments or meetings that fall on a non-workday will still be scheduled for that day. If the value is set to next_working_day, a repayment or meeting that falls on a non-workday will be rescheduled for the next workday.
Days to allow for calendar definition
How many days before the start of the next fiscal year do you want to be able to start configuring next year's calendar? The value you specify is a number of days before January 1.
Example: Because the fiscal year in Mifos is defined as starting January 1, setting FiscalCalendarRules.DaysForCalendarDefinition to 30 means that you will be able to define the calendar (schedule meetings, etc.) for the following year starting on December 3. If you attempt to define next year's calendar on, for example, November 30, you will not be able to.
Clients
Use the Client section of applictionConfiguration.custom.properties to refine how Mifos represents the MFI's hierarchy and control which entities can apply for loans.
Center hierarchy exists
Does the MFI have one or more centers in its hierarchy? By default, Mifos assumes that an office is at the top of the hierarchy, followed by centers, groups, then clients.
Example: ClientRules.CenterHierarchyExists=false causes Mifos to use a hierarchy of 1. Office, 2. Groups, and 3. Clients instead of 1. Office, 2. Centers, 3. Groups, and 4. Clients. In other words, with a value of false, Center is excluded from Mifos' representation of the MFI's hierachy. Options involving centers are also removed from the Mifos user interface. For example, the Create new center option is removed from the left navigation bar of the Clients & Accounts tab.
Client can exist outside group
Can clients be independent of groups or must all clients belong to a group? By default, Mifos assumes that a new client can be created without that client needing to be part of a group. Instead, the client need only belong to an office.
Example: ClientRules.ClientCanExistOutsideGroup=true allows you to create a new client that is assigned directly to an office instead of to a group, then to an office. To use this capability, when you are prompted to select a group in the new client creation process, click the link that reads "Click here to continue if group membership is not required for your client".
Group can apply for loan
Can groups apply for loans in addition to clients or can only clients apply for loans? By default, Mifos assumes that the entity applying for a loan can be a group or a client.
Example: ClientRules.GroupCanApplyLoans=true allows groups, as well as clients, to apply for loans.
Process
Use the Process section in applictionConfiguration.custom.properties to include or exclude optional steps when Mifos creates clients, groups, and accounts.
Client pending approval state enabled
If you use the default setting (true), an approval step is added to the process of adding a new client. Specifically, instead of a newly added client going straight to Active status, it goes to an Application Pending Approval status. Because of a problem with this property (issue 2252), don't use the properties file to set it to false. Instead, use the workaround below.
Workaround for setting to false — In the Mifos database, execute the following command: UPDATE CUSTOMER_STATE SET CURRENTLY_IN_USE=0 WHERE STATUS_ID=2;
To approve a newly added client:
- After you create a client in Mifos, click View client details now > Edit client status.
- In the <client name> - Change status pane, select Active then enter a Note.
- Click Preview > Submit.
Group pending approval state enabled
If you use the default setting (true), an approval step is added to the process of adding a new group. Specifically, instead of a newly added group going straight to Active status, it goes to an Application Pending Approval status. Because of a problem with this property (issue 2252), don't use the properties file to set it to false. Instead, use the workaround below.
Workaround for setting to false — In the Mifos database, execute the following command: UPDATE CUSTOMER_STATE SET CURRENTLY_IN_USE=0 WHERE STATUS_ID=8
To approve a newly added group:
- After you create a group in Mifos, click View group details now > Edit group status.
- In the <group name> - Change status pane, select Active and enter a Note.
- Click Preview > Submit.
Loan disbursed to loan officer state enabled
If you use the default setting (false), loans are disbursed to the client. If you set this property to true, loans are disbursed to the loan officer before they become active and are disbursed to clients. A loan that is disbursed to a loan officer can still be cancelled.
Example: ProcessFlow.LoanDisbursedToLoanOfficerStateEnabled=false means that loans will not be disbursed to the loan officer before they become active and are disbursed to the clients.
Loan pending approval state enabled
If you use the default setting (true), an approval step is added to the process of creating a new loan account for a client or group. Because of a problem with this property (issue 2252), don't use the properties file to set it to false. Instead, use the workaround below.
Workaround for setting to false — In the Mifos database, execute the following command: UPDATE ACCOUNT_STATE SET CURRENTLY_IN_USE=0 WHERE ACCOUNT_STATE_ID=2
To approve a newly created loan account:
- After you create the account in Mifos, click View loan account details now > Edit account status.
- In the <account name> - Change status pane, select Application Approved then enter a Note.
- Click Preview > Submit.
Savings pending approval state enabled
If you use the default setting (true), an approval step is added to the process of creating a new savings account for a group or client. Because of a problem with this property (issue 2252), don't use the properties file to set it to false. Instead, use the workaround below.
Workaround for setting to false — In the Mifos database, execute the following command: UPDATE ACCOUNT_STATE SET CURRENTLY_IN_USE=0 WHERE ACCOUNT_STATE_ID=14
To approve a newly created savings account:
- After you create the account in Mifos, click View savings account details now > Edit account status.
- In the <account name> - Change status pane, select Application Approved then enter a Note.
- Click Preview > Submit.
Reporting
Use the Reporting section in applictionConfiguration.custom.properties to customize some of the reporting- and repayment-related capabilities in Mifos.
Allow backdated transactions
Allows Mifos to accept transactions dated earlier than the current date.
Example: BackDatedTransactionsAllowed=true allows users to enter transactions that have dates earlier than the date on which the transactions are entered in Mifos. If the value is set to false, transactions must use the current date.
Collection sheet data generation
This setting has no effect—it works with a collection sheet batch job that was disabled in Mifos version 1.1. When the collection sheet batch job is enabled, this setting allows you to generate collection sheet data for a future meeting. The value you specify represents the difference (in days) between the current day and the future meeting day for which you want to generate collection sheet data.
Example: If you set CollectionSheet.DaysInAdvance to 1, the batch job will generate collection sheet data for tomorrow's meetings (1 day from today). If you set it to 2, it will generate data for meetings that happen the day after tomorrow (2 days from today).
Branch Manager name
The name that is displayed as Branch Manager in Progress Reports.
Example: If RolesAndPermissions.BranchManager.RoleName=Rahul Kumar, the name Rahul Kumar is displayed as Branch Manager in Progress Reports.
Adjusting Session Timeout
By default, Mifos gives users up to 30 minutes of inactivity before it times out their sessions and requires them to log in again. To change this value, edit the following section in the deployment descriptor file, web.xml, which ships in the Mifos WAR at WEB-INF:
<session-config> <session-timeout>30</session-timeout> </session-config>
Scheduling Batch Jobs
The data that you and other Mifos users work with is maintained by batch jobs, which are a series of scripts that are executed on the computer where Mifos is installed. These scripts perform calculations, act on the Mifos database, and ensure, for example, that the repayment information entered in Mifos today is reflected in the reports that are generated tomorrow. Keep the following tips in mind with regard to batch jobs:
- By default, the Mifos batch jobs are scheduled to run every day at midnight.
- For the batch jobs to run, the computer where Mifos is installed must be running.
- If a user is logged in when the batch jobs start to run, they will be automatically logged out. No logins are permitted until the batch jobs complete.
- Reports that are generated before the batch jobs are complete will not reflect the results of the batch jobs.
Batch jobs are scheduled in task.xml in the Mifos WAR (WEB-INF/classes/org/mifos/framework/util/resources/batchjobs).
You can confirm whether a batch job ran by looking in the scheduled_tasks table in the Mifos database. A status value of 1 means the batch job ran; 0 means it didn't run. In most cases, the default settings should be adequate, but if you need to force a batch job to run, use the following procedure.
To force a batch job to run:
- If Mifos is running, log out.
- Execute the Tomcat shutdown script (shutdown.sh/.bat) in CATALINA_HOME/bin (for example, C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin), or if Tomcat was installed as a service on Windows, navigate to Control Panel > Administrative Tools > Services and change the status of the Mifos service to Stopped.
- Open task.xml in the Mifos WAR at WEB-INF/classes/org/mifos/framework/util/resources/batchjobs.
- Edit <initial-time> for the batch job(s) you want to force. Change it from 24:00:00, which will occur at midnight today, to a time today that has already passed, such as 01:00:00 (1 am). For example: <initial-time>01:00:00</initial-time>
- Save your changes.
- Execute the Tomcat startup script (startup.sh/.bat) in CATALINA_HOME/bin or start the Mifos service. The batch jobs will start to run. You won't be able to log into Mifos until they complete.
Customizing your Database Connection
You can customize various aspects of your database connection, such as which host to connect to, the database name, your user name and password, as well as the connection pool settings, by placing a file called deploymifosDB.properties on the app server classpath while Mifos is not running. A sample of this file is in the Mifos install package, in the conf folder.
Note: The file deploymifosDB.properties is based on hibernate.properties. If the latter changes in a future release of Mifos, your copy of deploymifosDB.properties may also require changes.
Database-Configured Settings
Some Mifos features are configured directly in the database. The settings described below are located in the config_key_value_integer table in the Mifos schema:
- Loan Set Independent of Meeting allows loan payments to be scheduled independent of the meeting schedule. This feature is disabled by default. Note that this feature has some known issues (see issues 1994 and 2005). To enable this feature, set the flag for repaymentSchedulesIndependentOfMeetingIsEnabled to 1 and apply your change.
- The value for Minimum Days Between Disbursal and First Repayment is used when Loan Set Independent of Meeting is enabled. This setting determines how tight the interval can be between disbursing a loan and requiring the first repayment for same. The default value is 1, which ensures that a loan disbursal and the first repayment can never be less than one day apart.
- The value for Maximum Days Between Disbursal and First Repayment Day is used when Loan Set Independent of Meeting is enabled. This setting limits the number of days that can pass between disbursing a loan and requiring the first repayment for same. The default value is 365.
- Loan with Individual Monitoring can be used when a group opens a loan account. It lets you specify, at disbursal time, how much of the total loan amount each group member will receive. This feature is disabled by default. To enable it, set the flag for loanIndividualMonitoringIsEnabled to 1.
Before your users access Mifos...
After you define the administrative settings that can only be configured when Mifos is not running (including the one-time settings), it's time to configure some of the settings on the Admin tab in Mifos. Not every setting on the Admin tab is described here, just the fundamental ones that must be configured before another Mifos system user defines items like products, clients, groups, accounts, meeting schedules, and surveys.
Starting Mifos
To access the settings on the Admin tab, you need to start the Mifos application.
To start Mifos:
- Execute the Tomcat script named startup.sh/.bat in CATALINA_HOME/bin (for example, C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin), or if Tomcat was installed as a service on Windows, navigate to Control Panel > Administrative Tools > Services to verify that the status of the Mifos service is Started.
- Next, visit http:///localhost:8080//mifos in a web browser.
- Enter mifos as your Username and testmifos as your Password.
Customizing the User Interface
The options in the Data Display and Rules group allow you to customize certain labels and list-box items, hide or require certain fields, and define new fields for additional information you want to collect.
User Interface Labels
To define labels:
- On the Admin tab, click the Define labels link under Data Display and Rules.
- Edit the label name you want to change.
- Click Submit.
List Box Items (Look-Up Options)
You can use Define Look-Up Options to populate the contents of list boxes. Once you add a look-up option and Mifos is in production, you should not remove it because it may be in use. Additional look-up options can be added after Mifos is in production.
To create new list box items or edit existing items:
- On the Admin tab, click Define Look-up Options.
- Add or edit the options.
- Click Submit
Create Additional Fields
Use the Define additional fields option to create a new user interface option, for example, to collect information from clients that isn't already requested by Mifos. Use the View additional fields option to see which new options have already been created.
To create a new field:
- On the Admin tab, click Define additional fields.
- Select the Mifos category under which your new field will appear. If you select Clients, for example, your new field will appear in the user interface options for new client creation.
- Provide text for the new label and whether the field's value is numerical or text. Optionally, you can also designate whether the field is mandatory and you can provide a default value for the option.
- Click Preview > Submit.
- To view your new field, click View additional fields then select the category.
Defining Office Hierarchy
Office hierarchy is Mifos' view of how your MFI is organized. Mifos uses the office hierarchy information you provide for a wide variety of essential actions, including creating users defining new clients and groups, managing transactions, and reporting. At minimum, Mifos requires two levels of hierarchy: a Head Office, provided by default (Mifos HO), and at least one Branch Office. At maximum, there can be five levels: Head Office, Regional Office, Sub-Regional Office, Area Office, and Branch Office.
Defining office hierarchy in Mifos involves first removing office types that aren't represented in your organization and then adding those offices that are.
To remove office types:
- On the Admin tab in Mifos, click the View office hierarchy link under Offices.
- Clear the check box(es) for office types that don't represent your MFI's organization. For example, if one or more Division offices aren't in your oganization's structure, clear the Division check box. You cannot remove Head Office and Branch Office as office types. They are required.
- Click Preview > Submit.
To add offices:
- On the Admin tab, click the Define a new office link under Offices.
- Provide information for the new office. Any office types you removed in the above procedure are absent from the Office type list. You can only have one Head Office.
- Click Preview > Submit.
Creating Roles
After you define your MFI's office hierarchy in Mifos, it's time to create roles, which are collections of actions that a user can perform in Mifos.
To create a role:
- On the Admin tab, click Manage roles and permissions under System users.
- Note that the Admin role is the only pre-defined role. Click the new Role link to create a new role.
- Provide a Role Name and select actions or groups of actions that a person can perform in this role.
- Click Preview > Submit.
Creating Users
Once you define roles in Mifos you can create the users who will be assigned those roles. There are two types of users in Mifos: Loan Officers or Non-Loan Officers. A Loan Officer can only belong to a Branch Office.
To create a user:
- On the Admin tab, click Define new system user under System users.
- Click the office to which the user will belong.
- Provide information for the user, including their User Hierarchy (Non-Loan Officer or Loan Officer).
- Add Role(s) that the user will perform.
- Click Preview > Submit.
Configuring Payment Types
Mifos uses Cash as the default value for accepted payments.
To specify a different or additional payment type: On the Admin tab under Organization Preferences, click Define accepted payment types.
Setting Lateness and Dormancy Definitions
Before loan and savings products can be defined, the default loan lateness and savings dormancy definitions should be reviewed and changed, if necessary. Both of these settings are configured on the Admin tab via the View lateness/dormancy definition link.
- The loan lateness definition is the number of days of non-payment that can pass before Mifos changes a loan account's status from Active in good standing to In arrears. The default value is 10 days.
- The savings dormancy definition is the number of days of inactivity after which Mifos changes the status of a savings account from Active to On Hold. The default value is 30 days.
Defining Holidays
So that it can correctly calculate repayment schedules, Mifos needs to know what your MFI's holidays are and how you would like repayments handled if a repayment happens to fall on a holiday. Mifos can either schedule the repayment for the same day (regardless of it being a holiday), the next workday, or the next scheduled meeting or repayment. Note that in Mifos, holidays are different from non-workdays.
To define a holiday:
- On the Admin tab, click Define new holidays under Organization Preferences.
- Provide information about the holiday and select a Repayment Rule.
- Click Preview > Submit.
Information on Reporting and PPI Surveys
As a system administrator you may also be reponsible for setting up reports for your users and adding a PPI survey to your deployment. Use the following links for more information:
- Reporting in Mifos: Describes how to use BIRT (Business Intelligence Reporting Tools) to build and upload non-standard reports.
- PPI Survey Conventions: Adding a PPI survey must be done at the source code level and requires assistance from a Mifos specialist. Use this link to learn about some of the requirements.
