[IMP] graph of timesheets by month

bzr revid: nel@tinyerp.com-20100414210754-pyzv0fl3ghoftz9g
This commit is contained in:
nel@tinyerp.com 2010-04-14 23:07:54 +02:00
parent c24bff8a69
commit cee6d6d58c
7 changed files with 48 additions and 25 deletions

View File

@ -31,6 +31,7 @@
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('user_id','=',uid)]</field>
<field name="view_id" ref="hr_holidays.open_allocation_holidays"/>
</record>
<record id="action_timesheet_report_all" model="ir.actions.act_window">
@ -39,7 +40,7 @@
<field name="res_model">timesheet.report</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('user_id','=',uid)]</field>
<field name="domain">[('user_id','=',uid), ('month', '=' , time.strftime('%m')), ('year', '=', time.strftime('%Y'))]</field>
<field name="view_id" ref="hr_timesheet_sheet.view_timesheet_report_graph"/>
</record>

View File

@ -90,7 +90,7 @@ class hr_holidays_remaining_leaves_user(osv.osv):
min(hrs.id) as id,
rr.name as name,
sum(hrs.number_of_days) as no_of_leaves,
hrs.user_id,
rr.user_id as user_id,
hhs.name as leave_type
from
hr_holidays as hrs, hr_employee as hre,
@ -98,9 +98,10 @@ class hr_holidays_remaining_leaves_user(osv.osv):
where
hrs.employee_id = hre.id and
hre.resource_id = rr.id and
hhs.id = hrs.holiday_status_id
hhs.id = hrs.holiday_status_id
group by
rr.name,hrs.user_id,hhs.name
rr.name,rr.user_id,hhs.name
)
""")
hr_holidays_remaining_leaves_user()

View File

@ -115,5 +115,8 @@
</graph>
</field>
</record>
<!-- <field name="total_att" operator = "+"/>
<field name="total_ts" operator = "+"/>
<field name="user_id" group = "True"/-->
</data>
</openerp>

View File

@ -31,23 +31,31 @@ class timesheet_report(osv.osv):
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'no_of_timesheet': fields.integer('Total Timesheet',readonly=True),
'total_att': fields.float('Total Attendance'),
'total_ts': fields.float('Total Timesheet'),
'year': fields.char('Remaining leaves', size=4),
'name': fields.char('Name', size=64),
'user_id': fields.many2one('res.users','User'),
'leave_type': fields.char('Leave Type',size=64),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
}
def init(self, cr):
tools.drop_view_if_exists(cr, 'timesheet_report')
cr.execute("""
create or replace view timesheet_report as (
select
min(id) as id,
to_char(create_date, 'MM') as month,
user_id,
count(*) as no_of_timesheet
from
hr_timesheet_sheet_sheet
where
to_char(create_date,'YYYY') = to_char(current_date,'YYYY')
group by
to_char(create_date,'MM'),user_id
)
""")
timesheet_report()
SELECT sheet.name as name,
min(sheet.id) as id,
to_char(sheet.date_current, 'YYYY') as year,
to_char(sheet.date_current, 'MM') as month,
sum(day.total_attendance) as total_att,
sum(day.total_timesheet) as total_ts,
sheet.user_id as user_id
FROM hr_timesheet_sheet_sheet AS sheet
LEFT JOIN hr_timesheet_sheet_sheet_day AS day
ON (sheet.id = day.sheet_id)
GROUP BY sheet.name, year, month, user_id
) """)
timesheet_report()

View File

@ -8,8 +8,11 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="TimeSheet">
<field name="name"/>
<field name="total_att"/>
<field name="total_ts"/>
<field name="user_id" />
<field name="month" />
<field name="no_of_timesheet" />
</tree>
</field>
</record>
@ -20,8 +23,11 @@
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="TimeSheet" type="bar">
<field name="month" />
<field name="no_of_timesheet" operator="+"/>
<field name="name" />
<field name="total_att" operator = "+"/>
<field name="total_ts" operator = "+"/>
<field name="user_id" group = "True"/>
</graph>
</field>
</record>
@ -29,4 +35,4 @@
</data>
</openerp>
</openerp>

View File

@ -123,7 +123,8 @@
<field name="partner_id" string="Partner"/>
</group>
<group expand="1" string="Group By..." colspan="4" col="20">
<filter string="Users" icon="terp-project" domain = "[]" context="{'group_by':'user_id'}"/>
<filter string="Users" name="Users" icon="terp-project" domain = "[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" name="Partner" icon="terp-project" domain = "[]" context="{'group_by':'partner_id'}"/>
</group>
</search>
</field>
@ -156,6 +157,7 @@
<field name="domain">[]</field>
<field name="view_id" ref="view_project"/>
<field name="search_view_id" ref="view_project_project_filter"/>
<field name="context">{'search_default_Users':1}</field>
</record>
<menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_project_management" sequence="1"/>
@ -422,7 +424,7 @@
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="20">
<filter string="Users" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Users" name="user_id" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Project" icon="terp-project" domain="[]" context="{'group_by':'project_id'}" default = "1"/>
<filter string="Stage" icon="terp-project" domain="[]" context="{'group_by':'type'}"/>
<filter string="State" icon="terp-project" domain="[]" context="{'group_by':'state'}"/>
@ -443,6 +445,8 @@
<field eval="False" name="filter"/>
<field name="view_id" ref="view_task_tree2"/>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="context">{'search_default_user_id': 1}</field>
</record>
<menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_project_management" sequence="2"/>

View File

@ -68,7 +68,7 @@
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="11">
<filter string="User" name = "user_id" icon="terp-project" context="{'group_by':'user_id'}" />
<filter string="User" name="user_id" icon="terp-project" context="{'group_by':'user_id'}" />
<filter string="Project" icon="terp-project" context="{'group_by':'project_id'}" default = "1" />
<filter string="Partner" icon="terp-project" context="{'group_by':'partner_id'}" />
<separator orientation="vertical"/>