bank-payment/account_payment_mode_default_account/models/res_partner.py

77 lines
3.0 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, fields, models
class ResPartner(models.Model):
_inherit = "res.partner"
property_account_receivable_id = fields.Many2one(
company_dependent=False,
compute="_compute_property_account_receivable_id",
inverse="_inverse_property_account_receivable_id",
)
property_stored_account_receivable_id = fields.Many2one(
"account.account",
company_dependent=True,
string="Account Receivable",
domain="[('internal_type', '=', 'receivable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]", # noqa
)
property_account_payable_id = fields.Many2one(
company_dependent=False,
compute="_compute_property_account_payable_id",
inverse="_inverse_property_account_payable_id",
)
property_stored_account_payable_id = fields.Many2one(
"account.account",
company_dependent=True,
string="Account payable",
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False), ('company_id', '=', current_company_id)]", # noqa
)
@api.depends("property_stored_account_receivable_id")
@api.depends_context("_partner_property_account_payment_mode")
def _compute_property_account_receivable_id(self):
payment_mode_id = self.env.context.get("_partner_property_account_payment_mode")
if payment_mode_id:
payment_mode = self.env["account.payment.mode"].browse(payment_mode_id)
rec_account = payment_mode.default_receivable_account_id
if rec_account:
self.update({"property_account_receivable_id": rec_account})
return
for partner in self:
partner.property_account_receivable_id = (
partner.property_stored_account_receivable_id
)
def _inverse_property_account_receivable_id(self):
for partner in self:
partner.property_stored_account_receivable_id = (
partner.property_account_receivable_id
)
@api.depends("property_stored_account_payable_id")
@api.depends_context("_partner_property_account_payment_mode")
def _compute_property_account_payable_id(self):
payment_mode_id = self.env.context.get("_partner_property_account_payment_mode")
if payment_mode_id:
payment_mode = self.env["account.payment.mode"].browse(payment_mode_id)
rec_account = payment_mode.default_payable_account_id
if rec_account:
self.update({"property_account_payable_id": rec_account})
return
for partner in self:
partner.property_account_payable_id = (
partner.property_stored_account_payable_id
)
def _inverse_property_account_payable_id(self):
for partner in self:
partner.property_stored_account_payable_id = (
partner.property_account_payable_id
)