Skip to content

Commit 3732348

Browse files
committed
fix: unable to submit subcontracting order if created from material request
1 parent 024c268 commit 3732348

4 files changed

Lines changed: 6 additions & 29 deletions

File tree

erpnext/buying/doctype/purchase_order/purchase_order.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@ def before_validate(self):
191191
self.set_has_unit_price_items()
192192
self.flags.allow_zero_qty = self.has_unit_price_items
193193

194+
if self.is_subcontracted:
195+
self.status_updater[0]["source_field"] = "fg_item_qty"
196+
194197
def validate(self):
195198
super().validate()
196199

erpnext/controllers/status_updater.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def validate_status(status, options):
119119
["Pending", "eval:self.status != 'Stopped' and self.per_ordered == 0 and self.docstatus == 1"],
120120
[
121121
"Ordered",
122-
"eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type in ['Purchase', 'Manufacture']",
122+
"eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type in ['Purchase', 'Manufacture', 'Subcontracting']",
123123
],
124124
[
125125
"Transferred",
@@ -511,13 +511,6 @@ def _update_children(self, args, update_modified):
511511
if d.doctype != args["source_dt"]:
512512
continue
513513

514-
if (
515-
d.get("material_request")
516-
and frappe.db.get_value("Material Request", d.material_request, "material_request_type")
517-
== "Subcontracting"
518-
):
519-
args.update({"source_field": "fg_item_qty"})
520-
521514
self._update_modified(args, update_modified)
522515

523516
# updates qty in the child table

erpnext/stock/doctype/material_request/material_request_list.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ frappe.listview_settings["Material Request"] = {
2626
) {
2727
return [__("Partially Received"), "yellow", "per_ordered,<,100"];
2828
} else if (doc.docstatus == 1 && flt(doc.per_ordered, precision) < 100) {
29-
return [__("Partially ordered"), "yellow", "per_ordered,<,100"];
29+
return [__("Partially Ordered"), "yellow", "per_ordered,<,100"];
3030
} else if (doc.docstatus == 1 && flt(doc.per_ordered, precision) == 100) {
3131
if (
3232
doc.material_request_type == "Purchase" &&
@@ -36,7 +36,7 @@ frappe.listview_settings["Material Request"] = {
3636
return [__("Partially Received"), "yellow", "per_received,<,100"];
3737
} else if (doc.material_request_type == "Purchase" && flt(doc.per_received, precision) == 100) {
3838
return [__("Received"), "green", "per_received,=,100"];
39-
} else if (["Purchase", "Manufacture"].includes(doc.material_request_type)) {
39+
} else if (["Purchase", "Manufacture", "Subcontracting"].includes(doc.material_request_type)) {
4040
return [__("Ordered"), "green", "per_ordered,=,100"];
4141
} else if (doc.material_request_type == "Material Transfer") {
4242
return [__("Transferred"), "green", "per_ordered,=,100"];

erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -89,23 +89,6 @@ class SubcontractingOrder(SubcontractingController):
8989
transaction_date: DF.Date
9090
# end: auto-generated types
9191

92-
def __init__(self, *args, **kwargs):
93-
super().__init__(*args, **kwargs)
94-
95-
self.status_updater = [
96-
{
97-
"source_dt": "Subcontracting Order Item",
98-
"target_dt": "Material Request Item",
99-
"join_field": "material_request_item",
100-
"target_field": "ordered_qty",
101-
"target_parent_dt": "Material Request",
102-
"target_parent_field": "per_ordered",
103-
"target_ref_field": "stock_qty",
104-
"source_field": "qty",
105-
"percent_join_field": "material_request",
106-
}
107-
]
108-
10992
def onload(self):
11093
self.set_onload(
11194
"over_transfer_allowance",
@@ -140,13 +123,11 @@ def validate(self):
140123
self.reset_default_field_value("set_warehouse", "items", "warehouse")
141124

142125
def on_submit(self):
143-
self.update_prevdoc_status()
144126
self.update_status()
145127
self.update_subcontracted_quantity_in_po()
146128
self.reserve_raw_materials()
147129

148130
def on_cancel(self):
149-
self.update_prevdoc_status()
150131
self.update_status()
151132
self.update_subcontracted_quantity_in_po(cancel=True)
152133

0 commit comments

Comments
 (0)