diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index dc97aee4138..77c228f26b5 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -144,6 +144,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ } } else { var task_name = task.__name; + var duration_in_business_hours = false; var task_start = instance.web.auto_str_to_date(task[self.fields_view.arch.attrs.date_start]); if (!task_start) return; @@ -158,10 +159,14 @@ instance.web_gantt.GanttView = instance.web.View.extend({ if (!tmp) return; task_stop = task_start.clone().addMilliseconds(instance.web.parse_value(tmp, {type:"float"}) * 60 * 60 * 1000); + duration_in_business_hours = true; } var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60); var id = _.uniqueId("gantt_task_"); - var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8) || 1, 100); + if (!duration_in_business_hours){ + duration = (duration / 24) * 8; + } + var task_info = new GanttTaskInfo(id, task_name, task_start, (duration) || 1, 100); task_info.internal_task = task; task_ids[id] = task_info; return {task_info: task_info, task_start: task_start, task_stop: task_stop}; @@ -202,7 +207,11 @@ instance.web_gantt.GanttView = instance.web.View.extend({ var self = this; var itask = task_obj.TaskInfo.internal_task; var start = task_obj.getEST(); - var duration = (task_obj.getDuration() / 8) * 24; + var duration = task_obj.getDuration(); + var duration_in_business_hours = !!self.fields_view.arch.attrs.date_delay; + if (!duration_in_business_hours){ + duration = (duration / 8 ) * 24; + } var end = start.clone().addMilliseconds(duration * 60 * 60 * 1000); var data = {}; data[self.fields_view.arch.attrs.date_start] =