fix(ux): SCR consumed-qty read-only property
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
index 45289b1..4bf008a 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
@@ -76,26 +76,14 @@
}
});
- let batch_no_field = frm.get_docfield("items", "batch_no");
+ let batch_no_field = frm.get_docfield('items', 'batch_no');
if (batch_no_field) {
batch_no_field.get_route_options_for_new_doc = function(row) {
return {
- "item": row.doc.item_code
+ 'item': row.doc.item_code
}
};
}
-
- frappe.db.get_single_value('Buying Settings', 'backflush_raw_materials_of_subcontract_based_on').then(val => {
- if (val == 'Material Transferred for Subcontract') {
- frm.fields_dict['supplied_items'].grid.grid_rows.forEach((grid_row) => {
- grid_row.docfields.forEach((df) => {
- if (df.fieldname == 'consumed_qty') {
- df.read_only = 0;
- }
- });
- });
- }
- });
},
refresh: (frm) => {
@@ -157,6 +145,8 @@
}
});
}, __('Get Items From'));
+
+ frm.fields_dict.supplied_items.grid.update_docfield_property('consumed_qty', 'read_only', frm.doc.__onload && frm.doc.__onload.backflush_based_on === 'BOM');
}
},
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
index 2c84262..416f4f8 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
@@ -28,6 +28,14 @@
},
]
+ def onload(self):
+ self.set_onload(
+ "backflush_based_on",
+ frappe.db.get_single_value(
+ "Buying Settings", "backflush_raw_materials_of_subcontract_based_on"
+ ),
+ )
+
def update_status_updater_args(self):
if cint(self.is_return):
self.status_updater.extend(