[minor] [fix] fetch contact details

This commit is contained in:
Nabin Hait 2013-07-24 11:30:35 +05:30
parent edac54f58b
commit deff57826a
3 changed files with 31 additions and 23 deletions

View File

@ -104,7 +104,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({
if (this.frm.doc.supplier) { if (this.frm.doc.supplier) {
wn.call({ wn.call({
doc: this.frm.doc, doc: this.frm.doc,
method: "get_supplier_address", method: "set_supplier_address",
freeze: true, freeze: true,
args: { args: {
supplier: this.frm.doc.supplier, supplier: this.frm.doc.supplier,

View File

@ -163,7 +163,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
address: this.frm.doc.customer_address, address: this.frm.doc.customer_address,
contact: this.frm.doc.contact_person contact: this.frm.doc.contact_person
}, },
method: "get_customer_address", method: "set_customer_address",
freeze: true, freeze: true,
callback: function(r) { callback: function(r) {
me.frm.refresh_fields(); me.frm.refresh_fields();

View File

@ -149,7 +149,10 @@ class TransactionBase(StatusUpdater):
ret.update(map_party_contact_details(args['contact'])) ret.update(map_party_contact_details(args['contact']))
return ret return ret
def set_customer_address(self, args):
self.doc.fields.update(self.get_customer_address(args))
# TODO deprecate this - used only in sales_order.js # TODO deprecate this - used only in sales_order.js
def get_shipping_address(self, name): def get_shipping_address(self, name):
shipping_address = get_default_address("customer", name, is_shipping_address=True) shipping_address = get_default_address("customer", name, is_shipping_address=True)
@ -183,6 +186,9 @@ class TransactionBase(StatusUpdater):
} }
ret.update(map_party_contact_details(contact_name=args['contact'])) ret.update(map_party_contact_details(contact_name=args['contact']))
return ret return ret
def set_supplier_address(self, args):
self.doc.fields.update(self.get_supplier_address(args))
# Get Supplier Details # Get Supplier Details
# ----------------------- # -----------------------
@ -389,27 +395,29 @@ def map_party_contact_details(contact_name=None, party_field=None, party_name=No
for fieldname in ["contact_person", "contact_display", "contact_email", for fieldname in ["contact_person", "contact_display", "contact_email",
"contact_mobile", "contact_phone", "contact_designation", "contact_department"]: "contact_mobile", "contact_phone", "contact_designation", "contact_department"]:
out[fieldname] = None out[fieldname] = None
if not contact_name: condition = ""
contact_name = get_default_contact(party_field, party_name) if contact_name:
if party_field: condition = " name = '%s'" % contact_name
contact = webnotes.conn.sql("""select * from `tabContact` where `%s`=%s elif party_field and party_name:
order by is_primary_contact desc, name asc limit 1""" % (party_field, "%s"), condition = " `%s`='%s'" % (party_field, party_name)
(party_name,), as_dict=True)
contact = webnotes.conn.sql("""select * from `tabContact` where %s
order by is_primary_contact desc, name asc limit 1""" % condition, as_dict=True)
if contact: if contact:
contact = contact[0] contact = contact[0]
out.update({ out.update({
"contact_person": contact.get("name"), "contact_person": contact.get("name"),
"contact_display": " ".join(filter(None, "contact_display": " ".join(filter(None,
[contact.get("first_name"), contact.get("last_name")])), [contact.get("first_name"), contact.get("last_name")])),
"contact_email": contact.get("email_id"), "contact_email": contact.get("email_id"),
"contact_mobile": contact.get("mobile_no"), "contact_mobile": contact.get("mobile_no"),
"contact_phone": contact.get("phone"), "contact_phone": contact.get("phone"),
"contact_designation": contact.get("designation"), "contact_designation": contact.get("designation"),
"contact_department": contact.get("department") "contact_department": contact.get("department")
}) })
return out return out
def get_address_territory(address_doc): def get_address_territory(address_doc):