Reversing a rent charge is not considered as part of the "charged-through" date on the lease. Consequently, the reversal itself ensures the charge is fully "paid", and the "paid-through" date is also out of whack. Add NSF Fee to the NSF entry page (It's hardcoded right now in Transaction to $35). NSF of an item with customer credit is broken. 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. 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. 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). Same as above, except needs-to-be-unlocked. Make the default (initial) jqGrid sort order for balance be DESC. Change menu to be 'Reports' (or 'Overview', or 'Summary') 'Activities' - New Receipt - New Customer - Move-in Add dynamic check to see if customer already exists before being created. Ideally, check +/- a few characters to check for alternate spellings. Same for contact. Reduce the number of cached items. Figure out how to get Cake to automatically make CONCAT(TenderType.name, ' #', Tender.id) part of each returned query. Add the opposite of the "collected" report, which provides a set of checkboxes for the different incomes, and returns a list of where the received monies were disbursed for the selected period. 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. Fix ACH deposits into bank. Make it happen automatically, perhaps after 3 days. Without this, we cannot NSF an ACH transaction. Change the menu structure to be $menu['section']['item'], so that items don't have to be added in order of section. Perhaps even array(array(name, priority, items => array(name, priority, link))) Change New Customer form to have contact 'New' radio pre-checked Add explanatory information on the New Customer page - Customer name can be omitted and will come from primary tenant. - Phone numbers, etc can be added later directly to the contact Unit Size has no controller. Either remove the link from the units grid, or implement the controller. When performing a move-in, the receipt page is broken when trying to enter a concession. javascript complains about an invalid value, and the page is not submitted. - Allegedly. I believe Shirley's browser was acting up on her, and based on the logs, it seems that indeed what ultimately worked just fine for a concession entry was really the exact same page that was stuck. While on the phone it was evident that here browser was doing a javascript wig-out, and it wasn't related to a slow internet connection. Add invoice rent helpers - monthly proration tool - select from/to dates, and hit "prorate" - charge through date - enter charge through date, and the invoice will automatically have charges for each month from the current charge-through date to the new charge-through date. - charge N months - enter number of months, and the invoice will automatically have charges for each month from the current charge-through date for N months - next rent - same as, or instead of, "charge N months", where N is 1 Invoice - Have some sort of rent-proration tool - Have Rent automatically populate the Effective/Through as well as rent (pro-rating if necessary). The dates should take into account the customer charge through date, as well as any other rents on the invoice.