[pull-mappers] no fields via custom button, started with quotation, material request, purchase order
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index 4c22982..7c9ca01 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -27,8 +27,15 @@
 erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend({
 	refresh: function(doc, cdt, cdn) {
 		this._super();
+		this.frm.dashboard.reset();
 		
 		if(doc.docstatus == 1 && doc.status != 'Stopped'){
+			cur_frm.dashboard.add_progress(cint(doc.per_received) + wn._("% Received"), 
+				doc.per_received);
+			cur_frm.dashboard.add_progress(cint(doc.per_billed) + wn._("% Billed"), 
+				doc.per_billed);
+
+
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
 			if(flt(doc.per_received, 2) < 100) 
 				cur_frm.add_custom_button('Make Purchase Receipt', this.make_purchase_receipt);	
@@ -36,20 +43,15 @@
 				cur_frm.add_custom_button('Make Invoice', this.make_purchase_invoice);
 			if(flt(doc.per_billed, 2) < 100 || doc.per_received < 100) 
 				cur_frm.add_custom_button('Stop', cur_frm.cscript['Stop Purchase Order']);
+		} else if(doc.docstatus===0) {
+			cur_frm.cscript.add_from_mappers();
 		}
 
 		if(doc.docstatus == 1 && doc.status == 'Stopped')
 			cur_frm.add_custom_button('Unstop Purchase Order', 
 				cur_frm.cscript['Unstop Purchase Order']);
 	},
-	
-	get_items: function() {
-		wn.model.map_current_doc({
-			method: "stock.doctype.material_request.material_request.make_purchase_order",
-			source_name: cur_frm.doc.indent_no,
-		})
-	},
-	
+		
 	make_purchase_receipt: function() {
 		wn.model.open_mapped_doc({
 			method: "buying.doctype.purchase_order.purchase_order.make_purchase_receipt",
@@ -64,12 +66,36 @@
 		})
 	},
 	
-	get_supplier_quotation_items: function() {
-		wn.model.map_current_doc({
-			method: "buying.doctype.supplier_quotation.supplier_quotation.make_purchase_order",
-			source_name: cur_frm.doc.supplier_quotation,
-		})
+	add_from_mappers: function() {
+		cur_frm.add_custom_button(wn._('From Material Request'), 
+			function() {
+				wn.model.map_current_doc({
+					method: "stock.doctype.material_request.material_request.make_purchase_order",
+					source_doctype: "Material Request",
+					get_query_filters: {
+						material_request_type: "Purchase",
+						docstatus: 1,
+						status: ["!=", "Stopped"],
+						per_ordered: ["<", 99.99],
+						company: cur_frm.doc.company
+					}
+				})
+			});
+
+		cur_frm.add_custom_button(wn._('From Supplier Quotation'), 
+			function() {
+				wn.model.map_current_doc({
+					method: "buying.doctype.supplier_quotation.supplier_quotation.make_purchase_order",
+					source_doctype: "Supplier Quotation",
+					get_query_filters: {
+						docstatus: 1,
+						status: ["!=", "Stopped"],
+						company: cur_frm.doc.company
+					}
+				})
+			});	
 	}
+	
 });
 
 // for backward compatibility: combine new and previous states
@@ -93,14 +119,6 @@
 		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
-cur_frm.fields_dict['indent_no'].get_query = function(doc) {
-	return 'SELECT DISTINCT `name` FROM `tabMaterial Request` \
-		WHERE material_request_type="Purchase" and company = "' + doc.company 
-		+ '" and `docstatus` = 1 and `status` != "Stopped" \
-		and ifnull(`per_ordered`,0) < 99.99 and %(key)s LIKE "%s" \
-		ORDER BY `name` DESC LIMIT 50';
-}
-
 cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){
 	$c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', function(r, rt) { 
 		refresh_field(cur_frm.cscript.fname);
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index d72fc58..d59d517 100644
--- a/buying/doctype/purchase_order/purchase_order.txt
+++ b/buying/doctype/purchase_order/purchase_order.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:51:59", 
+  "modified": "2013-07-08 15:12:46", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -185,59 +185,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "section_break0", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "description": "You can make a purchase order from multiple Material Requests. Select Material Requests one by one and click on the button below.", 
-  "doctype": "DocField", 
-  "fieldname": "indent_no", 
-  "fieldtype": "Link", 
-  "hidden": 0, 
-  "label": "Select Material Request", 
-  "no_copy": 1, 
-  "oldfieldname": "indent_no", 
-  "oldfieldtype": "Link", 
-  "options": "Material Request", 
-  "print_hide": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "hidden": 0, 
-  "label": "Get Items", 
-  "no_copy": 0, 
-  "oldfieldtype": "Button", 
-  "print_hide": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "column_break3", 
-  "fieldtype": "Column Break", 
-  "print_width": "50%", 
-  "width": "50%"
- }, 
- {
-  "description": "You can make a purchase order from multiple Supplier Quotations. Select Supplier Quotations one by one and click on the button below.", 
-  "doctype": "DocField", 
-  "fieldname": "supplier_quotation", 
-  "fieldtype": "Link", 
-  "label": "Select Supplier Quotation", 
-  "no_copy": 1, 
-  "options": "Supplier Quotation", 
-  "print_hide": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_supplier_quotation_items", 
-  "fieldtype": "Button", 
-  "label": "Get Items", 
-  "options": "get_supplier_quotation_items", 
-  "print_hide": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "price_list_and_currency", 
   "fieldtype": "Section Break", 
   "label": "Currency & Price List", 
@@ -269,7 +216,7 @@
   "fieldtype": "Float", 
   "hidden": 0, 
   "label": "Exchange Rate", 
-  "no_copy": 0, 
+  "no_copy": 1, 
   "oldfieldname": "conversion_rate", 
   "oldfieldtype": "Currency", 
   "print_hide": 1, 
diff --git a/buying/doctype/purchase_order_item/purchase_order_item.txt b/buying/doctype/purchase_order_item/purchase_order_item.txt
index c561ed1..1ee2700 100755
--- a/buying/doctype/purchase_order_item/purchase_order_item.txt
+++ b/buying/doctype/purchase_order_item/purchase_order_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:06", 
   "docstatus": 0, 
-  "modified": "2013-05-31 14:26:22", 
+  "modified": "2013-07-08 13:51:42", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -32,7 +32,7 @@
   "hidden": 0, 
   "in_filter": 1, 
   "label": "Reqd By Date", 
-  "no_copy": 1, 
+  "no_copy": 0, 
   "oldfieldname": "schedule_date", 
   "oldfieldtype": "Date", 
   "print_hide": 1, 
@@ -121,7 +121,7 @@
   "doctype": "DocField", 
   "fieldname": "import_ref_rate", 
   "fieldtype": "Currency", 
-  "label": "Ref Rate ", 
+  "label": "Price List Rate", 
   "options": "currency", 
   "print_hide": 1, 
   "read_only": 0
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index 8ecb6ea..ef688ec 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -29,16 +29,25 @@
 
 		if (this.frm.doc.docstatus === 1) {
 			cur_frm.add_custom_button("Make Purchase Order", this.make_purchase_order);
+		} 
+		else if (this.frm.doc.docstatus===0) {
+			cur_frm.add_custom_button(wn._('From Material Request'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "stock.doctype.material_request.material_request.make_supplier_quotation",
+						source_doctype: "Material Request",
+						get_query_filters: {
+							material_request_type: "Purchase",
+							docstatus: 1,
+							status: ["!=", "Stopped"],
+							per_ordered: ["<", 99.99],
+							company: cur_frm.doc.company
+						}
+					})
+				});
 		}
 	},	
-	
-	get_items: function() {
-		wn.model.map_current_doc({
-			method: "stock.doctype.material_request.material_request.make_supplier_quotation",
-			source_name: cur_frm.doc.indent_no,
-		})
-	},
-	
+		
 	make_purchase_order: function() {
 		wn.model.open_mapped_doc({
 			method: "buying.doctype.supplier_quotation.supplier_quotation.make_purchase_order",
@@ -62,14 +71,6 @@
 			order by `tabProject`.name ASC LIMIT 50";
 	}
 
-cur_frm.fields_dict['indent_no'].get_query = function(doc) {
-	return "select distinct `name` from `tabMaterial Request` \
-		where material_request_type='Purchase' and company = \"" + doc.company +
-		"\" and `docstatus` = 1 and `status` != \"Stopped\" and \
-		ifnull(`per_ordered`,0) < 99.99 and \
-		%(key)s LIKE \"%s\" order by `name` desc limit 50";
-}
-
 cur_frm.cscript.supplier_address = function(doc, dt, dn) {
 	if (doc.supplier) {
 		get_server_fields("get_supplier_address", JSON.stringify({supplier: doc.supplier,
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.txt b/buying/doctype/supplier_quotation/supplier_quotation.txt
index 95fe364..0984ac7 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.txt
+++ b/buying/doctype/supplier_quotation/supplier_quotation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:45", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:57:12", 
+  "modified": "2013-07-08 15:14:48", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -170,32 +170,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "section_break_14", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "description": "You can make a purchase order from multiple Material Requests. Select Material Requests one by one and click on the button below.", 
-  "doctype": "DocField", 
-  "fieldname": "indent_no", 
-  "fieldtype": "Link", 
-  "hidden": 0, 
-  "label": "Select Material Request", 
-  "no_copy": 1, 
-  "oldfieldname": "indent_no", 
-  "oldfieldtype": "Link", 
-  "options": "Material Request", 
-  "print_hide": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "hidden": 0, 
-  "label": "Get Items", 
-  "oldfieldtype": "Button"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "currency_price_list", 
   "fieldtype": "Section Break", 
   "label": "Currency & Price List", 
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index 98a8c42..877f65c 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -53,6 +53,25 @@
 			}
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 		}
+		
+		if (this.frm.doc.docstatus===0) {
+			cur_frm.add_custom_button(wn._('From Opportunity'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "selling.doctype.opportunity.opportunity.make_quotation",
+						source_doctype: "Opportunity",
+						get_query_filters: {
+							docstatus: 1,
+							status: "Submitted",
+							enquiry_type: cur_frm.doc.order_type,
+							customer: cur_frm.doc.customer || undefined,
+							lead: cur_frm.doc.lead || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+		}
+		
 
 		if (!doc.__islocal) {
 			cur_frm.communication_view = new wn.views.CommunicationList({
@@ -70,6 +89,10 @@
 		this.frm.toggle_reqd("lead", this.frm.doc.quotation_to == "Lead");
 		this.frm.toggle_reqd("customer", this.frm.doc.quotation_to == "Customer");
 	},
+
+	tc_name: function() {
+		this.get_terms();
+	},
 	
 	validate_company_and_party: function(party_field) {
 		if(this.frm.doc.quotation_to == "Lead") {
@@ -113,17 +136,6 @@
 }
 
 
-// =====================================================================================
-cur_frm.fields_dict['enq_no'].get_query = function(doc,cdt,cdn){
-	var cond='';
-	var cond1='';
-	if(doc.order_type) cond = 'ifnull(`tabOpportunity`.enquiry_type, "") = "'+doc.order_type+'" AND';
-	if(doc.customer) cond1 = '`tabOpportunity`.customer = "'+doc.customer+'" AND';
-	else if(doc.lead) cond1 = '`tabOpportunity`.lead = "'+doc.lead+'" AND';
-
-	return repl('SELECT `tabOpportunity`.`name` FROM `tabOpportunity` WHERE `tabOpportunity`.`docstatus` = 1 AND `tabOpportunity`.status = "Submitted" AND %(cond)s %(cond1)s `tabOpportunity`.`name` LIKE "%s" ORDER BY `tabOpportunity`.`name` ASC LIMIT 50', {cond:cond, cond1:cond1});
-}
-
 // Make Sales Order
 // =====================================================================================
 cur_frm.cscript['Make Sales Order'] = function() {
@@ -133,14 +145,6 @@
 	})
 }
 
-//pull enquiry details
-cur_frm.cscript.pull_enquiry_detail = function(doc,cdt,cdn){
-	wn.model.map_current_doc({
-		method: "selling.doctype.opportunity.opportunity.make_quotation",
-		source_name: cur_frm.doc.enq_no,
-	})
-}
-
 // declare order lost
 //-------------------------
 cur_frm.cscript['Declare Order Lost'] = function(){
diff --git a/selling/doctype/quotation/quotation.txt b/selling/doctype/quotation/quotation.txt
index fb77282..243963c 100644
--- a/selling/doctype/quotation/quotation.txt
+++ b/selling/doctype/quotation/quotation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:08", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:52:37", 
+  "modified": "2013-07-08 15:51:41", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -345,42 +345,6 @@
   "read_only": 0
  }, 
  {
-  "description": "To create Quotation against Opportunity, Select Opportunity No. and click on 'Pull Opportunity Details' ", 
-  "doctype": "DocField", 
-  "fieldname": "enq_no", 
-  "fieldtype": "Link", 
-  "hidden": 0, 
-  "in_filter": 1, 
-  "label": "Opportunity No", 
-  "no_copy": 0, 
-  "oldfieldname": "enq_no", 
-  "oldfieldtype": "Link", 
-  "options": "Opportunity", 
-  "print_hide": 0, 
-  "read_only": 0, 
-  "report_hide": 0, 
-  "search_index": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "pull_enquiry_detail", 
-  "fieldtype": "Button", 
-  "hidden": 0, 
-  "label": "Pull Opportunity Detail", 
-  "no_copy": 0, 
-  "oldfieldtype": "Button", 
-  "print_hide": 0, 
-  "read_only": 0, 
-  "report_hide": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "col_break34", 
-  "fieldtype": "Column Break", 
-  "read_only": 0, 
-  "width": "50%"
- }, 
- {
   "doctype": "DocField", 
   "fieldname": "net_total_export", 
   "fieldtype": "Currency", 
@@ -636,24 +600,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "column_break_54", 
-  "fieldtype": "Column Break"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_terms", 
-  "fieldtype": "Button", 
-  "label": "Get Terms and Conditions", 
-  "oldfieldtype": "Button", 
-  "read_only": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "section_break_56", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "terms", 
   "fieldtype": "Text Editor", 
   "label": "Term Details", 
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index 7ba0bb4..700a61a 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -325,21 +325,18 @@
 				if so_status == 'Stopped':
 					msgprint("You cannot do any transaction against Sales Order : '%s' as it is Stopped." %(ref_doc_name))
 					raise Exception
-					
-					
-	# ****** Check for Item.is_sales_item = 'Yes' and Item.docstatus != 2 *******
+
 	def check_active_sales_items(self,obj):
 		for d in getlist(obj.doclist, obj.fname):
-			if d.item_code:		# extra condn coz item_code is not mandatory in RV
-				valid_item = webnotes.conn.sql("select docstatus,is_sales_item, is_service_item from tabItem where name = %s",d.item_code)
-				if valid_item and valid_item[0][0] == 2:
-					msgprint("Item : '%s' does not exist in system." %(d.item_code))
+			if d.item_code:
+				item = webnotes.conn.sql("""select docstatus, is_sales_item, 
+					is_service_item, default_income_account, default_expense_account from tabItem where name = %s""", 
+					d.item_code, as_dict=True)
+				if item.sales_item == 'No' and item.service_item == 'No':
+					msgprint("Item : '%s' is neither Sales nor Service Item" % (d.item_code))
 					raise Exception
-				sales_item = valid_item and valid_item[0][1] or 'No'
-				service_item = valid_item and valid_item[0][2] or 'No'
-				if sales_item == 'No' and service_item == 'No':
-					msgprint("Item : '%s' is neither Sales nor Service Item"%(d.item_code))
-					raise Exception
+				if d.income_account and not default_income_account:
+					webnotes.conn.set_value("Item", d.item_code, "default_income_account", d.income_account)
 
 
 # **************************************************************************************************************************************************
diff --git a/stock/doctype/material_request/material_request.js b/stock/doctype/material_request/material_request.js
index 7efd49b..bd5ab82 100644
--- a/stock/doctype/material_request/material_request.js
+++ b/stock/doctype/material_request/material_request.js
@@ -52,16 +52,32 @@
 			}
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 
+		} 
+		
+		if (this.frm.doc.docstatus===0) {
+			cur_frm.add_custom_button(wn._('From Sales Order'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "selling.doctype.sales_order.sales_order.make_material_request",
+						source_doctype: "Sales Order",
+						get_query_filters: {
+							docstatus: 1,
+							status: ["!=", "Stopped"],
+							per_delivered: ["<", 99.99],
+							company: cur_frm.doc.company
+						}
+					})
+				});
 		}
 
 		if(doc.docstatus == 1 && doc.status == 'Stopped')
 			cur_frm.add_custom_button('Unstop Material Request', 
 				cur_frm.cscript['Unstop Material Request']);
 		
-		if(doc.material_request_type === "Transfer") {
-			cur_frm.toggle_display("sales_order_no", false);
-			cur_frm.fields_dict.indent_details.grid.set_column_disp("sales_order_no", false);
-		}
+	},
+	
+	tc_name: function() {
+		this.get_terms();
 	},
 	
 	validate_company_and_party: function(party_field) {
@@ -71,14 +87,7 @@
 	calculate_taxes_and_totals: function() {
 		return;
 	},
-	
-	pull_sales_order_details: function(doc) {
-		wn.model.map_current_doc({
-			method: "selling.doctype.sales_order.sales_order.make_material_request",
-			source_name: cur_frm.doc.sales_order_no,
-		});
-	},
-	
+		
 	make_purchase_order: function() {
 		wn.model.open_mapped_doc({
 			method: "stock.doctype.material_request.material_request.make_purchase_order",
diff --git a/stock/doctype/material_request/material_request.txt b/stock/doctype/material_request/material_request.txt
index a5907c7..0f1036b 100644
--- a/stock/doctype/material_request/material_request.txt
+++ b/stock/doctype/material_request/material_request.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 14:48:38", 
   "docstatus": 0, 
-  "modified": "2013-07-08 11:02:12", 
+  "modified": "2013-07-08 15:40:01", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -99,44 +99,6 @@
   "options": "Material Request Item"
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "section_break1", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "column_break4", 
-  "fieldtype": "Column Break", 
-  "print_width": "50%", 
-  "width": "50%"
- }, 
- {
-  "description": "One or multiple Sales Order no which generated this Material Request", 
-  "doctype": "DocField", 
-  "fieldname": "sales_order_no", 
-  "fieldtype": "Link", 
-  "label": "Sales Order No", 
-  "no_copy": 1, 
-  "oldfieldname": "sales_order_no", 
-  "oldfieldtype": "Data", 
-  "options": "Sales Order", 
-  "print_width": "100px", 
-  "width": "100px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "column_break5", 
-  "fieldtype": "Column Break", 
-  "print_width": "50%", 
-  "width": "50%"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "pull_sales_order_details", 
-  "fieldtype": "Button", 
-  "label": "Pull Sales Order Items"
- }, 
- {
   "default": "Give additional details about the indent.", 
   "doctype": "DocField", 
   "fieldname": "more_info", 
@@ -310,13 +272,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "get_terms", 
-  "fieldtype": "Button", 
-  "label": "Get Terms and Conditions", 
-  "oldfieldtype": "Button"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "terms", 
   "fieldtype": "Text Editor", 
   "label": "Terms and Conditions Content", 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 878dfe8..1ebc5ae 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -68,7 +68,10 @@
 				msgprint("Rejected Warehouse is necessary if there are rejections.")
 				raise Exception
 
-			if not flt(d.qty) and flt(d.rejected_qty):
+			if not flt(d.received_qty) and flt(d.qty):
+				d.received_qty = flt(d.qty) - flt(d.rejected_qty)
+
+			elif not flt(d.qty) and flt(d.rejected_qty):
 				d.qty = flt(d.received_qty) - flt(d.rejected_qty)
 
 			elif not flt(d.rejected_qty):
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
index 6a35c47..658dabb 100755
--- a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
+++ b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:10", 
   "docstatus": 0, 
-  "modified": "2013-05-31 14:26:41", 
+  "modified": "2013-07-08 13:52:28", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -165,7 +165,7 @@
   "doctype": "DocField", 
   "fieldname": "purchase_ref_rate", 
   "fieldtype": "Currency", 
-  "label": "Ref Rate*", 
+  "label": "Price List Rate*", 
   "options": "Company:company:default_currency", 
   "print_hide": 1, 
   "read_only": 0