mirror of
https://github.com/frappe/erpnext.git
synced 2026-10-29 22:57:42 +00:00
fix(stock): do not default to a warehouse the user cannot access
(cherry picked from commit 4a0e95245d)
# Conflicts:
# erpnext/stock/get_item_details.py
This commit is contained in:
@@ -6,6 +6,7 @@ import json
|
||||
|
||||
import frappe
|
||||
from frappe import _, throw
|
||||
from frappe.core.doctype.user_permission.user_permission import get_user_permissions
|
||||
from frappe.model import child_table_fields, default_fields
|
||||
from frappe.model.document import Document
|
||||
from frappe.model.meta import get_field_precision
|
||||
@@ -705,16 +706,27 @@ def get_item_warehouse(item, args, overwrite_warehouse, defaults=None):
|
||||
|
||||
if overwrite_warehouse or not args.warehouse:
|
||||
warehouse = (
|
||||
<<<<<<< HEAD
|
||||
args.get("set_warehouse")
|
||||
or defaults.item_defaults.get("default_warehouse")
|
||||
or defaults.item_group_defaults.get("default_warehouse")
|
||||
or defaults.brand_defaults.get("default_warehouse")
|
||||
or args.get("warehouse")
|
||||
=======
|
||||
ctx.set_warehouse
|
||||
or get_accessible_warehouse(
|
||||
defaults.item_defaults.get("default_warehouse"),
|
||||
defaults.item_group_defaults.get("default_warehouse"),
|
||||
defaults.brand_defaults.get("default_warehouse"),
|
||||
)
|
||||
or ctx.warehouse
|
||||
>>>>>>> 4a0e952 (fix(stock): do not default to a warehouse the user cannot access)
|
||||
)
|
||||
|
||||
else:
|
||||
warehouse = args.get("warehouse")
|
||||
|
||||
<<<<<<< HEAD
|
||||
if not warehouse:
|
||||
default_warehouse = frappe.get_single_value("Stock Settings", "default_warehouse")
|
||||
if (
|
||||
@@ -722,10 +734,30 @@ def get_item_warehouse(item, args, overwrite_warehouse, defaults=None):
|
||||
and frappe.get_cached_value("Warehouse", default_warehouse, "company") == args.company
|
||||
):
|
||||
return default_warehouse
|
||||
=======
|
||||
if not warehouse and ctx.company:
|
||||
return get_accessible_warehouse(frappe.get_cached_value("Company", ctx.company, "default_warehouse"))
|
||||
>>>>>>> 4a0e952 (fix(stock): do not default to a warehouse the user cannot access)
|
||||
|
||||
return warehouse
|
||||
|
||||
|
||||
def get_accessible_warehouse(*warehouses: str | None) -> str | None:
|
||||
"""First of `warehouses` the user's Warehouse User Permissions allow."""
|
||||
warehouses = [warehouse for warehouse in warehouses if warehouse]
|
||||
if not get_user_permissions().get("Warehouse"):
|
||||
return next(iter(warehouses), None)
|
||||
|
||||
return next(
|
||||
(
|
||||
warehouse
|
||||
for warehouse in warehouses
|
||||
if erpnext._is_within_user_permissions("Warehouse", warehouse)
|
||||
),
|
||||
None,
|
||||
)
|
||||
|
||||
|
||||
def update_barcode_value(out):
|
||||
barcode_data = get_barcode_data([out])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user