Project disbursement

Rational

For some project companies may pay invoices on behalf of their customer and be reimbursed. This is called disbursement. And this is different from recharging expenses like travel expenses because VAT does not apply and the invoices are still addressed to the customer.
So in this case the company needs to collect the invoices, make and track payments and then include the disbursement (without VAT) on the invoice.

An example of such companies is a company that provides services/helps to import products in the country. They paid the different fees on behaves of the importer and then they invoice their services and include the disbursement.

Proposal

On the project work we add a list of disbursements.
A disbursement has different states managed by a workflow: draft, validated, paid. It is linked to a project work. It stores the original invoice as binary field. And it stores the required information to make the payment, such as the payee (as party), the amount and the account (with a default account configured).
Once validated the disbursement create the corresponding payment and track it until it is succeeded. Then the disbursement is marked as paid.

When the project is invoiced, a line for each disbursement paid is added to the invoice using the same account. The line has the disbursement as origin.
On the invoice a report is added to retrieve all the original invoices from the invoice line of disbursement.

The disbursement lines does not modify the revenue nor the cost of the project.

Implementation

There is also the payment journal that is needed to create a payment.
Like the account, I think there should be a default value in configuration and it could be override by the project. And these fields are restricted to the project administrator.