Ahmad Sabeh
Ahmad Sabeh

Reputation: 556

Getting "odoo.exceptions.ValidationError: ('Posted journal entry must have an unique sequence number per company'" when changing invoice stat

I'm trying to change the state of a created invoice from 'draft' to 'posted' using the Web APIs (Python) by referring to this documentation : https://www.odoo.com/documentation/13.0/webservices/odoo.html

I'm updating the invoice as follows :

def makeInvoicePosted(invoice_id):

    invoice_ids = []

    invoice_ids.append(invoice_id)

    common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))

    print(common)

    uid = common.authenticate(db, username, password, {})

    print("makeInvoicePosted : Odoo Admin User Id : ", uid)

    models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))

    models.execute_kw(db, uid, password, 'account.move', 'write', [[invoice_id], {'state':"posted"}])

But I'm getting this error : odoo.exceptions.ValidationError: ('Posted journal entry must have an unique sequence number per company.', None)\n'

What could be causing this ? is there something missing in the request?

Thanks in advance!

Upvotes: 2

Views: 1839

Answers (1)

CZoellner
CZoellner

Reputation: 14768

I recommend to use Odoo's workflow and business logic here by calling post instead of directly writing the state.

models.execute_kw(db, uid, password, 'account.move', 'post', [[invoice_id],])

Why: because there are a lot of checks and also a lot of things done in this method, you could miss or just do wrong (invoices are very complex). You probably will find some mistakes in your calls right before doing the post, because of the checks in it.

Upvotes: 3

Related Questions