mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-17 11:52:38 +00:00
feat: Allow to edit stock UOM qty for Stock Entry
(cherry picked from commit b0e9ad198f)
This commit is contained in:
committed by
Mergify
parent
d69464ebdf
commit
ece43bd79b
@@ -9,6 +9,8 @@ frappe.ui.form.on("Stock Entry", {
|
||||
setup: function (frm) {
|
||||
frm.ignore_doctypes_on_cancel_all = ["Serial and Batch Bundle"];
|
||||
|
||||
frm.trigger("toggle_enable_for_stock_uom_qty");
|
||||
|
||||
frm.set_indicator_formatter("item_code", function (doc) {
|
||||
if (!doc.s_warehouse) {
|
||||
return "blue";
|
||||
@@ -276,6 +278,20 @@ frappe.ui.form.on("Stock Entry", {
|
||||
});
|
||||
},
|
||||
|
||||
toggle_enable_for_stock_uom_qty: function (frm) {
|
||||
frappe.call({
|
||||
method: "erpnext.stock.doctype.stock_settings.stock_settings.get_enable_stock_uom_editing",
|
||||
callback: (r) => {
|
||||
if (r.message) {
|
||||
frm.fields_dict["items"].grid.toggle_enable(
|
||||
"transfer_qty",
|
||||
r.message.allow_to_edit_stock_uom_qty_for_stock_entry
|
||||
);
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
refresh: function (frm) {
|
||||
frm.trigger("get_items_from_transit_entry");
|
||||
frm.trigger("toggle_warehouse_fields");
|
||||
@@ -1016,6 +1032,21 @@ frappe.ui.form.on("Stock Entry Detail", {
|
||||
frm.events.set_basic_rate(frm, cdt, cdn);
|
||||
},
|
||||
|
||||
transfer_qty(frm, cdt, cdn) {
|
||||
let item = locals[cdt][cdn];
|
||||
let old_conversion_factor = item.conversion_factor;
|
||||
let conversion_factor = 1.0;
|
||||
if (flt(item.qty) && flt(item.transfer_qty)) {
|
||||
conversion_factor = flt(item.transfer_qty) / flt(item.qty);
|
||||
}
|
||||
|
||||
if (old_conversion_factor !== conversion_factor) {
|
||||
item.conversion_factor = conversion_factor;
|
||||
refresh_field("conversion_factor", item.name, item.parentfield);
|
||||
frm.events.set_basic_rate(frm, cdt, cdn);
|
||||
}
|
||||
},
|
||||
|
||||
s_warehouse(frm, cdt, cdn) {
|
||||
frm.events.get_warehouse_details(frm, cdt, cdn);
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"stock_uom",
|
||||
"allow_to_edit_stock_uom_qty_for_sales",
|
||||
"allow_to_edit_stock_uom_qty_for_purchase",
|
||||
"allow_to_edit_stock_uom_qty_for_stock_entry",
|
||||
"allow_uom_with_conversion_rate_defined_in_item",
|
||||
"warehouse_defaults_section",
|
||||
"default_warehouse",
|
||||
@@ -404,6 +405,13 @@
|
||||
"fieldtype": "Check",
|
||||
"label": "Allow to edit stock UOM qty for Purchase documents"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"documentation_url": "https://docs.frappe.io/erpnext/stock-settings#why-to-edit-stock-qty-qty-as-per-stock-uom",
|
||||
"fieldname": "allow_to_edit_stock_uom_qty_for_stock_entry",
|
||||
"fieldtype": "Check",
|
||||
"label": "Allow to edit stock UOM qty for Stock Entry"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"depends_on": "eval: doc.enable_stock_reservation",
|
||||
@@ -594,7 +602,7 @@
|
||||
"index_web_pages_for_search": 1,
|
||||
"issingle": 1,
|
||||
"links": [],
|
||||
"modified": "2026-06-03 12:38:02.202183",
|
||||
"modified": "2026-06-13 12:38:02.202183",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Stock",
|
||||
"name": "Stock Settings",
|
||||
|
||||
@@ -32,6 +32,7 @@ class StockSettings(Document):
|
||||
allow_partial_reservation: DF.Check
|
||||
allow_to_edit_stock_uom_qty_for_purchase: DF.Check
|
||||
allow_to_edit_stock_uom_qty_for_sales: DF.Check
|
||||
allow_to_edit_stock_uom_qty_for_stock_entry: DF.Check
|
||||
allow_to_make_quality_inspection_after_purchase_or_delivery: DF.Check
|
||||
allow_uom_with_conversion_rate_defined_in_item: DF.Check
|
||||
auto_create_serial_and_batch_bundle_for_outward: DF.Check
|
||||
@@ -112,6 +113,7 @@ class StockSettings(Document):
|
||||
self.validate_auto_insert_price_list_rate_if_missing()
|
||||
self.change_precision_for_for_sales()
|
||||
self.change_precision_for_purchase()
|
||||
self.change_precision_for_stock_entry()
|
||||
self.validate_do_not_use_batchwise_valuation()
|
||||
|
||||
def validate_do_not_use_batchwise_valuation(self):
|
||||
@@ -290,6 +292,18 @@ class StockSettings(Document):
|
||||
]
|
||||
self.make_property_setter_for_precision(doctypes)
|
||||
|
||||
def change_precision_for_stock_entry(self):
|
||||
doc_before_save = self.get_doc_before_save()
|
||||
if doc_before_save and (
|
||||
doc_before_save.allow_to_edit_stock_uom_qty_for_stock_entry
|
||||
== self.allow_to_edit_stock_uom_qty_for_stock_entry
|
||||
):
|
||||
return
|
||||
|
||||
if self.allow_to_edit_stock_uom_qty_for_stock_entry:
|
||||
doctypes = ["Stock Entry Detail"]
|
||||
self.make_property_setter_for_precision(doctypes)
|
||||
|
||||
@staticmethod
|
||||
def make_property_setter_for_precision(doctypes):
|
||||
for doctype in doctypes:
|
||||
@@ -322,6 +336,10 @@ def clean_all_descriptions():
|
||||
def get_enable_stock_uom_editing():
|
||||
return frappe.get_single_value(
|
||||
"Stock Settings",
|
||||
["allow_to_edit_stock_uom_qty_for_sales", "allow_to_edit_stock_uom_qty_for_purchase"],
|
||||
[
|
||||
"allow_to_edit_stock_uom_qty_for_sales",
|
||||
"allow_to_edit_stock_uom_qty_for_purchase",
|
||||
"allow_to_edit_stock_uom_qty_for_stock_entry",
|
||||
],
|
||||
as_dict=1,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user