From 49dd7bee8748d98ac795e31a9442a1f807038aec Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 28 Jan 2014 17:43:10 +0530 Subject: [PATCH] added get_supplier_details and commonified invoice functions --- .../doctype/sales_invoice/sales_invoice.js | 6 +- .../doctype/sales_invoice/sales_invoice.py | 57 +------------ erpnext/accounts/party.py | 85 +++++++++++++++++++ .../purchase_common/purchase_common.js | 35 +------- .../doctype/purchase_order/purchase_order.py | 1 - erpnext/buying/doctype/supplier/supplier.py | 74 +--------------- erpnext/controllers/buying_controller.py | 7 +- erpnext/controllers/selling_controller.py | 11 +-- erpnext/public/js/utils/customer_supplier.js | 36 +++++--- erpnext/selling/doctype/customer/customer.py | 35 +------- .../installation_note/installation_note.js | 2 +- .../doctype/opportunity/opportunity.js | 2 +- erpnext/selling/sales_common.js | 2 +- .../purchase_receipt/purchase_receipt.py | 1 - .../doctype/customer_issue/customer_issue.js | 2 +- .../maintenance_schedule.js | 2 +- .../maintenance_visit/maintenance_visit.js | 2 +- erpnext/utilities/transaction_base.py | 10 --- 18 files changed, 136 insertions(+), 234 deletions(-) create mode 100644 erpnext/accounts/party.py diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 17fd48d29a..33a01fe4c6 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -156,10 +156,10 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte }, customer: function() { - if(this.frm.updating_customer_details) + if(this.frm.updating_party_details) return; - erpnext.selling.get_customer_details(this.frm, - "erpnext.accounts.doctype.sales_invoice.sales_invoice.get_customer_details", + erpnext.selling.get_party_details(this.frm, + "erpnext.accounts.doctype.sales_invoice.sales_invoice.get_party_details", { posting_date: this.frm.doc.posting_date, company: this.frm.doc.company, diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 2af744a49c..4b427bbe6b 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -15,6 +15,8 @@ from webnotes.model.bean import getlist from webnotes.model.code import get_obj from webnotes import _, msgprint +from erpnext.accounts.party import get_party_account, get_due_date + month_map = {'Monthly': 1, 'Quarterly': 3, 'Half-yearly': 6, 'Yearly': 12} from erpnext.controllers.selling_controller import SellingController @@ -149,7 +151,7 @@ class DocType(SellingController): self.set_pos_fields(for_validate) if not self.doc.debit_to: - self.doc.debit_to = get_customer_account(self.doc.company, self.doc.customer) + self.doc.debit_to = get_party_account(self.doc.company, self.doc.customer, "Customer") if not self.doc.due_date: self.doc.due_date = get_due_date(self.doc.posting_date, self.doc.customer, self.doc.debit_to, self.doc.company) @@ -844,59 +846,6 @@ def assign_task_to_owner(inv, msg, users): } assign_to.add(args) -@webnotes.whitelist() -def get_customer_details(company, customer, debit_to, posting_date): - if not webnotes.has_permission("Customer", "read", customer): - webnotes.throw("No Permission") - - from erpnext.selling.doctype.customer.customer import get_customer_details - - if customer: - debit_to = get_customer_account(company, customer) - elif debit_to: - customer = webnotes.conn.get_value('Account',debit_to, 'master_name') - - out = { - "customer": customer, - "debit_to": debit_to, - "due_date": get_due_date(posting_date, customer, debit_to, company) - } - out.update(get_customer_details(customer)) - return out - -def get_customer_account(company, customer): - if not company: - webnotes.throw(_("Please select company first.")) - - if customer: - acc_head = webnotes.conn.get_value("Account", {"master_name":customer, - "master_type":"Customer", "company": company}) - - if not acc_head: - webnotes.throw(_("Customer has no account head in selected Company. Open the customer record and create an Account Head first.")) - - return acc_head - -def get_due_date(posting_date, customer, debit_to, company): - """Set Due Date = Posting Date + Credit Days""" - due_date = None - if posting_date: - credit_days = 0 - if debit_to: - credit_days = webnotes.conn.get_value("Account", debit_to, "credit_days") - if customer and not credit_days: - credit_days = webnotes.conn.get_value("Customer", customer, "credit_days") - if company and not credit_days: - credit_days = webnotes.conn.get_value("Company", company, "credit_days") - - if credit_days: - due_date = add_days(posting_date, credit_days) - else: - due_date = posting_date - - return due_date - - @webnotes.whitelist() def get_bank_cash_account(mode_of_payment): val = webnotes.conn.get_value("Mode of Payment", mode_of_payment, "default_account") diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py new file mode 100644 index 0000000000..db37c4fafd --- /dev/null +++ b/erpnext/accounts/party.py @@ -0,0 +1,85 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals + +import webnotes +from webnotes import _ + +@webnotes.whitelist() +def get_party_details(party=None, account=None, party_type="Customer"): + if not webnotes.has_permission(party_type, "read", party): + webnotes.throw("No Permission") + + if party_type=="Customer": + get_party_details = webnotes.get_attr("erpnext.selling.doctype.customer.customer.get_customer_details") + else: + get_party_details = webnotes.get_attr("erpnext.buying.doctype.supplier.supplier.get_supplier_details") + + if party: + account = get_party_account(company, party, party_type) + elif account: + party = webnotes.conn.get_value('Account', account, 'master_name') + + account_fieldname = "debit_to" if party_type=="Customer" else "credit_to" + + out = { + party_type.lower(): party, + account_fieldname : account, + "due_date": get_due_date(posting_date, party, party_type, account, company) + } + out.update(get_party_details(party)) + return out + +def get_party_account(company, party, party_type): + if not company: + webnotes.throw(_("Please select company first.")) + + if party: + acc_head = webnotes.conn.get_value("Account", {"master_name":party, + "master_type": party_type, "company": company}) + + if not acc_head: + create_party_account(party, party_type, company) + + return acc_head + +def get_due_date(posting_date, party, party_type, account, company): + """Set Due Date = Posting Date + Credit Days""" + due_date = None + if posting_date: + credit_days = 0 + if debit_to: + credit_days = webnotes.conn.get_value("Account", account, "credit_days") + if party and not credit_days: + credit_days = webnotes.conn.get_value(party_type, party, "credit_days") + if company and not credit_days: + credit_days = webnotes.conn.get_value("Company", company, "credit_days") + + due_date = add_days(posting_date, credit_days) if credit_days else posting_date + + return due_date + +def create_party_account(party, party_type, company): + if not company: + webnotes.throw(_("Company is required")) + + company_details = webnotes.conn.get_value("Company", company, + ["abbr", "receivables_group", "payables_group"], as_dict=True) + if not webnotes.conn.exists("Account", (party + " - " + abbr)): + parent_account = company_details.receivables_group \ + if party_type=="Customer" else company_details.payables_group + + # create + account = webnotes.bean({ + "doctype": "Account", + 'account_name': party, + 'parent_account': parent_account, + 'group_or_ledger':'Ledger', + 'company': company, + 'master_type': party_type, + 'master_name': party, + "freeze_account": "No" + }).insert(ignore_permissions=True) + + msgprint(_("Account Created") + ": " + account.doc.name) diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js index d01627a208..3d0f80b9a3 100644 --- a/erpnext/buying/doctype/purchase_common/purchase_common.js +++ b/erpnext/buying/doctype/purchase_common/purchase_common.js @@ -62,42 +62,11 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ }, supplier: function() { - if(this.frm.doc.supplier || this.frm.doc.credit_to) { - if(!this.frm.doc.company) { - this.frm.set_value("supplier", null); - msgprint(wn._("Please specify Company")); - } else { - var me = this; - var buying_price_list = this.frm.doc.buying_price_list; - - return this.frm.call({ - doc: this.frm.doc, - method: "set_supplier_defaults", - freeze: true, - callback: function(r) { - if(!r.exc) { - if(me.frm.doc.buying_price_list !== buying_price_list) me.buying_price_list(); - } - } - }); - } - } + erpnext.utils.get_party_details(this.frm); }, supplier_address: function() { - var me = this; - if (this.frm.doc.supplier) { - return wn.call({ - doc: this.frm.doc, - method: "set_supplier_address", - freeze: true, - args: { - supplier: this.frm.doc.supplier, - address: this.frm.doc.supplier_address, - contact: this.frm.doc.contact_person - }, - }); - } + erpnext.utils.get_address_display(this.frm); }, contact_person: function() { diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index ebfda85366..89e980697d 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -225,7 +225,6 @@ def make_purchase_invoice(source_name, target_doclist=None): def set_missing_values(source, target): bean = webnotes.bean(target) bean.run_method("set_missing_values") - bean.run_method("set_supplier_defaults") def update_item(obj, target, source_parent): target.import_amount = flt(obj.import_amount) - flt(obj.billed_amt) diff --git a/erpnext/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py index 82a526387f..1f61deba13 100644 --- a/erpnext/buying/doctype/supplier/supplier.py +++ b/erpnext/buying/doctype/supplier/supplier.py @@ -8,7 +8,7 @@ import webnotes.defaults from webnotes.utils import cint from webnotes import msgprint, _ from webnotes.model.doc import make_autoname - +from erpnext.accounts.party import create_party_account from erpnext.utilities.transaction_base import TransactionBase @@ -47,88 +47,20 @@ class DocType(TransactionBase): self.update_contact() # create account head - self.create_account_head() + create_party_account(self.doc.name, "Supplier", self.doc.company) # update credit days and limit in account self.update_credit_days_limit() - - def get_payables_group(self): - g = webnotes.conn.sql("select payables_group from tabCompany where name=%s", self.doc.company) - g = g and g[0][0] or '' - if not g: - msgprint("Update Company master, assign a default group for Payables") - raise Exception - return g - - def add_account(self, ac, par, abbr): - ac_bean = webnotes.bean({ - "doctype": "Account", - 'account_name':ac, - 'parent_account':par, - 'group_or_ledger':'Group', - 'company':self.doc.company, - "freeze_account": "No", - }) - ac_bean.ignore_permissions = True - ac_bean.insert() - msgprint(_("Created Group ") + ac) - def get_company_abbr(self): return webnotes.conn.sql("select abbr from tabCompany where name=%s", self.doc.company)[0][0] - def get_parent_account(self, abbr): - if (not self.doc.supplier_type): - msgprint("Supplier Type is mandatory") - raise Exception - - if not webnotes.conn.sql("select name from tabAccount where name=%s and debit_or_credit = 'Credit' and ifnull(is_pl_account, 'No') = 'No'", (self.doc.supplier_type + " - " + abbr)): - - # if not group created , create it - self.add_account(self.doc.supplier_type, self.get_payables_group(), abbr) - - return self.doc.supplier_type + " - " + abbr - def validate(self): #validation for Naming Series mandatory field... if webnotes.defaults.get_global_default('supp_master_name') == 'Naming Series': if not self.doc.naming_series: msgprint("Series is Mandatory.", raise_exception=1) - - def create_account_head(self): - if self.doc.company : - abbr = self.get_company_abbr() - parent_account = self.get_parent_account(abbr) - - if not webnotes.conn.sql("select name from tabAccount where name=%s", (self.doc.name + " - " + abbr)): - ac_bean = webnotes.bean({ - "doctype": "Account", - 'account_name': self.doc.name, - 'parent_account': parent_account, - 'group_or_ledger':'Ledger', - 'company': self.doc.company, - 'account_type': '', - 'tax_rate': '0', - 'master_type': 'Supplier', - 'master_name': self.doc.name, - "freeze_account": "No" - }) - ac_bean.ignore_permissions = True - ac_bean.insert() - - msgprint(_("Created Account Head: ") + ac_bean.doc.name) - else: - self.check_parent_account(parent_account, abbr) - else : - msgprint("Please select Company under which you want to create account head") - - def check_parent_account(self, parent_account, abbr): - if webnotes.conn.get_value("Account", self.doc.name + " - " + abbr, - "parent_account") != parent_account: - ac = webnotes.bean("Account", self.doc.name + " - " + abbr) - ac.doc.parent_account = parent_account - ac.save() - + def get_contacts(self,nm): if nm: contact_details =webnotes.conn.convert_to_lists(webnotes.conn.sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where supplier = '%s'"%nm)) diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index 83b590994d..ee786cf21e 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -7,6 +7,7 @@ from webnotes import _, msgprint from webnotes.utils import flt, _round from erpnext.buying.utils import get_item_details from erpnext.setup.utils import get_company_currency +from erpnext.buying.doctype.supplier.supplier import get_supplier_details from erpnext.controllers.stock_controller import StockController @@ -31,10 +32,8 @@ class BuyingController(StockController): self.set_price_list_currency("Buying") # set contact and address details for supplier, if they are not mentioned - if self.doc.supplier and not (self.doc.contact_person and self.doc.supplier_address): - for fieldname, val in self.get_supplier_defaults().items(): - if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname): - self.doc.fields[fieldname] = val + if self.doc.supplier: + self.doc.update_if_not_set(get_supplier_details(self.doc.supplier)) self.set_missing_item_details(get_item_details) if self.doc.fields.get("__islocal"): diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index aac54820fc..73b341d391 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -35,17 +35,10 @@ class SellingController(StockController): def set_missing_lead_customer_details(self): from erpnext.selling.doctype.customer.customer import get_customer_details if self.doc.customer: - if not (self.doc.contact_person and self.doc.customer_address and self.doc.customer_name): - for fieldname, val in get_customer_details(self.doc.customer).iteritems(): - if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname): - self.doc.fields[fieldname] = val + self.doc.update_if_not_set(get_customer_details(self.doc.customer)) elif self.doc.lead: - if not (self.doc.customer_address and self.doc.customer_name and \ - self.doc.contact_display): - for fieldname, val in self.get_lead_defaults().items(): - if not self.doc.fields.get(fieldname) and self.meta.get_field(fieldname): - self.doc.fields[fieldname] = val + self.doc.update_if_not_set(self.get_lead_defaults()) def set_price_list_and_item_details(self): self.set_price_list_currency("Selling") diff --git a/erpnext/public/js/utils/customer_supplier.js b/erpnext/public/js/utils/customer_supplier.js index ccfbfc9e41..a856377faf 100644 --- a/erpnext/public/js/utils/customer_supplier.js +++ b/erpnext/public/js/utils/customer_supplier.js @@ -2,27 +2,43 @@ // License: GNU General Public License v3. See license.txt wn.provide("erpnext.utils"); -erpnext.utils.get_customer_details = function(frm, method, args) { - if(!method) - method = "erpnext.selling.doctype.customer.customer.get_customer_details"; - if(!args) - args = { customer: frm.doc.customer }; +erpnext.utils.get_party_details = function(frm, method, args) { + if(!method) { + if(frm.doc.customer) { + method = "erpnext.selling.doctype.customer.customer.get_customer_details"; + } else { + method = "erpnext.buying.doctype.supplier.supplier.get_supplier_details"; + } + } + if(!args) { + if(frm.doc.customer) { + args = { customer: frm.doc.customer }; + } else { + args = { supplier: frm.doc.supplier }; + } + } wn.call({ method: method, args: args, callback: function(r) { if(r.message) { - frm.updating_customer_details = true; + frm.updating_party_details = true; frm.set_value(r.message); - frm.updating_customer_details = false; + frm.updating_party_details = false; } } }); } erpnext.utils.get_address_display = function(frm, address_field) { - if(frm.updating_customer_details) return; - if(!address_field) address_field = "customer_address"; + if(frm.updating_party_details) return; + if(!address_field) { + if(frm.doc.customer) { + address_field = "customer_address"; + } else { + address_field = "supplier_address"; + } + } wn.call({ method: "erpnext.utilities.doctype.address.address.get_address_display", args: {address: frm.doc[address_field] }, @@ -34,7 +50,7 @@ erpnext.utils.get_address_display = function(frm, address_field) { } erpnext.utils.get_contact_details = function(frm) { - if(frm.updating_customer_details) return; + if(frm.updating_party_details) return; wn.call({ method: "erpnext.utilities.doctype.contact.contact.get_contact_details", args: {address: frm.doc.contact_person }, diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py index 06b80bbca6..fda93daf74 100644 --- a/erpnext/selling/doctype/customer/customer.py +++ b/erpnext/selling/doctype/customer/customer.py @@ -12,6 +12,7 @@ import webnotes.defaults from erpnext.utilities.transaction_base import TransactionBase from erpnext.utilities.doctype.address.address import get_address_display from erpnext.utilities.doctype.contact.contact import get_contact_details +from erpnext.accounts.party import create_party_account class DocType(TransactionBase): def __init__(self, doc, doclist=[]): @@ -29,14 +30,6 @@ class DocType(TransactionBase): def get_company_abbr(self): return webnotes.conn.get_value('Company', self.doc.company, 'abbr') - - def get_receivables_group(self): - g = webnotes.conn.sql("select receivables_group from tabCompany where name=%s", self.doc.company) - g = g and g[0][0] or '' - if not g: - msgprint("Update Company master, assign a default group for Receivables") - raise Exception - return g def validate_values(self): if webnotes.defaults.get_global_default('cust_master_name') == 'Naming Series' and not self.doc.naming_series: @@ -57,29 +50,6 @@ class DocType(TransactionBase): webnotes.conn.sql("""update `tabContact` set customer_name=%s, modified=NOW() where customer=%s""", (self.doc.customer_name, self.doc.name)) - def create_account_head(self): - if self.doc.company : - abbr = self.get_company_abbr() - if not webnotes.conn.exists("Account", (self.doc.name + " - " + abbr)): - parent_account = self.get_receivables_group() - # create - ac_bean = webnotes.bean({ - "doctype": "Account", - 'account_name': self.doc.name, - 'parent_account': parent_account, - 'group_or_ledger':'Ledger', - 'company':self.doc.company, - 'master_type':'Customer', - 'master_name':self.doc.name, - "freeze_account": "No" - }) - ac_bean.ignore_permissions = True - ac_bean.insert() - - msgprint(_("Account Head") + ": " + ac_bean.doc.name + _(" created")) - else : - msgprint(_("Please Select Company under which you want to create account head")) - def update_credit_days_limit(self): webnotes.conn.sql("""update tabAccount set credit_days = %s, credit_limit = %s where master_type='Customer' and master_name = %s""", @@ -113,7 +83,8 @@ class DocType(TransactionBase): self.update_contact() # create account head - self.create_account_head() + create_party_account(self.doc.name, "Customer", self.doc.company) + # update credit days and limit in account self.update_credit_days_limit() #create address and contact from lead diff --git a/erpnext/selling/doctype/installation_note/installation_note.js b/erpnext/selling/doctype/installation_note/installation_note.js index c666247cbb..1373225f06 100644 --- a/erpnext/selling/doctype/installation_note/installation_note.js +++ b/erpnext/selling/doctype/installation_note/installation_note.js @@ -6,7 +6,7 @@ cur_frm.cscript.fname = "installed_item_details"; wn.ui.form.on_change("Installation Note", "customer", - function(frm) { erpnext.utils.get_customer_details(frm); }); + function(frm) { erpnext.utils.get_party_details(frm); }); wn.ui.form.on_change("Installation Note", "customer_address", function(frm) { erpnext.utils.get_address_display(frm); }); diff --git a/erpnext/selling/doctype/opportunity/opportunity.js b/erpnext/selling/doctype/opportunity/opportunity.js index fd449fa2e8..8731f2e483 100644 --- a/erpnext/selling/doctype/opportunity/opportunity.js +++ b/erpnext/selling/doctype/opportunity/opportunity.js @@ -4,7 +4,7 @@ {% include 'utilities/doctype/sms_control/sms_control.js' %}; wn.ui.form.on_change("Opportunity", "customer", function(frm) { - erpnext.utils.get_customer_details(frm) }); + erpnext.utils.get_party_details(frm) }); wn.ui.form.on_change("Opportunity", "customer_address", erpnext.utils.get_address_display); wn.ui.form.on_change("Opportunity", "contact_person", erpnext.utils.get_contact_details); diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index e2cde557e7..2f25deca83 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -104,7 +104,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }, customer: function() { - erpnext.utils.get_customer_details(this.frm); + erpnext.utils.get_party_details(this.frm); }, customer_address: function() { diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 7a33971542..955262f77c 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -301,7 +301,6 @@ def make_purchase_invoice(source_name, target_doclist=None): def set_missing_values(source, target): bean = webnotes.bean(target) bean.run_method("set_missing_values") - bean.run_method("set_supplier_defaults") doclist = get_mapped_doclist("Purchase Receipt", source_name, { "Purchase Receipt": { diff --git a/erpnext/support/doctype/customer_issue/customer_issue.js b/erpnext/support/doctype/customer_issue/customer_issue.js index d4cdbc2d1a..36bfe97266 100644 --- a/erpnext/support/doctype/customer_issue/customer_issue.js +++ b/erpnext/support/doctype/customer_issue/customer_issue.js @@ -4,7 +4,7 @@ wn.provide("erpnext.support"); wn.ui.form.on_change("Customer Issue", "customer", function(frm) { - erpnext.utils.get_customer_details(frm) }); + erpnext.utils.get_party_details(frm) }); wn.ui.form.on_change("Customer Issue", "customer_address", erpnext.utils.get_address_display); wn.ui.form.on_change("Customer Issue", "contact_person", diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js index 8c34736a84..c8af280d89 100644 --- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js +++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js @@ -4,7 +4,7 @@ wn.provide("erpnext.support"); wn.ui.form.on_change("Maintenance Schedule", "customer", function(frm) { - erpnext.utils.get_customer_details(frm) }); + erpnext.utils.get_party_details(frm) }); wn.ui.form.on_change("Maintenance Schedule", "customer_address", erpnext.utils.get_address_display); wn.ui.form.on_change("Maintenance Schedule", "contact_person", diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js index 5d1aa540b1..186e07c1c3 100644 --- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js +++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js @@ -4,7 +4,7 @@ wn.provide("erpnext.support"); wn.ui.form.on_change("Maintenance Visit", "customer", function(frm) { - erpnext.utils.get_customer_details(frm) }); + erpnext.utils.get_party_details(frm) }); wn.ui.form.on_change("Maintenance Visit", "customer_address", erpnext.utils.get_address_display); wn.ui.form.on_change("Maintenance Visit", "contact_person", diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index d58a453ea0..02416291bd 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -45,16 +45,6 @@ class TransactionBase(StatusUpdater): break return self._party_type_and_name - - def get_supplier_defaults(self): - from erpnext.buying.doctype.supplier.supplier import get_supplier_details - return get_supplier_details(self.doc.supplier) - - def set_supplier_defaults(self): - from erpnext.buying.doctype.supplier.supplier import get_supplier_details - for fieldname, val in get_supplier_details(self.doc.supplier).iteritems(): - if self.meta.get_field(fieldname): - self.doc.fields[fieldname] = val def get_lead_defaults(self): out = self.get_default_address_and_contact("lead")