Fixes for customer / supplier renaming
This commit is contained in:
parent
6e4efa7edd
commit
1279f1d430
@ -325,32 +325,38 @@ def get_actual_expense(args):
|
|||||||
and fiscal_year='%(fiscal_year)s' and company='%(company)s' %(condition)s
|
and fiscal_year='%(fiscal_year)s' and company='%(company)s' %(condition)s
|
||||||
""" % (args))[0][0]
|
""" % (args))[0][0]
|
||||||
|
|
||||||
def rename_account_for(dt, olddn, newdn, merge, company):
|
def rename_account_for(dt, olddn, newdn, merge, company=None):
|
||||||
old_account = get_account_for(dt, olddn)
|
if not company:
|
||||||
if old_account:
|
companies = [d[0] for d in frappe.db.sql("select name from tabCompany")]
|
||||||
new_account = None
|
else:
|
||||||
if not merge:
|
companies = [company]
|
||||||
if old_account == add_abbr_if_missing(olddn, company):
|
|
||||||
new_account = frappe.rename_doc("Account", old_account, newdn)
|
|
||||||
else:
|
|
||||||
existing_new_account = get_account_for(dt, newdn)
|
|
||||||
new_account = frappe.rename_doc("Account", old_account,
|
|
||||||
existing_new_account or newdn, merge=True if existing_new_account else False)
|
|
||||||
|
|
||||||
frappe.db.set_value("Account", new_account or old_account, "master_name", newdn)
|
for company in companies:
|
||||||
|
old_account = get_account_for(dt, olddn, company)
|
||||||
|
if old_account:
|
||||||
|
new_account = None
|
||||||
|
if not merge:
|
||||||
|
if old_account == add_abbr_if_missing(olddn, company):
|
||||||
|
new_account = frappe.rename_doc("Account", old_account, newdn)
|
||||||
|
else:
|
||||||
|
existing_new_account = get_account_for(dt, newdn, company)
|
||||||
|
new_account = frappe.rename_doc("Account", old_account,
|
||||||
|
existing_new_account or newdn, merge=True if existing_new_account else False)
|
||||||
|
|
||||||
|
frappe.db.set_value("Account", new_account or old_account, "master_name", newdn)
|
||||||
|
|
||||||
def add_abbr_if_missing(dn, company):
|
def add_abbr_if_missing(dn, company):
|
||||||
from erpnext.setup.doctype.company.company import get_name_with_abbr
|
from erpnext.setup.doctype.company.company import get_name_with_abbr
|
||||||
return get_name_with_abbr(dn, company)
|
return get_name_with_abbr(dn, company)
|
||||||
|
|
||||||
def get_account_for(account_for_doctype, account_for):
|
def get_account_for(account_for_doctype, account_for, company):
|
||||||
if account_for_doctype in ["Customer", "Supplier"]:
|
if account_for_doctype in ["Customer", "Supplier"]:
|
||||||
account_for_field = "master_type"
|
account_for_field = "master_type"
|
||||||
elif account_for_doctype == "Warehouse":
|
elif account_for_doctype == "Warehouse":
|
||||||
account_for_field = "account_type"
|
account_for_field = "account_type"
|
||||||
|
|
||||||
return frappe.db.get_value("Account", {account_for_field: account_for_doctype,
|
return frappe.db.get_value("Account", {account_for_field: account_for_doctype,
|
||||||
"master_name": account_for})
|
"master_name": account_for, "company": company})
|
||||||
|
|
||||||
def get_currency_precision(currency=None):
|
def get_currency_precision(currency=None):
|
||||||
if not currency:
|
if not currency:
|
||||||
|
@ -88,7 +88,7 @@ class Supplier(TransactionBase):
|
|||||||
|
|
||||||
def before_rename(self, olddn, newdn, merge=False):
|
def before_rename(self, olddn, newdn, merge=False):
|
||||||
from erpnext.accounts.utils import rename_account_for
|
from erpnext.accounts.utils import rename_account_for
|
||||||
rename_account_for("Supplier", olddn, newdn, merge, self.company)
|
rename_account_for("Supplier", olddn, newdn, merge)
|
||||||
|
|
||||||
def after_rename(self, olddn, newdn, merge=False):
|
def after_rename(self, olddn, newdn, merge=False):
|
||||||
set_field = ''
|
set_field = ''
|
||||||
|
@ -121,7 +121,7 @@ class Customer(TransactionBase):
|
|||||||
|
|
||||||
def before_rename(self, olddn, newdn, merge=False):
|
def before_rename(self, olddn, newdn, merge=False):
|
||||||
from erpnext.accounts.utils import rename_account_for
|
from erpnext.accounts.utils import rename_account_for
|
||||||
rename_account_for("Customer", olddn, newdn, merge, self.company)
|
rename_account_for("Customer", olddn, newdn, merge)
|
||||||
|
|
||||||
def after_rename(self, olddn, newdn, merge=False):
|
def after_rename(self, olddn, newdn, merge=False):
|
||||||
set_field = ''
|
set_field = ''
|
||||||
|
@ -52,11 +52,7 @@ def make_maintenance_visit(source_name, target_doc=None):
|
|||||||
target_doc = get_mapped_doc("Customer Issue", source_name, {
|
target_doc = get_mapped_doc("Customer Issue", source_name, {
|
||||||
"Customer Issue": {
|
"Customer Issue": {
|
||||||
"doctype": "Maintenance Visit",
|
"doctype": "Maintenance Visit",
|
||||||
"field_map": {
|
"field_map": {}
|
||||||
"complaint": "description",
|
|
||||||
"doctype": "prevdoc_doctype",
|
|
||||||
"name": "prevdoc_docname"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, target_doc)
|
}, target_doc)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user