fix error with company_id in odoo19
This commit is contained in:
parent
970aa8553f
commit
407ebba230
@ -5,6 +5,20 @@ from odoo.exceptions import UserError
|
|||||||
class AccountPayment(models.Model):
|
class AccountPayment(models.Model):
|
||||||
_inherit = 'account.payment'
|
_inherit = 'account.payment'
|
||||||
|
|
||||||
|
def _get_outstanding_account(self, payment_type):
|
||||||
|
"""Get the outstanding account for the given payment type"""
|
||||||
|
account_ref = 'account_journal_payment_debit_account_id' if payment_type == 'inbound' else 'account_journal_payment_credit_account_id'
|
||||||
|
chart_template = self.with_context(allowed_company_ids=self.company_id.root_id.ids).env['account.chart.template']
|
||||||
|
outstanding_account = (
|
||||||
|
chart_template.ref(account_ref, raise_if_not_found=False)
|
||||||
|
or self.company_id.transfer_account_id
|
||||||
|
)
|
||||||
|
if not outstanding_account:
|
||||||
|
# If no outstanding account found, try to use payment method account
|
||||||
|
if self.payment_method_line_id.payment_account_id:
|
||||||
|
outstanding_account = self.payment_method_line_id.payment_account_id
|
||||||
|
return outstanding_account
|
||||||
|
|
||||||
@api.depends('payment_type', 'partner_type')
|
@api.depends('payment_type', 'partner_type')
|
||||||
def _compute_available_journal_ids(self):
|
def _compute_available_journal_ids(self):
|
||||||
"""
|
"""
|
||||||
@ -199,21 +213,7 @@ class AccountPayment(models.Model):
|
|||||||
pay.outstanding_account_id = pay.journal_id.default_account_id
|
pay.outstanding_account_id = pay.journal_id.default_account_id
|
||||||
else:
|
else:
|
||||||
# Fallback to the original logic if no default account is set
|
# Fallback to the original logic if no default account is set
|
||||||
if pay.payment_type == 'inbound':
|
pay.outstanding_account_id = pay._get_outstanding_account(pay.payment_type)
|
||||||
pay.outstanding_account_id = (pay.payment_method_line_id.payment_account_id
|
|
||||||
or pay.journal_id.company_id.account_journal_payment_debit_account_id)
|
|
||||||
elif pay.payment_type == 'outbound':
|
|
||||||
pay.outstanding_account_id = (pay.payment_method_line_id.payment_account_id
|
|
||||||
or pay.journal_id.company_id.account_journal_payment_credit_account_id)
|
|
||||||
else:
|
|
||||||
pay.outstanding_account_id = False
|
|
||||||
else:
|
else:
|
||||||
# For bank/cash journals, use the original logic
|
# For bank/cash journals, use the original logic
|
||||||
if pay.payment_type == 'inbound':
|
pay.outstanding_account_id = pay._get_outstanding_account(pay.payment_type)
|
||||||
pay.outstanding_account_id = (pay.payment_method_line_id.payment_account_id
|
|
||||||
or pay.journal_id.company_id.account_journal_payment_debit_account_id)
|
|
||||||
elif pay.payment_type == 'outbound':
|
|
||||||
pay.outstanding_account_id = (pay.payment_method_line_id.payment_account_id
|
|
||||||
or pay.journal_id.company_id.account_journal_payment_credit_account_id)
|
|
||||||
else:
|
|
||||||
pay.outstanding_account_id = False
|
|
||||||
Loading…
Reference in New Issue
Block a user