summaryrefslogtreecommitdiff
path: root/addons/account/wizard/account_report_common.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/account/wizard/account_report_common.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/account/wizard/account_report_common.py')
-rw-r--r--addons/account/wizard/account_report_common.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/addons/account/wizard/account_report_common.py b/addons/account/wizard/account_report_common.py
new file mode 100644
index 00000000..e6317dae
--- /dev/null
+++ b/addons/account/wizard/account_report_common.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+
+from odoo import api, fields, models, _
+from odoo.tools.misc import get_lang
+
+
+class AccountCommonReport(models.TransientModel):
+ _name = "account.common.report"
+ _description = "Account Common Report"
+
+ company_id = fields.Many2one('res.company', string='Company', required=True, default=lambda self: self.env.company)
+ journal_ids = fields.Many2many('account.journal', string='Journals', required=True, default=lambda self: self.env['account.journal'].search([('company_id', '=', self.company_id.id)]))
+ date_from = fields.Date(string='Start Date')
+ date_to = fields.Date(string='End Date')
+ target_move = fields.Selection([('posted', 'All Posted Entries'),
+ ('all', 'All Entries'),
+ ], string='Target Moves', required=True, default='posted')
+
+ @api.onchange('company_id')
+ def _onchange_company_id(self):
+ if self.company_id:
+ self.journal_ids = self.env['account.journal'].search(
+ [('company_id', '=', self.company_id.id)])
+ else:
+ self.journal_ids = self.env['account.journal'].search([])
+
+ def _build_contexts(self, data):
+ result = {}
+ result['journal_ids'] = 'journal_ids' in data['form'] and data['form']['journal_ids'] or False
+ result['state'] = 'target_move' in data['form'] and data['form']['target_move'] or ''
+ result['date_from'] = data['form']['date_from'] or False
+ result['date_to'] = data['form']['date_to'] or False
+ result['strict_range'] = True if result['date_from'] else False
+ result['company_id'] = data['form']['company_id'][0] or False
+ return result
+
+ def _print_report(self, data):
+ raise NotImplementedError()
+
+ def check_report(self):
+ self.ensure_one()
+ data = {}
+ data['ids'] = self.env.context.get('active_ids', [])
+ data['model'] = self.env.context.get('active_model', 'ir.ui.menu')
+ data['form'] = self.read(['date_from', 'date_to', 'journal_ids', 'target_move', 'company_id'])[0]
+ used_context = self._build_contexts(data)
+ data['form']['used_context'] = dict(used_context, lang=get_lang(self.env).code)
+ return self.with_context(discard_logo_check=True)._print_report(data)