<?xml version="1.0"?>
<t t-name="mrp.stock_report_delivery_kit_sections">
        <!-- get all kits-related SML, including subkits -->
        <t t-set="all_kits_move_lines" t-value="o.move_ids.move_line_ids.filtered(lambda l: l.move_id.bom_line_id.bom_id.type == 'phantom')"/>
        <!-- do another map to get unique top level kits -->
        <t t-set="boms" t-value="has_kits.mapped('move_id.bom_line_id.bom_id')"/>
        <t t-foreach="boms" t-as="bom">
            <!-- Separate product.product from template for variants-->
            <t t-if="bom.product_id">
                <t t-set="kit_product" t-value="bom.product_id"/>
            </t>
            <t t-else="">
                <t t-set="kit_product" t-value="bom.product_tmpl_id"/>
            </t>
            <tr t-att-class="'fw-bold o_line_section'">
                <td colspan="99">
                    <span t-esc="kit_product.display_name"/>
                </td>
            </tr>
            <t t-set="kit_move_lines" t-value="all_kits_move_lines.filtered(lambda l: l.move_id.bom_line_id.bom_id == bom)"/>
            <t t-if="has_serial_number">
                <tr t-foreach="kit_move_lines" t-as="move_line">
                    <t t-set="description" t-value="move_line.move_id.description_picking"/>
                    <t t-if="description == kit_product.display_name">
                        <t t-set="description" t-value=""/>
                    </t>
                    <t t-call="stock.stock_report_delivery_has_serial_move_line"/>
                </tr>
            </t>
            <t t-else="">
                <t t-set="aggregated_lines" t-value="kit_move_lines._get_aggregated_product_quantities(kit_name=kit_product.display_name)"/>
                <t t-if="aggregated_lines">
                    <t t-call="stock.stock_report_delivery_aggregated_move_lines"/>
                </t>
            </t>
        </t>
    </t>

    