def update_billing_status_in_pr(self, update_modified=True): updated_pr = [] for d in self.get("items"): if d.pr_detail: billed_amt = frappe.db.sql("""select sum(amount) from `tabPurchase Invoice Item` where pr_detail=%s and docstatus=1""", d.pr_detail) billed_amt = billed_amt and billed_amt[0][0] or 0 frappe.db.set_value("Purchase Receipt Item", d.pr_detail, "billed_amt", billed_amt, update_modified=update_modified) updated_pr.append(d.purchase_receipt) elif d.po_detail: updated_pr += update_billed_amount_based_on_po(d.po_detail, update_modified) for pr in set(updated_pr): frappe.get_doc("Purchase Receipt", pr).update_billing_percentage(update_modified=update_modified)