forked from Mapan/odoo17e
30 lines
1.4 KiB
Python
30 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class AccountBankSelection(models.TransientModel):
|
|
_name = "account.bank.selection"
|
|
_description = "Link a bank account to the selected journal"
|
|
|
|
account_online_link_id = fields.Many2one('account.online.link')
|
|
account_online_account_ids = fields.One2many(compute='_compute_online_account', comodel_name='account.online.account')
|
|
institution_name = fields.Char(related="account_online_link_id.name")
|
|
selected_account = fields.Many2one('account.online.account', domain="[('id', 'in', account_online_account_ids)]")
|
|
|
|
@api.depends('account_online_link_id')
|
|
def _compute_online_account(self):
|
|
for record in self:
|
|
record.account_online_account_ids = record.account_online_link_id.account_online_account_ids.filtered(lambda l: not l.journal_ids)
|
|
|
|
def sync_now(self):
|
|
if not self.selected_account:
|
|
self.selected_account = self.account_online_account_ids[0]
|
|
self.selected_account._assign_journal(self.env.context.get('swift_code'))
|
|
# Get transactions for that account
|
|
action = self.account_online_link_id._fetch_transactions(accounts=self.selected_account)
|
|
if not action:
|
|
action = self.env['ir.actions.act_window']._for_xml_id('account.open_account_journal_dashboard_kanban')
|
|
action['target'] = 'main'
|
|
return action
|