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 "%(access_msg)s %(portal_msg)s" % { 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] =