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