Update pallet-list API with input row and customer_number filter
This commit is contained in:
@@ -6,7 +6,6 @@ def get_pallets(page=1, page_size=100, sort_field="pallet_number", sort_dir="des
|
|||||||
page_size = int(page_size)
|
page_size = int(page_size)
|
||||||
offset = (page - 1) * page_size
|
offset = (page - 1) * page_size
|
||||||
|
|
||||||
# Only pallets with dates AND customer data
|
|
||||||
conditions = [
|
conditions = [
|
||||||
"pallet_number IS NOT NULL",
|
"pallet_number IS NOT NULL",
|
||||||
"pallet_number != ''",
|
"pallet_number != ''",
|
||||||
@@ -15,7 +14,6 @@ def get_pallets(page=1, page_size=100, sort_field="pallet_number", sort_dir="des
|
|||||||
"customer_number != ''"
|
"customer_number != ''"
|
||||||
]
|
]
|
||||||
|
|
||||||
# Junk filter
|
|
||||||
junk = ["", "0", "0000", "N/A", "TBD", "null", "999990", "999995"]
|
junk = ["", "0", "0000", "N/A", "TBD", "null", "999990", "999995"]
|
||||||
junk_list = "', '".join(junk)
|
junk_list = "', '".join(junk)
|
||||||
conditions.append("pallet_number NOT IN ('" + junk_list + "')")
|
conditions.append("pallet_number NOT IN ('" + junk_list + "')")
|
||||||
@@ -29,46 +27,19 @@ def get_pallets(page=1, page_size=100, sort_field="pallet_number", sort_dir="des
|
|||||||
|
|
||||||
where_clause = " AND ".join(conditions)
|
where_clause = " AND ".join(conditions)
|
||||||
|
|
||||||
# Get total
|
|
||||||
total = frappe.db.sql("SELECT COUNT(*) FROM tabPallet WHERE " + where_clause)[0][0]
|
total = frappe.db.sql("SELECT COUNT(*) FROM tabPallet WHERE " + where_clause)[0][0]
|
||||||
|
|
||||||
# Get main pallets
|
pallets = frappe.db.sql("SELECT name, pallet_number, date_reserved, received_date, customer_number, company_name, inbound_weight, tester, description, qty_to_sales, weight_to_sales, finish_date, notes, status FROM tabPallet WHERE " + where_clause + " ORDER BY CAST(pallet_number AS UNSIGNED) " + sort_dir + " LIMIT " + str(page_size) + " OFFSET " + str(offset), as_dict=True)
|
||||||
pallets = frappe.db.sql("""
|
|
||||||
SELECT name, pallet_number, date_reserved, received_date,
|
|
||||||
customer_number, company_name, inbound_weight, tester,
|
|
||||||
description, qty_to_sales, weight_to_sales, finish_date, notes, status
|
|
||||||
FROM tabPallet
|
|
||||||
WHERE """ + where_clause + """
|
|
||||||
ORDER BY CAST(pallet_number AS UNSIGNED) """ + sort_dir + """
|
|
||||||
LIMIT """ + str(page_size) + """ OFFSET """ + str(offset), as_dict=True)
|
|
||||||
|
|
||||||
# Get input row - next empty pallet number
|
empty_pallet = frappe.db.sql("SELECT name, pallet_number, date_reserved, received_date, customer_number, company_name, inbound_weight, tester, description, qty_to_sales, weight_to_sales, finish_date, notes, status FROM tabPallet WHERE date_reserved IS NULL AND (customer_number IS NULL OR customer_number = '') AND pallet_number NOT IN ('" + junk_list + "') AND pallet_number NOT LIKE '999%' AND pallet_number REGEXP '^[0-9]' ORDER BY CAST(pallet_number AS UNSIGNED) DESC LIMIT 1", as_dict=True)
|
||||||
empty_pallet = frappe.db.sql("""
|
|
||||||
SELECT name, pallet_number, date_reserved, received_date,
|
|
||||||
customer_number, company_name, inbound_weight, tester,
|
|
||||||
description, qty_to_sales, weight_to_sales, finish_date, notes, status
|
|
||||||
FROM tabPallet
|
|
||||||
WHERE date_reserved IS NULL
|
|
||||||
AND (customer_number IS NULL OR customer_number = '')
|
|
||||||
AND pallet_number NOT IN ('""" + junk_list + """')
|
|
||||||
AND pallet_number NOT LIKE '999%'
|
|
||||||
AND pallet_number REGEXP '^[0-9]'
|
|
||||||
ORDER BY CAST(pallet_number AS UNSIGNED) DESC
|
|
||||||
LIMIT 1
|
|
||||||
""", as_dict=True)
|
|
||||||
|
|
||||||
input_row = None
|
result = []
|
||||||
if empty_pallet:
|
if empty_pallet:
|
||||||
empty_pallet[0]["_is_new"] = True
|
empty_pallet[0]["_is_new"] = True
|
||||||
input_row = empty_pallet[0]
|
result.append(empty_pallet[0])
|
||||||
|
result.extend(pallets)
|
||||||
|
|
||||||
return {
|
return {"pallets": result, "total": total, "page": page, "page_size": page_size}
|
||||||
"pallets": pallets,
|
|
||||||
"input_row": input_row,
|
|
||||||
"total": total,
|
|
||||||
"page": page,
|
|
||||||
"page_size": page_size
|
|
||||||
}
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def update_pallet(docname, field, value):
|
def update_pallet(docname, field, value):
|
||||||
|
|||||||
Reference in New Issue
Block a user