[rename with merge] updated on_rename function for item, warehouse, al tree type documents
diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index 2d49f0d..98808f4 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -18,7 +18,7 @@
import webnotes
from webnotes.utils import flt, fmt_money
-from webnotes import msgprint
+from webnotes import msgprint, _
sql = webnotes.conn.sql
get_value = webnotes.conn.get_value
@@ -196,10 +196,23 @@
if parts[-1].lower() != company_abbr.lower():
parts.append(company_abbr)
-
+
# rename account name
- account_name = " - ".join(parts[:-1])
- sql("update `tabAccount` set account_name = %s where name = %s", (account_name, old))
+ new_account_name = " - ".join(parts[:-1])
+ sql("update `tabAccount` set account_name = %s where name = %s", (new_account_name, old))
+
+ if merge:
+ new_name = " - ".join(parts)
+ val = list(webnotes.conn.get_value("Account", new_name,
+ ["group_or_ledger", "debit_or_credit", "is_pl_account"]))
+
+ if val != [self.doc.group_or_ledger, self.doc.debit_or_credit, self.doc.is_pl_account]:
+ msgprint(_("""Merging is only possible if following \
+ properties are same in both records.
+ Group or Ledger, Debit or Credit, Is PL Account"""), raise_exception=1)
+
+ from webnotes.utils.nestedset import rebuild_tree
+ rebuild_tree("Account", "parent_account")
return " - ".join(parts)
diff --git a/accounts/doctype/cost_center/cost_center.py b/accounts/doctype/cost_center/cost_center.py
index e405b4d..8be14c7 100644
--- a/accounts/doctype/cost_center/cost_center.py
+++ b/accounts/doctype/cost_center/cost_center.py
@@ -98,5 +98,7 @@
cost_center_name = " - ".join(parts[:-1])
webnotes.conn.sql("update `tabCost Center` set cost_center_name = %s where name = %s", \
(cost_center_name, old))
+
+ super(DocType, self).on_rename(new, old, merge, "group_or_ledger")
return " - ".join(parts)
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index d743a98..276f660 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -280,8 +280,14 @@
from webnotes.webutils import clear_cache
clear_cache(self.doc.page_name)
- def on_rename(self,newdn,olddn, merge=False):
+ def on_rename(self, newdn, olddn, merge=False):
webnotes.conn.sql("update tabItem set item_code = %s where name = %s", (newdn, olddn))
if self.doc.page_name:
from webnotes.webutils import clear_cache
- clear_cache(self.doc.page_name)
\ No newline at end of file
+ clear_cache(self.doc.page_name)
+
+ if merge:
+ from stock.stock_ledger import update_entries_after
+ for wh in webnotes.conn.sql("""select warehouse from `tabBin`
+ where item_code=%s""", newdn):
+ update_entries_after({"item_code": newdn, "warehouse": wh})
\ No newline at end of file
diff --git a/stock/doctype/warehouse/warehouse.py b/stock/doctype/warehouse/warehouse.py
index 264e459..6f32e15 100644
--- a/stock/doctype/warehouse/warehouse.py
+++ b/stock/doctype/warehouse/warehouse.py
@@ -204,3 +204,9 @@
else:
sql("delete from `tabStock Ledger Entry` where warehouse = %s", self.doc.name)
+ def on_rename(self, newdn, olddn, merge=False):
+ if merge:
+ from stock.stock_ledger import update_entries_after
+ for item_code in webnotes.conn.sql("""select item_code from `tabBin`
+ where warehouse=%s""", newdn):
+ update_entries_after({"item_code": item_code, "warehouse": newdn})