import frappe


def execute():
	frappe.reload_doc("stock", "doctype", "batch")

	for batch in frappe.get_all("Batch", fields=["name", "batch_id"]):
		batch_qty = (
			frappe.db.get_value(
				"Stock Ledger Entry",
				{"docstatus": 1, "batch_no": batch.batch_id, "is_cancelled": 0},
				[{"SUM": "actual_qty"}],
			)
			or 0.0
		)
		frappe.db.set_value("Batch", batch.name, "batch_qty", batch_qty, update_modified=False)
