-1

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

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

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

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

引发了一个例外

您不能删除已发送的报价单或销售订单!尝试之前取消它。

我怎样才能在他们order之前取消unlink()

4

1 回答 1

2

解决了。在深入了解 odoo 源代码之后。我想这就是我一直在寻找的:

orders = self.env['sale.order'].search([('external_id', '!=', '')])
for order in orders:
    order.action_cancel()
    order.unlink()
于 2018-01-12T03:39:45.353 回答