Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index b728475..a146e93 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -174,16 +174,20 @@
def get_customer_account(self):
"""Get Account Head to which amount needs to be Debited based on Customer"""
if not self.doc.company:
- msgprint("Please select company first and re-select the customer after doing so", raise_exception=1)
+ msgprint("Please select company first and re-select the customer after doing so",
+ raise_exception=1)
+ if self.doc.customer:
+ acc_head = webnotes.conn.sql("""select name from `tabAccount`
+ where (name = %s or (master_name = %s and master_type = 'customer'))
+ and docstatus != 2""",
+ (cstr(self.doc.customer) + " - " + self.get_company_abbr(), self.doc.customer))
- acc_head = webnotes.conn.sql("""select name from `tabAccount`
- where (name = %s or (master_name = %s and master_type = 'customer')) and docstatus != 2""",
- (cstr(self.doc.customer) + " - " + self.get_company_abbr(),self.doc.customer))
-
- if acc_head and acc_head[0][0]:
- return acc_head[0][0]
- else:
- msgprint("%s does not have an Account Head in %s. You must first create it from the Customer Master" % (self.doc.customer, self.doc.company))
+ if acc_head and acc_head[0][0]:
+ return acc_head[0][0]
+ else:
+ msgprint("%s does not have an Account Head in %s. \
+ You must first create it from the Customer Master" %
+ (self.doc.customer, self.doc.company))
def get_debit_to(self):
acc_head = self.get_customer_account()
diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js
index 7092483..cfc546c 100644
--- a/selling/doctype/opportunity/opportunity.js
+++ b/selling/doctype/opportunity/opportunity.js
@@ -207,6 +207,7 @@
if(r.message == 'true'){
$i('update_enquiry_dialog_response').innerHTML = 'Done';
e_lost_dialog.hide();
+ cur_frm.refresh();
}
}
if(arg) {
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index 40e1518..1b0a774 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -250,6 +250,7 @@
if(r.message == 'true'){
$i('update_quotation_dialog_response').innerHTML = 'Done';
qtn_lost_dialog.hide();
+ cur_frm.refresh();
}
}
if(arg) $c_obj(make_doclist(cur_frm.doc.doctype, cur_frm.doc.name),'declare_order_lost',arg,call_back);
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index f232a37..17c8d09 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -147,7 +147,7 @@
cur_frm.cscript.pull_quotation_details = function(doc,dt,dn) {
var callback = function(r,rt){
var doc = locals[cur_frm.doctype][cur_frm.docname];
- if(r.message){
+ if(!r.exc){
doc.quotation_no = r.message;
if(doc.quotation_no) {
unhide_field(['quotation_date', 'customer_address', 'contact_person', 'territory', 'customer_group']);
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 0a73cac..9d23565 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -194,11 +194,11 @@
# Validations of Details Table
# -----------------------------
def validate_for_items(self):
- check_list,flag = [],0
+ check_list, flag = [], 0
chk_dupl_itm = []
# Sales Order Items Validations
for d in getlist(self.doclist, 'sales_order_details'):
- if cstr(self.doc.quotation_no) == cstr(d.prevdoc_docname):
+ if self.doc.quotation_no and cstr(self.doc.quotation_no) == cstr(d.prevdoc_docname):
flag = 1
if d.prevdoc_docname:
if self.doc.quotation_date and getdate(self.doc.quotation_date) > getdate(self.doc.transaction_date):
@@ -229,14 +229,13 @@
# used for production plan
d.transaction_date = self.doc.transaction_date
-
- # gets total projected qty of item in warehouse selected (this case arises when warehouse is selected b4 item)
- tot_avail_qty = sql("select projected_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (d.item_code,d.reserved_warehouse))
+
+ tot_avail_qty = sql("select projected_qty from `tabBin` \
+ where item_code = '%s' and warehouse = '%s'" % (d.item_code,d.reserved_warehouse))
d.projected_qty = tot_avail_qty and flt(tot_avail_qty[0][0]) or 0
- if flag == 0:
- msgprint("There are no items of the quotation selected.")
- raise Exception
+ if getlist(self.doclist, 'sales_order_details') and self.doc.quotation_no and flag == 0:
+ msgprint("There are no items of the quotation selected", raise_exception=1)
# validate sales/ maintenance quotation against order type
#------------------------------------------------------------------
diff --git a/setup/doctype/contact_control/contact_control.js b/setup/doctype/contact_control/contact_control.js
index fe3c041..fd08062 100755
--- a/setup/doctype/contact_control/contact_control.js
+++ b/setup/doctype/contact_control/contact_control.js
@@ -156,7 +156,7 @@
$wrapper.append(repl("\
<h4><a class='link_type'>%(fullname)s</a>%(primary)s</h4>\
<div class='description'>\
- %(description)s\
+ <p>%(description)s</p>\
<p><a class='delete link_type'>delete this %(doctype)s</a></p>\
</div>", data));
diff --git a/utilities/doctype/sms_control/sms_control.js b/utilities/doctype/sms_control/sms_control.js
index 9cc152f..4af96b3 100644
--- a/utilities/doctype/sms_control/sms_control.js
+++ b/utilities/doctype/sms_control/sms_control.js
@@ -31,7 +31,6 @@
this.show = function(contact, key, value, mobile_nos, message) {
this.message = message;
if (mobile_nos) {
-
me.number = mobile_nos;
me.show_dialog();
} else if (contact){
@@ -59,7 +58,6 @@
{fieldname:'send', fieldtype:'Button', label:'Send'}
]
})
- d.make();
d.fields_dict.send.input.onclick = function() {
var btn = d.fields_dict.send.input;
var v = me.dialog.get_values();