Merge pull request #1686 from rmehta/develop

Fixes
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.js b/erpnext/setup/doctype/sales_partner/sales_partner.js
index 8f12aa9..b12c01b 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.js
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.js
@@ -7,8 +7,8 @@
 
 }
 
-cur_frm.cscript.refresh = function(doc,dt,dn){  
-  
+cur_frm.cscript.refresh = function(doc,dt,dn){
+
 	if(doc.__islocal){
 		hide_field(['address_html', 'contact_html']);
 	}
@@ -34,20 +34,13 @@
 				address.address_title = cur_frm.doc.name;
 				address.address_type = "Office";
 				frappe.set_route("Form", "Address", address.name);
-			},			
+			},
 			get_query: function() {
 				return "select name, address_type, address_line1, address_line2, city, state, country, pincode, fax, email_id, phone, is_primary_address, is_shipping_address from tabAddress where sales_partner='"+cur_frm.docname+"' and docstatus != 2 order by is_primary_address desc"
 			},
 			as_dict: 1,
 			no_results_message: __('No addresses created'),
-			render_row: function(wrapper, data) {
-				$(wrapper).css('padding','5px 0px');
-				var link = $ln(wrapper,cstr(data.name), function() { loaddoc("Address", this.dn); }, {fontWeight:'bold'});
-				link.dn = data.name
-				
-				$a(wrapper,'span','',{marginLeft:'5px', color: '#666'},(data.is_primary_address ? '[Primary]' : '') + (data.is_shipping_address ? '[Shipping]' : ''));				
-				$a(wrapper,'div','',{marginTop:'5px', color:'#555'}, data.address_line1 + '<br />' + (data.address_line2 ? data.address_line2 + '<br />' : '') + data.city + '<br />' + (data.state ? data.state + ', ' : '') + data.country + '<br />' + (data.pincode ? 'Pincode: ' + data.pincode + '<br />' : '') + (data.phone ? 'Tel: ' + data.phone + '<br />' : '') + (data.fax ? 'Fax: ' + data.fax + '<br />' : '') + (data.email_id ? 'Email: ' + data.email_id + '<br />' : ''));
-			}
+			render_row: cur_frm.cscript.render_address_row,
 		});
 	}
 	cur_frm.address_list.run();
@@ -70,14 +63,7 @@
 			},
 			as_dict: 1,
 			no_results_message: __('No contacts created'),
-			render_row: function(wrapper, data) {
-				$(wrapper).css('padding', '5px 0px');
-				var link = $ln(wrapper, cstr(data.name), function() { loaddoc("Contact", this.dn); }, {fontWeight:'bold'});
-				link.dn = data.name
-
-				$a(wrapper,'span','',{marginLeft:'5px', color: '#666'},(data.is_primary_contact ? '[Primary]' : ''));
-				$a(wrapper,'div', '',{marginTop:'5px', color:'#555'}, data.first_name + (data.last_name ? ' ' + data.last_name + '<br />' : '<br>') + (data.phone ? 'Tel: ' + data.phone + '<br />' : '') + (data.mobile_no ? 'Mobile: ' + data.mobile_no + '<br />' : '') + (data.email_id ? 'Email: ' + data.email_id + '<br />' : '') + (data.department ? 'Department: ' + data.department + '<br />' : '') + (data.designation ? 'Designation: ' + data.designation + '<br />' : ''));
-			}
+			render_row: cur_frm.cscript.render_contact_row,
 		});
 	}
 	cur_frm.contact_list.run();
@@ -87,4 +73,4 @@
   return{
   	filters:{ 'is_group': "No" }
   }
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.js b/erpnext/stock/doctype/packing_slip/packing_slip.js
index 2f0bd81..acdd27e 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.js
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.js
@@ -8,7 +8,7 @@
 }
 
 
-cur_frm.fields_dict['item_details'].grid.get_field('item_code').get_query = 
+cur_frm.fields_dict['item_details'].grid.get_field('item_code').get_query =
 		function(doc, cdt, cdn) {
 			return {
 				query: "erpnext.stock.doctype.packing_slip.packing_slip.item_details",
@@ -53,7 +53,7 @@
 	} else if(cint(doc.to_case_no) < cint(doc.from_case_no)) {
 		msgprint(__("'To Case No.' cannot be less than 'From Case No.'"));
 		validated = false;
-	}	
+	}
 }
 
 
@@ -88,7 +88,7 @@
 // Calculate Net Weight of Package
 cur_frm.cscript.calc_net_total_pkg = function(doc, ps_detail) {
 	var net_weight_pkg = 0;
-	doc.net_weight_uom = ps_detail?ps_detail[0].weight_uom:'';
+	doc.net_weight_uom = (ps_detail && ps_detail.length) ? ps_detail[0].weight_uom : '';
 	doc.gross_weight_uom = doc.net_weight_uom;
 
 	for(var i=0; i<ps_detail.length; i++) {
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.json b/erpnext/stock/doctype/packing_slip/packing_slip.json
index 5cb6343..ec8cd9b 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.json
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.json
@@ -1,262 +1,262 @@
 {
- "autoname": "PS.#######",
- "creation": "2013-04-11 15:32:24",
- "description": "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.",
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Transaction",
+ "autoname": "PS.#######", 
+ "creation": "2013-04-11 15:32:24", 
+ "description": "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Transaction", 
  "fields": [
   {
-   "fieldname": "packing_slip_details",
-   "fieldtype": "Section Break",
-   "label": "Packing Slip Items",
-   "permlevel": 0,
+   "fieldname": "packing_slip_details", 
+   "fieldtype": "Section Break", 
+   "label": "Packing Slip Items", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "column_break0",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break0", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "Indicates that the package is a part of this delivery",
-   "fieldname": "delivery_note",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "label": "Delivery Note",
-   "options": "Delivery Note",
-   "permlevel": 0,
-   "read_only": 0,
+   "description": "Indicates that the package is a part of this delivery (Only Draft)", 
+   "fieldname": "delivery_note", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Delivery Note", 
+   "options": "Delivery Note", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "fieldname": "column_break1",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break1", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "naming_series",
-   "fieldtype": "Select",
-   "label": "Series",
-   "no_copy": 0,
-   "options": "PS-",
-   "permlevel": 0,
-   "print_hide": 1,
-   "read_only": 0,
+   "fieldname": "naming_series", 
+   "fieldtype": "Select", 
+   "label": "Series", 
+   "no_copy": 0, 
+   "options": "PS-", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "fieldname": "section_break0",
-   "fieldtype": "Section Break",
-   "permlevel": 0,
+   "fieldname": "section_break0", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "column_break2",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break2", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "Identification of the package for the delivery (for print)",
-   "fieldname": "from_case_no",
-   "fieldtype": "Data",
-   "label": "From Package No.",
-   "in_list_view": 1,
-   "no_copy": 1,
-   "permlevel": 0,
-   "read_only": 0,
-   "reqd": 1,
+   "description": "Identification of the package for the delivery (for print)", 
+   "fieldname": "from_case_no", 
+   "fieldtype": "Data", 
+   "in_list_view": 1, 
+   "label": "From Package No.", 
+   "no_copy": 1, 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1, 
    "width": "50px"
-  },
+  }, 
   {
-   "fieldname": "column_break3",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break3", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "If more than one package of the same type (for print)",
-   "fieldname": "to_case_no",
-   "fieldtype": "Data",
-   "label": "To Package No.",
-   "in_list_view": 1,
-   "no_copy": 1,
-   "permlevel": 0,
-   "read_only": 0,
+   "description": "If more than one package of the same type (for print)", 
+   "fieldname": "to_case_no", 
+   "fieldtype": "Data", 
+   "in_list_view": 1, 
+   "label": "To Package No.", 
+   "no_copy": 1, 
+   "permlevel": 0, 
+   "read_only": 0, 
    "width": "50px"
-  },
+  }, 
   {
-   "fieldname": "package_item_details",
-   "fieldtype": "Section Break",
-   "label": "Package Item Details",
-   "permlevel": 0,
+   "fieldname": "package_item_details", 
+   "fieldtype": "Section Break", 
+   "label": "Package Item Details", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "get_items",
-   "fieldtype": "Button",
-   "label": "Get Items",
+   "fieldname": "get_items", 
+   "fieldtype": "Button", 
+   "label": "Get Items", 
    "permlevel": 0
-  },
+  }, 
   {
-   "fieldname": "item_details",
-   "fieldtype": "Table",
-   "label": "Items",
-   "options": "Packing Slip Item",
-   "permlevel": 0,
+   "fieldname": "item_details", 
+   "fieldtype": "Table", 
+   "label": "Items", 
+   "options": "Packing Slip Item", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "package_weight_details",
-   "fieldtype": "Section Break",
-   "label": "Package Weight Details",
-   "permlevel": 0,
+   "fieldname": "package_weight_details", 
+   "fieldtype": "Section Break", 
+   "label": "Package Weight Details", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "The net weight of this package. (calculated automatically as sum of net weight of items)",
-   "fieldname": "net_weight_pkg",
-   "fieldtype": "Float",
-   "label": "Net Weight",
-   "no_copy": 1,
-   "permlevel": 0,
+   "description": "The net weight of this package. (calculated automatically as sum of net weight of items)", 
+   "fieldname": "net_weight_pkg", 
+   "fieldtype": "Float", 
+   "label": "Net Weight", 
+   "no_copy": 1, 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "fieldname": "net_weight_uom",
-   "fieldtype": "Link",
-   "label": "Net Weight UOM",
-   "no_copy": 1,
-   "options": "UOM",
-   "permlevel": 0,
+   "fieldname": "net_weight_uom", 
+   "fieldtype": "Link", 
+   "label": "Net Weight UOM", 
+   "no_copy": 1, 
+   "options": "UOM", 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "fieldname": "column_break4",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break4", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "The gross weight of the package. Usually net weight + packaging material weight. (for print)",
-   "fieldname": "gross_weight_pkg",
-   "fieldtype": "Float",
-   "label": "Gross Weight",
-   "no_copy": 1,
-   "permlevel": 0,
+   "description": "The gross weight of the package. Usually net weight + packaging material weight. (for print)", 
+   "fieldname": "gross_weight_pkg", 
+   "fieldtype": "Float", 
+   "label": "Gross Weight", 
+   "no_copy": 1, 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "gross_weight_uom",
-   "fieldtype": "Link",
-   "label": "Gross Weight UOM",
-   "no_copy": 1,
-   "options": "UOM",
-   "permlevel": 0,
+   "fieldname": "gross_weight_uom", 
+   "fieldtype": "Link", 
+   "label": "Gross Weight UOM", 
+   "no_copy": 1, 
+   "options": "UOM", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "misc_details",
-   "fieldtype": "Section Break",
-   "label": "Misc Details",
-   "permlevel": 0,
+   "fieldname": "misc_details", 
+   "fieldtype": "Section Break", 
+   "label": "Misc Details", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "amended_from",
-   "fieldtype": "Link",
-   "ignore_restrictions": 1,
-   "label": "Amended From",
-   "no_copy": 1,
-   "options": "Packing Slip",
-   "permlevel": 0,
-   "print_hide": 1,
+   "fieldname": "amended_from", 
+   "fieldtype": "Link", 
+   "ignore_restrictions": 1, 
+   "label": "Amended From", 
+   "no_copy": 1, 
+   "options": "Packing Slip", 
+   "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 1
   }
- ],
- "icon": "icon-suitcase",
- "idx": 1,
- "is_submittable": 1,
- "modified": "2014-05-06 08:20:35.134198",
- "modified_by": "Administrator",
- "module": "Stock",
- "name": "Packing Slip",
- "owner": "Administrator",
+ ], 
+ "icon": "icon-suitcase", 
+ "idx": 1, 
+ "is_submittable": 1, 
+ "modified": "2014-05-26 03:19:59.409839", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Packing Slip", 
+ "owner": "Administrator", 
  "permissions": [
   {
-   "amend": 1,
-   "cancel": 1,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Material User",
-   "submit": 1,
+   "amend": 1, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material User", 
+   "submit": 1, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 1,
-   "cancel": 1,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Sales User",
-   "submit": 1,
+   "amend": 1, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Sales User", 
+   "submit": 1, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 1,
-   "cancel": 1,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Material Master Manager",
-   "submit": 1,
+   "amend": 1, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material Master Manager", 
+   "submit": 1, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 1,
-   "cancel": 1,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Material Manager",
-   "submit": 1,
+   "amend": 1, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material Manager", 
+   "submit": 1, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 1,
-   "cancel": 1,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Sales Manager",
-   "submit": 1,
+   "amend": 1, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Sales Manager", 
+   "submit": 1, 
    "write": 1
   }
- ],
- "read_only_onload": 1,
+ ], 
+ "read_only_onload": 1, 
  "search_fields": "delivery_note"
-}
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.py b/erpnext/stock/doctype/packing_slip/packing_slip.py
index e1a8f44..e3d0199 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.py
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.py
@@ -54,10 +54,12 @@
 
 		res = frappe.db.sql("""SELECT name FROM `tabPacking Slip`
 			WHERE delivery_note = %(delivery_note)s AND docstatus = 1 AND
-			(from_case_no BETWEEN %(from_case_no)s AND %(to_case_no)s
-			OR to_case_no BETWEEN %(from_case_no)s AND %(to_case_no)s
-			OR %(from_case_no)s BETWEEN from_case_no AND to_case_no)
-			""", self.as_dict())
+			((from_case_no BETWEEN %(from_case_no)s AND %(to_case_no)s)
+			OR (to_case_no BETWEEN %(from_case_no)s AND %(to_case_no)s)
+			OR (%(from_case_no)s BETWEEN from_case_no AND to_case_no))
+			""", {"delivery_note":self.delivery_note,
+				"from_case_no":self.from_case_no,
+				"to_case_no":self.to_case_no})
 
 		if res:
 			frappe.throw(_("""Case No(s) already in use. Try from Case No {0}""").format(self.get_recommended_case_no()))