[FIX] project: Working Time Progress
The precision of the field 'hours' in project.task.work and the precision of 'remaining_hours' are not the same. This is why the difference between them can generate some very small negative difference which implies an infinite percentage for the working progress time. opw:643649
This commit is contained in:
parent
01e4b76f65
commit
60c94c7c42
|
@ -27,6 +27,7 @@ from openerp import SUPERUSER_ID
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
from openerp.addons.resource.faces import task as Task
|
from openerp.addons.resource.faces import task as Task
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
|
from openerp.tools import float_is_zero
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
|
||||||
|
@ -658,7 +659,7 @@ class task(osv.osv):
|
||||||
res[task.id] = {'effective_hours': hours.get(task.id, 0.0), 'total_hours': (task.remaining_hours or 0.0) + hours.get(task.id, 0.0)}
|
res[task.id] = {'effective_hours': hours.get(task.id, 0.0), 'total_hours': (task.remaining_hours or 0.0) + hours.get(task.id, 0.0)}
|
||||||
res[task.id]['delay_hours'] = res[task.id]['total_hours'] - task.planned_hours
|
res[task.id]['delay_hours'] = res[task.id]['total_hours'] - task.planned_hours
|
||||||
res[task.id]['progress'] = 0.0
|
res[task.id]['progress'] = 0.0
|
||||||
if (task.remaining_hours + hours.get(task.id, 0.0)):
|
if not float_is_zero(res[task.id]['total_hours'], precision_digits=2):
|
||||||
res[task.id]['progress'] = round(min(100.0 * hours.get(task.id, 0.0) / res[task.id]['total_hours'], 99.99),2)
|
res[task.id]['progress'] = round(min(100.0 * hours.get(task.id, 0.0) / res[task.id]['total_hours'], 99.99),2)
|
||||||
if task.stage_id and task.stage_id.fold:
|
if task.stage_id and task.stage_id.fold:
|
||||||
res[task.id]['progress'] = 100.0
|
res[task.id]['progress'] = 100.0
|
||||||
|
|
Loading…
Reference in New Issue