refactor!: Subcontract Order Summary
diff --git a/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.js b/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.js
index 6889322..976ff60 100644
--- a/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.js
+++ b/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.js
@@ -14,32 +14,32 @@
},
{
label: __("From Date"),
- fieldname:"from_date",
+ fieldname: "from_date",
fieldtype: "Date",
default: frappe.datetime.add_months(frappe.datetime.get_today(), -1),
reqd: 1
},
{
label: __("To Date"),
- fieldname:"to_date",
+ fieldname: "to_date",
fieldtype: "Date",
default: frappe.datetime.get_today(),
reqd: 1
},
{
- label: __("Purchase Order"),
+ label: __("Subcontracting Order"),
fieldname: "name",
fieldtype: "Link",
- options: "Purchase Order",
- get_query: function() {
+ options: "Subcontracting Order",
+ get_query: function () {
return {
filters: {
docstatus: 1,
- is_subcontracted: 1,
+
company: frappe.query_report.get_filter_value('company')
}
}
}
}
]
-};
+};
\ No newline at end of file
diff --git a/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.json b/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.json
index 526a8d8..7861e49 100644
--- a/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.json
+++ b/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.json
@@ -15,7 +15,7 @@
"name": "Subcontract Order Summary",
"owner": "Administrator",
"prepared_report": 0,
- "ref_doctype": "Purchase Order",
+ "ref_doctype": "Subcontracting Order",
"report_name": "Subcontract Order Summary",
"report_type": "Script Report",
"roles": [
diff --git a/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.py b/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.py
index 3d66637..3750daa 100644
--- a/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.py
+++ b/erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.py
@@ -20,34 +20,33 @@
if orders:
supplied_items = get_supplied_items(orders, report_filters)
- po_details = prepare_subcontracted_data(orders, supplied_items)
- get_subcontracted_data(po_details, data)
+ sco_details = prepare_subcontracted_data(orders, supplied_items)
+ get_subcontracted_data(sco_details, data)
return data
def get_subcontracted_orders(report_filters):
fields = [
- "`tabPurchase Order Item`.`parent` as po_id",
- "`tabPurchase Order Item`.`item_code`",
- "`tabPurchase Order Item`.`item_name`",
- "`tabPurchase Order Item`.`qty`",
- "`tabPurchase Order Item`.`name`",
- "`tabPurchase Order Item`.`received_qty`",
- "`tabPurchase Order`.`status`",
+ "`tabSubcontracting Order Item`.`parent` as sco_id",
+ "`tabSubcontracting Order Item`.`item_code`",
+ "`tabSubcontracting Order Item`.`item_name`",
+ "`tabSubcontracting Order Item`.`qty`",
+ "`tabSubcontracting Order Item`.`name`",
+ "`tabSubcontracting Order Item`.`received_qty`",
+ "`tabSubcontracting Order`.`status`",
]
filters = get_filters(report_filters)
- return frappe.get_all("Purchase Order", fields=fields, filters=filters) or []
+ return frappe.get_all("Subcontracting Order", fields=fields, filters=filters) or []
def get_filters(report_filters):
filters = [
- ["Purchase Order", "docstatus", "=", 1],
- ["Purchase Order", "is_subcontracted", "=", 1],
+ ["Subcontracting Order", "docstatus", "=", 1],
[
- "Purchase Order",
+ "Subcontracting Order",
"transaction_date",
"between",
(report_filters.from_date, report_filters.to_date),
@@ -56,7 +55,7 @@
for field in ["name", "company"]:
if report_filters.get(field):
- filters.append(["Purchase Order", field, "=", report_filters.get(field)])
+ filters.append(["Subcontracting Order", field, "=", report_filters.get(field)])
return filters
@@ -71,16 +70,15 @@
"rm_item_code",
"required_qty",
"supplied_qty",
- "returned_qty",
"total_supplied_qty",
"consumed_qty",
"reference_name",
]
- filters = {"parent": ("in", [d.po_id for d in orders]), "docstatus": 1}
+ filters = {"parent": ("in", [d.sco_id for d in orders]), "docstatus": 1}
supplied_items = {}
- for row in frappe.get_all("Purchase Order Item Supplied", fields=fields, filters=filters):
+ for row in frappe.get_all("Subcontracting Order Supplied Item", fields=fields, filters=filters):
new_key = (row.parent, row.reference_name, row.main_item_code)
supplied_items.setdefault(new_key, []).append(row)
@@ -89,24 +87,24 @@
def prepare_subcontracted_data(orders, supplied_items):
- po_details = {}
+ sco_details = {}
for row in orders:
- key = (row.po_id, row.name, row.item_code)
- if key not in po_details:
- po_details.setdefault(key, frappe._dict({"po_item": row, "supplied_items": []}))
+ key = (row.sco_id, row.name, row.item_code)
+ if key not in sco_details:
+ sco_details.setdefault(key, frappe._dict({"sco_item": row, "supplied_items": []}))
- details = po_details[key]
+ details = sco_details[key]
if supplied_items.get(key):
for supplied_item in supplied_items[key]:
details["supplied_items"].append(supplied_item)
- return po_details
+ return sco_details
-def get_subcontracted_data(po_details, data):
- for key, details in po_details.items():
- res = details.po_item
+def get_subcontracted_data(sco_details, data):
+ for key, details in sco_details.items():
+ res = details.sco_item
for index, row in enumerate(details.supplied_items):
if index != 0:
res = {}
@@ -118,10 +116,10 @@
def get_columns():
return [
{
- "label": _("Purchase Order"),
- "fieldname": "po_id",
+ "label": _("Subcontracting Order"),
+ "fieldname": "sco_id",
"fieldtype": "Link",
- "options": "Purchase Order",
+ "options": "Subcontracting Order",
"width": 100,
},
{"label": _("Status"), "fieldname": "status", "fieldtype": "Data", "width": 80},
@@ -144,5 +142,4 @@
{"label": _("Required Qty"), "fieldname": "required_qty", "fieldtype": "Float", "width": 110},
{"label": _("Supplied Qty"), "fieldname": "supplied_qty", "fieldtype": "Float", "width": 110},
{"label": _("Consumed Qty"), "fieldname": "consumed_qty", "fieldtype": "Float", "width": 120},
- {"label": _("Returned Qty"), "fieldname": "returned_qty", "fieldtype": "Float", "width": 110},
]