[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
This commit is contained in:
Ahmed Khalaf
2023-06-01 11:43:43 +02:00
parent 23a75f5a7a
commit fceb3d8991
2 changed files with 6 additions and 4 deletions
+3 -1
View File
@@ -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):
+3 -3
View File
@@ -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')