Search code examples
odooaction

Odoo 16 sale.order action_cancel not working


my sales order status not change to cancel after i make call :

models.execute_kw(db, uid, password, 'sale.order', 'action_cancel', ['id'])

but i got response :

{
"name": "Cancel Sales Order",
"view_mode": "form",
"res_model": "sale.order.cancel",
"view_id": 1725,
"type": "ir.actions.act_window",
"context": {
"default_use_template": true,
"default_template_id": 29,
"default_order_id": 14,
"mark_so_as_canceled": true,
"default_email_layout_xmlid": "mail.mail_notification_layout_with_responsible_signature",
"model_description": "Sales Order"
},
"target": "new"
}

i'm using odoo 16 community edition please help..

i also try call :

models.execute_kw(db, uid, password, 'sale.order.cancel', 'action_cancel', ['id'])

and got error 'Record does not exist or has been deleted.


Solution

  • You can create a sale.order.cancel record and use its id to call action_cancel

    Example:

    order_id = 20
    wizard_id = models.execute_kw(db, uid, password, 'sale.order.cancel', 'create', [{'order_id': order_id}])
    models.execute_kw(db, uid, password, 'sale.order.cancel', 'action_cancel', [wizard_id])