Sub-Total is broken, since it will only subtotal the current page of the grid. It needs to be implemented in SQL as it was in early (VERY early) implementations. At that time, I had to a use temporary variable to keep a running total. It worked, but was MySQL specific. Add a move-out charges field to the move-out page. Otherwise, if the balance is zero, the lease will automatically be closed and no more charges are possible. The other option would just be a checkbox to say "close lease (no more charges)", or let them clear it and have them close the lease manually. Invoice - Have some sort of rent-proration tool Allow waiving a complete charge, even if it already has payments applied (at the moment, we just can waive the charge balance). Get Petty Cash working. We'll need to add one or more expense accounts. We'll also need to implement purchase order functionality, or at least simple an expense page. Update unit status between OCCUPIED / LATE / LOCKED depending on the current situation. Have a report indicating Needs-to-be-Locked. Allow manager to go through this list and check off the units actually locked (which will update the unit status). Perhaps we should add a needs-locked status. Same as above, except needs-to-be-unlocked. Make the default (initial) jqGrid sort order for balance be DESC. MUST reports: - Delinquent customers - Locked out units / customers - To-Lock units - Paid up until WANT reports: - ??? ---------------------------------------------------------------------- ---------------------------------------------------------------------- ---------------------------------------------------------------------- ---------------------------------------------------------------------- ---------------------------------------------------------------------- -- DONE ! VERIFY THAT OUR NEW BALANCE QUERY WORKS. (The one that was added to lease). It works for folks that have ledger entries, but I fear that the inner join will prevent customers from showing up in the list if they don't yet have any ledger entries in account receivable. To resolve this we'll have to go back to LEFT JOIN and check for NULL in our SUM() statement. Fix sorting on Lease list by Lease Number. Have it reference ID instead. Figure out why Brenda Harmon's lease #44, unit #B04, lists the security deposit as $150. She's only paid $25, so it must be a lease issue. Modify LedgerEntry to have through_date, since a single invoice could have charges for several months rent. It's not clear whether due_date should also be moved to LedgerEntry, since some charges could have different due dates. The problem is that I can't picture an invoice having more than one due date. Consider adding a from_date to LedgerEntry as well. Fix Customers index list. To replicate, add a brand new customer. Select Customers. Notice it says 'Current Customers', but actually includes the new one in the list. There seems to be a problem with the account ledger for the customer. To replicate, see Mancini's account (#47). There are 4 entries in the Account ledger. One of them is was from 5/1/09. It's a receipt (Transaction #610, Entry #702). The Transaction is for $111.33 as indicated, but the entry is only for $16.33. -- This was a problem with using notxgroup, the experimental -- field that used to be hardcoded to false in ledger_entries.ctp -- My rework eliminated that field, and everything was getting -- grouped by transaction. Figure out how to utilize the security deposit, whether as part of move-out only, or as one of the payment options. Having a grid of ledger entries grouped by transaction appears to work, from the financial aspect, but the count of entries is incorrect. The problem is the grouping only occurs after the count, which it has to in order for the count to work. We need to obliterate the group_by_tx parameter, and simply use the transanction controller to generate the grid instead of ledger_entries. Handle a credit, ensuring that it's applied to new charges - either automatically; - by user opt-in to use credits when invoicing - by user opt-in when entering a receipt - by manually allowing a receipt of credits Reconcile all entries of a ledger to the c/f entry when "closing" the ledger and creating a new one. Determine when each unit is paid up until. There is actually two things here: invoiced up until, and paid up until. One or both of these should be displayed on the Lease view page. 20090729: New Ledger doesn't seem to give a balance forward entry. Sorting by Customer ID is broken. It must think it's already sorted by ID because the first click shows the arrow as DESC even though the sort is ASC. Subsequent clicks don't change anything. You must sort on a different column first then everything works. - Not actually fixed in the app, although it's solved by using jqGrid 3.5 Seems like security deposit is suddenly broken. I believe the customer/lease infobox used to report only PAID security deposits, but it now seems like it's reporting ALL security deposits charged. Customer Selection on the Receipt Page is broken. (Selecting a row and waiting for the update). Automatic assessment of rents, or at least for now, one click manual mechanism to assess rents correctly for all tenants. Automatic assessment of late fees, or at least for now, one click manual mechanism to assess late fees correctly for all tenants.