mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-06 21:59:13 +00:00
refactor(request_for_quotation): Use query builder instead of SQL (#55171)
This commit is contained in:
@@ -575,27 +575,29 @@ def get_pdf(
|
|||||||
def get_item_from_material_requests_based_on_supplier(
|
def get_item_from_material_requests_based_on_supplier(
|
||||||
source_name: str, target_doc: str | Document | None = None
|
source_name: str, target_doc: str | Document | None = None
|
||||||
):
|
):
|
||||||
mr_items_list = frappe.db.sql(
|
Item = frappe.qb.DocType("Item")
|
||||||
"""
|
Item_Supp = frappe.qb.DocType("Item Supplier")
|
||||||
SELECT
|
MR = frappe.qb.DocType("Material Request")
|
||||||
mr.name, mr_item.item_code
|
MR_Item = frappe.qb.DocType("Material Request Item")
|
||||||
FROM
|
|
||||||
`tabItem` as item,
|
query = (
|
||||||
`tabItem Supplier` as item_supp,
|
frappe.qb.from_(MR_Item)
|
||||||
`tabMaterial Request Item` as mr_item,
|
.join(MR)
|
||||||
`tabMaterial Request` as mr
|
.on(MR_Item.parent == MR.name)
|
||||||
WHERE item_supp.supplier = %(supplier)s
|
.join(Item)
|
||||||
AND item.name = item_supp.parent
|
.on(MR_Item.item_code == Item.name)
|
||||||
AND mr_item.parent = mr.name
|
.join(Item_Supp)
|
||||||
AND mr_item.item_code = item.name
|
.on(Item.name == Item_Supp.parent)
|
||||||
AND mr.status != "Stopped"
|
.select(MR.name, MR_Item.item_code)
|
||||||
AND mr.material_request_type = "Purchase"
|
.where(Item_Supp.supplier == source_name)
|
||||||
AND mr.docstatus = 1
|
.where(MR.status != "Stopped")
|
||||||
AND mr.per_ordered < 99.99""",
|
.where(MR.material_request_type == "Purchase")
|
||||||
{"supplier": source_name},
|
.where(MR.docstatus == 1)
|
||||||
as_dict=1,
|
.where(MR.per_ordered < 99.99)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
mr_items_list = query.run(as_dict=True)
|
||||||
|
|
||||||
material_requests = {}
|
material_requests = {}
|
||||||
for d in mr_items_list:
|
for d in mr_items_list:
|
||||||
material_requests.setdefault(d.name, []).append(d.item_code)
|
material_requests.setdefault(d.name, []).append(d.item_code)
|
||||||
|
|||||||
Reference in New Issue
Block a user