From fb693b65ff8a64addf8273a92cafdd52bb0e98f1 Mon Sep 17 00:00:00 2001 From: arbaes Date: Wed, 28 Nov 2018 16:20:01 +0000 Subject: [PATCH] [IMP] stock: Immediate transfer picking view With this commit, the buttons 'Check availability', 'Unreserve' and the column 'Initial Demand' are hidden if the picking is an immediate transfer. TaskID: 1868544 closes odoo/odoo#29108 --- addons/stock/models/stock_move.py | 2 +- addons/stock/models/stock_picking.py | 12 ++++++++---- addons/stock/views/stock_picking_views.xml | 13 ++++++------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index 9260b906289..47b0ee65c11 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -479,7 +479,7 @@ class StockMove(models.Model): show_source_location=self.location_id.child_ids and self.picking_type_id.code != 'incoming', show_destination_location=self.location_dest_id.child_ids and self.picking_type_id.code != 'outgoing', show_package=not self.location_id.usage == 'supplier', - show_reserved_quantity=self.state != 'done' + show_reserved_quantity=self.state != 'done' and not self.picking_id.immediate_transfer ), } diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index a6a9d18d025..cb7c4245a4a 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -405,15 +405,19 @@ class Picking(models.Model): def _compute_has_packages(self): self.has_packages = self.move_line_ids.filtered(lambda ml: ml.result_package_id) - @api.multi def _compute_show_check_availability(self): + """ According to `picking.show_check_availability`, the "check availability" button will be + displayed in the form view of a picking. + """ for picking in self: - has_moves_to_reserve = any( + if picking.immediate_transfer or not picking.is_locked or picking.state not in ('confirmed', 'waiting', 'assigned'): + picking.show_check_availability = False + continue + picking.show_check_availability = any( move.state in ('waiting', 'confirmed', 'partially_available') and float_compare(move.product_uom_qty, 0, precision_rounding=move.product_uom.rounding) for move in picking.move_lines ) - picking.show_check_availability = picking.is_locked and picking.state in ('confirmed', 'waiting', 'assigned') and has_moves_to_reserve @api.multi @api.depends('state', 'move_lines') @@ -421,7 +425,7 @@ class Picking(models.Model): for picking in self: if not picking.move_lines and not picking.package_level_ids: picking.show_mark_as_todo = False - elif not (picking.immediate_transfer) and picking.state == 'draft': + elif not picking.immediate_transfer and picking.state == 'draft': picking.show_mark_as_todo = True elif picking.state != 'draft' or not picking.id: picking.show_mark_as_todo = False diff --git a/addons/stock/views/stock_picking_views.xml b/addons/stock/views/stock_picking_views.xml index cac7000381a..76b0bcddeb8 100644 --- a/addons/stock/views/stock_picking_views.xml +++ b/addons/stock/views/stock_picking_views.xml @@ -211,6 +211,7 @@ +