mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-11 05:31:48 +00:00
Merge pull request #57392 from mihir-kandoi/fix/canonical-default-warehouse-names
fix: create default warehouses with untranslated names
This commit is contained in:
@@ -448,6 +448,8 @@ class Company(NestedSet):
|
||||
frappe.clear_cache()
|
||||
|
||||
def create_default_warehouses(self):
|
||||
from erpnext.setup.utils import identity as _
|
||||
|
||||
parent_warehouse = None
|
||||
for wh_detail in [
|
||||
{"warehouse_name": _("All Warehouses"), "is_group": 1},
|
||||
@@ -459,7 +461,10 @@ class Company(NestedSet):
|
||||
if frappe.db.exists(
|
||||
"Warehouse",
|
||||
{
|
||||
"warehouse_name": wh_detail["warehouse_name"],
|
||||
"warehouse_name": (
|
||||
"in",
|
||||
(wh_detail["warehouse_name"], frappe._(wh_detail["warehouse_name"])),
|
||||
),
|
||||
"company": self.name,
|
||||
},
|
||||
):
|
||||
|
||||
@@ -15,6 +15,7 @@ from erpnext.accounts.doctype.account.chart_of_accounts.chart_of_accounts import
|
||||
from erpnext.accounts.doctype.account.test_account import create_account
|
||||
from erpnext.setup.doctype.company.company import get_default_company_address
|
||||
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
|
||||
from erpnext.stock.doctype.item.item import get_stores_warehouse
|
||||
from erpnext.stock.doctype.item.test_item import make_item
|
||||
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
|
||||
from erpnext.tests.utils import ERPNextTestSuite
|
||||
@@ -214,6 +215,34 @@ class TestCompany(ERPNextTestSuite):
|
||||
self.assertEqual({d.parent_department for d in departments}, {"All Departments"})
|
||||
self.assertIn("Buchhaltung - DTTC", [d.name for d in departments])
|
||||
|
||||
def test_default_warehouses_ignore_session_translations(self):
|
||||
translations = {"Stores": "Lager", "All Warehouses": "Alle Lagerhäuser"}
|
||||
with patch("frappe.translate.get_all_translations", return_value=translations):
|
||||
company = frappe.new_doc("Company")
|
||||
company.company_name = "Warehouse Translation Test Co"
|
||||
company.abbr = "WTTC"
|
||||
company.default_currency = "INR"
|
||||
company.country = "India"
|
||||
company.insert()
|
||||
|
||||
self.assertEqual(get_stores_warehouse(company.name), "Stores - WTTC")
|
||||
|
||||
warehouse_names = frappe.get_all("Warehouse", filters={"company": company.name}, pluck="name")
|
||||
for warehouse_name in (
|
||||
"All Warehouses",
|
||||
"Stores",
|
||||
"Work In Progress",
|
||||
"Finished Goods",
|
||||
"Goods In Transit",
|
||||
):
|
||||
self.assertIn(f"{warehouse_name} - WTTC", warehouse_names)
|
||||
self.assertNotIn("Lager - WTTC", warehouse_names)
|
||||
self.assertEqual(get_stores_warehouse(company.name), "Stores - WTTC")
|
||||
|
||||
frappe.db.set_value("Warehouse", "Stores - WTTC", "warehouse_name", "Lager", update_modified=False)
|
||||
with patch("frappe.translate.get_all_translations", return_value=translations):
|
||||
self.assertEqual(get_stores_warehouse(company.name), "Stores - WTTC")
|
||||
|
||||
def test_change_parent_company(self):
|
||||
child_company = frappe.get_doc("Company", "_Test Company 5")
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ def set_default_settings(args):
|
||||
stock_settings = frappe.get_doc("Stock Settings")
|
||||
stock_settings.item_naming_by = "Item Code"
|
||||
stock_settings.valuation_method = "FIFO"
|
||||
stock_settings.default_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": _("Stores")})
|
||||
stock_settings.default_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": "Stores"})
|
||||
stock_settings.stock_uom = "Nos"
|
||||
stock_settings.auto_indent = 1
|
||||
stock_settings.auto_insert_price_list_rate_if_missing = 1
|
||||
|
||||
@@ -328,9 +328,7 @@ class Item(Document):
|
||||
warehouse_company = frappe.db.get_value("Warehouse", default_warehouse, "company")
|
||||
|
||||
if not default_warehouse or warehouse_company != default.company:
|
||||
default_warehouse = frappe.db.get_value(
|
||||
"Warehouse", {"warehouse_name": _("Stores"), "company": default.company}
|
||||
)
|
||||
default_warehouse = get_stores_warehouse(default.company)
|
||||
|
||||
if default_warehouse:
|
||||
opening_account = frappe.db.get_value(
|
||||
@@ -1776,7 +1774,7 @@ def get_default_warehouse_for_opening_stock(item, company: str, warehouse: str |
|
||||
if warehouse_company == company:
|
||||
return settings_warehouse
|
||||
|
||||
stores_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": _("Stores"), "company": company})
|
||||
stores_warehouse = get_stores_warehouse(company)
|
||||
|
||||
if stores_warehouse:
|
||||
return stores_warehouse
|
||||
@@ -1788,6 +1786,17 @@ def get_default_warehouse_for_opening_stock(item, company: str, warehouse: str |
|
||||
)
|
||||
|
||||
|
||||
def get_stores_warehouse(company: str) -> str | None:
|
||||
stores_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": "Stores", "company": company})
|
||||
|
||||
if not stores_warehouse and _("Stores") != "Stores":
|
||||
stores_warehouse = frappe.db.get_value(
|
||||
"Warehouse", {"warehouse_name": _("Stores"), "company": company}
|
||||
)
|
||||
|
||||
return stores_warehouse
|
||||
|
||||
|
||||
def on_doctype_update():
|
||||
if frappe.db.db_type == "postgres":
|
||||
# The Item link-search (erpnext.controllers.queries.item_query) filters
|
||||
|
||||
@@ -246,7 +246,7 @@ class BootStrapTestData:
|
||||
stock_settings = frappe.get_doc("Stock Settings")
|
||||
stock_settings.item_naming_by = "Item Code"
|
||||
stock_settings.valuation_method = "FIFO"
|
||||
stock_settings.default_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": _("Stores")})
|
||||
stock_settings.default_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": "Stores"})
|
||||
stock_settings.stock_uom = "Nos"
|
||||
stock_settings.auto_indent = 1
|
||||
stock_settings.auto_insert_price_list_rate_if_missing = 1
|
||||
|
||||
Reference in New Issue
Block a user