This question has been flagged
1 Reply
7291 Views

Hello guys,

In odoo 8, is it possible to completely delete a product if it is used in an invoice or an order?

I know I can uncheck the Active checkbox, but that doesn't erase the product from database... 

But I understand that it create an integrity error if I completely erase the product. 

Would you have other solutions?



I get this error...

Integrity Error

The operation cannot be completed, probably due to the following:

- deletion: you may be trying to delete a record while other records still reference it

- creation/update: a mandatory field is not correctly set

[object with reference: Invoice Line - account.invoice.line]

Avatar
Discard
Best Answer

Pascal,

If a product used in Invoice, Sale Order, Purchase Order or Picking and if any of them are confirmed, you can't delete that product. It is not possible at all either theoretically, conceptually or practically. 

Reason :

Theroritical - ERP is itself mean to be a system for integrated departments where Sale, Warehouse, Accounting departments connected with each other. So once anything confirmed in Odoo, it will have effect at numerous places. So it is not good to delete.  Because already it's effect has been spread over so many places once record is confirmed.

Technical - In PostgreSQL database, there is primary key and foreign key. So when you try to delete product, its ID already exist at account_invoice_line table so database itself won't allow you to do so.

One way is possible in which you can delete product from related screens first by back end side of PostgreSQL query. Then you can delete product. However at confirmed invoices values will be changed as well as so many report values will be changed too. But ultimately you have to delete product from invoice, sales, picking etc.. This is purely not good way. No one would suggest you to do it.

Avatar
Discard