From 65f0af5ff602e657aeb4929a46361035f502ed9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 23 Dec 2012 22:30:27 +0100 Subject: [PATCH] Update to new invoice states review583002 --- invoice.py | 2 +- tests/scenario_purchase.rst | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/invoice.py b/invoice.py index bf7c732dd1..8583dfcc01 100644 --- a/invoice.py +++ b/invoice.py @@ -77,7 +77,7 @@ class Invoice: purchases = Purchase.search([ ('invoices', 'in', [i.id for i in invoices]), ]) - if purchases: + if purchases and any(i.state == 'cancel' for i in invoices): cls.raise_user_error('reset_invoice_purchase') return super(Invoice, cls).draft(invoices) diff --git a/tests/scenario_purchase.rst b/tests/scenario_purchase.rst index 99165af390..9fe5269349 100644 --- a/tests/scenario_purchase.rst +++ b/tests/scenario_purchase.rst @@ -240,10 +240,12 @@ Open supplier invoice:: u'in_invoice' >>> len(invoice.lines) 2 - >>> Invoice.open([invoice.id], config.context) + >>> invoice.invoice_date = today + >>> invoice.save() + >>> Invoice.post([invoice.id], config.context) >>> invoice.reload() >>> invoice.state - u'open' + u'posted' >>> payable.reload() >>> (payable.debit, payable.credit) == \ ... (Decimal('0.00'), Decimal('25.00')) @@ -304,10 +306,12 @@ Open supplier credit note:: u'in_credit_note' >>> len(credit_note.lines) 1 - >>> Invoice.open([credit_note.id], config.context) + >>> credit_note.invoice_date = today + >>> credit_note.save() + >>> Invoice.post([credit_note.id], config.context) >>> credit_note.reload() >>> credit_note.state - u'open' + u'posted' >>> payable.reload() >>> (payable.debit, payable.credit) == (Decimal(20), Decimal(25)) True @@ -379,14 +383,18 @@ Checking the invoice:: (u'in_invoice', u'in_credit_note') >>> len(mix_invoice.lines), len(mix_credit_note.lines) (1, 1) - >>> Invoice.open([mix_invoice.id], config.context) + >>> mix_invoice.invoice_date = today + >>> mix_invoice.save() + >>> Invoice.post([mix_invoice.id], config.context) >>> mix_invoice.reload() >>> mix_invoice.state - u'open' - >>> Invoice.open([mix_credit_note.id], config.context) + u'posted' + >>> mix_credit_note.invoice_date = today + >>> mix_credit_note.save() + >>> Invoice.post([mix_credit_note.id], config.context) >>> mix_credit_note.reload() >>> mix_credit_note.state - u'open' + u'posted' >>> payable.reload() >>> (payable.debit, payable.credit) == (Decimal(30), Decimal(60)) True