From c98ea77937417fa2cca52357b1f4d1765bba45d2 Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Wed, 4 Jul 2018 15:48:40 +0200 Subject: [PATCH] Use invoice object when crediting an invoice --- invoice.py | 8 ++++---- tests/scenario_aeat_sii.rst | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/invoice.py b/invoice.py index 40165c4..b8319fc 100644 --- a/invoice.py +++ b/invoice.py @@ -160,12 +160,12 @@ class Invoice: return result def _credit(self): - res = super(Invoice, self)._credit() + credit = super(Invoice, self)._credit() for field in _SII_INVOICE_KEYS: - res[field] = getattr(self, field) + setattr(credit, field, getattr(self, field)) - res['sii_operation_key'] = 'R4' - return res + credit.sii_operation_key = 'R4' + return credit def _set_sii_keys(self): tax = self.taxes and self.taxes[0] diff --git a/tests/scenario_aeat_sii.rst b/tests/scenario_aeat_sii.rst index f175b7c..65b26ec 100644 --- a/tests/scenario_aeat_sii.rst +++ b/tests/scenario_aeat_sii.rst @@ -194,3 +194,16 @@ Create AEAT Report:: >>> report.click('load_invoices') >>> len(report.lines) 2 + + +Credit invoice with refund:: + + >>> credit = Wizard('account.invoice.credit', [invoice]) + >>> credit.form.with_refund = True + >>> credit.execute('credit') + >>> invoice.reload() + >>> invoice.state + 'paid' + >>> credit, = Invoice.find([('total_amount', '<', 0)]) + >>> credit.sii_operation_key + 'R1'