diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_expense/models/account_journal_dashboard.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/hr_expense/models/account_journal_dashboard.py')
| -rw-r--r-- | addons/hr_expense/models/account_journal_dashboard.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/addons/hr_expense/models/account_journal_dashboard.py b/addons/hr_expense/models/account_journal_dashboard.py new file mode 100644 index 00000000..23dbb802 --- /dev/null +++ b/addons/hr_expense/models/account_journal_dashboard.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models +from odoo.tools.misc import formatLang + + +class AccountJournal(models.Model): + _inherit = "account.journal" + + def _get_expenses_to_pay_query(self): + """ + Returns a tuple containing as it's first element the SQL query used to + gather the expenses in reported state data, and the arguments + dictionary to use to run it as it's second. + """ + query = """SELECT total_amount as amount_total, currency_id AS currency + FROM hr_expense_sheet + WHERE state IN ('approve', 'post') + and journal_id = %(journal_id)s""" + return (query, {'journal_id': self.id}) + + def get_journal_dashboard_datas(self): + res = super(AccountJournal, self).get_journal_dashboard_datas() + #add the number and sum of expenses to pay to the json defining the accounting dashboard data + (query, query_args) = self._get_expenses_to_pay_query() + self.env.cr.execute(query, query_args) + query_results_to_pay = self.env.cr.dictfetchall() + (number_to_pay, sum_to_pay) = self._count_results_and_sum_amounts(query_results_to_pay, self.company_id.currency_id) + res['number_expenses_to_pay'] = number_to_pay + res['sum_expenses_to_pay'] = formatLang(self.env, sum_to_pay or 0.0, currency_obj=self.currency_id or self.company_id.currency_id) + return res + + def open_expenses_action(self): + action = self.env['ir.actions.act_window']._for_xml_id('hr_expense.action_hr_expense_sheet_all_all') + action['context'] = { + 'search_default_approved': 1, + 'search_default_to_post': 1, + 'search_default_journal_id': self.id, + 'default_journal_id': self.id, + } + action['view_mode'] = 'tree,form' + action['views'] = [(k,v) for k,v in action['views'] if v in ['tree', 'form']] + return action |
