[IMP] graph of timesheets by month
bzr revid: nel@tinyerp.com-20100414210754-pyzv0fl3ghoftz9g
This commit is contained in:
parent
c24bff8a69
commit
cee6d6d58c
|
@ -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>
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
Loading…
Reference in New Issue