diff --git a/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt b/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
deleted file mode 100644
index e2f6422..0000000
--- a/accounts/DocType Mapper/Delivery Note-Sales Invoice/Delivery Note-Sales Invoice.txt
+++ /dev/null
@@ -1,147 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2012-04-03 12:49:42", 
-  "modified_by": "Administrator", 
-  "modified": "2012-04-03 12:49:43"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Delivery Note-Sales Invoice", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Delivery Note-Sales Invoice", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Sales Invoice", 
-  "module": "Accounts", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Delivery Note"
- }, 
- {
-  "name": "Delivery Note-Sales Invoice", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "qty", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.basic_rate) or obj.qty"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "delivery_note", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "dn_detail", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "sales_order", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "prevdoc_docname"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "so_detail", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "prevdoc_detail_docname"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "amount", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: flt(obj.amount) - flt(obj.billed_amt)"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "export_amount", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: (flt(obj.amount) - flt(obj.billed_amt)) * flt(obj.export_rate)/flt(obj.basic_rate)"
- }, 
- {
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "naming_series", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "naming_series"
- }, 
- {
-  "map": "No", 
-  "match_id": 3, 
-  "to_field": "incentives", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "incentives"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "serial_no", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "serial_no"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "export_rate", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "export_rate", 
-  "checking_operator": "="
- }, 
- {
-  "match_id": 0, 
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Delivery Note", 
-  "to_table": "Sales Invoice", 
-  "validation_logic": "docstatus=1"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "entries", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "delivery_note_details", 
-  "from_table": "Delivery Note Item", 
-  "to_table": "Sales Invoice Item", 
-  "validation_logic": "(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1"
- }, 
- {
-  "match_id": 2, 
-  "to_field": "other_charges", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "other_charges", 
-  "from_table": "Sales Taxes and Charges", 
-  "to_table": "Sales Taxes and Charges", 
-  "validation_logic": "name is not null"
- }, 
- {
-  "match_id": 3, 
-  "to_field": "sales_team", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "sales_team", 
-  "from_table": "Sales Team", 
-  "to_table": "Sales Team", 
-  "validation_logic": "name is not null"
- }
-]
\ No newline at end of file
diff --git a/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt b/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
deleted file mode 100644
index 4b6257b..0000000
--- a/accounts/DocType Mapper/Sales Order-Sales Invoice/Sales Order-Sales Invoice.txt
+++ /dev/null
@@ -1,149 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2012-04-03 12:49:42", 
-  "modified_by": "Administrator", 
-  "modified": "2012-04-03 12:49:42"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Sales Order-Sales Invoice", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Sales Order-Sales Invoice", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Sales Invoice", 
-  "module": "Accounts", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Sales Order"
- }, 
- {
-  "name": "Sales Order-Sales Invoice", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "customer", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer", 
-  "checking_operator": "="
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "qty", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "sales_order", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "so_detail", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "amount", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval:flt(obj.amount) - flt(obj.billed_amt)"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "export_amount", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "project_name", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "project_name", 
-  "checking_operator": "="
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "warehouse", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "reserved_warehouse"
- }, 
- {
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "naming_series", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "naming_series"
- }, 
- {
-  "map": "No", 
-  "match_id": 3, 
-  "to_field": "incentives", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "incentives"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "export_rate", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "export_rate", 
-  "checking_operator": "="
- }, 
- {
-  "match_id": 0, 
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Sales Order", 
-  "to_table": "Sales Invoice", 
-  "validation_logic": "docstatus=1"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "entries", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "sales_order_detail", 
-  "from_table": "Sales Order Item", 
-  "to_table": "Sales Invoice Item", 
-  "validation_logic": "(ifnull(amount, 0) = 0 or amount > ifnull(billed_amt, 0)) and docstatus = 1"
- }, 
- {
-  "match_id": 2, 
-  "to_field": "other_charges", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "other_charges", 
-  "from_table": "Sales Taxes and Charges", 
-  "to_table": "Sales Taxes and Charges", 
-  "validation_logic": "name is not null"
- }, 
- {
-  "match_id": 3, 
-  "to_field": "sales_team", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "sales_team", 
-  "from_table": "Sales Team", 
-  "to_table": "Sales Team", 
-  "validation_logic": "name is not null"
- }
-]
\ No newline at end of file
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index cf308e3..0e461f1 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -67,7 +67,23 @@
 	allocated_amount: function() {
 		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,
+			})
+		}
 	}
+	
 });
 
 // for backward compatibility: combine new and previous states
@@ -101,14 +117,6 @@
 	if (doc.is_opening == 'Yes') unhide_field('aging_date');
 }
 
-cur_frm.cscript.get_items = function(doc, dt, dn) {
-	var callback = function(r,rt) { 
-		unhide_field(['supplier_address', 'contact_person']);				
-		cur_frm.refresh_fields();
-	}
-	$c_obj(make_doclist(dt,dn),'pull_details','',callback);
-}
-
 cur_frm.cscript.make_bank_voucher = function() {
 	wn.call({
 		method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account",
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index 980d4e8..059073a 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -126,26 +126,6 @@
 			ret['due_date'] = add_days(cstr(self.doc.posting_date), acc and cint(acc[1]) or 0)
 			
 		return ret
-		
-	def pull_details(self):
-		if self.doc.purchase_receipt_main:
-			self.validate_duplicate_docname('purchase_receipt')
-			self.doclist = get_obj('DocType Mapper', 'Purchase Receipt-Purchase Invoice').dt_map('Purchase Receipt', 'Purchase Invoice', self.doc.purchase_receipt_main, self.doc, self.doclist, "[['Purchase Receipt', 'Purchase Invoice'], ['Purchase Receipt Item', 'Purchase Invoice Item'], ['Purchase Taxes and Charges','Purchase Taxes and Charges']]")
-
-		elif self.doc.purchase_order_main:
-			self.validate_duplicate_docname('purchase_order')
-			self.doclist = get_obj('DocType Mapper', 'Purchase Order-Purchase Invoice').dt_map('Purchase Order', 'Purchase Invoice', self.doc.purchase_order_main, self.doc, self.doclist, "[['Purchase Order', 'Purchase Invoice'],['Purchase Order Item', 'Purchase Invoice Item'], ['Purchase Taxes and Charges','Purchase Taxes and Charges']]")
-		
-		self.get_expense_account('entries')
-
-		ret = self.get_credit_to()
-		if ret.has_key('credit_to'):
-			self.doc.credit_to = ret['credit_to']
-
-	def get_expense_account(self, doctype):
-		for d in getlist(self.doclist, doctype):			
-			if d.item_code:
-				d.fields.update(self.get_default_values(d.fields))
 
 	def get_advances(self):
 		super(DocType, self).get_advances(self.doc.credit_to, 
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt
index c3b5061..424770b 100755
--- a/accounts/doctype/purchase_invoice/purchase_invoice.txt
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-05-21 16:16:39", 
   "docstatus": 0, 
-  "modified": "2013-06-11 16:16:38", 
+  "modified": "2013-07-05 14:40:59", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -30,7 +30,6 @@
   "parent": "Purchase Invoice", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
-  "permlevel": 0, 
   "read": 1, 
   "report": 1
  }, 
@@ -259,7 +258,6 @@
   "fieldtype": "Button", 
   "label": "Get Items", 
   "oldfieldtype": "Button", 
-  "options": "pull_details", 
   "read_only": 0
  }, 
  {
@@ -828,30 +826,12 @@
   "reqd": 0
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "role": "Accounts User", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "role": "Purchase User", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
   "amend": 0, 
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
-  "match": "supplier", 
-  "role": "Supplier", 
+  "permlevel": 1, 
+  "role": "Accounts Manager", 
   "submit": 0, 
   "write": 0
  }, 
@@ -860,6 +840,7 @@
   "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
+  "permlevel": 0, 
   "role": "Accounts Manager", 
   "submit": 1, 
   "write": 1
@@ -869,8 +850,44 @@
   "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
-  "role": "Auditor", 
+  "permlevel": 1, 
+  "role": "Accounts User", 
   "submit": 0, 
   "write": 0
+ }, 
+ {
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "permlevel": 1, 
+  "role": "Purchase User", 
+  "submit": 0
+ }, 
+ {
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "permlevel": 0, 
+  "role": "Purchase User", 
+  "submit": 0, 
+  "write": 1
+ }, 
+ {
+  "amend": 1, 
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "permlevel": 0, 
+  "role": "Accounts User", 
+  "submit": 1, 
+  "write": 1
+ }, 
+ {
+  "doctype": "DocPerm", 
+  "match": "supplier", 
+  "permlevel": 0, 
+  "role": "Supplier"
  }
 ]
\ No newline at end of file
diff --git a/buying/DocType Mapper/Material Request-Purchase Order/Material Request-Purchase Order.txt b/buying/DocType Mapper/Material Request-Purchase Order/Material Request-Purchase Order.txt
deleted file mode 100644
index 5d01ac0..0000000
--- a/buying/DocType Mapper/Material Request-Purchase Order/Material Request-Purchase Order.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-[
- {
-  "creation": "2010-08-08 17:09:34", 
-  "docstatus": 0, 
-  "modified": "2013-02-18 13:41:16", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Material Request-Purchase Order", 
-  "parentfield": "table_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Material Request-Purchase Order", 
-  "parentfield": "field_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "from_doctype": "Material Request", 
-  "module": "Buying", 
-  "name": "__common__", 
-  "ref_doc_submitted": 1, 
-  "to_doctype": "Purchase Order"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "name": "Material Request-Purchase Order"
- }, 
- {
-  "checking_operator": "=", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "company", 
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "company"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parenttype", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_doctype"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_docname"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_detail_docname"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "uom", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "stock_uom"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval:flt(1)", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "conversion_factor"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval:flt(obj.qty) - flt(obj.ordered_qty)", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "stock_qty"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval:flt(obj.qty) - flt(obj.ordered_qty)", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "qty"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "schedule_date", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "schedule_date"
- }, 
- {
-  "checking_operator": ">=", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "transaction_date", 
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "transaction_date"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Material Request", 
-  "match_id": 0, 
-  "reference_key": "prevdoc_docname", 
-  "to_table": "Purchase Order", 
-  "validation_logic": "docstatus = 1"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_field": "indent_details", 
-  "from_table": "Material Request Item", 
-  "match_id": 1, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "to_field": "po_details", 
-  "to_table": "Purchase Order Item", 
-  "validation_logic": "qty > ifnull(ordered_qty,0) and docstatus =1"
- }
-]
\ No newline at end of file
diff --git a/buying/DocType Mapper/Material Request-Supplier Quotation/Material Request-Supplier Quotation.txt b/buying/DocType Mapper/Material Request-Supplier Quotation/Material Request-Supplier Quotation.txt
deleted file mode 100644
index 0e9bc50..0000000
--- a/buying/DocType Mapper/Material Request-Supplier Quotation/Material Request-Supplier Quotation.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-[
- {
-  "creation": "2012-08-06 20:02:53", 
-  "docstatus": 0, 
-  "modified": "2013-02-18 13:41:13", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Material Request-Supplier Quotation", 
-  "parentfield": "table_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Material Request-Supplier Quotation", 
-  "parentfield": "field_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "from_doctype": "Material Request", 
-  "module": "Buying", 
-  "name": "__common__", 
-  "ref_doc_submitted": 1, 
-  "to_doctype": "Supplier Quotation"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "name": "Material Request-Supplier Quotation"
- }, 
- {
-  "checking_operator": "=", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "company", 
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "company"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parenttype", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_doctype"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_docname"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_detail_docname"
- }, 
- {
-  "checking_operator": ">=", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "transaction_date", 
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "transaction_date"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Material Request", 
-  "match_id": 0, 
-  "reference_key": "prevdoc_docname", 
-  "to_table": "Supplier Quotation", 
-  "validation_logic": "docstatus = 1"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_field": "indent_details", 
-  "from_table": "Material Request Item", 
-  "match_id": 1, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "to_field": "quotation_items", 
-  "to_table": "Supplier Quotation Item", 
-  "validation_logic": "docstatus =1"
- }
-]
\ No newline at end of file
diff --git a/buying/DocType Mapper/Sales Order-Material Request/Sales Order-Material Request.txt b/buying/DocType Mapper/Sales Order-Material Request/Sales Order-Material Request.txt
deleted file mode 100644
index f6423d9..0000000
--- a/buying/DocType Mapper/Sales Order-Material Request/Sales Order-Material Request.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-[
- {
-  "creation": "2011-05-20 10:07:55", 
-  "docstatus": 0, 
-  "modified": "2013-02-20 18:20:27", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Sales Order-Material Request", 
-  "parentfield": "table_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Sales Order-Material Request", 
-  "parentfield": "field_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "from_doctype": "Sales Order", 
-  "module": "Buying", 
-  "name": "__common__", 
-  "ref_doc_submitted": 1, 
-  "to_doctype": "Material Request"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "name": "Sales Order-Material Request"
- }, 
- {
-  "checking_operator": ">=", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "transaction_date", 
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "transaction_date"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval:\"Purchase\"", 
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "material_request_type"
- }, 
- {
-  "checking_operator": "=", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "company", 
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "company"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "sales_order_no"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "stock_uom", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "uom"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "reserved_warehouse", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "warehouse"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_field": "sales_order_details", 
-  "from_table": "Sales Order Item", 
-  "match_id": 1, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "reference_key": "prevdoc_detail_docname", 
-  "to_field": "indent_details", 
-  "to_table": "Material Request Item", 
-  "validation_logic": "docstatus=1"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Sales Order", 
-  "match_id": 0, 
-  "reference_key": "prevdoc_docname", 
-  "to_table": "Material Request", 
-  "validation_logic": "docstatus = 1"
- }
-]
\ No newline at end of file
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index fd420ca..4c22982 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -30,15 +30,46 @@
 		
 		if(doc.docstatus == 1 && doc.status != 'Stopped'){
 			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', cur_frm.cscript['Make Purchase Receipt']);	
-			if(flt(doc.per_billed, 2) < 100) cur_frm.add_custom_button('Make Invoice', cur_frm.cscript['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']);
+			if(flt(doc.per_received, 2) < 100) 
+				cur_frm.add_custom_button('Make Purchase Receipt', this.make_purchase_receipt);	
+			if(flt(doc.per_billed, 2) < 100) 
+				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']);
 		}
 
 		if(doc.docstatus == 1 && doc.status == 'Stopped')
-			cur_frm.add_custom_button('Unstop Purchase Order', cur_frm.cscript['Unstop Purchase Order']);
-			
+			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",
+			source_name: cur_frm.doc.name
+		})
+	},
+	
+	make_purchase_invoice: function() {
+		wn.model.open_mapped_doc({
+			method: "buying.doctype.purchase_order.purchase_order.make_purchase_invoice",
+			source_name: cur_frm.doc.name
+		})
+	},
+	
+	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,
+		})
+	}
 });
 
 // for backward compatibility: combine new and previous states
@@ -70,58 +101,14 @@
 		ORDER BY `name` DESC LIMIT 50';
 }
 
-
-//========================= Get Last Purhase Rate =====================================
 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);
-				var doc = locals[cdt][cdn];
-				cur_frm.cscript.calc_amount( doc, 2);
-			}
-	);
-
+	$c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', function(r, rt) { 
+		refresh_field(cur_frm.cscript.fname);
+		var doc = locals[cdt][cdn];
+		cur_frm.cscript.calc_amount( doc, 2);
+	});
 }
 
-cur_frm.cscript.get_items = function(doc, dt, dn) {
-	wn.model.map_current_doc({
-		method: "stock.doctype.material_request.material_request.make_purchase_order",
-		source_name: cur_frm.doc.indent_no,
-	})
-}
-
-cur_frm.cscript['Make Purchase Receipt'] = function() {
-	n = wn.model.make_new_doc_and_get_name('Purchase Receipt');
-	$c('dt_map', args={
-		'docs':wn.model.compress([locals['Purchase Receipt'][n]]),
-		'from_doctype': cur_frm.doc.doctype,
-		'to_doctype':'Purchase Receipt',
-		'from_docname':cur_frm.doc.name,
-		'from_to_list':"[['Purchase Order','Purchase Receipt'],['Purchase Order Item','Purchase Receipt Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]"
-		}, function(r,rt) {
-			 loaddoc('Purchase Receipt', n);
-		}
-	);
-}
-
-//========================== Make Purchase Invoice =====================================================
-cur_frm.cscript['Make Purchase Invoice'] = function() {
-	n = wn.model.make_new_doc_and_get_name('Purchase Invoice');
-	$c('dt_map', {
-		'docs':wn.model.compress([locals['Purchase Invoice'][n]]),
-		'from_doctype':cur_frm.doc.doctype,
-		'to_doctype':'Purchase Invoice',
-		'from_docname': cur_frm.doc.name,
-		'from_to_list':"[['Purchase Order','Purchase Invoice'],['Purchase Order Item','Purchase Invoice Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]"
-		}, function(r,rt) {
-			 loaddoc('Purchase Invoice', n);
-		}
-	);
-}
-
-
-// Stop PURCHASE ORDER
-// ==================================================================================================
 cur_frm.cscript['Stop Purchase Order'] = function() {
 	var doc = cur_frm.doc;
 	var check = confirm("Do you really want to STOP " + doc.name);
@@ -133,8 +120,6 @@
 	}
 }
 
-// Unstop PURCHASE ORDER
-// ==================================================================================================
 cur_frm.cscript['Unstop Purchase Order'] = function() {
 	var doc = cur_frm.doc;
 	var check = confirm("Do you really want to UNSTOP " + doc.name);
@@ -146,7 +131,6 @@
 	}
 }
 
-//****************** For print sales order no and date*************************
 cur_frm.pformat.indent_no = function(doc, cdt, cdn){
 	//function to make row of table
 	
diff --git a/buying/doctype/purchase_order/purchase_order.py b/buying/doctype/purchase_order/purchase_order.py
index fba448c..ac86e25 100644
--- a/buying/doctype/purchase_order/purchase_order.py
+++ b/buying/doctype/purchase_order/purchase_order.py
@@ -71,17 +71,11 @@
 	def get_bin_details(self, arg = ''):
 		return get_obj(dt='Purchase Common').get_bin_details(arg)
 
-	def get_supplier_quotation_items(self):
-		if self.doc.supplier_quotation:
-			get_obj("DocType Mapper", "Supplier Quotation-Purchase Order").dt_map("Supplier Quotation",
-				"Purchase Order", self.doc.supplier_quotation, self.doc, self.doclist,
-				"""[['Supplier Quotation', 'Purchase Order'],
-				['Supplier Quotation Item', 'Purchase Order Item'],
-				['Purchase Taxes and Charges', 'Purchase Taxes and Charges']]""")
-			for d in getlist(self.doclist, 'po_details'):
-				if d.prevdoc_detail_docname and not d.schedule_date:
-					d.schedule_date = webnotes.conn.get_value("Material Request Item",
-							d.prevdoc_detail_docname, "schedule_date")
+	def get_schedule_dates(self):
+		for d in getlist(self.doclist, 'po_details'):
+			if d.prevdoc_detail_docname and not d.schedule_date:
+				d.schedule_date = webnotes.conn.get_value("Material Request Item",
+						d.prevdoc_detail_docname, "schedule_date")
 	
 	def get_last_purchase_rate(self):
 		get_obj('Purchase Common').get_last_purchase_rate(self)
@@ -205,4 +199,84 @@
 		pass
 		
 	def get_rate(self,arg):
-		return get_obj('Purchase Common').get_rate(arg,self)
\ No newline at end of file
+		return get_obj('Purchase Common').get_rate(arg,self)
+
+@webnotes.whitelist()
+def make_purchase_receipt(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	def set_missing_values(source, target):
+		bean = webnotes.bean(target)
+		bean.run_method("set_missing_values")
+
+	def update_item(obj, target, source_parent):
+		target.conversion_factor = 1
+		target.qty = flt(obj.qty) - flt(obj.received_qty)
+		target.stock_qty = (flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)
+		target.import_amount = (flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)
+		target.amount = (flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)
+
+	doclist = get_mapped_doclist("Purchase Order", source_name,	{
+		"Purchase Order": {
+			"doctype": "Purchase Receipt", 
+			"validation": {
+				"docstatus": ["=", 1],
+			}
+		}, 
+		"Purchase Order Item": {
+			"doctype": "Purchase Receipt Item", 
+			"field_map": {
+				"name": "prevdoc_detail_docname", 
+				"parent": "prevdoc_docname", 
+				"parenttype": "prevdoc_doctype", 
+			},
+			"postprocess": update_item,
+			"condition": lambda doc: doc.received_qty < doc.qty
+		}, 
+		"Purchase Taxes and Charges": {
+			"doctype": "Purchase Taxes and Charges", 
+		}
+	}, target_doclist, set_missing_values)
+
+	return [d.fields for d in doclist]
+	
+@webnotes.whitelist()
+def make_purchase_invoice(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	
+	def set_missing_values(source, target):
+		bean = webnotes.bean(target)
+		bean.run_method("set_missing_values")
+		bean.run_method("set_supplier_defaults")
+
+	def update_item(obj, target, source_parent):
+		target.conversion_factor = 1
+		target.qty = (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.purchase_rate)
+		target.import_amount = (flt(obj.amount) - flt(obj.billed_amt)) / \
+			flt(source_parent.conversion_rate)
+		target.amount = flt(obj.amount) - flt(obj.billed_amt)
+
+	doclist = get_mapped_doclist("Purchase Order", source_name,	{
+		"Purchase Order": {
+			"doctype": "Purchase Invoice", 
+			"validation": {
+				"docstatus": ["=", 1],
+			}
+		}, 
+		"Purchase Order Item": {
+			"doctype": "Purchase Invoice Item", 
+			"field_map": {
+				"name": "po_detail", 
+				"parent": "purchase_order", 
+				"purchase_rate": "rate"
+			},
+			"postprocess": update_item,
+			"condition": lambda doc: doc.amount==0 or doc.billed_amt < doc.amount 
+		}, 
+		"Purchase Taxes and Charges": {
+			"doctype": "Purchase Taxes and Charges", 
+		}
+	}, target_doclist, set_missing_values)
+
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/buying/doctype/purchase_order/purchase_order.txt b/buying/doctype/purchase_order/purchase_order.txt
index 6fd2161..882de57 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-04 18:10:21", 
+  "modified": "2013-07-05 13:02:52", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -267,7 +267,7 @@
   "fieldtype": "Float", 
   "hidden": 0, 
   "label": "Exchange Rate", 
-  "no_copy": 1, 
+  "no_copy": 0, 
   "oldfieldname": "conversion_rate", 
   "oldfieldtype": "Currency", 
   "print_hide": 1, 
diff --git a/buying/doctype/purchase_order/test_purchase_order.py b/buying/doctype/purchase_order/test_purchase_order.py
index 34286db..85420d8 100644
--- a/buying/doctype/purchase_order/test_purchase_order.py
+++ b/buying/doctype/purchase_order/test_purchase_order.py
@@ -19,9 +19,38 @@
 import unittest
 import webnotes
 import webnotes.defaults
-from webnotes.utils import cint
 
 class TestPurchaseOrder(unittest.TestCase):
+	def test_make_purchase_receipt(self):
+		from buying.doctype.purchase_order.purchase_order import make_purchase_receipt
+
+		po = webnotes.bean(copy=test_records[0]).insert()
+
+		self.assertRaises(webnotes.ValidationError, make_purchase_receipt, 
+			po.doc.name)
+
+		po = webnotes.bean("Purchase Order", po.doc.name)
+		po.submit()
+		pr = make_purchase_receipt(po.doc.name)
+		
+		self.assertEquals(pr[0]["doctype"], "Purchase Receipt")
+		self.assertEquals(len(pr), len(test_records[0]))
+		
+	def test_make_purchase_invocie(self):
+		from buying.doctype.purchase_order.purchase_order import make_purchase_invoice
+
+		po = webnotes.bean(copy=test_records[0]).insert()
+
+		self.assertRaises(webnotes.ValidationError, make_purchase_invoice, 
+			po.doc.name)
+
+		po = webnotes.bean("Purchase Order", po.doc.name)
+		po.submit()
+		pi = make_purchase_invoice(po.doc.name)
+		
+		self.assertEquals(pi[0]["doctype"], "Purchase Invoice")
+		self.assertEquals(len(pi), len(test_records[0]))
+		
 	def test_subcontracting(self):
 		po = webnotes.bean(copy=test_records[0])
 		po.insert()		
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index 92db302..8ecb6ea 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -28,33 +28,28 @@
 		this._super();
 
 		if (this.frm.doc.docstatus === 1) {
-			cur_frm.add_custom_button("Make Purchase Order", cur_frm.cscript.make_purchase_order);
+			cur_frm.add_custom_button("Make Purchase Order", this.make_purchase_order);
 		}
 	},	
+	
 	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",
+			source_name: cur_frm.doc.name
+		})
 	}
 });
 
 // for backward compatibility: combine new and previous states
 $.extend(cur_frm.cscript, new erpnext.buying.SupplierQuotationController({frm: cur_frm}));
 
-cur_frm.cscript.make_purchase_order = function() {
-	var new_po_name = wn.model.make_new_doc_and_get_name("Purchase Order");
-	$c("dt_map", {
-		"docs": wn.model.compress([locals['Purchase Order'][new_po_name]]),
-		"from_doctype": cur_frm.doc.doctype,
-		"to_doctype": "Purchase Order",
-		"from_docname": cur_frm.doc.name,
-		"from_to_list": JSON.stringify([['Supplier Quotation', 'Purchase Order'],
-			['Supplier Quotation Item', 'Purchase Order Item'],
-			['Purchase Taxes and Charges', 'Purchase Taxes and Charges']]),
-	}, function(r, rt) { loaddoc("Purchase Order", new_po_name) });
-}
-
 cur_frm.cscript.uom = function(doc, cdt, cdn) {
 	// no need to trigger updation of stock uom, as this field doesn't exist in supplier quotation
 }
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.py b/buying/doctype/supplier_quotation/supplier_quotation.py
index b8cf7cb..36e8ede 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.py
+++ b/buying/doctype/supplier_quotation/supplier_quotation.py
@@ -58,3 +58,41 @@
 		pc.validate_for_items(self)
 		pc.get_prevdoc_date(self)
 		pc.validate_reference_value(self)
+
+@webnotes.whitelist()
+def make_purchase_order(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	def set_missing_values(source, target):
+		bean = webnotes.bean(target)
+		bean.run_method("set_missing_values")
+		bean.run_method("get_schedule_dates")
+
+	def update_item(obj, target, source_parent):
+		target.conversion_factor = 1
+
+	doclist = get_mapped_doclist("Supplier Quotation", source_name,		{
+		"Supplier Quotation": {
+			"doctype": "Purchase Order", 
+			"validation": {
+				"docstatus": ["=", 1],
+			}
+		}, 
+		"Supplier Quotation Item": {
+			"doctype": "Purchase Order Item", 
+			"field_map": {
+				"name": "supplier_quotation_item", 
+				"parent": "supplier_quotation", 
+				"uom": "stock_uom",
+				"prevdoc_detail_docname": "prevdoc_detail_docname",
+				"prevdoc_doctype": "prevdoc_doctype",
+				"prevdoc_docname": "prevdoc_docname",
+			},
+			"postprocess": update_item
+		}, 
+		"Purchase Taxes and Charges": {
+			"doctype": "Purchase Taxes and Charges", 
+		},
+	}, target_doclist, set_missing_values)
+
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index b8362b5..c5e9302 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -450,7 +450,8 @@
 	
 	def update_item(obj, target):
 		target.export_amount = (flt(obj.amount) - flt(obj.billed_amt))* flt(obj.export_rate)/flt(obj.basic_rate)
-		target.qty = obj.basic_rate and (flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty
+		target.qty = obj.basic_rate and \
+			(flt(obj.amount) - flt(obj.billed_amt))/flt(obj.basic_rate) or obj.qty
 		target.amount = flt(obj.amount) - flt(obj.billed_amt)
 		
 	def update_accounts(source, target):
diff --git a/stock/doctype/material_request/material_request.js b/stock/doctype/material_request/material_request.js
index 6de7a29..d33ca80 100644
--- a/stock/doctype/material_request/material_request.js
+++ b/stock/doctype/material_request/material_request.js
@@ -37,15 +37,15 @@
 		if(doc.docstatus == 1 && doc.status != 'Stopped'){
 			if(doc.material_request_type === "Purchase")
 				cur_frm.add_custom_button("Make Supplier Quotation", 
-					cur_frm.cscript.make_supplier_quotation);
+					this.make_supplier_quotation);
 				
 			if(doc.material_request_type === "Transfer" && doc.status === "Submitted")
-				cur_frm.add_custom_button("Transfer Material", cur_frm.cscript.make_stock_entry);
+				cur_frm.add_custom_button("Transfer Material", this.make_stock_entry);
 			
 			if(flt(doc.per_ordered, 2) < 100) {
 				if(doc.material_request_type === "Purchase")
 					cur_frm.add_custom_button('Make Purchase Order', 
-						cur_frm.cscript.make_purchase_order);
+						this.make_purchase_order);
 				
 				cur_frm.add_custom_button('Stop Material Request', 
 					cur_frm.cscript['Stop Material Request']);
diff --git a/stock/doctype/material_request/material_request.py b/stock/doctype/material_request/material_request.py
index 3f3c212..d423b3c 100644
--- a/stock/doctype/material_request/material_request.py
+++ b/stock/doctype/material_request/material_request.py
@@ -241,19 +241,17 @@
 			"posting_date": controller.doc.posting_date,
 		})
 
-
+def set_missing_values(source, target):
+	po = webnotes.bean(target)
+	po.run_method("set_missing_values")
 
 @webnotes.whitelist()
 def make_purchase_order(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 
-	def update_item(obj, target):
+	def update_item(obj, target, source_parent):
 		target.conversion_factor = 1
 		target.qty = flt(obj.qty) - flt(obj.ordered_qty)
-		
-	def set_missing_values(source, target):
-		po = webnotes.bean(target)
-		po.run_method("set_missing_values")
 
 	doclist = get_mapped_doclist("Material Request", source_name, 	{
 		"Material Request": {
@@ -281,10 +279,6 @@
 def make_supplier_quotation(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 
-	def set_missing_values(source, target):
-		sq = webnotes.bean(target)
-		sq.run_method("set_missing_values")
-
 	doclist = get_mapped_doclist("Material Request", source_name, {
 		"Material Request": {
 			"doctype": "Supplier Quotation", 
@@ -309,7 +303,7 @@
 def make_stock_entry(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 
-	def set_purpose(source, target):
+	def set_purpose(source, target, source_parent):
 		target[0].purpose = "Material Transfer"
 		
 	def update_item(source, target):
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index 1f32b78..b5e5202 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -30,7 +30,7 @@
 		if(this.frm.doc.docstatus == 1) {
 			if(flt(this.frm.doc.per_billed, 2) < 100) {
 				cur_frm.add_custom_button('Make Purchase Invoice', 
-					cur_frm.cscript['Make Purchase Invoice']);
+					this.make_purchase_invoice);
 			}
 			cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']);
 		}
@@ -68,7 +68,8 @@
 		wn.model.round_floats_in(item, ["received_qty", "rejected_qty"]);
 		
 		if(item.rejected_qty > item.received_qty) {
-			msgprint(wn._("Error") + ": " + wn._(wn.meta.get_label(item.doctype, "rejected_qty", item.name))
+			msgprint(wn._("Error") + ": " + 
+				wn._(wn.meta.get_label(item.doctype, "rejected_qty", item.name))
 				+ " > " + wn._(wn.meta.get_label(item.doctype, "received_qty", item.name)));
 			item.qty = item.rejected_qty = 0.0;
 		} else {
@@ -77,6 +78,21 @@
 		
 		this.qty(doc, cdt, cdn);
 	},
+	
+	make_purchase_invoice: function() {
+		wn.model.open_mapped_doc({
+			method: "stock.doctype.purchase_receipt.purchase_receipt.make_purchase_invoice",
+			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,
+		})
+	}
+	
 });
 
 // for backward compatibility: combine new and previous states
@@ -94,17 +110,6 @@
 	return 'SELECT name,CONCAT(first_name," ",ifnull(last_name,"")) As FullName,department,designation FROM tabContact WHERE supplier = "'+ doc.supplier +'" AND docstatus != 2 AND name LIKE "%s" ORDER BY name ASC LIMIT 50';
 }
 
-// Get Purchase Order Button
-// -----------------
-cur_frm.cscript.pull_purchase_order_details = function(doc, dt, dn) {
-	$c_obj(make_doclist(dt,dn),'get_po_details','',function(r,rt) { 
-		cur_frm.refresh_fields();
-	});
-}
-
-
-
-//================ create new contact ============================================================================
 cur_frm.cscript.new_contact = function(){
 	tn = wn.model.make_new_doc_and_get_name('Contact');
 	locals['Contact'][tn].is_supplier = 1;
@@ -112,15 +117,12 @@
 	loaddoc('Contact', tn);
 }
 
-// ***************** Get project name *****************
 cur_frm.fields_dict['purchase_receipt_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
 	return 'SELECT `tabProject`.name FROM `tabProject` \
 		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
 		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
-
-//========================= Overloaded query for link batch_no =============================================================
 cur_frm.fields_dict['purchase_receipt_details'].grid.get_field('batch_no').get_query= function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
 	if(d.item_code){
@@ -139,12 +141,11 @@
 	else
 		cur_frm.pformat.print_heading = "Purchase Receipt";
 }
-// ***************** 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';
 }
 
-//================================= Purchase Order No Get Query ====================================
 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';
@@ -152,36 +153,10 @@
 		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';
 }
 
-// QA INspection report get_query
-//---------------------------------
-
 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"';
 }
 
-// On Button Click Functions
-// ------------------------------------------------------------------------------
-
-
-// ================================ Make Purchase Invoice ==========================================
-cur_frm.cscript['Make Purchase Invoice'] = function() {
-	n = wn.model.make_new_doc_and_get_name('Purchase Invoice');
-	$c('dt_map', args={
-		'docs':wn.model.compress([locals['Purchase Invoice'][n]]),
-		'from_doctype': cur_frm.doc.doctype,
-		'to_doctype':'Purchase Invoice',
-		'from_docname': cur_frm.doc.name,
-		'from_to_list':"[['Purchase Receipt','Purchase Invoice'],['Purchase Receipt Item','Purchase Invoice Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]"
-		}, function(r,rt) {
-			loaddoc('Purchase Invoice', n);
-		}
-	);
-}
-
-
-
-
-//****************** For print sales order no and date*************************
 cur_frm.pformat.purchase_order_no = function(doc, cdt, cdn){
 	//function to make row of table
 	
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 49b9bd0..af87083 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -52,11 +52,6 @@
 	def get_bin_details(self, arg = ''):
 		return get_obj(dt='Purchase Common').get_bin_details(arg)
 
-	# Pull Purchase Order
-	def get_po_details(self):
-		self.validate_prev_docname()
-		get_obj('DocType Mapper', 'Purchase Order-Purchase Receipt').dt_map('Purchase Order', 'Purchase Receipt', self.doc.purchase_order_no, self.doc, self.doclist, "[['Purchase Order','Purchase Receipt'],['Purchase Order Item', 'Purchase Receipt Item'],['Purchase Taxes and Charges','Purchase Taxes and Charges']]")
-
 	# validate if PO has been pulled twice
 	def validate_prev_docname(self):
 		for d in getlist(self.doclist, 'purchase_receipt_details'):
@@ -64,9 +59,6 @@
 				msgprint(cstr(self.doc.purchase_order_no) + " Purchase Order details have already been pulled. ")
 				raise Exception
 
-
-	# validation
-	#-------------------------------------------------------------------------------------------------------------
 	# validate accepted and rejected qty
 	def validate_accepted_rejected_qty(self):
 		for d in getlist(self.doclist, "purchase_receipt_details"):
@@ -333,4 +325,47 @@
 				total_valuation_amount += flt(item.valuation_rate) * \
 					flt(item.qty) * flt(item.conversion_factor)
 
-		return total_valuation_amount
\ No newline at end of file
+		return total_valuation_amount
+		
+	
+@webnotes.whitelist()
+def make_purchase_invoice(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	def set_missing_values(source, target):
+		bean = webnotes.bean(target)
+		bean.run_method("set_missing_values")
+		bean.run_method("set_supplier_defaults")
+
+	def update_item(obj, target, source_parent):
+		target.conversion_factor = 1
+		target.qty = (flt(obj.amount) - flt(obj.billed_amt)) / flt(obj.purchase_rate)
+		target.import_amount = (flt(obj.amount) - flt(obj.billed_amt)) / \
+			flt(source_parent.conversion_rate)
+		target.amount = flt(obj.amount) - flt(obj.billed_amt)
+
+	doclist = get_mapped_doclist("Purchase Receipt", source_name,	{
+		"Purchase Receipt": {
+			"doctype": "Purchase Invoice", 
+			"validation": {
+				"docstatus": ["=", 1],
+			}
+		}, 
+		"Purchase Receipt Item": {
+			"doctype": "Purchase Invoice Item", 
+			"field_map": {
+				"name": "pr_detail", 
+				"parent": "purchase_receipt", 
+				"prevdoc_detail_docname": "po_detail", 
+				"prevdoc_docname": "purchase_order", 
+				"purchase_rate": "rate"
+			},
+			"postprocess": update_item,
+			"condition": lambda doc: doc.amount==0 or doc.billed_amt < doc.amount
+		}, 
+		"Purchase Taxes and Charges": {
+			"doctype": "Purchase Taxes and Charges", 
+		}
+	}, target_doclist, set_missing_values)
+
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.txt b/stock/doctype/purchase_receipt/purchase_receipt.txt
index 1fe2614..03e2fa0 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-06-11 16:16:40", 
+  "modified": "2013-07-05 14:38:03", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -31,7 +31,6 @@
   "parent": "Purchase Receipt", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
-  "permlevel": 0, 
   "read": 1, 
   "report": 1
  }, 
@@ -262,7 +261,6 @@
   "fieldtype": "Button", 
   "label": "Pull Purchase Order Details", 
   "oldfieldtype": "Button", 
-  "options": "get_po_details", 
   "print_hide": 1
  }, 
  {
@@ -869,19 +867,41 @@
   "read_only": 1
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 0, 
   "doctype": "DocPerm", 
+  "permlevel": 1, 
   "role": "Material Manager", 
-  "submit": 1, 
-  "write": 1
+  "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
@@ -891,13 +911,24 @@
   "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/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
index f3f6da8..9540f78 100644
--- a/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -22,6 +22,21 @@
 from webnotes.utils import cint
 
 class TestPurchaseReceipt(unittest.TestCase):
+	def test_make_purchase_invocie(self):
+		from stock.doctype.purchase_receipt.purchase_receipt import make_purchase_invoice
+
+		pr = webnotes.bean(copy=test_records[0]).insert()
+		
+		self.assertRaises(webnotes.ValidationError, make_purchase_invoice, 
+			pr.doc.name)
+
+		pr = webnotes.bean("Purchase Receipt", pr.doc.name)
+		pr.submit()
+		pi = make_purchase_invoice(pr.doc.name)
+		
+		self.assertEquals(pi[0]["doctype"], "Purchase Invoice")
+		self.assertEquals(len(pi), len(pr.doclist))
+		
 	def test_purchase_receipt_no_gl_entry(self):
 		pr = webnotes.bean(copy=test_records[0])
 		pr.run_method("calculate_taxes_and_totals")
