### Navigation

- index
- next |
- previous |
- phpaga v0.6-beta1 documentation »

# Changes

## phpaga dev

### New features

- PDF files are now generated by TCPDF. The previously used PDF templates can no longer be used, but simple plugins can customize the base PDF classes.
- The dashboard has been extended to show the user’s manhours per current year/month/week.
- Added jQuery UI.
- Various user interface enhancements.
- The bill, person and project detail pages have been “tabbified”.
- Manhours charts can now be browsed through by month and/or year without reloading the page.
- Replaced the previous color picker with the jQuery-based “Really Simple Color Picker”.
- Replaced the previous date picker with the jQuery UI Datepicker.

### Fixed

- Invoices without line items can no longer be saved; old invoices without line items can now be removed.

### New billing method plugins

- Cynick Young has contributed various Canadian billing plugins.

### Other

- Billing plugins have been moved to the directory plugins/billing/. If you had any custom plugins under lib/bill/ make sure you move them to their new place.
- Also, billing plugins are now classes that extend the base class `BillingDetails`. Plugins that ship with phpaga have been converted. If you use a custom billing plugin you will need to migrate it to the new format. See Billing plugins for information on how to migrate existing plugins.
- For developers: New sitewide settings can now be added without the need of adding database records. The default settings are defined in the array $phpaga_default_settings in etc/globals.php.
- The handling of user settings has been simplified (a user’s settings are now stored as a serialized array with the user record).
- Lots of code cleanup, mainly regarding templates and JavaScript code.
- The (optional) sidebar has been removed in favour of a cleaner layout.
- The tasks’ start and end date have finally been migrated to use proper data types (instead of Unix time, “timestamp without time zone” for PostgreSQL and “datetime” for MySQL are now used).
- smarty-gettext has been included in the repository (under ext/), thus it is no longer necessary to install it separetely.
- Smarty 3 is used. If you have written your own template set, mnake sure your templates are valid for Smarty 3.0.5 or later.

## phpaga 0.5.1

### New features

- The company page has been “tabbified”.

### Fixed

- Fixed an issue with finance calculations when the fiscal year does not start in January.
- Fixed a minor layout issue on the finances report.

## phpaga 0.5

### New features

- Charts are now generated via JavaScript by using the jqPlot library. Therefore ezComponents are no longer required.
- Late Fees - Manual process; Adds late fee to invoice for unpaid balance. Late fee amount calculation based on percentage specified in Sitewide Settings. Updated bill page and pdf invoice to display late fees
- Payments - Support for payments on unpaid invoices/bills.
  - Updated finances reports to use payments in calucations
  - Updated bill page and pdf invoice to display payments and balance due; ticket #42
  - Payment date automatically set when payments equal or exceed invoice amount.
  - Added option to Sitewide Settings to show/hide ‘Set Payment Date’ link. May be times when date needs to be set manaully.
- Updated all existing billing plugins to include support for payments and late fees. NOTE to authors of billing plugins: Please verify changes are backward-compatible.
- Added Notes field to invoices and payments.
- Added ability to enable/disable display of currency abbreviation after monetary values.
- Added field to Sitewide Settings for monetary symbol to be displayed in front of monetary values e.g. $ or €
- Added Bar Chart highlighting to display exact monetary amount for each bar on Finances Invoiced/Received/Missing chart. Also added option to Sitewide Settings to enable/disable highlighting.
- New billing plugin by Tim Esselens (Belgium VAT)
- Ticket #55: Allow an invoice’s payment date to be modified
- Ticket #72: PDF template sets
- Ticket #74: Show/hide the unbilled hours panel

### Fixed

- Replaced _REQUEST with REQUEST_DATA that contains only _GET and _POST, addressing a problem reported and analyzed by Jools Wills (cookie collision).
- Fixed bug making it possible to bill again already invoiced expenses.
- Ticket #42: Balance Due now calulated and displayed on invoices when payment has been made.
- phpaga.css: references missing sortable.gif; fixed path and added sortable.gif to htdocs/img/phpaga/
- Fixed bug causing paid invoices with due date in the past to be displayed with red due date text.
- A company’s financial information is no longer displayed if the user does not have the required permission
- Ticket #78: Handling of time in task entry inconsistent
- Ticket #59: Cannot delete expenses
- Ticket #57: Finance report chart: Wrong value for the “missing” bar
- Ticket #54: Do not allow project removal when related invoices exist

### Other

- Documentation is now written in reStructuredText and built via Sphinx http://sphinx.pocoo.org/

## phpaga 0.4

### New or changed requirements

- UTF-8 locales
- PostgreSQL >= 7.4, MySQL >= 4.1.16
- PHP >= 5.2 is required with PDO and the PDO driver for PostgreSQL or MySQL
- eZ Components are required
- JpGraph is no longer used
- PEAR packages are no longer required - all dependencies from PEAR have been removed.
- The project timeline has been removed
- Picking a date is now handled by the “Unobtrusive Date-Picker Widgit” by frequency-decoder.com. (The coolest DHTML calendar widget is no longer required.)

### New features

- Simple recurring invoices. (Ticket #7)
- Improved databased abstraction, new error handling, HTML cleanup.
- Files can be uploaded and associated to persons. (The “foto” feature has been removed from person’s details. A migration script is available at tools/migrate_personpictures.php.)
- UTF-8 support (read the relevant sections in the INSTALL file before upgrading your existing installation)
- An optional contact person has been added to invoices and quotations. (Ticket #34)
- An invoice due date has been added. (Ticket #35)
- When a quotation is turned into an invoice, the quotation number can optionally be used as invoice number. (Ticket #30)
- It is no longer possible to store two invoices with the same number within the same year. (Ticket #31)
- Filed expenses can be added to an invoice (existing custom billing plugins need to be slightly changed).
- Jeremy from omnitechpro.com has submitted the following patches:
  - Show materials amount on unbilled hours page
  - Show invoice amount on invoice list page
  - Add “unpaid” bar to finances graph
  - Add invoice popup on Unbilled Hours screen

### Updated translations

- Norwegian (Roger Bystrøm)

### New billing method plugins

- Netherlands: nld_btw_hoog.php (Angelo Höngens)

### Fixed

- Ticket #48: Letterhead layout problems with PDF documents in “letter” format.
- Ticket #25: With MySQL new projects would show up as blank under the unbilled hours page.
- Unbilled hours would show up on invoices.
- Fixed problems related to Javascript behaviour under various browsers.

## phpaga 0.3a

### Fixed

- Fixed a minor issue with the installer in 0.3 that could be triggered when trying to create the database on a remote MySQL server.

## phpaga 0.3

### New requirements

- PHP with gettext enabled
- smarty-gettext
- PEAR DB >= 1.7.6
- PEAR HTTP_Upload >= 0.9.1
- HTTP_Download >= 1.1.1
- HTTP_Header >= 1.2.0
- locales for desired supported languages
- Graphviz and PEAR IMAGE_Graphviz (optional, if you want to see project relationship graphs)
- Removed Overlib dependency, tooltips now shown with Walter Zorn’s DHTML JavaScript Tooltips library (comes bundled with phpaga)
- If you are using MySQL then MySQL >= 4.1.15 is required
- 3rd party libraries are now moved to their own subdirectory ext/

### New features

- A web interface for assisted database upgrade during phpaga upgrades has been added.
- First time “wizard” has been enhanced to create database structure and import core data.
- Added the possibility to assign default hourly rates per task type; per task type per project; per task type, project and project member.
- Multiple invoices can be exported to a single PDF file.
- Invoices can be created from within a project page, and tracked material and tasks can be added.
- Quotations can be deleted as long as they are not tied to a project.
- Material can now be tracked per project.
- Product management added. Also, if a product with the product code of a new line item exists in the database, the description and price are added automatically to the line item.
- Files can be uploaded and associated to projects.
- The day and month of the beginning of the fiscal year can be defined. All financial reports are now based on the fiscal year.
- A default term of payment can be saved per company. This value can be fetched when creating an invoice.
- Let only users with the right permissions see all projects; other users see only projects they created or they are a member of. This is both true for the projects search interface and for the projects timeline.
- Hide a project’s financial information (hourly rates, human cost) from “common” project members. Show “common” project members their own expenses but nobody elses.
- Added the possibility to upload and assign a picture to a person.
- When a project is created from a quotation then add a reference to said quotation
- Added a simple system information and an application log viewer
- Added project priority (suggested by Mark Parssey)
- Search bills/quotations between two dates
- Enable/disable installed billing plugins. Disabled plugins don’t show up in drop-downs when creating new invoices/quotations
- Line items for invoices and quotations (conversion script for existing inv/quot)
- Search interfaces for persons and for companies (Mark Parssey)
- Only persons with a user account are shown when adding a new project member (Mark Parssey)
- Show project relationship graph (optional - Graphviz and PEAR Image_Graphviz required)
- Added a “summary overview” page
- An individual color can be specified for each operation category
- Persons: show projects person is owner or member of
- List summary overview of unbilled hours per customer and project; create invoice from unbilled hours
- Projects search interface; print project list to PDF (Mark Parssey)
- Projects: Added deadline (Mark Parssey)
- Projects: Added estimated manhours, estimated cost manhours, estimated cost material, parent project, billable status
- Get persons’s default job category when adding a project member (Mark Parssey)
- Default hourly rate per person (this rate is suggested when adding a new project member)
- First time setup “wizard” (to create first user and person via web)
- Permission system
- All user submitted data is escaped/quoted by PEAR DB’s methods before being stored in the database
- When selecting a language it is first checked whether the required locale is installed
- Second address field added to companies and persons
- Delete users
- Added task category matrix/graph to company page
- A list of invoices and the billing summary is shown on a company’s details page
- Added a detailed overview to the project page that shows the sum of time per task category per person in a matrix
- Delete companies
- Billing method plugin installer/uninstaller
- Delete invoices that have not been paid yet
- Translations handled by gettext
- New billing method plugin by Daniel Cabezas
- Main page: show only projects the current user created or is a member of
- Limit number of characters shown for project title and task category title in task lists

### New billing method plugins

- Spain: esp_liberoprof_euro.php (Daniel Cabezas)
- Canada: cdn_gstpst.php (Ken)
- USA: usa_sales.php (Arif Hamirani)
- Germany: de_mwst.php (Jens Bierkandt)

### New translations

- Norwegian (Sverre Farstad)
- French (Benoit Nicolas)

### Fixed

- Include JpGraph libraries only when actually creating a graph
- When changing a task, the task is no longer “taken over” by the changing user
- Thousands and decimal separator settings were not respected on the financial overview page
- New invoice/quotation numers greater that 10 would not be calculated correctly

## phpaga 0.2

### New features

- Create an invoice from a quotation
- Clone operations and invoices
- Added “average weekly work hours” line in weekly manhours graph
- Separated pdf layout (templates) from library, making it easier to personalize the pdf output
- Additional task search parameters (sponsored request)
- Added a detailed overview to the person page that shows the sum of time per task category per project in a matrix
- Added a field to projects that can contain the company that issues the invoice (sponsored request)
- Changed various text links to icons (using gnome icons from http://jimmac.musichall.cz/ikony.php3)
- Added a billing plugin (sales of goods) written by Alessio Bogani
- Added basic expense tracking per project (i.e. travel, hotel, meals)
- Allow multiline input for company location in the letterhead (patch by Robert Paskowitz)
- New web-based configuration system
- Added robots.txt (to prevent spiders from indexing phpaga sites)
- Added combined financial graph
- Added contrib/ for contributed stuff. Moved contributed style sheet(s) to contrib/
- Give detailed information when unable to connect to the database when PHPAGA_ERR_VERBOSE is defined and true
- Added a turnover history graph
- Added human costs calculation for invoices and project information. The necessary information is taken from the project memberships table (hourly rates field).
- When adding a task, administrators can now file hours for other users, not just themselves

### New translations

- Danish (Per Christiansen)
- Hungarian (Feh&eacute;r J&aacute;nos)
- Russian (Dmitry Stroganov)
- Spanish (Daniel Cabezas)

### Fixed

- Gantt chart (project timeline) shows cleanly, projects bars are linked to projects
- Various code, templates and stylesheets cleanups; interface improvements
- Email address check did not allow upper case letters
- Moved more display logic into the Smarty templates
- Fixed a bug regarding the handling of timestamps in PostgreSQL

### Navigation

- index
- next |
- previous |
- phpaga v0.6-beta1 documentation »