diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index ff6e8d5aae9..fc912dde209 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1084,7 +1084,9 @@
-
+
@@ -1157,7 +1159,9 @@
-
+
@@ -1201,7 +1205,9 @@
-
+
@@ -1383,7 +1389,9 @@
-
+
@@ -1447,7 +1455,9 @@
-
+
diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py
index 0f609bf9b4a..61649b1a603 100644
--- a/addons/account/report/account_aged_partner_balance.py
+++ b/addons/account/report/account_aged_partner_balance.py
@@ -190,9 +190,12 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
partial = date and date[0][0] <= form[str(i)]['stop']
if partial:
# partial reconcilation
+ limit_date = 'COALESCE(l.date_maturity,l.date) %s %%s' % '<=' if self.direction_selection == 'past' else '>='
self.cr.execute('''SELECT SUM(l.debit-l.credit)
FROM account_move_line AS l, account_move AS am
- WHERE l.move_id = am.id AND am.state in %s AND l.reconcile_partial_id = %s''', (tuple(move_state), partner_info[2],))
+ WHERE l.move_id = am.id AND am.state in %s
+ AND l.reconcile_partial_id = %s
+ AND ''' + limit_date, (tuple(move_state), partner_info[2], self.date_from))
unreconciled_amount = self.cr.fetchall()
partners_amount[partner_info[0]] += unreconciled_amount[0][0]
else:
diff --git a/addons/base_geolocalize/models/res_partner.py b/addons/base_geolocalize/models/res_partner.py
index af43b990526..6e89b312f4b 100644
--- a/addons/base_geolocalize/models/res_partner.py
+++ b/addons/base_geolocalize/models/res_partner.py
@@ -64,8 +64,8 @@ class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
- 'partner_latitude': fields.float('Geo Latitude'),
- 'partner_longitude': fields.float('Geo Longitude'),
+ 'partner_latitude': fields.float('Geo Latitude', digits=(16, 5)),
+ 'partner_longitude': fields.float('Geo Longitude', digits=(16, 5)),
'date_localization': fields.date('Geo Localization Date'),
}
diff --git a/addons/crm_partner_assign/crm_partner_assign.py b/addons/crm_partner_assign/crm_partner_assign.py
index a07c730ba21..4f0fbd83e78 100644
--- a/addons/crm_partner_assign/crm_partner_assign.py
+++ b/addons/crm_partner_assign/crm_partner_assign.py
@@ -87,8 +87,8 @@ class res_partner(osv.osv):
class crm_lead(osv.osv):
_inherit = "crm.lead"
_columns = {
- 'partner_latitude': fields.float('Geo Latitude'),
- 'partner_longitude': fields.float('Geo Longitude'),
+ 'partner_latitude': fields.float('Geo Latitude', digits=(16, 5)),
+ 'partner_longitude': fields.float('Geo Longitude', digits=(16, 5)),
'partner_assigned_id': fields.many2one('res.partner', 'Assigned Partner',track_visibility='onchange' , help="Partner this case has been forwarded/assigned to.", select=True),
'date_assign': fields.date('Assignation Date', help="Last date this case was forwarded/assigned to a partner"),
}
diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py
index db4a0ac01a1..442c7dfa7ac 100644
--- a/addons/mail/mail_mail.py
+++ b/addons/mail/mail_mail.py
@@ -153,7 +153,7 @@ class mail_mail(osv.Model):
if context is None:
context = {}
if partner and partner.user_ids:
- base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
+ base_url = self.pool.get('ir.config_parameter').get_param(cr, SUPERUSER_ID, 'web.base.url')
mail_model = mail.model or 'mail.thread'
url = urljoin(base_url, self.pool[mail_model]._get_access_link(cr, uid, mail, partner, context=context))
return "" % {
diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js
index 74a1aa9e0ed..b3be3389786 100644
--- a/addons/web_gantt/static/src/js/gantt.js
+++ b/addons/web_gantt/static/src/js/gantt.js
@@ -149,6 +149,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;
@@ -162,11 +163,15 @@ instance.web_gantt.GanttView = instance.web.View.extend({
self.fields[self.fields_view.arch.attrs.date_delay]);
if (!tmp)
return;
- task_stop = task_start.clone().addMilliseconds(tmp * 60 * 60 * 1000);
+ 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, percent);
+ if (!duration_in_business_hours){
+ duration = (duration / 24) * 8;
+ }
+ var task_info = new GanttTaskInfo(id, task_name, task_start, (duration) || 1, percent);
task_info.internal_task = task;
task_ids[id] = task_info;
return {task_info: task_info, task_start: task_start, task_stop: task_stop};
@@ -207,7 +212,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] =