101 lines
4.5 KiB
Python
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
|