mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-12 22:21:50 +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) {
|
setup: function (frm) {
|
||||||
frm.ignore_doctypes_on_cancel_all = ["Serial and Batch Bundle"];
|
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) {
|
frm.set_indicator_formatter("item_code", function (doc) {
|
||||||
if (!doc.s_warehouse) {
|
if (!doc.s_warehouse) {
|
||||||
return "blue";
|
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) {
|
refresh: function (frm) {
|
||||||
frm.trigger("get_items_from_transit_entry");
|
frm.trigger("get_items_from_transit_entry");
|
||||||
frm.trigger("toggle_warehouse_fields");
|
frm.trigger("toggle_warehouse_fields");
|
||||||
@@ -1016,6 +1032,21 @@ frappe.ui.form.on("Stock Entry Detail", {
|
|||||||
frm.events.set_basic_rate(frm, cdt, cdn);
|
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) {
|
s_warehouse(frm, cdt, cdn) {
|
||||||
frm.events.get_warehouse_details(frm, cdt, cdn);
|
frm.events.get_warehouse_details(frm, cdt, cdn);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
"stock_uom",
|
"stock_uom",
|
||||||
"allow_to_edit_stock_uom_qty_for_sales",
|
"allow_to_edit_stock_uom_qty_for_sales",
|
||||||
"allow_to_edit_stock_uom_qty_for_purchase",
|
"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",
|
"allow_uom_with_conversion_rate_defined_in_item",
|
||||||
"warehouse_defaults_section",
|
"warehouse_defaults_section",
|
||||||
"default_warehouse",
|
"default_warehouse",
|
||||||
@@ -404,6 +405,13 @@
|
|||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"label": "Allow to edit stock UOM qty for Purchase documents"
|
"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",
|
"default": "0",
|
||||||
"depends_on": "eval: doc.enable_stock_reservation",
|
"depends_on": "eval: doc.enable_stock_reservation",
|
||||||
@@ -594,7 +602,7 @@
|
|||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"issingle": 1,
|
"issingle": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2026-06-03 12:38:02.202183",
|
"modified": "2026-06-13 12:38:02.202183",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Stock",
|
"module": "Stock",
|
||||||
"name": "Stock Settings",
|
"name": "Stock Settings",
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ class StockSettings(Document):
|
|||||||
allow_partial_reservation: DF.Check
|
allow_partial_reservation: DF.Check
|
||||||
allow_to_edit_stock_uom_qty_for_purchase: 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_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_to_make_quality_inspection_after_purchase_or_delivery: DF.Check
|
||||||
allow_uom_with_conversion_rate_defined_in_item: DF.Check
|
allow_uom_with_conversion_rate_defined_in_item: DF.Check
|
||||||
auto_create_serial_and_batch_bundle_for_outward: 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.validate_auto_insert_price_list_rate_if_missing()
|
||||||
self.change_precision_for_for_sales()
|
self.change_precision_for_for_sales()
|
||||||
self.change_precision_for_purchase()
|
self.change_precision_for_purchase()
|
||||||
|
self.change_precision_for_stock_entry()
|
||||||
self.validate_do_not_use_batchwise_valuation()
|
self.validate_do_not_use_batchwise_valuation()
|
||||||
|
|
||||||
def validate_do_not_use_batchwise_valuation(self):
|
def validate_do_not_use_batchwise_valuation(self):
|
||||||
@@ -290,6 +292,18 @@ class StockSettings(Document):
|
|||||||
]
|
]
|
||||||
self.make_property_setter_for_precision(doctypes)
|
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
|
@staticmethod
|
||||||
def make_property_setter_for_precision(doctypes):
|
def make_property_setter_for_precision(doctypes):
|
||||||
for doctype in doctypes:
|
for doctype in doctypes:
|
||||||
@@ -322,6 +336,10 @@ def clean_all_descriptions():
|
|||||||
def get_enable_stock_uom_editing():
|
def get_enable_stock_uom_editing():
|
||||||
return frappe.get_single_value(
|
return frappe.get_single_value(
|
||||||
"Stock Settings",
|
"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,
|
as_dict=1,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user