bank-payment/account_payment_mode_default_account/models/account_move.py

39 lines
1.4 KiB
Python
Raw Normal View History

2023-05-19 08:19:51 +00:00
# Copyright 2022 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from flectra import api, models
class AccountMove(models.Model):
_inherit = "account.move"
def _recompute_payment_terms_lines(self):
if self.payment_mode_id:
return super(
AccountMove,
self.with_context(
_partner_property_account_payment_mode=self.payment_mode_id.id
),
)._recompute_payment_terms_lines()
else:
return super()._recompute_payment_terms_lines()
def _get_payment_term_lines(self):
self.ensure_one()
return self.line_ids.filtered(
lambda line: line.account_id.user_type_id.type in ("receivable", "payable")
)
@api.onchange("payment_mode_id")
def _onchange_payment_mode_id(self):
if self.payment_mode_id and self.partner_id:
payment_term_lines = self._get_payment_term_lines()
partner = self.partner_id.with_context(
_partner_property_account_payment_mode=self.payment_mode_id.id
)
# Retrieve account from partner.
if self.is_sale_document(include_receipts=True):
payment_term_lines.account_id = partner.property_account_receivable_id
else:
payment_term_lines.account_id = partner.property_account_payable_id