Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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"])