From 99f1d270912901102343af0d3c4ec28c2be730a9 Mon Sep 17 00:00:00 2001 From: Simone Date: Thu, 7 Feb 2019 19:49:42 +0100 Subject: [PATCH] [FIX] l10n_it_corrispettivi_sale: Create corrispettivo even if invoice is created by advance payment --- l10n_it_corrispettivi_sale/__init__.py | 2 +- .../tests/test_corrispettivi_sale.py | 20 +++++++++++++++++++ .../wizards/__init__.py | 4 ++++ .../wizards/sale_advance_payment_inv.py | 15 ++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 l10n_it_corrispettivi_sale/wizards/__init__.py create mode 100644 l10n_it_corrispettivi_sale/wizards/sale_advance_payment_inv.py diff --git a/l10n_it_corrispettivi_sale/__init__.py b/l10n_it_corrispettivi_sale/__init__.py index f2f7fe1348d2..adc6207fdd34 100644 --- a/l10n_it_corrispettivi_sale/__init__.py +++ b/l10n_it_corrispettivi_sale/__init__.py @@ -1,4 +1,4 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from . import models - +from . import wizards diff --git a/l10n_it_corrispettivi_sale/tests/test_corrispettivi_sale.py b/l10n_it_corrispettivi_sale/tests/test_corrispettivi_sale.py index fa96358c69d6..3987a1bbe8d5 100644 --- a/l10n_it_corrispettivi_sale/tests/test_corrispettivi_sale.py +++ b/l10n_it_corrispettivi_sale/tests/test_corrispettivi_sale.py @@ -96,6 +96,26 @@ def test_corrispettivi_sale_invoice(self): invoice = self.invoice_model.browse(invoice_id) self.assertTrue(invoice.corrispettivo) + def test_corrispettivi_sale_invoice_advance(self): + """ + Test receipt creation for a sale order having flag corrispettivi + when there is an advance payment. + """ + self.create_corr_journal() + sale = self.create_corrispettivi_sale() + self.assertTrue(sale.action_confirm()) + payment = self.env['sale.advance.payment.inv'] \ + .with_context(active_ids=sale.ids).create({ + 'advance_payment_method': 'percentage', + 'amount': 5, + 'deposit_account_id': self.account_receivable.id + }) + payment.create_invoices() + invoice_ids_list = sale.mapped('invoice_ids') + self.assertTrue(len(invoice_ids_list)) + for invoice_id in invoice_ids_list: + self.assertTrue(invoice_id.corrispettivo) + def test_no_corrispettivi_sale_invoice(self): """ Test invoice creation for a sale order not having flag corrispettivi. diff --git a/l10n_it_corrispettivi_sale/wizards/__init__.py b/l10n_it_corrispettivi_sale/wizards/__init__.py new file mode 100644 index 000000000000..dd1380ff55cf --- /dev/null +++ b/l10n_it_corrispettivi_sale/wizards/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2019 Simone Rubino +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import sale_advance_payment_inv diff --git a/l10n_it_corrispettivi_sale/wizards/sale_advance_payment_inv.py b/l10n_it_corrispettivi_sale/wizards/sale_advance_payment_inv.py new file mode 100644 index 000000000000..332df4ce882f --- /dev/null +++ b/l10n_it_corrispettivi_sale/wizards/sale_advance_payment_inv.py @@ -0,0 +1,15 @@ +# Copyright 2019 Simone Rubino +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class SaleAdvancePaymentInv(models.TransientModel): + _inherit = 'sale.advance.payment.inv' + + @api.multi + def _create_invoice(self, order, so_line, amount): + invoice = super()._create_invoice(order, so_line, amount) + if order.corrispettivi: + invoice.journal_id = self.env['account.journal'].get_corr_journal() + return invoice