diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index 0e461f1..e57eb80 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -51,7 +51,38 @@
 				wn.set_route("general-ledger");
 			});
 		}
-		
+
+		if(doc.docstatus===0) {
+			cur_frm.add_custom_button(wn._('From Purchase Order'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "buying.doctype.purchase_order.purchase_order.make_purchase_invoice",
+						source_doctype: "Purchase Order",
+						get_query_filters: {
+							supplier: cur_frm.doc.supplier || undefined,
+							docstatus: 1,
+							status: ["!=", "Stopped"],
+							per_billed: ["<", 99.99],
+							company: cur_frm.doc.company
+						}
+					})
+				});
+
+			cur_frm.add_custom_button(wn._('From Purchase Receipt'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "stock.doctype.purchase_receipt.purchase_receipt.make_purchase_invoice",
+						source_doctype: "Purchase Receipt",
+						get_query_filters: {
+							supplier: cur_frm.doc.supplier || undefined,
+							docstatus: 1,
+							company: cur_frm.doc.company
+						}
+					})
+				});	
+			
+		}
+
 		this.is_opening(doc);
 	},
 	
@@ -68,22 +99,11 @@
 		this.calculate_total_advance("Purchase Invoice", "advance_allocation_details");
 		this.frm.refresh_fields();
 	}, 
-	
-	get_items: function() {
-		if(doc.purchase_order_main) {
-			wn.model.map_current_doc({
-				method: "buying.doctype.purchase_order.purchase_order.make_purchase_invoice",
-				source_name: cur_frm.doc.purchase_order_main,
-			})
-		}
-		else if(doc.purchase_receipt_main) {
-			wn.model.map_current_doc({
-				method: "selling.doctype.purchase_receipt.purchase_receipt.make_purchase_invoice",
-				source_name: cur_frm.doc.purchase_receipt_main,
-			})
-		}
-	}
-	
+
+	tc_name: function() {
+		this.get_terms();
+	},
+
 });
 
 // for backward compatibility: combine new and previous states
@@ -149,22 +169,6 @@
 	return 'SELECT tabAccount.name FROM tabAccount WHERE tabAccount.debit_or_credit="Credit" AND tabAccount.is_pl_account="No" AND tabAccount.group_or_ledger="Ledger" AND tabAccount.docstatus != 2 AND tabAccount.company="'+doc.company+'" AND tabAccount.%(key)s LIKE "%s"'
 }
 
-cur_frm.fields_dict['purchase_order_main'].get_query = function(doc) {
-	if (doc.supplier){
-		return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.supplier = "'+ doc.supplier +'" AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`,0) < 99.99 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
-	} else {
-		return 'SELECT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 AND `tabPurchase Order`.`status` != "Stopped" AND ifnull(`tabPurchase Order`.`per_billed`, 0) < 99.99 AND `tabPurchase Order`.`company` = "' + doc.company + '" AND `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50'
-	}
-}
-
-cur_frm.fields_dict['purchase_receipt_main'].get_query = function(doc) {
-	if (doc.supplier){
-		return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.supplier = "'+ doc.supplier +'" AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 99.99 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
-	} else {
-		return 'SELECT `tabPurchase Receipt`.`name` FROM `tabPurchase Receipt` WHERE `tabPurchase Receipt`.`docstatus` = 1 AND `tabPurchase Receipt`.`status` != "Stopped" AND ifnull(`tabPurchase Receipt`.`per_billed`, 0) < 99.99 AND `tabPurchase Receipt`.`company` = "' + doc.company + '" AND `tabPurchase Receipt`.%(key)s LIKE "%s" ORDER BY `tabPurchase Receipt`.`name` DESC LIMIT 50'
-	}
-}
-
 // Get Print Heading
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
 	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index 8d646ba..56be688 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -43,17 +43,6 @@
 			'target_ref_field': 'import_amount',
 			'source_field': 'import_amount',
 			'percent_join_field': 'purchase_order',
-		},
-		{
-			'source_dt': 'Purchase Invoice Item',
-			'target_dt': 'Purchase Receipt Item',
-			'join_field': 'pr_detail',
-			'target_field': 'billed_amt',
-			'target_parent_dt': 'Purchase Receipt',
-			'target_parent_field': 'per_billed',
-			'target_ref_field': 'import_amount',
-			'source_field': 'import_amount',
-			'percent_join_field': 'purchase_receipt',
 		}]
 		
 	def validate(self):
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index d6ca510..0d2bf66 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -66,8 +66,44 @@
 			if(doc.outstanding_amount!=0)
 				cur_frm.add_custom_button('Make Payment Entry', cur_frm.cscript.make_bank_voucher);
 		}
+
+		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_sales_invoice",
+						source_doctype: "Sales Order",
+						get_query_filters: {
+							docstatus: 1,
+							status: ["!=", "Stopped"],
+							per_billed: ["<", 99.99],
+							customer: cur_frm.doc.customer || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+
+			cur_frm.add_custom_button(wn._('From Delivery Note'), 
+				function() {
+					wn.model.map_current_doc({
+						method: "stock.doctype.delivery_note.delivery_note.make_sales_invoice",
+						source_doctype: "Delivery Note",
+						get_query_filters: {
+							docstatus: 1,
+							customer: cur_frm.doc.customer || undefined,
+							company: cur_frm.doc.company
+						}
+					})
+				});
+
+		}
+		
 		cur_frm.cscript.hide_fields(doc, dt, dn);
 	},
+
+	tc_name: function() {
+		this.get_terms();
+	},
 	
 	is_pos: function() {
 		if(cint(this.frm.doc.is_pos)) {
@@ -122,9 +158,8 @@
 // Hide Fields
 // ------------
 cur_frm.cscript.hide_fields = function(doc, cdt, cdn) {
-	par_flds = ['project_name', 'due_date', 'sales_order_main',
-	'delivery_note_main', 'get_items', 'is_opening', 'conversion_rate',
-	'source', 'cancel_reason', 'total_advance', 'gross_profit',
+	par_flds = ['project_name', 'due_date', 'is_opening', 'conversion_rate',
+	'source', 'total_advance', 'gross_profit',
 	'gross_profit_percent', 'get_advances_received',
 	'advance_adjustment_details', 'sales_partner', 'commission_rate',
 	'total_commission', 'advances'];
@@ -190,24 +225,6 @@
 	if (doc.is_opening == 'Yes') unhide_field('aging_date');
 }
 
-// Get Items based on SO or DN Selected
-cur_frm.cscript.get_items = function(doc, dt, dn) {
-	if(doc.delivery_note_main) {
-		wn.model.map_current_doc({
-			method: "stock.doctype.delivery_note.delivery_note.make_sales_invoice",
-			source_name: cur_frm.doc.delivery_note_main,
-		})
-	}
-	else if(doc.sales_order_main) {
-		wn.model.map_current_doc({
-			method: "selling.doctype.sales_order.sales_order.make_sales_invoice",
-			source_name: cur_frm.doc.sales_order_main,
-		})
-	}
-}
-
-
-
 //Make Delivery Note Button
 //-----------------------------
 
@@ -302,37 +319,6 @@
 	}
 }
 
-// Sales Order
-// -----------
-cur_frm.fields_dict.sales_order_main.get_query = function(doc) {
-	if (doc.customer)
-		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 99.99 and `tabSales Order`.`customer` =	"' + doc.customer + '" and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
-	else
-		return 'SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "' + doc.company + '" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_billed,0) < 99.99 and `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50';
-}
-
-// Delivery Note
-// --------------
-cur_frm.fields_dict.delivery_note_main.get_query = function(doc) {
-	if (doc.customer)
-		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` \
-			WHERE `tabDelivery Note`.company = "' + doc.company 
-			+ '" and `tabDelivery Note`.`docstatus` = 1 and \
-			ifnull(`tabDelivery Note`.per_billed,0) < 99.99 and \
-			`tabDelivery Note`.`customer` =	"' 
-			+ doc.customer + '" and `tabDelivery Note`.%(key)s LIKE "%s" \
-			ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
-	else
-		return 'SELECT DISTINCT `tabDelivery Note`.`name` FROM `tabDelivery Note` \
-			WHERE `tabDelivery Note`.company = "' + doc.company 
-			+ '" and `tabDelivery Note`.`docstatus` = 1 and \
-			ifnull(`tabDelivery Note`.per_billed,0) < 99.99 and \
-			`tabDelivery Note`.%(key)s LIKE "%s" \
-			ORDER BY `tabDelivery Note`.`name` DESC LIMIT 50';
-}
-
-
-
 cur_frm.cscript.income_account = function(doc, cdt, cdn){
 	cur_frm.cscript.copy_account_in_all_row(doc, cdt, cdn, "income_account");
 }
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index c155636..fbc30c9 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -51,20 +51,6 @@
 			'percent_join_field': 'sales_order',
 			'status_field': 'billing_status',
 			'keyword': 'Billed'
-		}, 
-		{
-			'source_dt': 'Sales Invoice Item',
-			'target_dt': 'Delivery Note Item',
-			'join_field': 'dn_detail',
-			'target_field': 'billed_amt',
-			'target_parent_dt': 'Delivery Note',
-			'target_parent_field': 'per_billed',
-			'target_ref_field': 'export_amount',
-			'source_field': 'export_amount',
-			'percent_join_field': 'delivery_note',
-			'status_field': 'billing_status',
-			'keyword': 'Billed',
-			'no_tolerance': True,
 		}]
 		
 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index 7dc6891..e4da69e 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:05", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:54:19", 
+  "modified": "2013-07-08 17:05:43", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -352,52 +352,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "section_break0", 
-  "fieldtype": "Section Break", 
-  "read_only": 0
- }, 
- {
-  "description": "Select Items from Sales Order", 
-  "doctype": "DocField", 
-  "fieldname": "sales_order_main", 
-  "fieldtype": "Link", 
-  "label": "Sales Order", 
-  "oldfieldname": "sales_order_main", 
-  "oldfieldtype": "Link", 
-  "options": "Sales Order", 
-  "print_hide": 1, 
-  "read_only": 0
- }, 
- {
-  "description": "Select Items from Delivery Note", 
-  "doctype": "DocField", 
-  "fieldname": "delivery_note_main", 
-  "fieldtype": "Link", 
-  "label": "Delivery Note", 
-  "oldfieldname": "delivery_note_main", 
-  "oldfieldtype": "Link", 
-  "options": "Delivery Note", 
-  "print_hide": 1, 
-  "read_only": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_items", 
-  "fieldtype": "Button", 
-  "label": "Get Items", 
-  "oldfieldtype": "Button", 
-  "print_hide": 1, 
-  "read_only": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "col_break25", 
-  "fieldtype": "Column Break", 
-  "read_only": 0, 
-  "width": "50%"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "net_total_export", 
   "fieldtype": "Currency", 
   "label": "Net Total (Export)", 
@@ -791,25 +745,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "column_break_71", 
-  "fieldtype": "Column Break"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "get_terms", 
-  "fieldtype": "Button", 
-  "label": "Get Terms and Conditions", 
-  "oldfieldtype": "Button", 
-  "print_hide": 1, 
-  "read_only": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "section_break_73", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "terms", 
   "fieldtype": "Text Editor", 
   "label": "Terms and Conditions Details", 
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index 7c9ca01..b378a40 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -94,8 +94,12 @@
 					}
 				})
 			});	
-	}
-	
+	},
+
+	tc_name: function() {
+		this.get_terms();
+	},
+
 });
 
 // for backward compatibility: combine new and previous states
diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py
index 4972f66..10d4534 100644
--- a/buying/doctype/purchase_order/purchase_order.py
+++ b/buying/doctype/purchase_order/purchase_order.py
@@ -243,7 +243,8 @@
 		target.conversion_factor = 1
 		target.import_amount = flt(obj.import_amount) - flt(obj.billed_amt)
 		target.amount = target.import_amount / flt(source_parent.conversion_rate)
-		target.qty = target.amount / flt(obj.purchase_rate)
+		if flt(obj.purchase_rate):
+			target.qty = target.amount / flt(obj.purchase_rate)
 
 	doclist = get_mapped_doclist("Purchase Order", source_name,	{
 		"Purchase Order": {
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index d59d517..f9e8375 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-08 15:12:46", 
+  "modified": "2013-07-08 17:49:29", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -490,13 +490,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 Conditions1", 
diff --git a/buying/utils.py b/buying/utils.py
index 23d5593..886b460 100644
--- a/buying/utils.py
+++ b/buying/utils.py
@@ -85,7 +85,8 @@
 		"item_tax_rate": json.dumps(dict(([d.tax_type, d.tax_rate] for d in 
 			item_bean.doclist.get({"parentfield": "item_tax"})))),
 		"batch_no": None,
-		"expense_head": item.purchase_account,
+		"expense_head": item.purchase_account \
+			or webnotes.conn.get_value("Company", args.company, "default_expense_account"),
 		"cost_center": item.cost_center
 	})
 	
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index ea46d2a..b53662e 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -335,7 +335,7 @@
 				if item.is_sales_item == 'No' and item.is_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:
+				if d.income_account and not item.default_income_account:
 					webnotes.conn.set_value("Item", d.item_code, "default_income_account", d.income_account)
 
 
@@ -365,291 +365,3 @@
 					dt = webnotes.conn.sql("select transaction_date from `tab%s` where name = '%s'" % (d.prevdoc_doctype, d.prevdoc_docname))
 				d.prevdoc_date = (dt and dt[0][0]) and dt[0][0].strftime('%Y-%m-%d') or ''
 
-	def update_prevdoc_detail(self, is_submit, obj):
-		StatusUpdater(obj, is_submit).update()
-
-
-
-
-#
-# make item code readonly if (detail no is set)
-#
-
-
-class StatusUpdater:
-	"""
-		Updates the status of the calling records
-		
-		From Delivery Note 
-			- Update Delivered Qty
-			- Update Percent
-			- Validate over delivery
-			
-		From Sales Invoice 
-			- Update Billed Amt
-			- Update Percent
-			- Validate over billing
-			
-		From Installation Note
-			- Update Installed Qty
-			- Update Percent Qty
-			- Validate over installation
-	"""
-	def __init__(self, obj, is_submit):
-		self.obj = obj # caller object
-		self.is_submit = is_submit
-		self.tolerance = {}
-		self.global_tolerance = None
-	
-	def update(self):
-		self.update_all_qty()
-		self.validate_all_qty()
-	
-	def validate_all_qty(self):
-		"""
-			Validates over-billing / delivery / installation in Delivery Note, Sales Invoice, Installation Note
-			To called after update_all_qty
-		"""
-		if self.obj.doc.doctype=='Delivery Note':
-			self.validate_qty({
-				'source_dt'		:'Delivery Note Item',
-				'compare_field'	:'delivered_qty',
-				'compare_ref_field'	:'qty',
-				'target_dt'		:'Sales Order Item',
-				'join_field'	:'prevdoc_detail_docname'
-			})
-		elif self.obj.doc.doctype=='Sales Invoice':
-			self.validate_qty({
-				'source_dt'		:'Sales Invoice Item',
-				'compare_field'	:'billed_amt',
-				'compare_ref_field'	:'export_amount',
-				'target_dt'		:'Sales Order Item',
-				'join_field'	:'so_detail'
-			})
-			self.validate_qty({
-				'source_dt'		:'Sales Invoice Item',
-				'compare_field'	:'billed_amt',
-				'compare_ref_field'	:'export_amount',
-				'target_dt'		:'Delivery Note Item',
-				'join_field'	:'dn_detail'
-			}, no_tolerance =1)
-		elif self.obj.doc.doctype=='Installation Note':
-			self.validate_qty({
-				'source_dt'		:'Installation Item Details',
-				'compare_field'	:'installed_qty',
-				'compare_ref_field'	:'qty',
-				'target_dt'		:'Delivery Note Item',
-				'join_field'	:'dn_detail'
-			}, no_tolerance =1)
-
-	
-	def get_tolerance_for(self, item_code):
-		"""
-			Returns the tolerance for the item, if not set, returns global tolerance
-		"""
-		if self.tolerance.get(item_code):
-			return self.tolerance[item_code]
-		
-		tolerance = flt(webnotes.conn.get_value('Item',item_code,'tolerance') or 0)
-
-		if not tolerance:
-			if self.global_tolerance == None:
-				self.global_tolerance = flt(webnotes.conn.get_value('Stock Settings',None,'tolerance') or 0)
-			tolerance = self.global_tolerance
-		
-		self.tolerance[item_code] = tolerance
-		return tolerance
-		
-	def check_overflow_with_tolerance(self, item, args):
-		"""
-			Checks if there is overflow condering a relaxation tolerance
-		"""
-	
-		# check if overflow is within tolerance
-		tolerance = self.get_tolerance_for(item['item_code'])
-		overflow_percent = ((item[args['compare_field']] - item[args['compare_ref_field']]) / item[args['compare_ref_field']]) * 100
-	
-		if overflow_percent - tolerance > 0.01:
-			item['max_allowed'] = flt(item[args['compare_ref_field']] * (100+tolerance)/100)
-			item['reduce_by'] = item[args['compare_field']] - item['max_allowed']
-		
-			msgprint("""
-				Row #%(idx)s: Max %(compare_ref_field)s allowed for <b>Item %(item_code)s</b> against <b>%(parenttype)s %(parent)s</b> is <b>%(max_allowed)s</b>. 
-				
-				If you want to increase your overflow tolerance, please increase tolerance %% in Global Defaults or Item master. 
-				
-				Or, you must reduce the %(compare_ref_field)s by %(reduce_by)s
-				
-				Also, please check if the order item has already been billed in the Sales Order""" % item, raise_exception=1)
-
-	def validate_qty(self, args, no_tolerance=None):
-		"""
-			Validates qty at row level
-		"""
-		# get unique transactions to update
-		for d in self.obj.doclist:
-			if d.doctype == args['source_dt'] and d.fields.get(args["join_field"]):
-				args['name'] = d.fields[args['join_field']]
-
-				# get all qty where qty > compare_field
-				item = webnotes.conn.sql("""select item_code, `%(compare_ref_field)s`, 
-					`%(compare_field)s`, parenttype, parent from `tab%(target_dt)s` 
-						where `%(compare_ref_field)s` < `%(compare_field)s` 
-						and name="%(name)s" and docstatus=1
-					""" % args, as_dict=1)
-				if item:
-					item = item[0]
-					item['idx'] = d.idx
-					item['compare_ref_field'] = args['compare_ref_field'].replace('_', ' ')
-
-					if not item[args['compare_ref_field']]:
-						msgprint("As %(compare_ref_field)s for item: %(item_code)s in %(parenttype)s: %(parent)s is zero, system will not check over-delivery or over-billed" % item)
-					elif no_tolerance:
-						item['reduce_by'] = item[args['compare_field']] - item[args['compare_ref_field']]
-						if item['reduce_by'] > .01:
-							msgprint("""
-								Row #%(idx)s: Max %(compare_ref_field)s allowed for <b>Item %(item_code)s</b> against 
-								<b>%(parenttype)s %(parent)s</b> is <b>""" % item 
-								+ cstr(item[args['compare_ref_field']]) + """</b>. 
-							
-								You must reduce the %(compare_ref_field)s by %(reduce_by)s""" % item, raise_exception=1)
-					
-					else:
-						self.check_overflow_with_tolerance(item, args)
-						
-	
-	def update_all_qty(self):
-		"""
-			Updates delivered / billed / installed qty in Sales Order & Delivery Note
-		"""
-		if self.obj.doc.doctype=='Delivery Note':
-			self.update_qty({
-				'target_field'			:'delivered_qty',
-				'target_dt'				:'Sales Order Item',
-				'target_parent_dt'		:'Sales Order',
-				'target_parent_field'	:'per_delivered',
-				'target_ref_field'		:'qty',
-				'source_dt'				:'Delivery Note Item',
-				'source_field'			:'qty',
-				'join_field'			:'prevdoc_detail_docname',
-				'percent_join_field'	:'prevdoc_docname',
-				'status_field'			:'delivery_status',
-				'keyword'				:'Delivered'
-			})
-			
-		elif self.obj.doc.doctype=='Sales Invoice':
-			self.update_qty({
-				'target_field'			:'billed_amt',
-				'target_dt'				:'Sales Order Item',
-				'target_parent_dt'		:'Sales Order',
-				'target_parent_field'	:'per_billed',
-				'target_ref_field'		:'export_amount',
-				'source_dt'				:'Sales Invoice Item',
-				'source_field'			:'export_amount',
-				'join_field'			:'so_detail',
-				'percent_join_field'	:'sales_order',
-				'status_field'			:'billing_status',
-				'keyword'				:'Billed'
-			})
-
-			self.update_qty({
-				'target_field'			:'billed_amt',
-				'target_dt'				:'Delivery Note Item',
-				'target_parent_dt'		:'Delivery Note',
-				'target_parent_field'	:'per_billed',
-				'target_ref_field'		:'export_amount',
-				'source_dt'				:'Sales Invoice Item',
-				'source_field'			:'export_amount',
-				'join_field'			:'dn_detail',
-				'percent_join_field'	:'delivery_note',
-				'status_field'			:'billing_status',
-				'keyword'				:'Billed'
-			})
-			
-			if cint(self.obj.doc.is_pos) == 1:
-				self.update_qty({
-					'target_field'			:'delivered_qty',
-					'target_dt'				:'Sales Order Item',
-					'target_parent_dt'		:'Sales Order',
-					'target_parent_field'	:'per_delivered',
-					'target_ref_field'		:'qty',
-					'source_dt'				:'Sales Invoice Item',
-					'source_field'			:'qty',
-					'join_field'			:'so_detail',
-					'percent_join_field'	:'sales_order',
-					'status_field'			:'delivery_status',
-					'keyword'				:'Delivered'
-				})
-				
-		if self.obj.doc.doctype=='Installation Note':
-			self.update_qty({
-				'target_field'			:'installed_qty',
-				'target_dt'				:'Delivery Note Item',
-				'target_parent_dt'		:'Delivery Note',
-				'target_parent_field'	:'per_installed',
-				'target_ref_field'		:'qty',
-				'source_dt'				:'Installation Note Item',
-				'source_field'			:'qty',
-				'join_field'			:'prevdoc_detail_docname',
-				'percent_join_field'	:'prevdoc_docname',
-				'status_field'			:'installation_status',
-				'keyword'				:'Installed'
-			})
-
-
-	def update_qty(self, args):
-		"""
-			Updates qty at row level
-		"""
-		# condition to include current record (if submit or no if cancel)
-		if self.is_submit:
-			args['cond'] = ' or parent="%s"' % self.obj.doc.name
-		else:
-			args['cond'] = ' and parent!="%s"' % self.obj.doc.name
-		
-		# update quantities in child table
-		for d in self.obj.doclist:
-			if d.doctype == args['source_dt']:
-				# updates qty in the child table
-				args['detail_id'] = d.fields.get(args['join_field'])
-			
-				if args['detail_id']:
-					webnotes.conn.sql("""
-						update 
-							`tab%(target_dt)s` 
-						set 
-							%(target_field)s = (select sum(%(source_field)s) from `tab%(source_dt)s` where `%(join_field)s`="%(detail_id)s" and (docstatus=1 %(cond)s))
-						where
-							name="%(detail_id)s"            
-					""" % args)			
-		
-		# get unique transactions to update
-		for name in set([d.fields.get(args['percent_join_field']) for d in self.obj.doclist if d.doctype == args['source_dt']]):
-			if name:
-				args['name'] = name
-				
-				# update percent complete in the parent table
-				webnotes.conn.sql("""
-					update 
-						`tab%(target_parent_dt)s` 
-					set 
-						%(target_parent_field)s = 
-							(select sum(if(%(target_ref_field)s > ifnull(%(target_field)s, 0), %(target_field)s, %(target_ref_field)s))/sum(%(target_ref_field)s)*100 from `tab%(target_dt)s` where parent="%(name)s"), 
-						modified = now()
-					where
-						name="%(name)s"
-					""" % args)
-
-				# update field
-				if args['status_field']:
-					webnotes.conn.sql("""
-						update
-							`tab%(target_parent_dt)s` 
-						set
-							%(status_field)s = if(ifnull(%(target_parent_field)s,0)<0.001, 'Not %(keyword)s', 
-									if(%(target_parent_field)s>=99.99, 'Fully %(keyword)s', 'Partly %(keyword)s')
-								)
-						where
-							name="%(name)s"
-					""" % args)
-
diff --git a/selling/utils.py b/selling/utils.py
index bd04db5..5f2cfbd 100644
--- a/selling/utils.py
+++ b/selling/utils.py
@@ -113,8 +113,10 @@
 			"description": item.description_html or item.description,
 			"reserved_warehouse": item.default_warehouse or args.warehouse or args.reserved_warehouse,
 			"warehouse": item.default_warehouse or args.warehouse,
-			"income_account": item.default_income_account or args.income_account,
-			"expense_account": item.purchase_account or args.expense_account,
+			"income_account": item.default_income_account or args.income_account \
+				or webnotes.conn.get_value("Company", args.company, "default_income_account"),
+			"expense_account": item.purchase_account or args.expense_account \
+				or webnotes.conn.get_value("Company", args.company, "default_expense_account"),
 			"cost_center": item.default_sales_cost_center or args.cost_center,
 			"qty": 1.0,
 			"adj_rate": 0.0,
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index 446d602..0bcd8c5 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -191,6 +191,8 @@
 
 	def set_default_accounts(self):
 		accounts = {
+			"default_income_account": "Sales",
+			"default_expense_account": "Cost of Goods Sold",
 			"receivables_group": "Accounts Receivable",
 			"payables_group": "Accounts Payable",
 			"stock_received_but_not_billed": "Stock Received But Not Billed",
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index c4def9a..e3afda1 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-10 08:35:39", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:32:14", 
+  "modified": "2013-07-08 17:34:21", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -90,15 +90,6 @@
   "read_only": 0
  }, 
  {
-  "doctype": "DocField", 
-  "fieldname": "default_currency", 
-  "fieldtype": "Link", 
-  "label": "Default Currency", 
-  "options": "Currency", 
-  "read_only": 0, 
-  "reqd": 1
- }, 
- {
   "depends_on": "eval:!doc.__islocal", 
   "doctype": "DocField", 
   "fieldname": "default_bank_account", 
@@ -143,6 +134,28 @@
   "read_only": 0
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "default_expense_account", 
+  "fieldtype": "Link", 
+  "label": "Default Expense Account", 
+  "options": "Account"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "default_income_account", 
+  "fieldtype": "Link", 
+  "label": "Default Income Account", 
+  "options": "Account"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "column_break0", 
+  "fieldtype": "Column Break", 
+  "oldfieldtype": "Column Break", 
+  "read_only": 0, 
+  "width": "50%"
+ }, 
+ {
   "depends_on": "eval:!doc.__islocal", 
   "doctype": "DocField", 
   "fieldname": "cost_center", 
@@ -153,11 +166,12 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "column_break0", 
-  "fieldtype": "Column Break", 
-  "oldfieldtype": "Column Break", 
+  "fieldname": "default_currency", 
+  "fieldtype": "Link", 
+  "label": "Default Currency", 
+  "options": "Currency", 
   "read_only": 0, 
-  "width": "50%"
+  "reqd": 1
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index aa3a4d1..a7dbd00 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -369,7 +369,7 @@
 @webnotes.whitelist()
 def make_sales_invoice(source_name, target_doclist=None):	
 	def update_item(obj, target, source_parent):
-		target.export_amount = flt(obj.amount) - flt(obj.billed_amt)
+		target.export_amount = flt(obj.amount)
 		target.amount = target.export_amount / flt(source_parent.conversion_rate)
 		target.qty = obj.basic_rate and target.amount / flt(obj.basic_rate) or obj.qty
 		
@@ -393,8 +393,7 @@
 				"prevdoc_docname": "sales_order", 
 				"serial_no": "serial_no"
 			},
-			"postprocess": update_item,
-			"condition": lambda doc: doc.amount==0 or doc.billed_amt < doc.export_amount
+			"postprocess": update_item
 		}, 
 		"Sales Taxes and Charges": {
 			"doctype": "Sales Taxes and Charges", 
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index 1d6072e..a93573a 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-24 19:29:09", 
   "docstatus": 0, 
-  "modified": "2013-07-08 16:34:21", 
+  "modified": "2013-07-08 17:46:45", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -901,33 +901,6 @@
  }, 
  {
   "depends_on": "eval:!doc.__islocal", 
-  "description": "% of materials billed against this Delivery Note", 
-  "doctype": "DocField", 
-  "fieldname": "per_billed", 
-  "fieldtype": "Percent", 
-  "in_filter": 1, 
-  "in_list_view": 1, 
-  "label": "% Amount Billed", 
-  "no_copy": 1, 
-  "oldfieldname": "per_billed", 
-  "oldfieldtype": "Currency", 
-  "print_hide": 1, 
-  "read_only": 1, 
-  "search_index": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "billing_status", 
-  "fieldtype": "Select", 
-  "hidden": 1, 
-  "label": "Billing Status", 
-  "no_copy": 1, 
-  "options": "\nNot Billed\nPartly Billed\nFully Billed", 
-  "print_hide": 1, 
-  "read_only": 0
- }, 
- {
-  "depends_on": "eval:!doc.__islocal", 
   "description": "% of materials delivered against this Delivery Note", 
   "doctype": "DocField", 
   "fieldname": "per_installed", 
diff --git a/stock/doctype/delivery_note_item/delivery_note_item.txt b/stock/doctype/delivery_note_item/delivery_note_item.txt
index a8eda20..69b5bc4 100644
--- a/stock/doctype/delivery_note_item/delivery_note_item.txt
+++ b/stock/doctype/delivery_note_item/delivery_note_item.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-22 13:15:44", 
   "docstatus": 0, 
-  "modified": "2013-05-22 12:15:32", 
+  "modified": "2013-07-08 17:46:21", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -310,18 +310,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "billed_amt", 
-  "fieldtype": "Currency", 
-  "label": "Billed Amt", 
-  "no_copy": 1, 
-  "options": "currency", 
-  "print_hide": 1, 
-  "print_width": "100px", 
-  "read_only": 1, 
-  "width": "100px"
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "installed_qty", 
   "fieldtype": "Float", 
   "label": "Installed Qty", 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index b5e5202..852a9c6 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -35,6 +35,22 @@
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
 		}
 
+		cur_frm.add_custom_button(wn._('From Purchase Order'), 
+			function() {
+				wn.model.map_current_doc({
+					method: "buying.doctype.purchase_order.purchase_order.make_purchase_receipt",
+					source_doctype: "Purchase Order",
+					get_query_filters: {
+						supplier: cur_frm.doc.supplier || undefined,
+						docstatus: 1,
+						status: ["!=", "Stopped"],
+						per_received: ["<", 99.99],
+						company: cur_frm.doc.company
+					}
+				})
+			});
+
+
 		if(wn.boot.control_panel.country == 'India') {
 			unhide_field(['challan_no', 'challan_date']);
 		}
@@ -85,14 +101,11 @@
 			source_name: cur_frm.doc.name
 		})
 	}, 
-	
-	pull_purchase_order_details: function() {
-		wn.model.map_current_doc({
-			method: "buying.doctype.purchase_order.purchase_order.make_purchase_receipt",
-			source_name: cur_frm.doc.purchase_order_no,
-		})
-	}
-	
+
+	tc_name: function() {
+		this.get_terms();
+	},
+		
 });
 
 // for backward compatibility: combine new and previous states
@@ -146,57 +159,10 @@
 	return 'SELECT `tabPrint Heading`.name FROM `tabPrint Heading` WHERE `tabPrint Heading`.docstatus !=2 AND `tabPrint Heading`.name LIKE "%s" ORDER BY `tabPrint Heading`.name ASC LIMIT 50';
 }
 
-cur_frm.fields_dict['purchase_order_no'].get_query = function(doc) {
-	if (doc.supplier)
-		return 'SELECT DISTINCT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`supplier` = "' +doc.supplier + '" and`tabPurchase Order`.`docstatus` = 1 and `tabPurchase Order`.`status` != "Stopped" and ifnull(`tabPurchase Order`.`per_received`, 0) < 99.99	and `tabPurchase Order`.`currency` = ifnull("' +doc.currency+ '","") and `tabPurchase Order`.company = "'+ doc.company +'" and `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50';
-	else
-		return 'SELECT DISTINCT `tabPurchase Order`.`name` FROM `tabPurchase Order` WHERE `tabPurchase Order`.`docstatus` = 1 and `tabPurchase Order`.`company` = "'+ doc.company +'" and `tabPurchase Order`.`status` != "Stopped" and ifnull(`tabPurchase Order`.`per_received`, 0) < 99.99 and `tabPurchase Order`.%(key)s LIKE "%s" ORDER BY `tabPurchase Order`.`name` DESC LIMIT 50';
-}
-
 cur_frm.fields_dict.purchase_receipt_details.grid.get_field("qa_no").get_query = function(doc) {
 	return 'SELECT `tabQuality Inspection`.name FROM `tabQuality Inspection` WHERE `tabQuality Inspection`.docstatus = 1 AND `tabQuality Inspection`.%(key)s LIKE "%s"';
 }
 
-cur_frm.pformat.purchase_order_no = function(doc, cdt, cdn){
-	//function to make row of table
-	
-	var make_row = function(title,val1, val2, bold){
-		var bstart = '<b>'; var bend = '</b>';
-
-		return '<tr><td style="width:39%;">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'
-		 +'<td style="width:61%;text-align:left;">'+val1+(val2?' ('+dateutil.str_to_user(val2)+')':'')+'</td>'
-		 +'</tr>'
-	}
-
-	out ='';
-	
-	var cl = getchildren('Purchase Receipt Item',doc.name,'purchase_receipt_details');
-
-	// outer table	
-	var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 50%"></td><td>';
-	
-	// main table
-	out +='<table class="noborder" style="width:100%">';
-
-	// add rows
-	if(cl.length){
-		prevdoc_list = new Array();
-		for(var i=0;i<cl.length;i++){
-			if(cl[i].prevdoc_doctype == 'Purchase Order' && cl[i].prevdoc_docname && prevdoc_list.indexOf(cl[i].prevdoc_docname) == -1) {
-				prevdoc_list.push(cl[i].prevdoc_docname);
-				if(prevdoc_list.length ==1)
-					out += make_row(cl[i].prevdoc_doctype, cl[i].prevdoc_docname, cl[i].prevdoc_date,0);
-				else
-					out += make_row('', cl[i].prevdoc_docname, cl[i].prevdoc_date,0);
-			}
-		}
-	}
-
-	out +='</table></td></tr></table></div>';
-
-	return out;
-}
-
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.purchase_receipt)) {
 		cur_frm.email_doc(wn.boot.notification_settings.purchase_receipt_message);
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 1ebc5ae..d7b72aa 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -348,9 +348,10 @@
 
 	def update_item(obj, target, source_parent):
 		target.conversion_factor = 1
-		target.import_amount = flt(obj.import_amount) - flt(obj.billed_amt)
+		target.import_amount = flt(obj.import_amount)
 		target.amount = target.import_amount / flt(source_parent.conversion_rate)
-		target.qty = target.amount / flt(obj.purchase_rate)
+		if flt(obj.purchase_rate):
+			target.qty = target.amount / flt(obj.purchase_rate)
 
 	doclist = get_mapped_doclist("Purchase Receipt", source_name,	{
 		"Purchase Receipt": {
@@ -368,8 +369,7 @@
 				"prevdoc_docname": "purchase_order", 
 				"purchase_rate": "rate"
 			},
-			"postprocess": update_item,
-			"condition": lambda doc: doc.amount==0 or doc.billed_amt < doc.import_amount
+			"postprocess": update_item
 		}, 
 		"Purchase Taxes and Charges": {
 			"doctype": "Purchase Taxes and Charges", 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt
index 27eaf87..3b6d876 100755
--- a/stock/doctype/purchase_receipt/purchase_receipt.txt
+++ b/stock/doctype/purchase_receipt/purchase_receipt.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:52:08", 
+  "modified": "2013-07-08 17:46:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -32,6 +32,7 @@
   "parent": "Purchase Receipt", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
+  "permlevel": 0, 
   "read": 1, 
   "report": 1
  }, 
@@ -243,32 +244,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "section_break_20", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "description": "You can make a purchase receipt from multiple purchase orders. Select purchase orders one by one and click on the button below.", 
-  "doctype": "DocField", 
-  "fieldname": "purchase_order_no", 
-  "fieldtype": "Link", 
-  "in_list_view": 0, 
-  "label": "Purchase Order", 
-  "no_copy": 1, 
-  "oldfieldname": "purchase_order_no", 
-  "oldfieldtype": "Link", 
-  "options": "Purchase Order", 
-  "print_hide": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "pull_purchase_order_details", 
-  "fieldtype": "Button", 
-  "label": "Pull Purchase Order Details", 
-  "oldfieldtype": "Button", 
-  "print_hide": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "currency_price_list", 
   "fieldtype": "Section Break", 
   "label": "Currency & Price List", 
@@ -558,13 +533,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 Conditions1", 
@@ -627,20 +595,6 @@
   "width": "150px"
  }, 
  {
-  "depends_on": "eval:!doc.__islocal", 
-  "description": "% of materials billed against this Purchase Receipt", 
-  "doctype": "DocField", 
-  "fieldname": "per_billed", 
-  "fieldtype": "Percent", 
-  "in_list_view": 1, 
-  "label": "% Billed", 
-  "no_copy": 1, 
-  "oldfieldname": "per_billed", 
-  "oldfieldtype": "Currency", 
-  "print_hide": 1, 
-  "read_only": 1
- }, 
- {
   "default": "No", 
   "description": "Select \"Yes\" for sub - contracting items", 
   "doctype": "DocField", 
@@ -879,41 +833,19 @@
   "read_only": 1
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Material Manager", 
-  "submit": 0, 
-  "write": 0
- }, 
- {
   "amend": 1, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
   "role": "Material Manager", 
   "submit": 1, 
   "write": 1
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Material User", 
-  "submit": 0, 
-  "write": 0
- }, 
- {
   "amend": 1, 
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
   "role": "Material User", 
   "submit": 1, 
   "write": 1
@@ -923,24 +855,13 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "permlevel": 0, 
   "role": "Purchase User", 
   "submit": 1, 
   "write": 1
  }, 
  {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "role": "Purchase User", 
-  "submit": 0
- }, 
- {
   "doctype": "DocPerm", 
   "match": "supplier", 
-  "permlevel": 0, 
   "role": "Supplier"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt b/stock/doctype/purchase_receipt_item/purchase_receipt_item.txt
index 658dabb..0f6e9b5 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-07-08 13:52:28", 
+  "modified": "2013-07-08 17:46:17", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -454,16 +454,6 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "billed_amt", 
-  "fieldtype": "Currency", 
-  "label": "Billed Amt", 
-  "no_copy": 1, 
-  "options": "currency", 
-  "print_hide": 1, 
-  "read_only": 1
- }, 
- {
-  "doctype": "DocField", 
   "fieldname": "valuation_rate", 
   "fieldtype": "Currency", 
   "hidden": 1, 
