def get_sub_assembly_items(bom_no, bom_data, to_produce_qty, indent=0): data = get_children("BOM", parent=bom_no) for d in data: if d.expandable: parent_item_code = frappe.get_cached_value("BOM", bom_no, "item") stock_qty = (d.stock_qty / d.parent_bom_qty) * flt(to_produce_qty) bom_data.append( frappe._dict({ "parent_item_code": parent_item_code, "description": d.description, "production_item": d.item_code, "item_name": d.item_name, "stock_uom": d.stock_uom, "uom": d.stock_uom, "bom_no": d.value, "is_sub_contracted_item": d.is_sub_contracted_item, "bom_level": indent, "indent": indent, "stock_qty": stock_qty, })) if d.value: get_sub_assembly_items(d.value, bom_data, stock_qty, indent=indent + 1)
def get_sub_assembly_items(bom_no, bom_data, to_produce_qty, indent=0): data = get_children('BOM', parent=bom_no) for d in data: if d.expandable: parent_item_code = frappe.get_cached_value("BOM", bom_no, "item") bom_level = (frappe.get_cached_value("BOM", d.value, "bom_level") if d.value else 0) stock_qty = (d.stock_qty / d.parent_bom_qty) * flt(to_produce_qty) bom_data.append( frappe._dict({ 'parent_item_code': parent_item_code, 'description': d.description, 'production_item': d.item_code, 'item_name': d.item_name, 'stock_uom': d.stock_uom, 'uom': d.stock_uom, 'bom_no': d.value, 'is_sub_contracted_item': d.is_sub_contracted_item, 'bom_level': bom_level, 'indent': indent, 'stock_qty': stock_qty })) if d.value: get_sub_assembly_items(d.value, bom_data, stock_qty, indent=indent + 1)
def get_sub_assembly_items(bom_no, bom_data, to_produce_qty): data = get_children('BOM', parent = bom_no) for d in data: if d.expandable: key = (d.name, d.value) if key not in bom_data: bom_data.setdefault(key, { 'stock_qty': 0, 'description': d.description, 'production_item': d.item_code, 'item_name': d.item_name, 'stock_uom': d.stock_uom, 'uom': d.stock_uom, 'bom_no': d.value }) bom_item = bom_data.get(key) bom_item["stock_qty"] += (d.stock_qty / d.parent_bom_qty) * flt(to_produce_qty) get_sub_assembly_items(bom_item.get("bom_no"), bom_data, bom_item["stock_qty"])