Odoo18-Base/addons/l10n_latam_check/models/account_journal.py
2025-01-06 10:57:38 +07:00

51 lines
2.0 KiB
Python

from odoo import models, api
class AccountJournal(models.Model):
_inherit = "account.journal"
def _default_outbound_payment_methods(self):
res = super()._default_outbound_payment_methods()
if self.company_id.country_id.code != "AR":
return res
if self._is_payment_method_available('own_checks'):
res |= self.env.ref('l10n_latam_check.account_payment_method_own_checks')
if self._is_payment_method_available('return_third_party_checks'):
res |= self.env.ref('l10n_latam_check.account_payment_method_return_third_party_checks')
return res
@api.model
def _get_reusable_payment_methods(self):
""" We are able to have multiple times Checks payment method in a journal """
res = super()._get_reusable_payment_methods()
res.add("own_checks")
return res
def create(self, vals_list):
journals = super().create(vals_list)
inbound_payment_accounts = self.env['account.account'].search([
('code', '=', '1.1.1.02.003'),
('company_ids', 'in', journals.company_id.ids)
]).grouped('company_ids')
outbound_payment_accounts = self.env['account.account'].search([
('code', '=', '1.1.1.02.004'),
('company_ids', 'in', journals.company_id.ids)
]).grouped('company_ids')
for journal in journals:
if journal.country_code != 'AR' or journal.type not in ('bank', 'cash'):
continue
for payment_method_line in journal.inbound_payment_method_line_ids:
if payment_method_line.payment_account_id:
continue
payment_method_line.payment_account_id = inbound_payment_accounts.get(journal.company_id)
for payment_method_line in journal.outbound_payment_method_line_ids:
if payment_method_line.payment_account_id:
continue
payment_method_line.payment_account_id = outbound_payment_accounts.get(journal.company_id)
return journals