From 752bda5d843bdeebe5a7b224d35656bde65ab64a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 13:07:51 +0530 Subject: [PATCH] fix(patch): avoid checking for return field if it doesnt exits (backport #30995) (#30997) (cherry picked from commit b08180092e71cd39d2a7ce2696d1a0a82f1d7c43) Co-authored-by: Ankush Menat --- erpnext/stock/doctype/bin/bin.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py index 573203a47a8..75951eb60e5 100644 --- a/erpnext/stock/doctype/bin/bin.py +++ b/erpnext/stock/doctype/bin/bin.py @@ -70,11 +70,15 @@ class Bin(Document): (self.item_code, self.warehouse), )[0][0] + if frappe.db.field_exists("Stock Entry", "is_return"): + qty_field = "CASE WHEN se.is_return = 1 THEN (transfer_qty * -1) ELSE transfer_qty END" + else: + qty_field = "transfer_qty" + # Get Transferred Entries - materials_transferred = frappe.db.sql( - """ - select - ifnull(sum(CASE WHEN se.is_return = 1 THEN (transfer_qty * -1) ELSE transfer_qty END),0) + materials_transferred = ( + frappe.db.sql( + f"""select sum({qty_field}) from `tabStock Entry` se, `tabStock Entry Detail` sed, `tabPurchase Order` po where @@ -89,8 +93,10 @@ class Bin(Document): and po.status != 'Closed' and po.per_received < 100 """, - {"item": self.item_code}, - )[0][0] + {"item": self.item_code}, + )[0][0] + or 0.0 + ) if reserved_qty_for_sub_contract > materials_transferred: reserved_qty_for_sub_contract = reserved_qty_for_sub_contract - materials_transferred