diff --git a/addons/board_hr/board_hr_view.xml b/addons/board_hr/board_hr_view.xml index 6f4e3fdec59..2a587c03a23 100644 --- a/addons/board_hr/board_hr_view.xml +++ b/addons/board_hr/board_hr_view.xml @@ -33,15 +33,24 @@ tree,form - - Timesheets by Month - ir.actions.act_window - timesheet.report - form - graph,tree - [('user_id','=',uid)] - - + + Timesheets by Month + ir.actions.act_window + timesheet.report + form + graph,tree + [('user_id','=',uid)] + + + + + Leaves by Type + ir.actions.act_window + hr.holidays.by.type + form + graph,tree + + board.hr.form board.board @@ -50,8 +59,9 @@
- - + + + diff --git a/addons/hr_holidays/report/hr_holidays_report.py b/addons/hr_holidays/report/hr_holidays_report.py index f9b41b638f1..5652d32b9d5 100644 --- a/addons/hr_holidays/report/hr_holidays_report.py +++ b/addons/hr_holidays/report/hr_holidays_report.py @@ -71,3 +71,29 @@ class hr_holidays_report(osv.osv): """) hr_holidays_report() +class hr_holidays_by_type(osv.osv): + _name = "hr.holidays.by.type" + _description = "Total holidays by type" + _auto = False + _columns = { + 'name': fields.char('Leave Type',size=64), + 'no_of_leaves' : fields.integer('Total leaves'), + + } + def init(self, cr): + tools.drop_view_if_exists(cr, 'hr_holidays_by_type') + cr.execute(""" + create or replace view hr_holidays_by_type as ( + select + min(hhl.id) as id, + hhs.name as name, + sum(hhl.number_of_days) * -1 as no_of_leaves + from + hr_holidays as hhl,hr_holidays_status as hhs + where + hhs.id = hhl.holiday_status_id and number_of_days < 0 + group by + hhs.name,hhl.holiday_status_id + ) + """) +hr_holidays_by_type() diff --git a/addons/hr_holidays/report/hr_holidays_report_view.xml b/addons/hr_holidays/report/hr_holidays_report_view.xml index 6af57008fcd..a70db034e2b 100644 --- a/addons/hr_holidays/report/hr_holidays_report_view.xml +++ b/addons/hr_holidays/report/hr_holidays_report_view.xml @@ -90,5 +90,28 @@ + + hr.holidays.by.type.tree + hr.holidays.by.type + tree + + + + + + + + + + hr.holidays.by.type.graph + hr.holidays.by.type + graph + + + + + + +