diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
| commit | 1ca3b3df3421961caec3b747a364071c80f5c7da (patch) | |
| tree | 6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /hrms_dashboard/report/broadfactor.py | |
| parent | b57188be371d36d96caac4b8d65a40745c0e972c (diff) | |
initial commit
Diffstat (limited to 'hrms_dashboard/report/broadfactor.py')
| -rw-r--r-- | hrms_dashboard/report/broadfactor.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/hrms_dashboard/report/broadfactor.py b/hrms_dashboard/report/broadfactor.py new file mode 100644 index 0000000..dfda9d3 --- /dev/null +++ b/hrms_dashboard/report/broadfactor.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +from datetime import date, datetime + +from odoo import tools +from odoo import api, fields, models + + +class EmployeeBroadFactor(models.Model): + _name = "hr.employee.broad.factor" + _description = "Employee Broadfactor" + _auto = False + + name = fields.Char() + no_of_occurrence = fields.Integer() + no_of_days = fields.Integer() + broad_factor = fields.Integer() + + def init(self): + tools.drop_view_if_exists(self._cr, 'hr_employee_broad_factor') + date_today = date.today() + print("date_today", date_today) + self._cr.execute(""" + create or replace view hr_employee_broad_factor as ( + select + e.id, + e.name, + count(h.*) as no_of_occurrence, + sum(h.number_of_days) as no_of_days, + count(h.*)*count(h.*)*sum(h.number_of_days) as broad_factor + from hr_employee e + full join (select * from hr_leave where state = 'validate' and date_to <= now()::timestamp) h + on e.id =h.employee_id + group by e.id + )""") + + +class ReportOverdue(models.AbstractModel): + _name = 'report.hrms_dashboard.report_broadfactor' + + @api.model + def get_report_values(self, docids=None, data=None): + sql = """select * from hr_employee_broad_factor""" + self.env.cr.execute(sql) + lines = self.env.cr.dictfetchall() + return { + 'doc_model': 'hr.employee.broad_factor', + 'lines': lines, + 'Date': fields.date.today(), + } |
