summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-06-28 13:11:35 +0200
committerChristophe Simonis <chs@odoo.com>2016-06-28 13:11:35 +0200
commit10550aa5a5ae261c3b1e1b9e4c95b4e5bfbe8ec6 (patch)
tree2f6f90e4df4d9703e1203754f903d545a23f76b3 /addons
parentcbbc90fc2ef2a1a7e104c466fffb33766cf20986 (diff)
parente68ed417b6945c0dcb833533e25f2bbd2f01d045 (diff)
[MERGE] forward port of branch saas-6 up to e68ed41
Diffstat (limited to 'addons')
-rw-r--r--addons/portal_stock/security/portal_security.xml2
-rw-r--r--addons/sale_stock/sale_stock.py9
-rw-r--r--addons/stock/stock.py5
-rw-r--r--addons/stock/views/report_stockpicking_operations.xml2
-rw-r--r--addons/web/static/src/js/views/form_relational_widgets.js3
5 files changed, 16 insertions, 5 deletions
diff --git a/addons/portal_stock/security/portal_security.xml b/addons/portal_stock/security/portal_security.xml
index 458de89b89b..2355a1331cf 100644
--- a/addons/portal_stock/security/portal_security.xml
+++ b/addons/portal_stock/security/portal_security.xml
@@ -6,7 +6,7 @@
<record id="portal_stock_picking_portal_user_rule" model="ir.rule">
<field name="name">Portal Follower Pickings</field>
<field name="model_id" ref="stock.model_stock_picking"/>
- <field name="domain_force">['|', ('message_partner_ids','in',[user.partner_id.id]), ('partner_id.id','=',user.partner_id.id)]</field>
+ <field name="domain_force">['|', '|', ('message_partner_ids', 'in', [user.partner_id.id]), ('partner_id.id', '=', user.partner_id.id), ('sale_id.partner_id.id', '=', user.partner_id.id)]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index 5c5e789f63a..f046bea5678 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -303,7 +303,14 @@ class StockPicking(models.Model):
break
picking.sale_id = sale_order.id if sale_order else False
- sale_id = fields.Many2one(comodel_name='sale.order', string="Sale Order", compute='_compute_sale_id')
+ def _search_sale_id(self, operator, value):
+ moves = self.env['stock.move'].search(
+ [('picking_id', '!=', False), ('procurement_id.sale_line_id.order_id', operator, value)]
+ )
+ return [('id', 'in', moves.mapped('picking_id').ids)]
+
+ sale_id = fields.Many2one(comodel_name='sale.order', string="Sale Order",
+ compute='_compute_sale_id', search='_search_sale_id')
class AccountInvoiceLine(models.Model):
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 7dd472d29b7..02b1405e8ae 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1440,10 +1440,11 @@ class stock_picking(models.Model):
#Check moves with same product
product_qty = ops.qty_done if done_qtys else ops.product_qty
qty_to_assign = uom_obj._compute_qty_obj(cr, uid, ops.product_uom_id, product_qty, ops.product_id.uom_id, context=context)
+ precision_rounding = ops.product_id.uom_id.rounding
for move_dict in prod2move_ids.get(ops.product_id.id, []):
move = move_dict['move']
for quant in move.reserved_quant_ids:
- if not qty_to_assign > 0:
+ if float_compare(qty_to_assign, 0, precision_rounding=precision_rounding) != 1:
break
if quant.id in quants_in_package_done:
continue
@@ -1466,7 +1467,7 @@ class stock_picking(models.Model):
qty_to_assign -= qty_on_link
lot_qty[quant.lot_id.id] -= qty_on_link
- qty_assign_cmp = float_compare(qty_to_assign, 0, precision_rounding=ops.product_id.uom_id.rounding)
+ qty_assign_cmp = float_compare(qty_to_assign, 0, precision_rounding=precision_rounding)
if qty_assign_cmp > 0:
#qty reserved is less than qty put in operations. We need to create a link but it's deferred after we processed
#all the quants (because they leave no choice on their related move and needs to be processed with higher priority)
diff --git a/addons/stock/views/report_stockpicking_operations.xml b/addons/stock/views/report_stockpicking_operations.xml
index 155524e5867..45e68fc7169 100644
--- a/addons/stock/views/report_stockpicking_operations.xml
+++ b/addons/stock/views/report_stockpicking_operations.xml
@@ -33,7 +33,7 @@
<div t-if="o.partner_id" name="partner_header">
<div t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true, "phone_icons": true}'/>
- <p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></p>
+ <p t-if="o.sudo().partner_id.vat">VAT: <span t-field="o.sudo().partner_id.vat"/></p>
</div>
</div>
<div class="col-xs-5 col-xs-offset-1">
diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js
index a1444bcae85..5b0987f0fc0 100644
--- a/addons/web/static/src/js/views/form_relational_widgets.js
+++ b/addons/web/static/src/js/views/form_relational_widgets.js
@@ -886,6 +886,9 @@ var FieldX2Many = AbstractManyField.extend({
}
return true;
},
+ is_false: function () {
+ return _(this.dataset.ids).isEmpty();
+ },
});
var X2ManyDataSet = data.BufferedDataSet.extend({