[FIX] duration calculation for date_stop.

bzr revid: vda@tinyerp.com-20111108073528-r4lrw0zxtsv1604a
This commit is contained in:
Vaibhav (OpenERP) 2011-11-08 13:05:28 +05:30
parent 60bbf83479
commit f1f7637d69
1 changed files with 20 additions and 8 deletions

View File

@ -60,7 +60,9 @@ init: function(parent, dataset, view_id) {
});
this.database_projects = started_projects;
if(!started_projects.length)
return self.do_warn(_t("date_start is not defined"));
if(!self.name && started_projects.length) {
var name = started_projects[0][self.parent];
self.name = name instanceof Array? name[name.length - 1] : name;
@ -157,9 +159,7 @@ init: function(parent, dataset, view_id) {
_.each(projects, function(project, index) {
if (self.date_stop && project[self.date_stop]) {
//ToDO
console.log('TODO for date_stop');
self.project_duration.push(0);
self.project_duration.push(self.duration_difference(project[self.date_start], project[self.date_stop]));
} else if(self.date_delay && project[self.date_delay]) {
self.project_duration.push(project[self.date_delay]);
} else {
@ -171,6 +171,20 @@ init: function(parent, dataset, view_id) {
return $.Deferred().resolve().promise();
},
duration_difference: function(start_date, end_date) {
var DAY = 1000 * 60 * 60 * 24,
date1_ms = openerp.web.auto_str_to_date(start_date).getTime(),
date2_ms = openerp.web.auto_str_to_date(end_date).getTime(),
difference_ms = Math.abs(date1_ms - date2_ms);
var d = Math.floor(difference_ms / DAY),
h = (difference_ms % DAY)/(1000 * 60 * 60),
num = (d * this.day_length) + h;
return parseFloat(num.toFixed(2));
},
calculate_difference: function() {
var extend_end_date_day = Math.floor(this.max_project_duration / this.day_length),
extend_end_date_hours = this.max_project_duration % this.day_length;
@ -196,7 +210,6 @@ init: function(parent, dataset, view_id) {
max_date = _.max(projects, function(prj) {
return self.format_date(prj[self.date_start]);
});
this.project_end_date = this.format_date(max_date[self.date_start]);
if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]);
else
@ -212,7 +225,7 @@ init: function(parent, dataset, view_id) {
_.each(tasks, function(task, tindex) {
self.GanttProjects.addTask(task);
});
})
});
}
else {
_.each(this.GanttTasks, function(tsk, index){
@ -351,8 +364,7 @@ init: function(parent, dataset, view_id) {
self.dataset
.read_slice([], {
domain: domains,
context: contexts,
group_by: groupbys
context: contexts
})
.done(function(projects) {
self.on_project_loaded(projects);