Files
enterprise-addons/account_base_import/wizard/account_import_summary.py
T

101 lines
4.5 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models, _
class AccountImportSummary(models.TransientModel):
_name = 'account.import.summary'
_description = "Account import summary view"
_rec_name = 'import_summary_name'
import_summary_account_ids = fields.Many2many('account.account')
import_summary_journal_ids = fields.Many2many('account.journal')
import_summary_move_ids = fields.Many2many('account.move')
import_summary_partner_ids = fields.Many2many('res.partner')
import_summary_tax_ids = fields.Many2many('account.tax')
import_summary_name = fields.Char(default="Import Summary")
import_summary_len_account = fields.Integer(compute='_compute_import_summary_len_account', export_string_translation=False)
import_summary_len_journal = fields.Integer(compute='_compute_import_summary_len_journal', export_string_translation=False)
import_summary_len_move = fields.Integer(compute='_compute_import_summary_len_move', export_string_translation=False)
import_summary_len_partner = fields.Integer(compute='_compute_import_summary_len_partner', export_string_translation=False)
import_summary_len_tax = fields.Integer(compute='_compute_import_summary_len_tax', export_string_translation=False)
import_summary_have_data = fields.Boolean(compute='_compute_import_summary_have_data', export_string_translation=False)
@api.depends('import_summary_account_ids')
def _compute_import_summary_len_account(self):
for record in self:
record.import_summary_len_account = len(record.import_summary_account_ids)
@api.depends('import_summary_journal_ids')
def _compute_import_summary_len_journal(self):
for record in self:
record.import_summary_len_journal = len(record.import_summary_journal_ids)
@api.depends('import_summary_move_ids')
def _compute_import_summary_len_move(self):
for record in self:
record.import_summary_len_move = len(record.import_summary_move_ids)
@api.depends('import_summary_partner_ids')
def _compute_import_summary_len_partner(self):
for record in self:
record.import_summary_len_partner = len(record.import_summary_partner_ids)
@api.depends('import_summary_tax_ids')
def _compute_import_summary_len_tax(self):
for record in self:
record.import_summary_len_tax = len(record.import_summary_tax_ids)
@api.depends(
'import_summary_account_ids',
'import_summary_journal_ids',
'import_summary_move_ids',
'import_summary_partner_ids',
'import_summary_tax_ids'
)
def _compute_import_summary_have_data(self):
for record in self:
record.import_summary_have_data = bool(
record.import_summary_account_ids or
record.import_summary_journal_ids or
record.import_summary_move_ids or
record.import_summary_partner_ids or
record.import_summary_tax_ids
)
def action_open_summary_view(self):
self.ensure_one()
return {
"name": _("Import Summary"),
"type": "ir.actions.act_window",
"res_id": self.id,
"view_mode": "form",
"res_model": "account.import.summary",
}
def action_open_account_view(self):
action = self.env['ir.actions.act_window']._for_xml_id('account_base_import.action_open_coa_setup')
action['domain'] = [('id', 'in', self.import_summary_account_ids.ids)]
return action
def action_open_journal_view(self):
action = self.env['ir.actions.act_window']._for_xml_id('account.action_account_journal_form')
action['domain'] = [('id', 'in', self.import_summary_journal_ids.ids)]
return action
def action_open_move_view(self):
action = self.env['ir.actions.act_window']._for_xml_id('account.action_move_line_form')
action['domain'] = [('id', 'in', self.import_summary_move_ids.ids)]
return action
def action_open_partner_view(self):
action = self.env['ir.actions.act_window']._for_xml_id('base.action_partner_form')
action['domain'] = [('id', 'in', self.import_summary_partner_ids.ids)]
return action
def action_open_tax_view(self):
action = self.env['ir.actions.act_window']._for_xml_id('account.action_tax_form')
action['domain'] = [('id', 'in', self.import_summary_tax_ids.ids)]
return action