diff --git a/addons/membership/models/partner.py b/addons/membership/models/partner.py index 30de29f7e2d2cc5c9082219b8149aaefe8070154..4e23daae713fb610907eb7cc8711229ccccff263 100644 --- a/addons/membership/models/partner.py +++ b/addons/membership/models/partner.py @@ -109,6 +109,7 @@ class Partner(models.Model): invoice_vals_list.append({ 'move_type': 'out_invoice', 'partner_id': partner.id, + 'invoice_payment_term_id': partner.property_payment_term_id.id, 'invoice_line_ids': [ (0, None, {'product_id': product.id, 'quantity': 1, 'price_unit': amount, 'tax_ids': [(6, 0, product.taxes_id.ids)]}) ] diff --git a/addons/membership/tests/test_membership.py b/addons/membership/tests/test_membership.py index 957ca2df8cbc64d5fedfaebe1d87d13292ae9e82..cb559dda9d5bb72b320c5839c6a4fb5b0d72638d 100644 --- a/addons/membership/tests/test_membership.py +++ b/addons/membership/tests/test_membership.py @@ -158,3 +158,23 @@ class TestMembership(TestMembershipCommon): self.partner_1._compute_membership_state() self.assertEqual(invoice.state, 'cancel') self.assertEqual(self.partner_1.membership_state, 'canceled') + + def test_apply_payment_term(self): + """ + Check if the payment term defined on the partner is applied to the invoice + """ + pay_term_15_days_after_today = self.env['account.payment.term'].create({ + 'name': '15 days after today', + 'line_ids': [ + (0, 0, { + 'value': 'balance', + 'days': 15, + 'option': 'day_after_invoice_date', + }), + ], + }) + self.partner_1.write({ + 'property_payment_term_id': pay_term_15_days_after_today.id, + }) + invoice = self.partner_1.create_membership_invoice(self.membership_1, 100.0) + self.assertEqual(invoice.invoice_payment_term_id, pay_term_15_days_after_today)