From 5e9f31cf21e6f274f902d5c488a4be8fe7d96653 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Sun, 7 Apr 2024 11:33:40 +0530 Subject: [PATCH] fix: Ignore permissions while fetching module settings properties --- .../payment_terms_template.json | 12 +++++++- erpnext/controllers/taxes_and_totals.py | 5 ++++ .../public/js/controllers/taxes_and_totals.js | 10 ++++--- erpnext/public/js/controllers/transaction.js | 11 +++++-- .../doctype/sales_order/sales_order.js | 30 ++++++++++++------- .../doctype/sales_order/sales_order.py | 5 ++++ .../doctype/stock_settings/stock_settings.py | 10 +++++++ 7 files changed, 65 insertions(+), 18 deletions(-) diff --git a/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json index c4a2a888182..7ad3615cce2 100644 --- a/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json +++ b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json @@ -35,10 +35,11 @@ } ], "links": [], - "modified": "2020-04-01 15:35:18.112619", + "modified": "2024-04-07 11:26:42.021585", "modified_by": "Administrator", "module": "Accounts", "name": "Payment Terms Template", + "naming_rule": "By fieldname", "owner": "Administrator", "permissions": [ { @@ -76,6 +77,15 @@ "role": "Accounts Manager", "share": 1, "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "report": 1, + "role": "All", + "select": 1, + "share": 1 } ], "sort_field": "modified", diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index f5d89fb95f6..067de3e3b54 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -1081,6 +1081,11 @@ def get_rounded_tax_amount(itemised_tax, precision): row["tax_amount"] = flt(row["tax_amount"], precision) +@frappe.whitelist() +def get_rounding_tax_settings(): + return frappe.db.get_single_value("Accounts Settings", "round_row_wise_tax") + + class init_landed_taxes_and_totals: def __init__(self, doc): self.doc = doc diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 10fa7cebca8..adf05ffb154 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -210,10 +210,12 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { }); } - frappe.db.get_single_value("Accounts Settings", "round_row_wise_tax") - .then((round_row_wise_tax) => { - frappe.flags.round_row_wise_tax = round_row_wise_tax; - }) + frappe.call({ + method: "erpnext.controllers.taxes_and_totals.get_rounding_tax_settings", + callback: function(r) { + frappe.flags.round_off_settings = r.message; + } + }); } determine_exclusive_rate() { diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 7c20e98eedb..b421aeebfb3 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -252,9 +252,14 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe } toggle_enable_for_stock_uom(field) { - frappe.db.get_single_value('Stock Settings', field) - .then(value => { - this.frm.fields_dict["items"].grid.toggle_enable("stock_qty", value); + frappe.call({ + method: 'erpnext.stock.doctype.stock_settings.stock_settings.get_enable_stock_uom_editing', + callback: (r) => { + if (r.message) { + var value = r.message[field]; + this.frm.fields_dict["items"].grid.toggle_enable("stock_qty", value); + } + } }); } diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index 10ba6a73fd7..8d08a37aff2 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -111,16 +111,26 @@ frappe.ui.form.on("Sales Order", { } if (frm.doc.docstatus === 0) { - frappe.db.get_single_value("Stock Settings", "enable_stock_reservation").then((value) => { - if (!value) { - // If `Stock Reservation` is disabled in Stock Settings, set Reserve Stock to 0 and make the field read-only and hidden. - frm.set_value("reserve_stock", 0); - frm.set_df_property("reserve_stock", "read_only", 1); - frm.set_df_property("reserve_stock", "hidden", 1); - frm.fields_dict.items.grid.update_docfield_property("reserve_stock", "hidden", 1); - frm.fields_dict.items.grid.update_docfield_property("reserve_stock", "default", 0); - frm.fields_dict.items.grid.update_docfield_property("reserve_stock", "read_only", 1); - } + frappe.call({ + method: "erpnext.selling.doctype.sales_order.sales_order.get_stock_reservation_status", + callback: function (r) { + if (!r.message) { + frm.set_value("reserve_stock", 0); + frm.set_df_property("reserve_stock", "read_only", 1); + frm.set_df_property("reserve_stock", "hidden", 1); + frm.fields_dict.items.grid.update_docfield_property("reserve_stock", "hidden", 1); + frm.fields_dict.items.grid.update_docfield_property( + "reserve_stock", + "default", + 0 + ); + frm.fields_dict.items.grid.update_docfield_property( + "reserve_stock", + "read_only", + 1 + ); + } + }, }); } } diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index b6092d4a907..bc8991486db 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1709,3 +1709,8 @@ def get_work_order_items(sales_order, for_raw_material_request=0): ) return items + + +@frappe.whitelist() +def get_stock_reservation_status(): + return frappe.db.get_single_value("Stock Settings", "enable_stock_reservation") diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.py b/erpnext/stock/doctype/stock_settings/stock_settings.py index 7fcda1de1d3..b5df094eee7 100644 --- a/erpnext/stock/doctype/stock_settings/stock_settings.py +++ b/erpnext/stock/doctype/stock_settings/stock_settings.py @@ -308,3 +308,13 @@ def clean_all_descriptions(): clean_description = clean_html(item.description) if item.description != clean_description: frappe.db.set_value("Item", item.name, "description", clean_description) + + +@frappe.whitelist() +def get_enable_stock_uom_editing(): + return frappe.get_cached_value( + "Stock Settings", + None, + ["allow_to_edit_stock_uom_qty_for_sales", "allow_to_edit_stock_uom_qty_for_purchase"], + as_dict=1, + )