$20 annual fee paid through 2007-01-01. Amount due: $700. Maybe I'm misinterpreting fields? Can't really grok code:

922 case 'y':
923 // current year - the year from until
924 $diff = (time() % $ayear) - ($record->until % $ayear) > 0 ? 1 : 0;
925 $year1 = date('Y', $record->until);
926 $year2 = date('Y');
927 $multiplier = $year2 - $year1 + $diff;
928 break;

Comments

asdrury’s picture

When I make fee $5 instead of $20, amount payable goes from $700 to $175. I have marked user paid through 2007-01-01, which is between 34 and 35 months ago. 700/20 = 35; 175/5 = 35.

So, it looks like, although period_name='y', the amount payable is using 'm'?

asdrury’s picture

The function feemanager_get_outstanding($date, $uid) works fine. I believe the issue was that it wasn't being called where it should be called. At feemanager.module line 411 or so:

< '$'. (feemanager_get_months($fee_record->until) * $fee_record->amount)
---
> '$'. feemanager_get_outstanding($fee_record->until, $user->uid)