Add Monthly and Weekly reports

This commit is contained in:
Cédric Krier
2008-06-17 17:43:39 +02:00
parent 674a1617d5
commit da84e2ded2
2 changed files with 114 additions and 0 deletions
+58
View File
@@ -213,3 +213,61 @@ class OpenHoursEmployee(Wizard):
return res
OpenHoursEmployee()
class HoursEmployeeWeekly(OSV):
'Hours per Employee per Week'
_name = 'timesheet.hours_employee_weekly'
_description = __doc__
year = fields.Integer('Year', select=1)
week = fields.Integer('Week', select=1)
employee = fields.Many2One('company.employee', 'Employee', select=1)
hours = fields.Float('Hours', digits=(16, 2), select=1)
def __init__(self):
super(HoursEmployeeWeekly, self).__init__()
self._order.insert(0, ('year', 'DESC'))
self._order.insert(1, ('week', 'DESC'))
self._order.insert(2, ('employee', 'ASC'))
def table_query(self, context=None):
return ('SELECT EXTRACT(YEAR FROM date) ' \
'|| EXTRACT(WEEK FROM date) ' \
'|| employee AS id, ' \
'EXTRACT(YEAR FROM date) AS year, ' \
'EXTRACT(WEEK FROM date) AS week, employee, ' \
'SUM(COALESCE(hours, 0)) AS hours ' \
'FROM timesheet_line ' \
'GROUP BY year, week, employee', [])
HoursEmployeeWeekly()
class HoursEmployeeMonthly(OSV):
'Hours per Employee per Month'
_name = 'timesheet.hours_employee_monthly'
_description = __doc__
year = fields.Integer('Year', select=1)
month = fields.Integer('Month', select=1)
employee = fields.Many2One('company.employee', 'Employee', select=1)
hours = fields.Float('Hours', digits=(16, 2), select=1)
def __init__(self):
super(HoursEmployeeMonthly, self).__init__()
self._order.insert(0, ('year', 'DESC'))
self._order.insert(1, ('month', 'DESC'))
self._order.insert(2, ('employee', 'ASC'))
def table_query(self, context=None):
return ('SELECT EXTRACT(YEAR FROM date) ' \
'|| EXTRACT(MONTH FROM date) ' \
'|| employee AS id, ' \
'EXTRACT(YEAR FROM date) AS year, ' \
'EXTRACT(MONTH FROM date) AS month, employee, ' \
'SUM(COALESCE(hours, 0)) AS hours ' \
'FROM timesheet_line ' \
'GROUP BY year, month, employee', [])
HoursEmployeeMonthly()
+56
View File
@@ -180,5 +180,61 @@
</record>
<menuitem parent="menu_reporting" action="act_open_hours_employee"
icon="tryton-list" id="menu_open_hours_employee"/>
<record model="ir.ui.view" id="hours_employee_weekly_view_tree">
<field name="model">timesheet.hours_employee_weekly</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<![CDATA[
<tree string="Hours per Employee per Week">
<field name="year" select="1"/>
<field name="week" select="1"/>
<field name="employee" select="1"/>
<field name="hours" select="1" widget="float_time"/>
</tree>
]]>
</field>
</record>
<record model="ir.action.act_window" id="act_hours_employee_weekly_form">
<field name="name">Hours per Employee per Week</field>
<field name="res_model">timesheet.hours_employee_weekly</field>
<field name="view_type">form</field>
</record>
<record model="ir.action.act_window.view"
id="act_hours_employee_weekly_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="hours_employee_weekly_view_tree"/>
<field name="act_window" ref="act_hours_employee_weekly_form"/>
</record>
<menuitem parent="menu_reporting" action="act_hours_employee_weekly_form"
id="menu_open_hours_employee_weekly"/>
<record model="ir.ui.view" id="hours_employee_monthly_view_tree">
<field name="model">timesheet.hours_employee_monthly</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<![CDATA[
<tree string="Hours per Employee per Month">
<field name="year" select="1"/>
<field name="month" select="1"/>
<field name="employee" select="1"/>
<field name="hours" select="1" widget="float_time"/>
</tree>
]]>
</field>
</record>
<record model="ir.action.act_window" id="act_hours_employee_monthly_form">
<field name="name">Hours per Employee per Month</field>
<field name="res_model">timesheet.hours_employee_monthly</field>
<field name="view_type">form</field>
</record>
<record model="ir.action.act_window.view"
id="act_hours_employee_monthly_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="hours_employee_monthly_view_tree"/>
<field name="act_window" ref="act_hours_employee_monthly_form"/>
</record>
<menuitem parent="menu_reporting" action="act_hours_employee_monthly_form"
id="menu_open_hours_employee_monthly"/>
</data>
</tryton>