[IMP]:project:Improved SQL report.(Tasks).

bzr revid: apa@tinyerp.com-20100409085514-dxm5pztqpzd8gaoh
This commit is contained in:
apa-tiny
2010-04-09 14:25:14 +05:30
parent 1b2c83c8fb
commit e8d0d0a406
2 changed files with 71 additions and 21 deletions
+31 -7
View File
@@ -29,23 +29,36 @@ class report_project_task_user(osv.osv):
_columns = {
'name': fields.char('Year',size=64,required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'date_start': fields.datetime('Starting Date'),
'date_end': fields.datetime('Ending Date'),
'date_deadline': fields.date('Deadline'),
'date_start': fields.datetime('Starting Date',readonly=True),
'description': fields.text('Description',readonly=True),
'date_end': fields.datetime('Ending Date',readonly=True),
'date_deadline': fields.date('Deadline',readonly=True),
'project_id':fields.many2one('project.project', 'Project', readonly=True),
'hours_planned': fields.float('Planned Hours', readonly=True),
'hours_effective': fields.float('Effective Hours', readonly=True),
'hours_delay': fields.float('Avg. Plan.-Eff.', readonly=True),
'closing_days': fields.char('Avg Closing Delay', size=64, readonly=True),
'nbr': fields.integer('#Number of tasks', readonly=True),
'priority' : fields.selection([('4','Very Low'),
('3','Low'),
('2','Medium'),
('1','Urgent'),
('0','Very urgent')],
'Importance',readonly=True),
'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),
'state': fields.selection([('draft', 'Draft'),
'state': fields.selection([
('draft', 'Draft'),
('open', 'In Progress'),
('pending', 'Pending'),
('cancelled', 'Cancelled'),
('done', 'Done')],
'State', readonly=True),
'company_id': fields.many2one('res.company', 'Company',readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner',readonly=True),
'type': fields.many2one('project.task.type', 'Stage',readonly=True),
}
_order = 'name desc, project_id'
@@ -60,10 +73,14 @@ class report_project_task_user(osv.osv):
count(distinct t.id) as nbr,
date_trunc('day',t.date_start) as date_start,
date_trunc('day',t.date_end) as date_end,
date_trunc('day',t.date_deadline) as date_deadline,
to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_deadline,
t.user_id,
t.project_id,
t.state,
t.priority,
t.company_id,
t.partner_id,
t.type,
sum(planned_hours) as hours_planned,
to_char(avg(date_end::abstime-t.create_date::timestamp), 'DD"d" HH24:MI:SS') as closing_days,
sum(w.hours) as hours_effective,
@@ -73,8 +90,15 @@ class report_project_task_user(osv.osv):
group by
to_char(date_start, 'YYYY'),
to_char(date_start, 'MM'),
t.user_id,t.state,t.date_end,
t.date_deadline,t.date_start,
t.priority,
t.user_id,
t.state,
t.date_end,
to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY'),
t.date_start,
t.company_id,
t.partner_id,
t.type,
t.project_id
)
""")
+40 -14
View File
@@ -9,19 +9,24 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Tasks">
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
<field name="user_id"/>
<!--field name="description"/-->
<field name="project_id"/>
<field name="nbr"/>
<field name="user_id"/>
<field name="date_deadline"/>
<field name="nbr" sum='#Number of tasks'/>
<field name="hours_planned" sum='Planned Hours'/>
<field name="hours_effective" sum='Effective Hours'/>
<field name="hours_delay" sum='Avg. Plan.-Eff.'/>
<field name="closing_days" sum='Avg Closing Delay'/>
<field name="state"/>
<field name="date_start" invisible="1"/>
<field name="date_end" invisible="1"/>
<field name="date_deadline" invisible="1"/>
<field name="hours_planned"/>
<field name="hours_effective"/>
<field name="hours_delay"/>
<field name="closing_days"/>
<field name="state"/>
<field name="company_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
<field name="type" invisible="1"/>
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
</tree>
</field>
</record>
@@ -32,23 +37,44 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Tasks">
<group>
<filter icon="terp-project" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Tasks performed in this year"/>
<filter icon="terp-project" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Tasks performed in this month"/>
<separator orientation="vertical"/>
<filter string="In Progress" icon="terp-project" domain="[('state','=','open')]"/>
<filter string="Pending" icon="terp-project" domain="[('state','=','pending')]"/>
<filter string="Closed" icon="terp-project" domain="[('state','=','done')]"/>
<filter string="Deadline" icon="terp-project" domain="[('date_deadline','=',time.strftime('%%Y/%%m/%%d'))]"/>
<separator orientation="vertical"/>
<field name="project_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-project" string="My Task" domain="[('user_id','=',uid)]" default="1"/>
</field>
</group>
<newline/>
<group expand="1" string="Extended options..." colspan="10" col="12">
<filter string="Draft" icon="terp-project" domain="[('state','=','draft')]"/>
<filter string="In Progress" icon="terp-project" domain="[('state','=','open')]"/>
<filter string="Pending" icon="terp-project" domain="[('state','=','pending')]"/>
<filter string="Done" icon="terp-project" domain="[('state','=','done')]"/>
<filter string="Cancelled" icon="terp-project" domain="[('state','=','cancelled')]"/>
<separator orientation="vertical"/>
<field name="date_start"/>
<newline/>
<filter icon="terp-project" string="Very Low" domain="[('priority','=','4')]"/>
<filter icon="terp-project" string="Low" domain="[('priority','=','3')]"/>
<filter icon="terp-project" string="Medium" domain="[('priority','=','2')]"/>
<filter icon="terp-project" string="Urgent" domain="[('priority','=','1')]"/>
<filter icon="terp-project" string="Very Urgent" domain="[('priority','=','0')]"/>
<separator orientation="vertical"/>
<field name="date_end"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="11">
<filter string="User" icon="terp-project" context="{'group_by':'user_id'}" />
<filter string="Project" icon="terp-project" context="{'group_by':'project_id'}" default = "1"/>
<filter string="Project" icon="terp-project" context="{'group_by':'project_id'}" />
<filter string="Partner" icon="terp-project" context="{'group_by':'partner_id'}" />
<separator orientation="vertical"/>
<filter string="State" icon="terp-project" context="{'group_by':'state'}"/>
<filter string="Company" icon="terp-project" context="{'group_by':'company_id'}" />
<filter string="Stage" icon="terp-project" context="{'group_by':'type'}" />
<separator orientation="vertical"/>
<filter string="Month" icon="terp-project" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-project" context="{'group_by':'name'}"/>