mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-03 20:29:09 +00:00
[rename] [fix] merge should be passed to on_rename method of controller for further processing
This commit is contained in:
@@ -216,7 +216,7 @@ class DocType(TransactionBase):
|
||||
if self.doc.lead_name:
|
||||
sql("update `tabLead` set status='Interested' where name=%s",self.doc.lead_name)
|
||||
|
||||
def on_rename(self, new, old):
|
||||
def on_rename(self, new, old, merge=False):
|
||||
#update customer_name if not naming series
|
||||
if webnotes.defaults.get_global_default('cust_master_name') == 'Customer Name':
|
||||
update_fields = [
|
||||
@@ -244,7 +244,7 @@ class DocType(TransactionBase):
|
||||
for account in webnotes.conn.sql("""select name, account_name from
|
||||
tabAccount where master_name=%s and master_type='Customer'""", old, as_dict=1):
|
||||
if account.account_name != new:
|
||||
webnotes.rename_doc("Account", account.name, new)
|
||||
webnotes.rename_doc("Account", account.name, new, merge=merge)
|
||||
|
||||
#update master_name in doctype account
|
||||
webnotes.conn.sql("""update `tabAccount` set master_name = %s,
|
||||
|
||||
@@ -1,4 +1,60 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import webnotes
|
||||
import unittest
|
||||
|
||||
class TestCustomer(unittest.TestCase):
|
||||
def test_rename(self):
|
||||
self.assertEqual(webnotes.conn.exists("Customer", "_Test Customer 1"),
|
||||
(("_Test Customer 1",),))
|
||||
|
||||
webnotes.rename_doc("Customer", "_Test Customer 1", "_Test Customer 1 Renamed")
|
||||
|
||||
self.assertEqual(webnotes.conn.exists("Customer", "_Test Customer 1 Renamed"),
|
||||
(("_Test Customer 1 Renamed",),))
|
||||
self.assertEqual(webnotes.conn.exists("Customer", "_Test Customer 1"), ())
|
||||
|
||||
def test_merge(self):
|
||||
from webnotes.test_runner import make_test_records
|
||||
make_test_records("Sales Invoice")
|
||||
|
||||
# clear transactions for new name
|
||||
webnotes.conn.sql("""delete from `tabSales Invoice` where customer='_Test Customer 1'""")
|
||||
|
||||
# check if they exist
|
||||
self.assertEqual(webnotes.conn.exists("Customer", "_Test Customer"),
|
||||
(("_Test Customer",),))
|
||||
self.assertEqual(webnotes.conn.exists("Customer", "_Test Customer 1"),
|
||||
(("_Test Customer 1",),))
|
||||
self.assertEqual(webnotes.conn.exists("Account", "_Test Customer - _TC"),
|
||||
(("_Test Customer - _TC",),))
|
||||
self.assertEqual(webnotes.conn.exists("Account", "_Test Customer 1 - _TC"),
|
||||
(("_Test Customer 1 - _TC",),))
|
||||
|
||||
# check if transactions exists
|
||||
self.assertNotEquals(webnotes.conn.sql("""select count(*) from `tabSales Invoice`
|
||||
where customer='_Test Customer'""", )[0][0], 0)
|
||||
self.assertNotEquals(webnotes.conn.sql("""select count(*) from `tabSales Invoice`
|
||||
where debit_to='_Test Customer - _TC'""", )[0][0], 0)
|
||||
|
||||
webnotes.rename_doc("Customer", "_Test Customer", "_Test Customer 1", merge=True)
|
||||
|
||||
# check that no transaction exists for old name
|
||||
self.assertNotEquals(webnotes.conn.sql("""select count(*) from `tabSales Invoice`
|
||||
where customer='_Test Customer 1'""", )[0][0], 0)
|
||||
self.assertNotEquals(webnotes.conn.sql("""select count(*) from `tabSales Invoice`
|
||||
where debit_to='_Test Customer 1 - _TC'""", )[0][0], 0)
|
||||
|
||||
# check that transactions exist for new name
|
||||
self.assertEquals(webnotes.conn.sql("""select count(*) from `tabSales Invoice`
|
||||
where customer='_Test Customer'""", )[0][0], 0)
|
||||
self.assertEquals(webnotes.conn.sql("""select count(*) from `tabSales Invoice`
|
||||
where debit_to='_Test Customer - _TC'""", )[0][0], 0)
|
||||
|
||||
# check that old name doesn't exist
|
||||
self.assertEqual(webnotes.conn.exists("Customer", "_Test Customer"), ())
|
||||
self.assertEqual(webnotes.conn.exists("Account", "_Test Customer - _TC"), ())
|
||||
|
||||
test_records = [
|
||||
[{
|
||||
"doctype": "Customer",
|
||||
@@ -7,5 +63,13 @@ test_records = [
|
||||
"customer_group": "_Test Customer Group",
|
||||
"territory": "_Test Territory",
|
||||
"company": "_Test Company"
|
||||
}],
|
||||
[{
|
||||
"doctype": "Customer",
|
||||
"customer_name": "_Test Customer 1",
|
||||
"customer_type": "Individual",
|
||||
"customer_group": "_Test Customer Group",
|
||||
"territory": "_Test Territory",
|
||||
"company": "_Test Company"
|
||||
}]
|
||||
]
|
||||
Reference in New Issue
Block a user