From fceb3d8991d633e1004b69c5027c4846e933138e Mon Sep 17 00:00:00 2001 From: Ahmed Khalaf Date: Wed, 8 Mar 2023 13:16:09 +0000 Subject: [PATCH] [IMP] mrp: enable precompute on MO field This commit enables precompute of product_qty in MO so that the product_qty is correctly set when a bom exists for the created MO. it also corrects the values of `picking_type_use` fields to be used in the barcode app for MOs. Enterprise PR: odoo/enterprise#38096 Taskid: 3052744 Part-of: odoo/odoo#114708 --- addons/mrp/models/mrp_production.py | 4 +++- addons/stock/models/stock_move_line.py | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index a17d149fdc1..e30c4e42429 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -76,7 +76,7 @@ class MrpProduction(models.Model): product_tmpl_id = fields.Many2one('product.template', 'Product Template', related='product_id.product_tmpl_id') product_qty = fields.Float( 'Quantity To Produce', digits='Product Unit of Measure', - readonly=False, required=True, tracking=True, default=1.0, + readonly=False, required=True, tracking=True, precompute=True, compute='_compute_product_qty', store=True, copy=True) product_uom_id = fields.Many2one( 'uom.uom', 'Product Unit of Measure', @@ -377,6 +377,8 @@ class MrpProduction(models.Model): continue if production.bom_id and production._origin.bom_id != production.bom_id: production.product_qty = production.bom_id.product_qty + elif not production.bom_id: + production.product_qty = 1.0 @api.depends('move_raw_ids') def _compute_production_capacity(self): diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py index 2b2e1b95c71..0d7fe965d5b 100644 --- a/addons/stock/models/stock_move_line.py +++ b/addons/stock/models/stock_move_line.py @@ -67,11 +67,11 @@ class StockMoveLine(models.Model): location_dest_usage = fields.Selection(string="Destination Location Type", related='location_dest_id.usage') lots_visible = fields.Boolean(compute='_compute_lots_visible') picking_partner_id = fields.Many2one(related='picking_id.partner_id', readonly=True) - picking_code = fields.Selection(related='picking_id.picking_type_id.code', readonly=True) + picking_code = fields.Selection(related='picking_type_id.code', readonly=True) picking_type_id = fields.Many2one( 'stock.picking.type', 'Operation type', compute='_compute_picking_type_id', search='_search_picking_type_id') - picking_type_use_create_lots = fields.Boolean(related='picking_id.picking_type_id.use_create_lots', readonly=True) - picking_type_use_existing_lots = fields.Boolean(related='picking_id.picking_type_id.use_existing_lots', readonly=True) + picking_type_use_create_lots = fields.Boolean(related='picking_type_id.use_create_lots', readonly=True) + picking_type_use_existing_lots = fields.Boolean(related='picking_type_id.use_existing_lots', readonly=True) picking_type_entire_packs = fields.Boolean(related='picking_id.picking_type_id.show_entire_packs', readonly=True) state = fields.Selection(related='move_id.state', store=True, related_sudo=False) is_initial_demand_editable = fields.Boolean(related='move_id.is_initial_demand_editable')