Today when a project changes status to Completed, it is first checked for any time entries still open on the project. This returns an error and the time entries needs to be registered before the project can be closed.
It would be nice with a similar check for open PO lines (i.e. not completely received and invoiced) and/or invoice lines connected to the project.
This would prevent from closing a project with not invoiced purchase