
Billable 1.2.3 / October 24, 2007 15:46
1.2 Changes
- Create pre-addressed emails with PDF invoices attached via a single button click.
- Invoice quantities of items and have Billable calculate the total.
- Choose dates using a new visual calendar popup.
- Integrate your custom workflow needs via AppleScript.
- Write up verbose service descriptions in the new per-service note field.
- Mark invoices as due on receipt rather than a specific day.
- Experience PDF caching in-between launches, easier service editing and more!
1.2.1 Changes
- If you worked for a client under one time-based rate and later changed it, the migration to 1.2 incorrectly updated all the time-based services to the current default rate.
1.2.2 Changes
- The data migration from 1.1.2 to 1.2.x now works when you previously had a preference for default invoice due date of zero. We now will carry over that app preference to all per-client preferences as well.
- We now use a nowrap attribute on the default invoice template for the date content columns. Some international formats were wrapping on default data.
1.2.3 Changes
- Fixed a bug where when you deleted a service that had an active timer the app icon was not cleaned of the time stamp.
- Fixed a few more migration roadblocks that cause people upgrading form 1.0 to 1.2 (ie: who missed 1.1).
- Fixed a bug where starting a timer on one service while another timer was running was not stopping the previous timer as the dialogue said it would.
- The message field in the edit invoice sheet no longer continuously updates the stored value as you type. Every change caused the PDF cache to be evaluated and cleared which was slow on older machines and is not really something that we need to do.
- Editing the invoice number format by dragging and dropping tokens now works under Leopard.
Billable 1.2.2 / September 13, 2007 18:32
1.2 Changes
- Create pre-addressed emails with PDF invoices attached via a single button click.
- Invoice quantities of items and have Billable calculate the total.
- Choose dates using a new visual calendar popup.
- Integrate your custom workflow needs via AppleScript.
- Write up verbose service descriptions in the new per-service note field.
- Mark invoices as due on receipt rather than a specific day.
- Experience PDF caching in-between launches, easier service editing and more!
1.2.1 Changes
- If you worked for a client under one time-based rate and later changed it, the migration to 1.2 incorrectly updated all the time-based services to the current default rate.
1.2.2 Changes
- The data migration from 1.1.2 to 1.2.x now works when you previously had a preference for default invoice due date of zero. We now will carry over that app preference to all per-client preferences as well.
- We now use a nowrap attribute on the default invoice template for the date content columns. Some international formats were wrapping on default data.
Billable 1.2.1 / September 12, 2007 16:40
1.2 Changes
- Create pre-addressed emails with PDF invoices attached via a single button click.
- Invoice quantities of items and have Billable calculate the total.
- Choose dates using a new visual calendar popup.
- Integrate your custom workflow needs via AppleScript.
- Write up verbose service descriptions in the new per-service note field.
- Mark invoices as due on receipt rather than a specific day.
- Experience PDF caching in-between launches, easier service editing and more!
1.2.1 Changes
- If you worked for a client under one time-based rate and later changed it, the migration to 1.2 incorrectly updated all the time-based services to the current default rate.
Billable 1.2 / September 11, 2007 23:58
Changes
- Create pre-addressed emails with PDF invoices attached via a single button click.
- Invoice quantities of items and have Billable calculate the total.
- Choose dates using a new visual calendar popup.
- Integrate your custom workflow needs via AppleScript.
- Write up verbose service descriptions in the new per-service note field.
- Mark invoices as due on receipt rather than a specific day.
- Experience PDF caching in-between launches, easier service editing and more!
Billable 1.1.2 / February 08, 2007 23:26
Changes
- Switched the
invoice_template.htmlfile’s character encoding to use UTF8. This fixes a bug where if you were to use various international characters without changing the encoding you would end up with blank PDF invoices. - If a service is part of an invoice that has been paid the service too will now get an isPaid checkbox icon in the main table.
- Fixed a bug where Appearance preferences were not being applied at launch.
- Fixed a bug where new clients imported from the address book wouldn’t get the proper default tax and footer settings.
- When importing a client from the address book, and the entry is not a company and/or the company has no name, we now use the person’s name for our company name and leave the
Attention Tofield blank. - Added a new page in the help book that explains the tags in the invoice template.
- Added a new template tag
timeAsStringandtimeAsStringNoSecondswhich will allow you to show the total time of a service as “HH:MM:SS” and “HH:MM” perhaps in substitution of the default decimal representation of hours. - Made the statistics bar smarter about using the plural forms for service(s) / invoice(s) when there is only “1” item.
Billable 1.1.1 / January 29, 2007 02:10
Changes
- Increased the precision of tax rates up to three decimal places to support local taxes that require longer precision.
- When displaying the tax rates on invoices we now show the simplest possible rate, ie: 6.500% when entered in UI and 6.5% when displayed on an invoice.
- Fixed a bug where new clients were not getting the new client tax defaults from preferences.
- Added instant validation to the tax rates on the edit invoice sheet to avoid a crash if left blank.
- Added special checks to the Paid in Full button(s) so that it can’t set up a total paid value that is less than zero.
- Fixed a bug where the UI would look all cluttered for a second on launch. Very visible on slower hardware, less so on faster hardware.
- Added a check that looks to see if the invoice template in the bundle has been changed and if so warns the user that the proper location is in their Application Support folder.
Billable 1.1 / January 15, 2007 00:00
Changes
- Add taxes to your invoices using a flexible system that can accommodate many international needs.
- Mark each invoice with an invoice number of your choice.
- Teach Billable how to generate invoice numbers in the format you define, using a simple drag and drop interface.
- Use the new statistics bar under the main table to add up totals.
- Instruct clients how to pay or explain business issues in a new footer area on the invoice that can be customized per-client.
- Sleep well knowing the database file will be backed up before each launch and newly entered data is saved on key events without user interaction.
- Experience faster PDF generation, more customizable appearances, better international currency support and more!
Billable 1.0.3 / October 30, 2006 00:13
Changes
- Added the validate immediately bindings attribute (which will alert the user of an invalid value being set) to the below noted fields to help stop the “multiple validation error” some users have reported seeing while trying to save or quit the application.
- To the Sent Data and Due Date fields of the invoice editing sheet.
- To the Date and Flat Fee Total Cost fields of the service pane.
Billable 1.0.2 / October 10, 2006 21:52
Changes
- Fixed a bug where the No Selection pane would be shown on launch of Billable if there was only 1 or 2 services in the system and it was registered. Thanks to Mike Stickel for his report.
- Fixed a bug (actually more of an oversight) in the default template that would cause an invoice that has all flat-fee services to show the service line items in a random order. This basically involved replacing the line
{{foreach service invoice.services list}}with{{foreach service invoice.servicesOrderedByDate list}}in the template. If you use a custom template and are affected by this issue you might want to useinvoice.servicesOrderedByDatein your for loop. - Set up a new margin default of 0.75 inch for the invoices. The previous margins were 1.25 inch on the top/bottom and 1 inch on the left and right.
- Added hidden preferences (documentation in the Help Book) that allows people who are trying to achieve border-less invoice designs to use the
defaultscommand line to setup 0.0 margins. This along with a 0 margin set in the CSS of the invoice template should allow for border-less designs. - Further replaced the two
servicesOrderedByDatereferences in the template withservicesOrderedByDateAndSummary. This will be handy for people who have multiple services on the same day and use prefixes like “Proj1:” or “Expenses:” – using this new method keeps everything looking more tidy. Again, for those using custom templates you may want to use this. On that noteservicesOrderedByDatestill works and will continue to work into the foreseeable future.
Billable 1.0.1 / September 30, 2006 11:43
Changes
- Redid the code that creates new invoices to avoid a bug wherein you would occasionally see invoice totals but not inline service on your invoice.
- Added a check during the creation of new invoices that the service being invoice was not currently running a timer
- Made a point to save the database sooner when running for the first time, which makes sure the proper metadata about what schema version the database was made with is saved and thus avoid those warnings about not being able to migrate the database if something went south.
- Less chatty in the System Console.
- Fixed a bug where you would try to replace the company logo in System Preferences, hit Edit Invoice and OK, and still see the old logo. This was WebKit caching working against me. I’m unable to manually tell it to not use cache and so as of now and throwing some random numbers into the IMG src to confuse it (something that is done in Rails as well). In time I’d like to rework this a bit (and PDF caching overall) but for now it looks like a suitable fix.
Billable 1.0 / September 25, 2006 11:32
Changes
- Removed some unneeded header files from the internal frameworks folder.
- Officially crossed fingers; here we go…
Billable 1.0b12 / September 21, 2006 23:03
Changes
- BUGFIX: Invoices now use the system local currency format. Previously we always used the US dollar sign.
- Phone numbers are now printed on invoices.
- The mailing address and contact info are now in their own distinct paragraph on invoices, resulting in whitespace between them.
- Dates, both in the PDF invoice and the UI of Billable now respect the format settings in System Preferences > International.
- BUGFIX: When deleting services/invoices in the main table you no longer get a system beep (as if to indicate you couldn’t do it).
Billable 1.0b11 / September 19, 2006 03:08
Changes
- There was (is) a bug where if you made the source list too small the label text would wrap funny. I’ve temporally fixed this by adding a min width to the sidebar. In the future I want to redo all of that drawing code (including make an option for small labels) but for now this will do.
- Made the date field longer in the service pane.
- Billable now shows the “No Selection” pane on start when there are no items in the library.
- Put in the final registration voodoo. Old Test serial numbers will no longer work.
- A few other small cosmetic changes.
- The DMG style has been finalized.
- DMG should now open properly on less than 10.4
- There is now a system version check. Billable requires 10.4.4 and has a fairly friendly alert window telling you to get 10.4 or update using System Preferences.
Billable 1.0b10 / September 01, 2006 05:39
Changes
- This version of Billable has changed the database format slightly. A migration is offered if needed.
- Billable no longer asks users if it should check for updates, it just does. It is still controllable via the preferences should you want to turn it off.
- The “Quick Introduction” window has been renamed to “Starting Points”.
- BUGFIX: Fixed keyboard navigation in preference window.
- BUGFIX: The Company Profile in preferences now gets highlighted when opening it from the “Starting Points” window.
- Added code that verifies the registration code with your email address.
- Took out static expiration date.
- Added the ability to run Billable for a full 30 day demo. If after the 30 days, you still have not created 20 services the demo will continue (until you do, then new services can not be created).
- Changed the default name for a new client to “New Client” from “Foobar Inc.”
- Added a UUID (global unique identifier) to a new entity in the database that stores additional application data. This UUID is then added to the profile info that is sent to the server with OS version, Mac model, and so on. The purpose of this UUID is so that when I am looking at counts for people who have newer hardware or software I can get a closer to real count. If I used an IP address to distinguish users some guy with a laptop that travels could look like many people instead of one. This UUID is not personally identifiable. The system profile sent is still anonymous.
- BUGFIX: The time field on the service pane is now more forgiving about the string you enter. Previously it required something like 3:00 for 3 hours, now you can type a simple 3.
- BUGFIX: Added instant validation to the hourly rate in the client editor and the service pane. (Still need to add this to the Preferences, not as easy as I would have hopped but it doesn’t cause an error or anything so it’ll wait.)
- BUGFIX: Added code to make sure the pane area gets updated when you are deleting rows in the main table.
- BUGFIX: Got rid of a few memory leaks.
- Added more articles to the help book. Please read and let me know if it needs any edits/additions.
Billable 1.0b9 / August 19, 2006 18:03
Changes
- BUGFIX: Fixed bug where if you hit the forward delete key while editing a service text field the table would delete a row.
- Redid the look and location of the PAID stamp on a paid invoice. It is a thicker stroke on the font, right-aligned to balance better with logos, and semi-transparent.
- Updated Credits
- Took out the Debug menu
- Add links under the help menu for Bug Reports/Feature Requests, Forums, and the website.
- On launch, we now sort the main table by date descending (ie: newest items at the top). We also now make sure to reorder the table on insert, so again new items are on the top.
- Services that have been invoiced are no longer editable.
- When setting the initial company profile for the user based on their Address Book ME card, if they have a human name and no company name, we use their human name as the company name and leave the attention to: stuff blank.
- Added an alert if quitting with a running timer.
- If the Main Window is not on screen after the application becomes active after a switch (ie: from switching to Billable from another app) it is displayed.
- Added the Help Book. It’s still very much in progress. Let me know what you think I need to add.
- Added a new window “Quick Introduction” that is shown on first launch and is available under the Help menu.
- Added Intro Movie to Help Menu.
Billable 1.0b8 / August 17, 2006 18:12
Changes
- Added a new dock icon badge. It is displayed when you are running a timer on a service. Due to the size limits of the dock it only displays HH:MM. For more info see this forum thread.
- Because of the dock badge icon addition Billable now limits you to running a single timer concurrently. I don’t suspect this is a real issue for anyone, but feedback is welcome.
- Added Export under File in the main menu. This allows you to create a basic XML export of most Billable data (minus the icon thumbnails, registration info, and other preferences). Export is meant for those people who would like to take their data elsewhere. If you want to backup Billable you should make a copy of the database and preference files as described on the wiki.
- Greatly improved keyboard / tab navigation.
- Redid Preference window to work more like Safari, Mail, etc. (IE: resizing windows, sectioned with a toolbar).
- Added a new preference for default service type (flat fee or time-based).
- Added a new preference for default invoice due date. This allows you to change the default due date of an invoice. The default is +30 from invoice creation date.
Billable 1.0b7 / August 13, 2006 21:10
Changes
- The database format slightly changed in this version. We will migrating data created in beta6. Earlier versions should be trashed as described on the wiki.
- Added the ability to import clients from the Address Book.
- On first launch Billable will use the data from the ME card in the Address Book to fill out default data in your company profile.
- BUGFIX: Fixed white box around icons button in invoice pane.
- BUGFIX: We now display services in the invoice sorted by the date they were performed.
- The invoice font size has been changed so that it can fit more services per sheet of paper.
- Added a new menu item under Edit called
Copy Plain Text Invoicewhich is also available with Command+Shift C. This will put a plain text version of the selected invoice into the pasteboard. - BUGFIX: Fixed the Select Invoice button on a service pane. It works now!
- BUGFIX: More fields in the service pane now update the value continuously, thus making sure any new values been typed in get committed before you press the Create Invoice Button.
- BUGFIX: We now round to two decimal places in code for time-based services. Previously we retained the repeating values and as a consequence the values of the line items in an invoice would not always equal the total. The total in testing would be a few cents more than it should be (according the data visualized). In fixing this we do a check during the beta6 migration and reset any totalPaid values that might be more than totalCost to equal totalCost.
- Added the UI that will allow people to register. It does nothing as of right now.
Billable 1.0b6 / July 18, 2006 23:28
Changes
- This version of Billable has changed the database format and as such you should (despite the fact that it appears to open normally) trash your old test files as described on the wiki.
- BUGFIX: Fixed a mis-typed column for totalPaid in the database schema (it was ‘Double’ when it should have been ‘decimal’). This (I believe) was causing a crash on Intel when creating a new invoice. Please let us know if this still is a problem.
- BUGFIX: Fixed the client icon editor. It now scales the icon properly before saving it. Perviously it was only showing the lower right 32x32 corner of the custom icon. If you have a bum icon, try setting it up again.
- Added a refreshing of the sidebar and main table after an undo action. This helps in particular when you try to delete a client (who has services/invoices in the system) and the undo the delete action.
- Added new backup system that will backup the store on launch to
~/Library/Application Support/Billable/Backup/and keep a file for each day. - BUGFIX: The Unpaid Invoice choice in the sidebar is now working again.
- BUGFIX: When using the “Mark as Paid” button in the mini-toolbar the main table is refreshed, this showing the green paid arrow right away. In the past, it was only showed when the table was refreshed by something else.
- Added an way to customize the template that makes the invoice. It will be officially unsupported for version 1.0 but available for those who want to hack. More info on the wiki.
- Increased the delay of rendering a invoice into PDF to 1.0 seconds (it was 0.1 in some cases before) to make sure all images have loaded into the webview before converting it into a PDF.
Billable 1.0b5 / July 14, 2006 01:05
Changes
- This new version of Billable is incompatible with data created with previous versions. Please be sure to delete the files in Application Support, Caches, and Preferences that relate to Billable. More info on where these files live.
- Added a new field to client profile called, “Hourly Rate”. This will allow you to assign an hourly rate per client, and thus if you create a new service with the client chosen in the sidebar it will now not only automatically select that client but assign that client’s hourly rate to the new service. When you create a new client it’s default hourly rate will be set to the rate from preferences.
- Changed the summary of an item to be editable by a single line text field instead of a text view (as was previous).
- Instead of entering a decimal of 1.5 and then a pull down to define unit of time (Minutes/Hours) in a service I now show a single text field that allows you to enter length of time as a string in the format of hh:mm:ss (hours:minutes:seconds). The field is somewhat intelligent in that if you enter in 00:90:00 it will turn it into 01:30:00. Or you could enter it using decimal points as in 4.30 and it will convert it into 04:30:00. Internally we are storing all times as seconds.
- Next to the new time text field is a Start button which will disable the text fields and start a timer for that service, incrementing it each second. If you stop the timer the text fields will be come re-enabled. If you happen to quit Billable while a timer is going off the service is saved with the time at quit.
- Redid the invoice editing sheet. Took out the checkbox for “isPaid”. isPaid is now a calculated attribute. Added a button that allows you to easily mark the Total Paid amount equal to the Total Cost via a button labeled “Paid in Full”. The date fields are now simple NSTextFields with Date formatters attached.
- Fixed a bug where images such as the PAID stamp or optional company logo were not appearing in the PDFs. (This was due to me turning off images in the “credits” web view – strange.)
- Added a new field to the invoice edit sheet for Due Date. The current due date default to 30 days from the date you create the invoice but is editable. Also added is of course display of the due date on the invoice, under the service table.
- All new icons in this version. We will miss the Transformers.
Known Bugs
- The ‘Unpaid Invoices’ option in the sidebar currently shows all invoices.
- The custom client logos in the sidebar are not being displayed properly.
- If a client name is very long it does not wrap nicely in the sidebar and you may spot some of the taller characters being drawn at the very bottom of the cell.
- If you delete a client and then undo the sidebar is not refreshed properly.
- Undo in general needs work.
Billable 1.0b4 / June 11, 2006 03:13
- Redid About box and added a Credits window which is available under the Application menu.
- Added a two new menu options under View in the menu bar. One allows you to “Expand Clients” in the source list, the other “Collapse Clients”.
- On launch Billable now expands the client list in the sidebar (but not its child menus, services and invoices).
- If you’re in an invoice section and create a new service we now change the selection in the source list so that you are choosing something that can show the new service.
- You can now sort the main table by Icon, Invoiced and Paid columns.
- Implemented the new button at the bottom of the Service pane. If the service has not been invoiced it reads “Create Invoice” and clicking on it will create an invoice containing this single service. If a service has already been invoiced it reads “Select Invoice” wherein clicking it will select the invoice this service is a member of in the main table. If selecting this invoice requires changing the selection in the source list we will do it. For example, if you are in a section that would only show services, we will change the source list selection in an educated fashion so the main table is allowed to show invoices.
- Changed the appcast location to /billable/appcast from /xml/billable. The old location redirects for now.
- Turned on profiler for Sparkle.
Billable 1.0b3 / June 10, 2006 17:25
- This release has no real updates, it’s mainly a test of the Sparkle framework I added. Please see the release notes for beta 2 for some real changes and known bugs.
Billable 1.0b2 / June 10, 2006 16:26
Changes
- There is a new button at the bottom of the Service pane. The idea is: If the service has not been invoiced it reads “Create Invoice” and clicking on it will create an invoice containing this single service. If a service has already been invoiced it reads “Select Invoice” wherein clicking it will select the invoice this service is a member of in the main table. This is not implemented just yet.
- I have begun to integrate the SparklePlus framework which will allow users to check for updates and auto install them as well as give me anonymous profiles from users to better help me understand what platform versions I need to support.
- If an service has been invoiced it’s client is no longer editable, and the pull down disabled.
- Main table used to be partially editable. Now it is not editable at all. Let me know if you don’t like this, I’m still iffy on it.
- Added a new concepts of partial payments. An invoice now has a Total Paid field which allows you to keep track of partial payments. If a partial payment has been made this is shown in the invoice as total cost, total paid and total due.
- The Mark as Paid button under the PDF invoice is now only enabled when an invoice can be marked as paid. (it used to toggle an invoice as paid/unpaid).
- Main Window and Client Editor windows now retain position and size between application launches.
- Changed ‘Invoices’ to ‘All Invoices’ and added ‘Unpaid Invoices’ to sidebar.
- Changed ‘Services’ to ‘All Services’ and added ‘Non-invoiced Services’ to sidebar.
- Moved “Close” from the Window menu to the File menu per Apple HIG. Also renamed it “Close Window” as is done in other popular non-document based apps.
- Added a new “View” menu to the main menu. It has options for “Show/Hide Toolbar” as well as “Customize Toolbar…”.
- Renamed “Clients” icon in Toolbar to now be “Client Editor”. Also all toolbar icons are now flush left.
- Added a new button labeled “Client Editor” next to client pulldown in service panel that will open the client editor window.
- If every service in an invoice is a flat rate service, the invoice no longer shows Hours and Rate in the Services Rendered table.
- Users can now use the keyboard to navigate the source list on the left. Previously doing this would not update the main table. I’m still working on making sure you can tab from the main table to the views below. It’s spotty right now.
- New keyboard shortcuts added to main menu: Command N for “New Service” and Shift Command N for “New Invoice”.
Known Bugs
- The custom client logos in the sidebar are not being displayed properly.
- If a client name is very long it does not wrap nicely in the sidebar and you may spot some of the taller characters being drawn at the very bottom of the cell.
- If you delete a client and then undo the sidebar is not refreshed properly.
- Editing invoice properties one after another causes the “message” portion of the invoice to get mixed up. An typical result is having all of your invoices end up with the same message.
Billable 1.0b1 / May 29, 2006 23:45
This is the first release of Billable. Please let me know what you think.
