Skip to content

Commit 0422117

Browse files
mihir-kandoimergify[bot]
authored andcommitted
fix: unable to submit subcontracting order if created from material request
(cherry picked from commit 3732348)
1 parent 3fcda3a commit 0422117

4 files changed

Lines changed: 6 additions & 22 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
@@ -196,6 +196,9 @@ def before_validate(self):
196196
self.set_has_unit_price_items()
197197
self.flags.allow_zero_qty = self.has_unit_price_items
198198

199+
if self.is_subcontracted:
200+
self.status_updater[0]["source_field"] = "fg_item_qty"
201+
199202
def validate(self):
200203
super().validate()
201204

erpnext/controllers/status_updater.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def validate_status(status, options):
111111
["Pending", "eval:self.status != 'Stopped' and self.per_ordered == 0 and self.docstatus == 1"],
112112
[
113113
"Ordered",
114-
"eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type in ['Purchase', 'Manufacture']",
114+
"eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type in ['Purchase', 'Manufacture', 'Subcontracting']",
115115
],
116116
[
117117
"Transferred",

erpnext/stock/doctype/material_request/material_request_list.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ frappe.listview_settings["Material Request"] = {
2525
) {
2626
return [__("Partially Received"), "yellow", "per_ordered,<,100"];
2727
} else if (doc.docstatus == 1 && flt(doc.per_ordered, precision) < 100) {
28-
return [__("Partially ordered"), "yellow", "per_ordered,<,100"];
28+
return [__("Partially Ordered"), "yellow", "per_ordered,<,100"];
2929
} else if (doc.docstatus == 1 && flt(doc.per_ordered, precision) == 100) {
3030
if (
3131
doc.material_request_type == "Purchase" &&
@@ -35,7 +35,7 @@ frappe.listview_settings["Material Request"] = {
3535
return [__("Partially Received"), "yellow", "per_received,<,100"];
3636
} else if (doc.material_request_type == "Purchase" && flt(doc.per_received, precision) == 100) {
3737
return [__("Received"), "green", "per_received,=,100"];
38-
} else if (["Purchase", "Manufacture"].includes(doc.material_request_type)) {
38+
} else if (["Purchase", "Manufacture", "Subcontracting"].includes(doc.material_request_type)) {
3939
return [__("Ordered"), "green", "per_ordered,=,100"];
4040
} else if (doc.material_request_type == "Material Transfer") {
4141
return [__("Transfered"), "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
@@ -81,23 +81,6 @@ class SubcontractingOrder(SubcontractingController):
8181
transaction_date: DF.Date
8282
# end: auto-generated types
8383

84-
def __init__(self, *args, **kwargs):
85-
super().__init__(*args, **kwargs)
86-
87-
self.status_updater = [
88-
{
89-
"source_dt": "Subcontracting Order Item",
90-
"target_dt": "Material Request Item",
91-
"join_field": "material_request_item",
92-
"target_field": "ordered_qty",
93-
"target_parent_dt": "Material Request",
94-
"target_parent_field": "per_ordered",
95-
"target_ref_field": "stock_qty",
96-
"source_field": "qty",
97-
"percent_join_field": "material_request",
98-
}
99-
]
100-
10184
def onload(self):
10285
self.set_onload(
10386
"over_transfer_allowance",
@@ -117,12 +100,10 @@ def validate(self):
117100
self.reset_default_field_value("set_warehouse", "items", "warehouse")
118101

119102
def on_submit(self):
120-
self.update_prevdoc_status()
121103
self.update_status()
122104
self.update_subcontracted_quantity_in_po()
123105

124106
def on_cancel(self):
125-
self.update_prevdoc_status()
126107
self.update_status()
127108
self.update_subcontracted_quantity_in_po(cancel=True)
128109

0 commit comments

Comments
 (0)