diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index f9055a8b9f8..6fc4fd9089e 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -1077,7 +1077,9 @@ class account_invoice(osv.osv):
i[2]['period_id'] = period_id
ctx.update(invoice=inv)
- move_id = move_obj.create(cr, uid, move, context=ctx)
+ ctx_copy = ctx.copy()
+ ctx_copy.pop('lang', None)
+ move_id = move_obj.create(cr, uid, move, context=ctx_copy)
new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name
# make the invoice point to that move
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx)
diff --git a/addons/account_budget/account_budget.py b/addons/account_budget/account_budget.py
index 16e58ad6df2..1e5807dc10b 100644
--- a/addons/account_budget/account_budget.py
+++ b/addons/account_budget/account_budget.py
@@ -112,10 +112,12 @@ class crossovered_budget_lines(osv.osv):
result = 0.0
if context is None:
context = {}
+ account_obj = self.pool.get('account.account')
for line in self.browse(cr, uid, ids, context=context):
acc_ids = [x.id for x in line.general_budget_id.account_ids]
if not acc_ids:
raise osv.except_osv(_('Error!'),_("The Budget '%s' has no accounts!") % ustr(line.general_budget_id.name))
+ acc_ids = account_obj._get_children_and_consol(cr, uid, acc_ids, context=context)
date_to = line.date_to
date_from = line.date_from
if line.analytic_account_id.id:
diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py
index d116807af5d..9c4d4fdab00 100644
--- a/addons/delivery/delivery.py
+++ b/addons/delivery/delivery.py
@@ -111,11 +111,10 @@ class delivery_carrier(osv.osv):
# not using advanced pricing per destination: override grid
grid_id = grid_pool.search(cr, uid, [('carrier_id', '=', record.id)], context=context)
- if grid_id and not (record.normal_price or record.free_if_more_than):
+ if grid_id and not (record.normal_price is not False or record.free_if_more_than):
grid_pool.unlink(cr, uid, grid_id, context=context)
- # Check that float, else 0.0 is False
- if not (isinstance(record.normal_price,float) or record.free_if_more_than):
+ if not (record.normal_price is not False or record.free_if_more_than):
continue
if not grid_id:
@@ -142,7 +141,7 @@ class delivery_carrier(osv.osv):
'list_price': 0.0,
}
grid_line_pool.create(cr, uid, line_data, context=context)
- if isinstance(record.normal_price,float):
+ if record.normal_price is not False:
line_data = {
'grid_id': grid_id and grid_id[0],
'name': _('Default price'),
diff --git a/addons/l10n_be/account_pcmn_belgium.xml b/addons/l10n_be/account_pcmn_belgium.xml
index 0d7c275e621..32da80bb1fe 100644
--- a/addons/l10n_be/account_pcmn_belgium.xml
+++ b/addons/l10n_be/account_pcmn_belgium.xml
@@ -3628,6 +3628,7 @@
other
+
Acomptes reçus
@@ -3635,6 +3636,7 @@
other
+
Compensations fournisseurs
@@ -3642,6 +3644,7 @@
other
+
DETTES FISCALES, SALARIALES ET SOCIALES
@@ -6338,7 +6341,7 @@
view
-
+
Reprises d'amortissements et de réductions de valeur
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index d8c675d66a0..6051ed689f8 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -416,6 +416,9 @@ class mail_thread(osv.AbstractModel):
cascaded, because link is done through (res_model, res_id). """
msg_obj = self.pool.get('mail.message')
fol_obj = self.pool.get('mail.followers')
+
+ if isinstance(ids, (int, long)):
+ ids = [ids]
# delete messages and notifications
msg_ids = msg_obj.search(cr, uid, [('model', '=', self._name), ('res_id', 'in', ids)], context=context)
msg_obj.unlink(cr, uid, msg_ids, context=context)
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index 6e775b26595..e56891b7cbf 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -1341,7 +1341,8 @@ class account_invoice(osv.Model):
not all(picking.invoice_state in ['invoiced'] for picking in order.picking_ids)):
shipped = False
for po_line in order.order_line:
- if all(line.invoice_id.state not in ['draft', 'cancel'] for line in po_line.invoice_lines):
+ if (po_line.invoice_lines and
+ all(line.invoice_id.state not in ['draft', 'cancel'] for line in po_line.invoice_lines)):
invoiced.append(po_line.id)
if invoiced and shipped:
self.pool['purchase.order.line'].write(cr, user_id, invoiced, {'invoiced': True})
diff --git a/addons/sale_stock/test/sale_order_onchange.yml b/addons/sale_stock/test/sale_order_onchange.yml
index f21f88c9eb7..f15ebd381db 100644
--- a/addons/sale_stock/test/sale_order_onchange.yml
+++ b/addons/sale_stock/test/sale_order_onchange.yml
@@ -10,6 +10,7 @@
name: 'Devil Worship Book'
list_price: 66.6
procure_method: 'make_to_order'
+ default_code: 'DWB00001'
-
In sale order to test process of onchange of Sale Order with access rights of saleman.
-
@@ -27,6 +28,6 @@
I verify that the onchange of product on sale order line was correctly triggered
-
!assert {model: sale.order, id: sale_order_onchange1, string: The onchange function of product was not correctly triggered}:
- - order_line[0].name == u'Devil Worship Book'
+ - order_line[0].name == u'[DWB00001] Devil Worship Book'
- order_line[0].price_unit == 66.6
- order_line[0].type == 'make_to_order'
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index a6514e81421..92c5813e1cf 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -743,7 +743,7 @@
stock.picking.tree
stock.picking
-
+
@@ -1019,7 +1019,7 @@
stock.picking.in.tree
stock.picking.in
-
+
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 7854a02b272..0573cf79333 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -423,7 +423,7 @@
Edit Company data
-
+