asynchronus issue in get_party_details
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
index ff42169..25a6557 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.js
@@ -227,8 +227,7 @@
"company": doc.company
},
callback: function(r) {
- frappe.model.clear_table("Journal Voucher Detail", "Journal Voucher",
- doc.name, "entries");
+ frappe.model.clear_table(doc, "entries");
if(r.message) {
update_jv_details(doc, r);
}
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index 5713a90..eb6dc02 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -39,7 +39,8 @@
if party_type=="Customer":
out["sales_team"] = [{
"sales_person": d.sales_person,
- "sales_designation": d.sales_designation
+ "sales_designation": d.sales_designation,
+ "allocated_percentage": d.allocated_percentage
} for d in party.get("sales_team")]
return out
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 3abbd03..404dfa7 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -122,17 +122,8 @@
tax_doctype = self.meta.get_field(tax_parentfield).options
- from frappe.model import default_fields
- tax_master = frappe.get_doc(tax_master_doctype, self.get(tax_master_field))
-
- for i, tax in enumerate(tax_master.get(tax_parentfield)):
- tax = tax.as_dict()
-
- for fieldname in default_fields:
- if fieldname in tax:
- del tax[fieldname]
-
- self.append(tax_parentfield, tax)
+ self.extend(tax_parentfield,
+ get_taxes_and_charges(tax_doctype, self.get(tax_master_field)), tax_parentfield)
def set_other_charges(self):
self.set("other_charges", [])
@@ -457,3 +448,20 @@
@frappe.whitelist()
def get_tax_rate(account_head):
return frappe.db.get_value("Account", account_head, "tax_rate")
+
+@frappe.whitelist()
+def get_taxes_and_charges(master_doctype, master_name, tax_parentfield):
+ from frappe.model import default_fields
+ tax_master = frappe.get_doc(master_doctype, master_name)
+
+ taxes_and_charges = []
+ for i, tax in enumerate(tax_master.get(tax_parentfield)):
+ tax = tax.as_dict()
+
+ for fieldname in default_fields:
+ if fieldname in tax:
+ del tax[fieldname]
+
+ taxes_and_charges.append(tax)
+
+ return taxes_and_charges
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index e34f159..9f5306b 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -33,8 +33,12 @@
def set_missing_lead_customer_details(self):
if getattr(self, "customer", None):
from erpnext.accounts.party import _get_party_details
- self.update_if_missing(_get_party_details(self.customer,
- ignore_permissions=getattr(self, "ignore_permissions", None)))
+ party_details = _get_party_details(self.customer,
+ ignore_permissions=getattr(self, "ignore_permissions", None))
+ if not self.meta.get_field("sales_team"):
+ party_details.pop("sales_team")
+
+ self.update_if_missing(party_details)
elif getattr(self, "lead", None):
from erpnext.selling.doctype.lead.lead import get_lead_details
diff --git a/erpnext/public/js/feature_setup.js b/erpnext/public/js/feature_setup.js
index 157de29..a45b602 100644
--- a/erpnext/public/js/feature_setup.js
+++ b/erpnext/public/js/feature_setup.js
@@ -121,12 +121,12 @@
'Sales BOM': {'fields':['currency']},
'Sales Order': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'sales_order_details':['base_price_list_rate','base_amount','base_rate']}
},
-
+
'fs_imports': {
'Purchase Invoice': {
'fields': ['conversion_rate', 'currency', 'grand_total',
'in_words', 'net_total', 'other_charges_added',
- 'other_charges_deducted'],
+ 'other_charges_deducted'],
'entries': ['base_price_list_rate', 'base_amount','base_rate']
},
'Purchase Order': {
@@ -144,7 +144,7 @@
'fields':['conversion_rate','currency']
}
},
-
+
'fs_item_advanced': {
'Item': {'fields':['item_customer_details']}
},
@@ -188,7 +188,7 @@
$(document).bind('form_refresh', function() {
for(var sys_feat in sys_defaults) {
- if(sys_defaults[sys_feat]=='0'
+ if(sys_defaults[sys_feat]=='0'
&& (sys_feat in pscript.feature_dict)) { //"Features to hide" exists
if(cur_frm.doc.doctype in pscript.feature_dict[sys_feat]) {
@@ -196,7 +196,7 @@
if(fort=='fields') {
hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]);
} else if(cur_frm.fields_dict[fort]) {
- cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort], false);
+ cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort], false);
} else {
msgprint(__('Grid "')+fort+__('" does not exists'));
}
diff --git a/erpnext/public/js/transaction.js b/erpnext/public/js/transaction.js
index 65d91c2..1ee06f7 100644
--- a/erpnext/public/js/transaction.js
+++ b/erpnext/public/js/transaction.js
@@ -702,15 +702,20 @@
var me = this;
if(this.frm.doc.taxes_and_charges) {
return this.frm.call({
- doc: this.frm.doc,
- method: "set_other_charges",
+ method: "erpnext.controllers.accounts_controller.get_taxes_and_charges",
+ args: {
+ "master_doctype": "Sales Taxes and Charges Master",
+ "master_name": this.frm.doc.taxes_and_charges,
+ "tax_parentfield": this.other_fname
+ },
callback: function(r) {
if(!r.exc) {
+ me.frm.set_value(me.other_fname, r.message);
me.calculate_taxes_and_totals();
}
}
});
- }
+ });
},
show_item_wise_taxes: function() {