Add Monthly and Weekly reports
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user