hunk.code_window:             for product_variant_id in candidates:
                   if data and data.get('childs'):
                       doc = self._get_pdf_line(bom_id, product_id=product_variant_id, qty=float(data.get('quantity')), child_bom_ids=json.loads(data.get('childs')))
                   else:
                       doc = self._get_pdf_line(bom_id, product_id=product_variant_id, unfolded=True)
                   doc['report_type'] = 'pdf'
                   doc['report_structure'] = data and data.get('report_type') or 'all'
                   docs.append(doc)
               if not candidates:
  
hunk.labels: keep keep keep keep replace keep keep keep keep
hunk.after_edit:                     doc = self._get_pdf_line(bom_id, product_id=product_variant_id, qty=float(data.get('quantity')), unfolded=True)
  
hunk.file_path: addons/mrp/report/mrp_report_bom_structure.py
hunk.type: replace
file: # -*- coding: utf-8 -*-
  # Part of Odoo. See LICENSE file for full copyright and licensing details.
  
  from odoo import api, fields, models
  
  
  class StockRulesReport(models.TransientModel):
      _inherit = 'stock.rules.report'
  
      so_route_ids = fields.Many2many('stock.location.route', string='Apply specific rotues',
          domain="[('sale_selectable', '=', True)]", help="Choose to apply SO lines specific routes.")
  
      def _prepare_report_data(self):
          data = super(StockRulesReport, self)._prepare_report_data()
          data['so_route_ids'] = self.so_route_ids.ids
          return data
  