diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index fbeeb80e23b3ecac8064fe1128ad3f7807b72ee0..80b9cee21fe3fd066fc46002ca3af7ad57f7bd71 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -723,7 +723,17 @@ class AccountsController(TransactionBase): ret = get_item_details(args, self, for_validate=for_validate, overwrite_warehouse=False) for fieldname, value in ret.items(): if item.meta.get_field(fieldname) and value is not None: - if item.get(fieldname) is None or fieldname in force_item_fields: + if ( + item.get(fieldname) is None + or fieldname in force_item_fields + or ( + fieldname in ["serial_no", "batch_no"] + and item.get("use_serial_batch_fields") + ) + ): + if fieldname == "batch_no" and not item.batch_no and not item.is_free_item: + item.set("rate", ret.get("rate")) + item.set("price_list_rate", ret.get("price_list_rate")) item.set(fieldname, value) elif fieldname in ["cost_center", "conversion_factor"] and not item.get(fieldname):