Merge pull request #17789 from sunnyakaxd/patch-2
fix: Dont fetch all orders to update a few
This commit is contained in:
commit
1bb3fc3c19
@ -316,19 +316,27 @@ class StatusUpdater(Document):
|
|||||||
.format(frappe.db.escape(frappe.session.user))
|
.format(frappe.db.escape(frappe.session.user))
|
||||||
|
|
||||||
def update_billing_status_for_zero_amount_refdoc(self, ref_dt):
|
def update_billing_status_for_zero_amount_refdoc(self, ref_dt):
|
||||||
ref_fieldname = ref_dt.lower().replace(" ", "_")
|
ref_fieldname = frappe.scrub(ref_dt)
|
||||||
zero_amount_refdoc = []
|
|
||||||
all_zero_amount_refdoc = frappe.db.sql_list("""select name from `tab%s`
|
|
||||||
where docstatus=1 and base_net_total = 0""" % ref_dt)
|
|
||||||
|
|
||||||
for item in self.get("items"):
|
ref_docs = [item.get(ref_fieldname) for item in (self.get('items') or []) if item.get(ref_fieldname)]
|
||||||
if item.get(ref_fieldname) \
|
if not ref_docs:
|
||||||
and item.get(ref_fieldname) in all_zero_amount_refdoc \
|
return
|
||||||
and item.get(ref_fieldname) not in zero_amount_refdoc:
|
|
||||||
zero_amount_refdoc.append(item.get(ref_fieldname))
|
|
||||||
|
|
||||||
if zero_amount_refdoc:
|
zero_amount_refdocs = frappe.db.sql_list("""
|
||||||
self.update_billing_status(zero_amount_refdoc, ref_dt, ref_fieldname)
|
SELECT
|
||||||
|
name
|
||||||
|
from
|
||||||
|
`tab{ref_dt}`
|
||||||
|
where
|
||||||
|
docstatus = 1
|
||||||
|
and base_net_total = 0
|
||||||
|
and name in %(ref_docs)s
|
||||||
|
""".format(ref_dt=ref_dt), {
|
||||||
|
'ref_docs': ref_docs
|
||||||
|
})
|
||||||
|
|
||||||
|
if zero_amount_refdocs:
|
||||||
|
self.update_billing_status(zero_amount_refdocs, ref_dt, ref_fieldname)
|
||||||
|
|
||||||
def update_billing_status(self, zero_amount_refdoc, ref_dt, ref_fieldname):
|
def update_billing_status(self, zero_amount_refdoc, ref_dt, ref_fieldname):
|
||||||
for ref_dn in zero_amount_refdoc:
|
for ref_dn in zero_amount_refdoc:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user