Best way to revise an invoice?

I’ve been using dolibarr in my small business for almost a year now and am constantly impressed with its capability and community! I ran into an issue today when balancing the books, and while I can think of a few hacks that might make the math add up in the end, I am curious what ‘proper’ workflow might exist for this scenario.

A few months ago I purchased many products from a vendor on one invoice and paid immediately. Parts shipped over the next few months, but as they ran into shortages we had to adapt. I added and removed a few lines and the vendor sent a revised invoice to me, along with charging me for the difference in product from the first revision of the purchase. However, I had already entered my payment into the supplier invoice, and reconciled that payment with my bank, based on the initial invoice details.

In a different ERP system I have used in the past many purchasing objects (Purchase orders, invoices, etc) could have multiple revisions over time, each with their own workflows. The change I went through would have been captured with a v2 PO, and a v2 invoice from the supplier. The adjusted lines and payment would be reflected in v2 without impacting the record of the initial order in v1, and the payment associated with the initial order.

What is the best way to manage this workflow in Dolibarr? Based on this post (and me clicking around) it doesn’t seem like I can re-open the invoice because I already entered a payment (that I can’t delete because it has been reconciled). Some thoughts I had:

  • Go into the database to remove (or temporarily disassociate) the payment that exists so I can modify the invoice
  • ‘clone’ the invoice, use a ‘xxx-v2’ in the new vendor reference, link to the original invoice, and add a bunch of credit/debit line items to make everything work

Thank you for the feedback! I look forward to hearing the community’s ideas on this scenario.

Edit: Version info just in case
Dolibarr v14.0.1
Linux/Apache/Cpanel through hostgator
PHP 7.4.28
MySQL 5.6.41

It seems to me that you are approaching this problem in the wrong fashion.

Instead of trying to adjust an invoice from the past, you might simply issue credit notes for the items that you didn’t receive as well as new invoices for the items that you purchased instead.

By doing so, your accounting ledger will accurately reflect what actually transpired.

Hope that helps. Frank Carll

Thank you. That is very similar to the second potential workaround I suggested, but slightly cleaner. I will approach my problem the way you recommend. It can be hard to brake habits formed when using other ERP systems!

For a few minutes I was considering buying this module to just edit the invoice, but I didn’t want to lose the history of the evolution of the invoice: Modification of validated or paid invoices