Don't set default unit price on invoice
The on_change_product on invoice set a default unit price but it leads to an incomprehension from users because they expect it to behave like sale or purchase (update on uom change, following price list etc.)
The best is to not set the unit price at all and let the user encode the price.
This is any way better when encoding manually supplier invoice as the cost price is highly probable to be wrong.
For customer invoice, it is really not the best way to invoice and we should encourage to use sale instead.