From ae2cdd2b204c3656a7a1dace1ff0600d895a825b Mon Sep 17 00:00:00 2001 From: Guillem Barba Date: Mon, 1 Jun 2015 14:17:09 +0200 Subject: [PATCH] Fix milestone duplication --- sale.py | 6 +++--- tests/account_invoice_milestone_system_scenario.rst | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sale.py b/sale.py index 8b6108d..84fac91 100644 --- a/sale.py +++ b/sale.py @@ -76,10 +76,10 @@ class Sale: sales_by_milestone_group = {} for sale in sales: group = None - if sale.milestone_group_type: - group = sale.milestone_group_type.compute_milestone_group(sale) - elif sale.milestone_group: + if sale.milestone_group: group = sale.milestone_group + elif sale.milestone_group_type: + group = sale.milestone_group_type.compute_milestone_group(sale) if group: milestones_to_confirm += [m for m in group.milestones if m.state == 'draft'] diff --git a/tests/account_invoice_milestone_system_scenario.rst b/tests/account_invoice_milestone_system_scenario.rst index 51a619f..354d54b 100644 --- a/tests/account_invoice_milestone_system_scenario.rst +++ b/tests/account_invoice_milestone_system_scenario.rst @@ -276,6 +276,8 @@ Create a Sale with lines with service products and goods products:: 0 >>> group = sale.milestone_group >>> group.reload() + >>> len(group.milestones) + 2 >>> remainder_milestone, = [x for x in group.milestones ... if x.invoice_method == 'remainder'] >>> fixed_milestone, = [x for x in group.milestones @@ -304,7 +306,10 @@ Make shipments:: Check remainder_milestone Milestone:: + >>> group.reload() + >>> len(group.milestones) + 2 >>> remainder_milestone.reload() >>> invoice = remainder_milestone.invoice >>> invoice.untaxed_amount - Decimal('180.00') + Decimal('280.00')