[
http://mifosforge.jira.com/browse/MIFOS-3604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kay Chau updated MIFOS-3604:
----------------------------
Assignee: mifosdeveloperqueue (was: Van Mittal-Henkle)
Description: Put issue 2799 fix into 1.6.x branch (was: Summary
we ran into a roadblock today. The short summary is that Mifos does not any
permit transactions to be entered prior to the most recent client meeting date,
even when LSIM and back-dated transactions are enabled. After discussing with
Ryan, we think it may be working as designed, but perhaps it is a design that
did not anticipate this use case where repayments are made at banks and then
imported into Mifos in bulk, potentially on a later date. We have a short-term
workaround that would be good to get some feedback on (particularly from
developers) and we should discuss longer-term approaches.
Details - Short-term fire
Each day we have been importing bank repayment transactions, trying to catch up
on the thousands since the pilot started. Although this has been working fine
up until now, most of the payments we tried to import today were rejected with
an invalid transaction date. We tried entering some manually in the apply
payment UI and got the same result, an error message that transactions can not
be back-dated prior to the last customer meeting date. We looked at the data
and did some experiments with setting the clock ahead on the test server here.
We found that the reason we ran into this today is the majority of pilot
customers were migrated from the old system on Feb. 16th and we set the meeting
day to be the 16th of each month, and now that it is March 16th we can no
longer enter any transactions prior to today for those customers.
The current problem is we still have hundreds of transactions that happened
before the 16th to enter. Within the Mifos UI, the only option we could think
of is redoing loans, and there are way too many for that to be feasible - we've
been redoing many each day due to other issues and are barely keeping up with
the new ones.
So, the workaround we came up with was to update the date of the customer
meetings in the database from today to a future date (in the customer_schedule
table) then import/apply the payments, then set the meeting dates back to today
for the sake of some sort of data consistency. We tried this out on the test
server and it worked, with no ill effects as far as we could tell, so George
decided to go ahead with it. This is the workaround that we would really like
to get a sanity-check about.
Details - Longer-term approach
Even if this workaround is OK for now when we are catching up on 10 days or so
of data after migrating systems, we still need to figure out the longer-term
plan for this so we are not doing that for some accounts every day, forever.
In the planned use case here the finance department tries to import payments
from banks at the end of the day they were made, but often/usually it is 1-2
working days later. So, if any of those customers have meeting dates that fall
in between that time, this situation will occur again, and we would have to
apply whatever workaround potentially every day.
As for longer term solutions, I think the desired behavior would be to remove
the restriction about meeting dates for customers that don't actually have
meetings. We could change the existing behavior of LSIM + backdated
transactions, or potentially introduce a new configuration variable to make
this option apply only for MFIs that specifically choose it.
(AccountingRules.allowBackDatedTransactionsRegardlessOfMeetings?)
As a possible enhancement, Mifos could have the concept of a global date when
the books were last closed in accounting, that could be updated each period,
and not allow back-dated transactions before that date. But when there are no
customer meetings, it does not seem to make sense to have meeting dates affect
when transactions can be made.
More technical details
Looking at the code, we can see that this is nothing particular to the bank
import feature -- both it and the UI for applying single payments end up going
through the same logic. The relevant transaction date checking seems to be in
AccountBO in the method isTrxnDateValid and
isTrxnDateBeforePreviousMeetingDateAllowed which it calls. To summarize the
logic in pseudocode:
if back-dated transactions are not allowed then the transaction date must be
equal to today.
otherwise:
if LSIM is enabled:
if it is a loan account:
disbursements must be on or after the approval date.
repayments must be on or after the approval date and most recent
meeting date.
else it is another type of account:
transactions must be on or after the creation date of the account.
else LSIM is not enabled, all transactions must be on or after the most
recent meeting date.
So, the proposed change would be to essentially take out the meeting date check
from the back-dated, LSIM case. Or if this should be a separate configuration
option, then make it conditional on configuration variable.
In case history sheds any light or rings any bells, Ryan found a very relevant
bug report that is now closed: MIFOS-1692.
Comments/Feedback?
any ideas about what we can do with the short-term and ongoing issue?
)
Story Points: (was: 0.5)
Fix Version/s: (was: Release E)
Release 1.6.1
Labels: almajmoua (was: almajmoua patch)
Epic: mifos-3000 (was: mifos-2999)
> hotfix 1.6.1 - issue 2799
> -------------------------
>
> Key: MIFOS-3604
> URL: http://mifosforge.jira.com/browse/MIFOS-3604
> Project: mifos
> Issue Type: Bug
> Components: Loan Account
> Affects Versions: Release 1.4
> Reporter: Sam Birney
> Assignee: mifosdeveloperqueue
> Priority: Major
> Fix For: Release E - Iteration 5, Release 1.6.1
>
>
> Put issue 2799 fix into 1.6.x branch
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://mifosforge.jira.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users
worldwide. Take advantage of special opportunities to increase revenue and
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
_______________________________________________
Mifos-issues mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mifos-issues