From 736adcd0150675fed9485812e2513ef6a30fc983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 20 Feb 2017 23:18:22 +0100 Subject: [PATCH] Delete old shipment cost line The lines should be explicitly deleted otherwise they are just removed from the sale. issue6273 review26151002 --- sale.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sale.py b/sale.py index 5b6ec4f501..2ba1f9c427 100644 --- a/sale.py +++ b/sale.py @@ -120,9 +120,14 @@ class Sale: @ModelView.button @Workflow.transition('quotation') def quote(cls, sales): + pool = Pool() + Line = pool.get('sale.line') + super(Sale, cls).quote(sales) + removed = [] for sale in sales: - sale.set_shipment_cost() + removed.extend(sale.set_shipment_cost()) + Line.delete(removed) cls.save(sales) def _get_carrier_context(self): @@ -151,6 +156,7 @@ class Sale: self.currency) cost_line = self.get_shipment_cost_line(cost) + removed = [] lines = list(self.lines or []) for line in self.lines: if line.type != 'line' or not line.shipment_cost: @@ -159,9 +165,11 @@ class Sale: cost_line = None else: lines.remove(line) + removed.append(line) if cost_line: lines.append(cost_line) self.lines = lines + return removed def get_shipment_cost_line(self, cost): pool = Pool()