mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-22 04:47:16 +00:00
Compare commits
6 Commits
mergify/bp
...
l10n_crowd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b1f51adce | ||
|
|
dd72c2688b | ||
|
|
8fd0175b06 | ||
|
|
db6e089109 | ||
|
|
a2481e9390 | ||
|
|
dc4b390a9b |
@@ -156,7 +156,7 @@ frappe.query_reports["Accounts Payable"] = {
|
||||
},
|
||||
{
|
||||
fieldname: "for_revaluation_journals",
|
||||
label: __("Revaluation Journals"),
|
||||
label: __("Include Revaluation Journals"),
|
||||
fieldtype: "Check",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -113,7 +113,7 @@ frappe.query_reports["Accounts Payable Summary"] = {
|
||||
},
|
||||
{
|
||||
fieldname: "for_revaluation_journals",
|
||||
label: __("Revaluation Journals"),
|
||||
label: __("Include Revaluation Journals"),
|
||||
fieldtype: "Check",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -183,7 +183,7 @@ frappe.query_reports["Accounts Receivable"] = {
|
||||
},
|
||||
{
|
||||
fieldname: "for_revaluation_journals",
|
||||
label: __("Revaluation Journals"),
|
||||
label: __("Include Revaluation Journals"),
|
||||
fieldtype: "Check",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -141,7 +141,7 @@ frappe.query_reports["Accounts Receivable Summary"] = {
|
||||
},
|
||||
{
|
||||
fieldname: "for_revaluation_journals",
|
||||
label: __("Revaluation Journals"),
|
||||
label: __("Include Revaluation Journals"),
|
||||
fieldtype: "Check",
|
||||
},
|
||||
],
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"hidden": 0,
|
||||
"hidden": 1,
|
||||
"icon": "handshake",
|
||||
"link_to": "CRM",
|
||||
"link_type": "Sidebar",
|
||||
@@ -71,7 +71,7 @@
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"hidden": 0,
|
||||
"hidden": 1,
|
||||
"icon": "headset",
|
||||
"link_to": "Support",
|
||||
"link_type": "Sidebar",
|
||||
@@ -142,7 +142,7 @@
|
||||
"title": "Subcontracting"
|
||||
}
|
||||
],
|
||||
"modified": "2026-09-02 14:58:17.082794",
|
||||
"modified": "2026-09-21 00:00:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "erpnext",
|
||||
"owner": "Administrator",
|
||||
|
||||
3483
erpnext/locale/ar.po
3483
erpnext/locale/ar.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/bg.po
3483
erpnext/locale/bg.po
File diff suppressed because it is too large
Load Diff
3611
erpnext/locale/bs.po
3611
erpnext/locale/bs.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/cs.po
3483
erpnext/locale/cs.po
File diff suppressed because it is too large
Load Diff
3487
erpnext/locale/da.po
3487
erpnext/locale/da.po
File diff suppressed because it is too large
Load Diff
3491
erpnext/locale/de.po
3491
erpnext/locale/de.po
File diff suppressed because it is too large
Load Diff
3495
erpnext/locale/eo.po
3495
erpnext/locale/eo.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/es.po
3483
erpnext/locale/es.po
File diff suppressed because it is too large
Load Diff
3485
erpnext/locale/fa.po
3485
erpnext/locale/fa.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/fr.po
3483
erpnext/locale/fr.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/hi.po
3483
erpnext/locale/hi.po
File diff suppressed because it is too large
Load Diff
3495
erpnext/locale/hr.po
3495
erpnext/locale/hr.po
File diff suppressed because it is too large
Load Diff
3487
erpnext/locale/hu.po
3487
erpnext/locale/hu.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/id.po
3483
erpnext/locale/id.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/it.po
3483
erpnext/locale/it.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/km.po
3483
erpnext/locale/km.po
File diff suppressed because it is too large
Load Diff
3487
erpnext/locale/ko.po
3487
erpnext/locale/ko.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
3487
erpnext/locale/mn.po
3487
erpnext/locale/mn.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/my.po
3483
erpnext/locale/my.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/nb.po
3483
erpnext/locale/nb.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/nl.po
3483
erpnext/locale/nl.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/pl.po
3483
erpnext/locale/pl.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/pt.po
3483
erpnext/locale/pt.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/ro.po
3483
erpnext/locale/ro.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/ru.po
3483
erpnext/locale/ru.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/sl.po
3483
erpnext/locale/sl.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/sr.po
3483
erpnext/locale/sr.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
3543
erpnext/locale/sv.po
3543
erpnext/locale/sv.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/th.po
3483
erpnext/locale/th.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/tr.po
3483
erpnext/locale/tr.po
File diff suppressed because it is too large
Load Diff
3487
erpnext/locale/uz.po
3487
erpnext/locale/uz.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/vi.po
3483
erpnext/locale/vi.po
File diff suppressed because it is too large
Load Diff
3483
erpnext/locale/zh.po
3483
erpnext/locale/zh.po
File diff suppressed because it is too large
Load Diff
19145
erpnext/locale/zh_TW.po
19145
erpnext/locale/zh_TW.po
File diff suppressed because it is too large
Load Diff
@@ -248,6 +248,33 @@ class TestWarehouse(ERPNextTestSuite):
|
||||
|
||||
fetch_stock_accounts.assert_called_once_with(company)
|
||||
|
||||
def test_warehouse_account_company_validation(self):
|
||||
company_1 = "_Test Company"
|
||||
company_2 = "_Test Company 1"
|
||||
|
||||
account_company_2 = frappe.db.get_value(
|
||||
"Account", {"company": company_2, "account_type": "Stock", "is_group": 0}, "name"
|
||||
)
|
||||
|
||||
warehouse = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Warehouse",
|
||||
"warehouse_name": "Test Company Account Mismatch",
|
||||
"company": company_1,
|
||||
"account": account_company_2,
|
||||
}
|
||||
)
|
||||
|
||||
self.assertRaisesRegex(frappe.ValidationError, "does not belong to Company", warehouse.insert)
|
||||
|
||||
warehouse.account = None
|
||||
warehouse.insert()
|
||||
|
||||
warehouse.account = account_company_2
|
||||
self.assertRaisesRegex(frappe.ValidationError, "does not belong to Company", warehouse.save)
|
||||
|
||||
warehouse.delete()
|
||||
|
||||
|
||||
def create_inventory_fallback_company():
|
||||
company = "_Test Company Inventory Fallback"
|
||||
|
||||
@@ -33,6 +33,12 @@ frappe.ui.form.on("Warehouse", {
|
||||
});
|
||||
},
|
||||
|
||||
company: function (frm) {
|
||||
if (frm.doc.account) {
|
||||
frm.set_value("account", "");
|
||||
}
|
||||
},
|
||||
|
||||
refresh: function (frm) {
|
||||
frm.toggle_display("warehouse_name", frm.doc.__islocal);
|
||||
frm.toggle_display(["address_html", "contact_html"], !frm.doc.__islocal);
|
||||
|
||||
@@ -71,9 +71,20 @@ class Warehouse(NestedSet):
|
||||
self.set_onload("stock_exists", self.check_if_sle_exists(non_cancelled_only=True))
|
||||
|
||||
def validate(self):
|
||||
self.validate_warehouse_account()
|
||||
self.validate_inventory_account()
|
||||
self.warn_about_multiple_warehouse_account()
|
||||
|
||||
def validate_warehouse_account(self):
|
||||
if self.account and self.company:
|
||||
account_company = frappe.get_cached_value("Account", self.account, "company")
|
||||
if account_company and account_company != self.company:
|
||||
frappe.throw(
|
||||
_("Account {0} does not belong to Company {1}").format(
|
||||
frappe.bold(self.account), frappe.bold(self.company)
|
||||
)
|
||||
)
|
||||
|
||||
def validate_inventory_account(self):
|
||||
if (
|
||||
not self.is_new()
|
||||
|
||||
Reference in New Issue
Block a user