changeset 4e004d00cd0f in modules/sale_subscription:default
details: 
https://hg.tryton.org/modules/sale_subscription?cmd=changeset;node=4e004d00cd0f
description:
        Use greatest line end date for closed subscription end_date

        issue8360
        review269531002
diffstat:

 CHANGELOG                            |  1 +
 subscription.py                      |  6 +++++-
 tests/scenario_sale_subscription.rst |  3 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diffs (37 lines):

diff -r 1007f94bae58 -r 4e004d00cd0f CHANGELOG
--- a/CHANGELOG Sat Mar 28 14:25:57 2020 +0100
+++ b/CHANGELOG Mon Mar 30 09:50:58 2020 +0200
@@ -1,3 +1,4 @@
+* Use greatest end date of lines for closed date
 * Add contact and invoice party on subscription
 * Allow invoices to be created in advance
 
diff -r 1007f94bae58 -r 4e004d00cd0f subscription.py
--- a/subscription.py   Sat Mar 28 14:25:57 2020 +0100
+++ b/subscription.py   Mon Mar 30 09:50:58 2020 +0200
@@ -314,7 +314,11 @@
     @classmethod
     @Workflow.transition('closed')
     def close(cls, subscriptions):
-        pass
+        for subscription in subscriptions:
+            if not subscription.end_date and subscription.lines:
+                subscription.end_date = max(
+                    l.end_date for l in subscription.lines)
+        cls.save(subscriptions)
 
     @classmethod
     def generate_invoice(cls, date=None):
diff -r 1007f94bae58 -r 4e004d00cd0f tests/scenario_sale_subscription.rst
--- a/tests/scenario_sale_subscription.rst      Sat Mar 28 14:25:57 2020 +0100
+++ b/tests/scenario_sale_subscription.rst      Mon Mar 30 09:50:58 2020 +0200
@@ -168,7 +168,8 @@
     >>> subscription.click('draft')
     >>> subscription.state
     'draft'
-    >>> subscription.end_date = datetime.date(2016, 1, 31)
+    >>> line, = subscription.lines
+    >>> line.end_date = datetime.date(2016, 1, 31)
     >>> subscription.click('quote')
     >>> subscription.click('run')
     >>> subscription.state

Reply via email to