mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-19 09:35:03 +00:00
fix: add alias for order by field
(cherry picked from commit feaf39a812)
This commit is contained in:
@@ -178,7 +178,7 @@ def get_columns(additional_table_columns, filters):
|
|||||||
"fieldname": "invoice",
|
"fieldname": "invoice",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"options": "Purchase Invoice",
|
"options": "Purchase Invoice",
|
||||||
"width": 120,
|
"width": 150,
|
||||||
},
|
},
|
||||||
{"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 120},
|
{"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 120},
|
||||||
]
|
]
|
||||||
@@ -310,8 +310,8 @@ def apply_conditions(query, pi, pii, filters):
|
|||||||
|
|
||||||
def get_items(filters, additional_table_columns):
|
def get_items(filters, additional_table_columns):
|
||||||
doctype = "Purchase Invoice"
|
doctype = "Purchase Invoice"
|
||||||
pi = frappe.qb.DocType(doctype)
|
pi = frappe.qb.DocType(doctype).as_("invoice")
|
||||||
pii = frappe.qb.DocType(f"{doctype} Item")
|
pii = frappe.qb.DocType(f"{doctype} Item").as_("invoice_item")
|
||||||
Item = frappe.qb.DocType("Item")
|
Item = frappe.qb.DocType("Item")
|
||||||
query = (
|
query = (
|
||||||
frappe.qb.from_(pi)
|
frappe.qb.from_(pi)
|
||||||
@@ -331,6 +331,7 @@ def get_items(filters, additional_table_columns):
|
|||||||
pi.unrealized_profit_loss_account,
|
pi.unrealized_profit_loss_account,
|
||||||
pii.item_code,
|
pii.item_code,
|
||||||
pii.description,
|
pii.description,
|
||||||
|
pii.item_name,
|
||||||
pii.item_group,
|
pii.item_group,
|
||||||
pii.item_name.as_("pi_item_name"),
|
pii.item_name.as_("pi_item_name"),
|
||||||
pii.item_group.as_("pi_item_group"),
|
pii.item_group.as_("pi_item_group"),
|
||||||
@@ -374,7 +375,7 @@ def get_items(filters, additional_table_columns):
|
|||||||
if match_conditions:
|
if match_conditions:
|
||||||
query += " and " + match_conditions
|
query += " and " + match_conditions
|
||||||
|
|
||||||
query = apply_order_by_conditions(query, pi, pii, filters)
|
query = apply_order_by_conditions(query, filters)
|
||||||
|
|
||||||
return frappe.db.sql(query, params, as_dict=True)
|
return frappe.db.sql(query, params, as_dict=True)
|
||||||
|
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ def get_columns(additional_table_columns, filters):
|
|||||||
"fieldname": "invoice",
|
"fieldname": "invoice",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"options": "Sales Invoice",
|
"options": "Sales Invoice",
|
||||||
"width": 120,
|
"width": 150,
|
||||||
},
|
},
|
||||||
{"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 120},
|
{"label": _("Posting Date"), "fieldname": "posting_date", "fieldtype": "Date", "width": 120},
|
||||||
]
|
]
|
||||||
@@ -394,15 +394,15 @@ def apply_conditions(query, si, sii, sip, filters, additional_conditions=None):
|
|||||||
return query
|
return query
|
||||||
|
|
||||||
|
|
||||||
def apply_order_by_conditions(query, si, ii, filters):
|
def apply_order_by_conditions(query, filters):
|
||||||
if not filters.get("group_by"):
|
if not filters.get("group_by"):
|
||||||
query += f" order by {si.posting_date} desc, {ii.item_group} desc"
|
query += "order by invoice.posting_date desc, invoice_item.item_group desc"
|
||||||
elif filters.get("group_by") == "Invoice":
|
elif filters.get("group_by") == "Invoice":
|
||||||
query += f" order by {ii.parent} desc"
|
query += "order by invoice_item.parent desc"
|
||||||
elif filters.get("group_by") == "Item":
|
elif filters.get("group_by") == "Item":
|
||||||
query += f" order by {ii.item_code}"
|
query += "order by invoice_item.item_code"
|
||||||
elif filters.get("group_by") == "Item Group":
|
elif filters.get("group_by") == "Item Group":
|
||||||
query += f" order by {ii.item_group}"
|
query += "order by invoice_item.item_group"
|
||||||
elif filters.get("group_by") in ("Customer", "Customer Group", "Territory", "Supplier"):
|
elif filters.get("group_by") in ("Customer", "Customer Group", "Territory", "Supplier"):
|
||||||
filter_field = frappe.scrub(filters.get("group_by"))
|
filter_field = frappe.scrub(filters.get("group_by"))
|
||||||
query += f" order by {filter_field} desc"
|
query += f" order by {filter_field} desc"
|
||||||
@@ -412,9 +412,9 @@ def apply_order_by_conditions(query, si, ii, filters):
|
|||||||
|
|
||||||
def get_items(filters, additional_query_columns, additional_conditions=None):
|
def get_items(filters, additional_query_columns, additional_conditions=None):
|
||||||
doctype = "Sales Invoice"
|
doctype = "Sales Invoice"
|
||||||
si = frappe.qb.DocType(doctype)
|
si = frappe.qb.DocType("Sales Invoice").as_("invoice")
|
||||||
sip = frappe.qb.DocType(f"{doctype} Payment")
|
sii = frappe.qb.DocType("Sales Invoice Item").as_("invoice_item")
|
||||||
sii = frappe.qb.DocType(f"{doctype} Item")
|
sip = frappe.qb.DocType("Sales Invoice Payment")
|
||||||
item = frappe.qb.DocType("Item")
|
item = frappe.qb.DocType("Item")
|
||||||
|
|
||||||
query = (
|
query = (
|
||||||
@@ -492,7 +492,7 @@ def get_items(filters, additional_query_columns, additional_conditions=None):
|
|||||||
if match_conditions:
|
if match_conditions:
|
||||||
query += " and " + match_conditions
|
query += " and " + match_conditions
|
||||||
|
|
||||||
query = apply_order_by_conditions(query, si, sii, filters)
|
query = apply_order_by_conditions(query, filters)
|
||||||
|
|
||||||
return frappe.db.sql(query, params, as_dict=True)
|
return frappe.db.sql(query, params, as_dict=True)
|
||||||
|
|
||||||
@@ -764,25 +764,13 @@ def add_total_row(
|
|||||||
def get_display_value(filters, group_by_field, item):
|
def get_display_value(filters, group_by_field, item):
|
||||||
if filters.get("group_by") == "Item":
|
if filters.get("group_by") == "Item":
|
||||||
if item.get("item_code") != item.get("item_name"):
|
if item.get("item_code") != item.get("item_name"):
|
||||||
value = (
|
value = f"{item.get('item_code')}: {item.get('item_name')}"
|
||||||
cstr(item.get("item_code"))
|
|
||||||
+ "<br><br>"
|
|
||||||
+ "<span style='font-weight: normal'>"
|
|
||||||
+ cstr(item.get("item_name"))
|
|
||||||
+ "</span>"
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
value = item.get("item_code", "")
|
value = item.get("item_code", "")
|
||||||
elif filters.get("group_by") in ("Customer", "Supplier"):
|
elif filters.get("group_by") in ("Customer", "Supplier"):
|
||||||
party = frappe.scrub(filters.get("group_by"))
|
party = frappe.scrub(filters.get("group_by"))
|
||||||
if item.get(party) != item.get(party + "_name"):
|
if item.get(party) != item.get(party + "_name"):
|
||||||
value = (
|
value = f"{item.get(party)}: {item.get(party + '_name')}"
|
||||||
item.get(party)
|
|
||||||
+ "<br><br>"
|
|
||||||
+ "<span style='font-weight: normal'>"
|
|
||||||
+ item.get(party + "_name")
|
|
||||||
+ "</span>"
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
value = item.get(party)
|
value = item.get(party)
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user