如何在Odoo 11中以编程方式取消sale.order

时间:2018-01-12 01:39:01

标签: odoo-11

我想删除Odoo 11中的所有销售订单/报价单。

对于报价,我使用Odoo GUI批量删除它们。但对于销售订单,我必须先删除它们才能删除。这种方式非常耗时(因为我们无法批量取消销售订单)。

所以我认为以编程方式做这件事会更好(就时间而言)。但是,当前代码

orders = self.env['sale.order'].search([('external_id', '!=', '')])
for order in orders:
    order.unlink()

提出

的例外
  

您无法删除已发送的报价单或销售订单!尝试先取消它。

如何在order之前取消unlink()

1 个答案:

答案 0 :(得分:2)

解决。在odoo源代码中深入了解之后。我认为这就是我想要的:

orders = self.env['sale.order'].search([('external_id', '!=', '')])
for order in orders:
    order.action_cancel()
    order.unlink()