Advanced Invoicing RFC
Jump to navigation
Jump to search
Advanced Invoicing RFC
Status: | ||
Sponsored by: | Loughborough University | |
Developed by: | PTFS Europe | |
Expected for: | 2018-10-07 | |
Bug number: | Bug 19850 | |
Work in progress repository: | ||
Description: | Currently when recording an invoice, the accounting form for each line item only allows for an actual cost field and a single tax rate field. This is inadequate for accounting purposes, we need to be able to record all costs associated with a line item individually to allow break down by items, taxes and services. |
Phase 1
Database Changes
aqinvoice_lines
A new table to store the broken down charges:
- aqinvoices_invoiceid (foreign key references aqinvoices.invoiceid)
- aqorders_ordernumber (foreign key references aqorders.ordernumber)
- type (authorized value)
- description (freetext alternate to above)
- quantity (quantity of items/services covered by this line)
- budget_id (nullable foreign key references aqbudgets)
- list_price (nullable decimal - pre tax value of this line)
- discount_rate (nullable decimal - percentage discount to be applied to this line)
- discount_amount (nullable decimal - amount to reduce the list_price by when applying the discount)
- pre_tax_amount (nullable decimal - pre_tax_amount after any discounts have been applied - may be calculated for display as required using post_tax and tax_rate)
- tax_rate (nullable decimal - may be calculated for display as required using pre_tax and post_tax)
- tax_amount (nullable decimal - amount to pay in tax - may be calculated for display as required using pre_tax_amount and tax_rate)
- total_amount (nullable decimal - final amount to be paid after discounts and taxes have been applied - may be calculated for display using previous fields)
- sort_key (integer - should we allow ordering of these lines for display?)
System Preferences
- Add a new preference to switch to 'advanced invoicing' or continue using the existing invoice implementation.
UI
- Add ability to define invoice lines on the order receive page.
- Add display of invoice lines to the invoice summary table.
Phase 2
- Add ability to define invoice line templates to allow the quick addition of similar lines.
- Add ability to assign funds at the invoice line level.
Phase 3
- Add the ability to independently invoice and receive, rather than requiring receipting as part of the invoicing step.
- Add ability to assign multiple funds, split by a given ratio, at the invoice line level.
- Expose partial invoices on order recieve page.