mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-29 14:48:26 +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()
|
frappe.clear_cache()
|
||||||
|
|
||||||
def create_default_warehouses(self):
|
def create_default_warehouses(self):
|
||||||
|
from erpnext.setup.utils import identity as _
|
||||||
|
|
||||||
parent_warehouse = None
|
parent_warehouse = None
|
||||||
for wh_detail in [
|
for wh_detail in [
|
||||||
{"warehouse_name": _("All Warehouses"), "is_group": 1},
|
{"warehouse_name": _("All Warehouses"), "is_group": 1},
|
||||||
@@ -459,7 +461,10 @@ class Company(NestedSet):
|
|||||||
if frappe.db.exists(
|
if frappe.db.exists(
|
||||||
"Warehouse",
|
"Warehouse",
|
||||||
{
|
{
|
||||||
"warehouse_name": wh_detail["warehouse_name"],
|
"warehouse_name": (
|
||||||
|
"in",
|
||||||
|
(wh_detail["warehouse_name"], frappe._(wh_detail["warehouse_name"])),
|
||||||
|
),
|
||||||
"company": self.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.accounts.doctype.account.test_account import create_account
|
||||||
from erpnext.setup.doctype.company.company import get_default_company_address
|
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.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.item.test_item import make_item
|
||||||
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
|
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
|
||||||
from erpnext.tests.utils import ERPNextTestSuite
|
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.assertEqual({d.parent_department for d in departments}, {"All Departments"})
|
||||||
self.assertIn("Buchhaltung - DTTC", [d.name for d in 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):
|
def test_change_parent_company(self):
|
||||||
child_company = frappe.get_doc("Company", "_Test Company 5")
|
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 = frappe.get_doc("Stock Settings")
|
||||||
stock_settings.item_naming_by = "Item Code"
|
stock_settings.item_naming_by = "Item Code"
|
||||||
stock_settings.valuation_method = "FIFO"
|
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.stock_uom = "Nos"
|
||||||
stock_settings.auto_indent = 1
|
stock_settings.auto_indent = 1
|
||||||
stock_settings.auto_insert_price_list_rate_if_missing = 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")
|
warehouse_company = frappe.db.get_value("Warehouse", default_warehouse, "company")
|
||||||
|
|
||||||
if not default_warehouse or warehouse_company != default.company:
|
if not default_warehouse or warehouse_company != default.company:
|
||||||
default_warehouse = frappe.db.get_value(
|
default_warehouse = get_stores_warehouse(default.company)
|
||||||
"Warehouse", {"warehouse_name": _("Stores"), "company": default.company}
|
|
||||||
)
|
|
||||||
|
|
||||||
if default_warehouse:
|
if default_warehouse:
|
||||||
opening_account = frappe.db.get_value(
|
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:
|
if warehouse_company == company:
|
||||||
return settings_warehouse
|
return settings_warehouse
|
||||||
|
|
||||||
stores_warehouse = frappe.db.get_value("Warehouse", {"warehouse_name": _("Stores"), "company": company})
|
stores_warehouse = get_stores_warehouse(company)
|
||||||
|
|
||||||
if stores_warehouse:
|
if stores_warehouse:
|
||||||
return 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():
|
def on_doctype_update():
|
||||||
if frappe.db.db_type == "postgres":
|
if frappe.db.db_type == "postgres":
|
||||||
# The Item link-search (erpnext.controllers.queries.item_query) filters
|
# 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 = frappe.get_doc("Stock Settings")
|
||||||
stock_settings.item_naming_by = "Item Code"
|
stock_settings.item_naming_by = "Item Code"
|
||||||
stock_settings.valuation_method = "FIFO"
|
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.stock_uom = "Nos"
|
||||||
stock_settings.auto_indent = 1
|
stock_settings.auto_indent = 1
|
||||||
stock_settings.auto_insert_price_list_rate_if_missing = 1
|
stock_settings.auto_insert_price_list_rate_if_missing = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user