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):
|
||||
_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')
|
||||
def _compute_available_journal_ids(self):
|
||||
"""
|
||||
@ -199,21 +213,7 @@ class AccountPayment(models.Model):
|
||||
pay.outstanding_account_id = pay.journal_id.default_account_id
|
||||
else:
|
||||
# Fallback to the original logic if no default account is set
|
||||
if pay.payment_type == 'inbound':
|
||||
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
|
||||
pay.outstanding_account_id = pay._get_outstanding_account(pay.payment_type)
|
||||
else:
|
||||
# For bank/cash journals, use the original logic
|
||||
if pay.payment_type == 'inbound':
|
||||
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
|
||||
pay.outstanding_account_id = pay._get_outstanding_account(pay.payment_type)
|
||||
Loading…
Reference in New Issue
Block a user