[mapper] removed old mapper from files and database
diff --git a/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt b/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
deleted file mode 100644
index 69d171f..0000000
--- a/hr/DocType Mapper/Appraisal Template-Appraisal/Appraisal Template-Appraisal.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-[
- {
-  "owner": "ashwini@webnotestech.com", 
-  "docstatus": 0, 
-  "creation": "2010-09-01 15:47:59", 
-  "modified_by": "Administrator", 
-  "modified": "2012-04-03 12:49:50"
- }, 
- {
-  "match_id": 0, 
-  "parent": "Appraisal Template-Appraisal", 
-  "from_field": "kra_sheet", 
-  "doctype": "Table Mapper Detail", 
-  "to_table": "Appraisal Goal", 
-  "name": "__common__", 
-  "to_field": "appraisal_details", 
-  "parenttype": "DocType Mapper", 
-  "from_table": "Appraisal Template Goal", 
-  "validation_logic": "name is not Null", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Appraisal", 
-  "module": "HR", 
-  "doctype": "DocType Mapper", 
-  "from_doctype": "Appraisal Template"
- }, 
- {
-  "name": "Appraisal Template-Appraisal", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "doctype": "Table Mapper Detail"
- }
-]
\ No newline at end of file
diff --git a/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt b/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
deleted file mode 100644
index 2cf9075..0000000
--- a/hr/DocType Mapper/Salary Structure-Salary Slip/Salary Structure-Salary Slip.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-[
- {
-  "owner": "harshada@webnotestech.com", 
-  "docstatus": 0, 
-  "creation": "2010-12-14 10:33:11", 
-  "modified_by": "Administrator", 
-  "modified": "2011-09-15 15:04:44"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Salary Structure-Salary Slip", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "validation_logic": "name is not null", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "map": "Yes", 
-  "name": "__common__", 
-  "parent": "Salary Structure-Salary Slip", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Salary Slip", 
-  "module": "HR", 
-  "doctype": "DocType Mapper", 
-  "from_doctype": "Salary Structure"
- }, 
- {
-  "name": "Salary Structure-Salary Slip", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "to_field": "gross_pay", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 0, 
-  "from_field": "total_earning"
- }, 
- {
-  "to_field": "e_amount", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "modified_value"
- }, 
- {
-  "to_field": "d_amount", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 2, 
-  "from_field": "d_modified_amt"
- }, 
- {
-  "to_field": "e_modified_amount", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "modified_value"
- }, 
- {
-  "to_field": "e_depends_on_lwp", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "depend_on_lwp"
- }, 
- {
-  "to_field": "d_modified_amount", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 2, 
-  "from_field": "d_modified_amt"
- }, 
- {
-  "to_field": "d_depends_on_lwp", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 2, 
-  "from_field": "depend_on_lwp"
- }, 
- {
-  "to_table": "Salary Slip", 
-  "doctype": "Table Mapper Detail", 
-  "match_id": 0, 
-  "from_table": "Salary Structure"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "earning_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "earning_details", 
-  "from_table": "Salary Structure Earning", 
-  "to_table": "Salary Slip Earning"
- }, 
- {
-  "match_id": 2, 
-  "to_field": "deduction_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "deduction_details", 
-  "from_table": "Salary Structure Deduction", 
-  "to_table": "Salary Slip Deduction"
- }
-]
\ No newline at end of file
diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js
index 31fdb8e..601f3fc 100644
--- a/hr/doctype/appraisal/appraisal.js
+++ b/hr/doctype/appraisal/appraisal.js
@@ -37,10 +37,10 @@
 }
 
 cur_frm.cscript.kra_template = function(doc, dt, dn) {
-	$c_obj(make_doclist(doc.doctype, doc.name), 'fetch_kra', '', 
-		function() { 
-			cur_frm.refresh();
-		});
+	wn.model.map_current_doc({
+		method: "hr.doctype.appraisal.appraisal.fetch_appraisal_template",
+		source_name: cur_frm.doc.kra_template,
+	});
 }
 
 cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
diff --git a/hr/doctype/appraisal/appraisal.py b/hr/doctype/appraisal/appraisal.py
index eaa609c..8a50d7c 100644
--- a/hr/doctype/appraisal/appraisal.py
+++ b/hr/doctype/appraisal/appraisal.py
@@ -19,12 +19,8 @@
 
 from webnotes.utils import cstr, flt, getdate
 from webnotes.model.bean import getlist
-from webnotes.model.code import get_obj
 from webnotes import msgprint
 
-sql = webnotes.conn.sql
-
-
 class DocType:
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
@@ -39,23 +35,18 @@
 		self.calculate_total()
 
 	def get_employee_name(self):
-		emp_nm = sql("select employee_name from `tabEmployee` where name=%s", self.doc.employee)
+		emp_nm = webnotes.conn.sql("select employee_name from `tabEmployee` where name=%s", self.doc.employee)
 		emp_nm= emp_nm and emp_nm[0][0] or ''
 		self.doc.employee_name = emp_nm
 		return emp_nm
-	
-	def fetch_kra(self):
-		self.doclist = self.doc.clear_table(self.doclist,'appraisal_details')
-		get_obj('DocType Mapper', 'Appraisal Template-Appraisal').dt_map('Appraisal Template', 'Appraisal', 
-			self.doc.kra_template, self.doc, self.doclist, "[['Appraisal Template','Appraisal'],['Appraisal Template Goal', 'Appraisal Goal']]")
-	
+		
 	def validate_dates(self):
 		if getdate(self.doc.start_date) > getdate(self.doc.end_date):
 			msgprint("End Date can not be less than Start Date")
 			raise Exception
 	
 	def validate_existing_appraisal(self):
-		chk = sql("""select name from `tabAppraisal` where employee=%s 
+		chk = webnotes.conn.sql("""select name from `tabAppraisal` where employee=%s 
 			and (status='Submitted' or status='Completed') 
 			and ((start_date>=%s and start_date<=%s) 
 			or (end_date>=%s and end_date<=%s))""",(self.doc.employee,self.doc.start_date,self.doc.end_date,self.doc.start_date,self.doc.end_date))
@@ -88,3 +79,18 @@
 	
 	def on_cancel(self): 
 		webnotes.conn.set(self.doc, 'status', 'Cancelled')
+
+@webnotes.whitelist()
+def fetch_appraisal_template(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	doclist = get_mapped_doclist("Appraisal Template", source_name, {
+		"Appraisal Template": {
+			"doctype": "Appraisal", 
+		}, 
+		"Appraisal Template Goal": {
+			"doctype": "Appraisal Goal", 
+		}
+	}, target_doclist)
+
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/hr/doctype/salary_structure/salary_structure.js b/hr/doctype/salary_structure/salary_structure.js
index 873ba17..2979243 100644
--- a/hr/doctype/salary_structure/salary_structure.js
+++ b/hr/doctype/salary_structure/salary_structure.js
@@ -16,8 +16,6 @@
 
 cur_frm.add_fetch('employee', 'company', 'company');
 
-// On load
-//=======================================================================
 cur_frm.cscript.onload = function(doc, dt, dn){
   e_tbl = getchildren('Salary Structure Earning', doc.name, 'earning_details', doc.doctype);
   d_tbl = getchildren('Salary Structure Deduction', doc.name, 'deduction_details', doc.doctype);
@@ -25,8 +23,6 @@
     $c_obj(make_doclist(doc.doctype,doc.name),'make_earn_ded_table','', function(r, rt) { refresh_many(['earning_details', 'deduction_details']);});
 }
 
-// On refresh
-//=======================================================================
 cur_frm.cscript.refresh = function(doc, dt, dn){
   if((!doc.__islocal) && (doc.is_active == 'Yes')){
     cur_frm.add_custom_button('Make Salary Slip', cur_frm.cscript['Make Salary Slip']);  
@@ -35,56 +31,26 @@
   cur_frm.toggle_enable('employee', doc.__islocal);
 }
 
-
-// Make Salry Slip
-//=======================================================================
-cur_frm.cscript['Make Salary Slip'] = function(){
-  var doc = cur_frm.doc;  
-  var callback = function(r,rt){
-    ret = r.message;
-    n = wn.model.make_new_doc_and_get_name("Salary Slip");
-    $c('dt_map', args={
-      'docs':wn.model.compress([locals["Salary Slip"][n]]),
-      'from_doctype':'Salary Structure',
-      'to_doctype':'Salary Slip',
-      'from_docname':doc.name,
-      'from_to_list':"[['Salary Structure', 'Salary Slip'], ['Salary Structure Earning', 'Salary Slip Earning'], ['Salary Structure Deduction', 'Salary Slip Deduction']]"
-      }, 
-      function(r,rt) {
-        n.fiscal_year = sys_defaults.fiscal_year;
-        n.bank_name = ret['bank_name'];
-        n.bank_account_no = ret['bank_ac_no'];
-        n.esic_no=ret['esic_no'];
-        n.pf_no= ret['pf_no'];
-        loaddoc("Salary Slip", n);
-      }
-    );
-  }
-  $c_obj(make_doclist(doc.doctype,doc.name),'get_ss_values',cur_frm.doc.employee, callback); 
+cur_frm.cscript['Make Salary Slip'] = function() {
+	wn.model.open_mapped_doc({
+		method: "hr.doctype.salary_structure.salary_structure.make_salary_slip",
+		source_name: cur_frm.doc.name
+	});
 }
 
-
-// get employee details
-//=======================================================================
 cur_frm.cscript.employee = function(doc, dt, dn){
   if (doc.employee)
     get_server_fields('get_employee_details','','',doc,dt,dn);
 }
 
-// calculate earning totals 
-//=======================================================================
 cur_frm.cscript.modified_value = function(doc, cdt, cdn){
   calculate_totals(doc, cdt, cdn);
 }
 
-// calculate deduction totals
-//=======================================================================
 cur_frm.cscript.d_modified_amt = function(doc, cdt, cdn){
   calculate_totals(doc, cdt, cdn);
 }
 
-// calculate totals
-//=======================================================================
 var calculate_totals = function(doc, cdt, cdn) {
   var tbl1 = getchildren('Salary Structure Earning', doc.name, 'earning_details', doc.doctype);
   var tbl2 = getchildren('Salary Structure Deduction', doc.name, 'deduction_details', doc.doctype);
@@ -102,8 +68,6 @@
   refresh_many(['total_earning', 'total_deduction', 'net_pay']);
 }
 
-// validate
-//=======================================================================
 cur_frm.cscript.validate = function(doc, cdt, cdn) {
   calculate_totals(doc, cdt, cdn);
 }
diff --git a/hr/doctype/salary_structure/salary_structure.py b/hr/doctype/salary_structure/salary_structure.py
index 018aab7..d777756 100644
--- a/hr/doctype/salary_structure/salary_structure.py
+++ b/hr/doctype/salary_structure/salary_structure.py
@@ -94,4 +94,41 @@
 
 	def validate(self):	 
 		self.check_existing()
-		self.validate_amount()
\ No newline at end of file
+		self.validate_amount()
+		
+@webnotes.whitelist()
+def make_salary_slip(source_name, target_doclist=None):
+	from webnotes.model.mapper import get_mapped_doclist
+	
+	def postprocess(source, target):
+		emp = webnotes.conn.get_value("Employee", source.doc.employee, 
+			["bank_name", "bank_ac_no", "esic_card_no", "pf_number"], as_dict=1)
+		if emp:
+			target[0].bank_name = emp.bank_name
+			target[0].bank_ac_no = emp.bank_ac_no
+			target[0].esic_no = emp.esic_card_no
+			target[0].pf_no = emp.pf_number
+				
+	doclist = get_mapped_doclist("Salary Structure", source_name, {
+		"Salary Structure": {
+			"doctype": "Salary Slip", 
+			"field_map": {
+				"total_earning": "gross_pay"
+			}
+		}, 
+		"Salary Structure Deduction": {
+			"doctype": "Salary Slip Deduction", 
+			"field_map": {
+				"depend_on_lwp": "d_depends_on_lwp"
+			}
+		}, 
+		"Salary Structure Earning": {
+			"doctype": "Salary Slip Earning", 
+			"field_map": {
+				"depend_on_lwp": "e_depends_on_lwp", 
+				"modified_value": "e_modified_amount"
+			}
+		}
+	}, target_doclist, postprocess)
+
+	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/patches/july_2013/p01_remove_doctype_mappers.py b/patches/july_2013/p01_remove_doctype_mappers.py
new file mode 100644
index 0000000..901b1b6
--- /dev/null
+++ b/patches/july_2013/p01_remove_doctype_mappers.py
@@ -0,0 +1,4 @@
+import webnotes
+def execute():
+	for m in webnotes.conn.sql("select name from `tabDocType Mapper`"):
+		webnotes.delete_doc("DocType Mapper", m[0])
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index bbe51fa..ad01ce6 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -250,4 +250,5 @@
 	"patches.june_2013.p08_shopping_cart_settings",
 	"patches.june_2013.p09_update_global_defaults",
 	"patches.june_2013.p10_lead_address",
+	"patches.july_2013.p01_remove_doctype_mappers",
 ]
\ No newline at end of file
diff --git a/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt b/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
deleted file mode 100644
index 086ad7f..0000000
--- a/selling/DocType Mapper/Delivery Note-Installation Note/Delivery Note-Installation Note.txt
+++ /dev/null
@@ -1,118 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2010-08-08 17:09:34", 
-  "modified_by": "Administrator", 
-  "modified": "2011-09-15 15:04:42"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Delivery Note-Installation Note", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "map": "Yes", 
-  "name": "__common__", 
-  "parent": "Delivery Note-Installation Note", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Installation Note", 
-  "module": "Selling", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Delivery Note"
- }, 
- {
-  "name": "Delivery Note-Installation Note", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "match_id": 0, 
-  "to_field": "company", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "company", 
-  "checking_operator": "="
- }, 
- {
-  "match_id": 0, 
-  "to_field": "customer", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "delivery_note_no", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 0, 
-  "from_field": "name"
- }, 
- {
-  "to_field": "prevdoc_detail_docname", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "name"
- }, 
- {
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parent"
- }, 
- {
-  "to_field": "prevdoc_doctype", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parenttype"
- }, 
- {
-  "to_field": "qty", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "eval: flt(obj.qty) - flt(obj.installed_qty)"
- }, 
- {
-  "to_field": "prevdoc_date", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 2, 
-  "from_field": "posting_date"
- }, 
- {
-  "to_field": "serial_no", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "serial_no"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "installed_item_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "delivery_note_details", 
-  "from_table": "Delivery Note Item", 
-  "to_table": "Installation Note Item", 
-  "validation_logic": "qty > ifnull(installed_qty,0) and docstatus = 1"
- }, 
- {
-  "match_id": 0, 
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Delivery Note", 
-  "to_table": "Installation Note", 
-  "validation_logic": "docstatus = 1"
- }, 
- {
-  "reference_key": "prevdoc_docname", 
-  "match_id": 2, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "to_field": "installed_item_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Delivery Note", 
-  "to_table": "Installation Note Item", 
-  "validation_logic": "docstatus = 1"
- }
-]
\ No newline at end of file
diff --git a/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt b/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
deleted file mode 100644
index ffa85e5..0000000
--- a/selling/DocType Mapper/Opportunity-Quotation/Opportunity-Quotation.txt
+++ /dev/null
@@ -1,113 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2010-08-08 17:09:34", 
-  "modified_by": "Administrator", 
-  "modified": "2012-04-03 12:49:50"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Opportunity-Quotation", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "validation_logic": "docstatus=1", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Opportunity-Quotation", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Quotation", 
-  "module": "Selling", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Opportunity"
- }, 
- {
-  "name": "Opportunity-Quotation", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "stock_uom", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "uom"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "enq_no", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_doctype", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parenttype"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "quotation_to", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "enquiry_from"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "order_type", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "enquiry_type"
- }, 
- {
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "transaction_date", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "transaction_date"
- }, 
- {
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "status", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "status"
- }, 
- {
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "naming_series", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "naming_series"
- }, 
- {
-  "to_table": "Quotation", 
-  "doctype": "Table Mapper Detail", 
-  "match_id": 0, 
-  "from_table": "Opportunity"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "quotation_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "enq_details", 
-  "from_table": "Opportunity Item", 
-  "to_table": "Quotation Item"
- }
-]
\ No newline at end of file
diff --git a/selling/doctype/installation_note/installation_note.js b/selling/doctype/installation_note/installation_note.js
index 61d0484..4fd8678 100644
--- a/selling/doctype/installation_note/installation_note.js
+++ b/selling/doctype/installation_note/installation_note.js
@@ -36,6 +36,14 @@
 				'address_display', 'contact_display', 'contact_mobile', 'contact_email', 
 				'territory', 'customer_group']);
 		}
+	}, 
+	get_items: function() {
+		wn.model.map_current_doc({
+			method: "stock.doctype.delivery_note.delivery_note.make_installation_note",
+			source_name: cur_frm.doc.delivery_note_no,
+		})
+		unhide_field(['customer_address', 'contact_person', 'customer_name', 'address_display', 
+			'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']);
 	}
 });
 
@@ -66,14 +74,6 @@
 	return 'SELECT `tabTerritory`.`name`,`tabTerritory`.`parent_territory` FROM `tabTerritory` WHERE `tabTerritory`.`is_group` = "No" AND `tabTerritory`.`docstatus`!= 2 AND `tabTerritory`.%(key)s LIKE "%s"	ORDER BY	`tabTerritory`.`name` ASC LIMIT 50';
 }
 
-cur_frm.cscript.get_items = function(doc, dt, dn) {
-	var callback = function(r,rt) { 
-		unhide_field(['customer_address','contact_person','customer_name','address_display','contact_display','contact_mobile','contact_email','territory','customer_group']);
-		cur_frm.refresh();
-	}
-	get_server_fields('pull_delivery_note_details','','',doc, dt, dn,1,callback);
-}
-
 cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) {		
 	if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1);
 }
diff --git a/selling/doctype/installation_note/installation_note.py b/selling/doctype/installation_note/installation_note.py
index 63e1bae..62c5b66 100644
--- a/selling/doctype/installation_note/installation_note.py
+++ b/selling/doctype/installation_note/installation_note.py
@@ -53,14 +53,7 @@
 		sales_com_obj.check_active_sales_items(self)
 		sales_com_obj.get_prevdoc_date(self)
 		self.validate_reference_value()
- 
-	def pull_delivery_note_details(self):
-		self.validate_prev_docname()
-		self.doclist = get_obj('DocType Mapper', 'Delivery Note-Installation Note').dt_map(
-			'Delivery Note', 'Installation Note', self.doc.delivery_note_no, 
-			self.doc, self.doclist, "[['Delivery Note', 'Installation Note'], \
-			['Delivery Note Item', 'Installation Note Item']]")
-	
+ 	
 	def validate_prev_docname(self):
 		for d in getlist(self.doclist, 'installed_item_details'): 
 			if self.doc.delivery_note_no == d.prevdoc_docname:
diff --git a/selling/doctype/installation_note/installation_note.txt b/selling/doctype/installation_note/installation_note.txt
index 9a99863..d148f31 100644
--- a/selling/doctype/installation_note/installation_note.txt
+++ b/selling/doctype/installation_note/installation_note.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-04-30 13:13:06", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:40:56", 
+  "modified": "2013-07-07 18:10:24", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -23,20 +23,13 @@
   "permlevel": 0
  }, 
  {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Installation Note", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
-  "permlevel": 0, 
   "read": 1, 
-  "report": 1, 
-  "role": "Sales User", 
-  "submit": 1, 
-  "write": 1
+  "report": 1
  }, 
  {
   "doctype": "DocType", 
@@ -267,7 +260,6 @@
   "hidden": 0, 
   "label": "Get Items", 
   "oldfieldtype": "Button", 
-  "options": "pull_delivery_note_details", 
   "print_hide": 1
  }, 
  {
@@ -280,6 +272,60 @@
   "options": "Installation Note Item"
  }, 
  {
-  "doctype": "DocPerm"
+  "amend": 1, 
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "permlevel": 0, 
+  "role": "System Manager", 
+  "submit": 1, 
+  "write": 1
+ }, 
+ {
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "permlevel": 1, 
+  "role": "System Manager", 
+  "submit": 0
+ }, 
+ {
+  "amend": 1, 
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "permlevel": 0, 
+  "role": "Sales User", 
+  "submit": 1, 
+  "write": 1
+ }, 
+ {
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "permlevel": 1, 
+  "role": "Sales User", 
+  "submit": 0
+ }, 
+ {
+  "amend": 1, 
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "permlevel": 0, 
+  "role": "Sales Manager", 
+  "submit": 1, 
+  "write": 1
+ }, 
+ {
+  "amend": 0, 
+  "cancel": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "permlevel": 1, 
+  "role": "Sales Manager", 
+  "submit": 0
  }
 ]
\ No newline at end of file
diff --git a/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt b/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
deleted file mode 100644
index fc88bba..0000000
--- a/stock/DocType Mapper/Delivery Note-Packing Slip/Delivery Note-Packing Slip.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-[
- {
-  "creation": "2012-02-02 11:50:33", 
-  "docstatus": 0, 
-  "modified": "2013-04-16 12:26:28", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Delivery Note-Packing Slip", 
-  "parentfield": "table_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "name": "__common__", 
-  "parent": "Delivery Note-Packing Slip", 
-  "parentfield": "field_mapper_details", 
-  "parenttype": "DocType Mapper"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "from_doctype": "Delivery Note", 
-  "module": "Stock", 
-  "name": "__common__", 
-  "ref_doc_submitted": 0, 
-  "to_doctype": "Packing Slip"
- }, 
- {
-  "doctype": "DocType Mapper", 
-  "name": "Delivery Note-Packing Slip"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name", 
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "delivery_note"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "qty", 
-  "map": "No", 
-  "match_id": 1, 
-  "to_field": "qty"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "naming_series", 
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "naming_series"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "dn_detail"
- }, 
- {
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: flt(obj.qty) - flt(obj.packed_qty)", 
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "qty"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Delivery Note", 
-  "match_id": 0, 
-  "to_table": "Packing Slip", 
-  "validation_logic": "docstatus=0"
- }, 
- {
-  "doctype": "Table Mapper Detail", 
-  "from_field": "delivery_note_details", 
-  "from_table": "Delivery Note Item", 
-  "match_id": 1, 
-  "to_field": "item_details", 
-  "to_table": "Packing Slip Item", 
-  "validation_logic": "IFNULL(packed_qty, 0) < IFNULL(qty, 0)"
- }
-]
\ No newline at end of file
diff --git a/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt b/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
deleted file mode 100755
index eaf687a..0000000
--- a/stock/DocType Mapper/Sales Invoice-Delivery Note/Sales Invoice-Delivery Note.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2010-12-14 17:56:41", 
-  "modified_by": "Administrator", 
-  "modified": "2012-04-03 12:49:50"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Sales Invoice-Delivery Note", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Sales Invoice-Delivery Note", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Delivery Note", 
-  "module": "Stock", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Sales Invoice"
- }, 
- {
-  "name": "Sales Invoice-Delivery Note", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "qty", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: flt(obj.qty) - flt(obj.delivered_qty)"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parent"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_doctype", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "parenttype"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "prevdoc_detail_docname", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "name"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "amount", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate)"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "export_amount", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "eval: (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate)"
- }, 
- {
-  "map": "No", 
-  "match_id": 0, 
-  "to_field": "naming_series", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "naming_series"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 0, 
-  "to_field": "delivery_address", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer_address"
- }, 
- {
-  "map": "Yes", 
-  "match_id": 1, 
-  "to_field": "serial_no", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "serial_no"
- }, 
- {
-  "match_id": 0, 
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Sales Invoice", 
-  "to_table": "Delivery Note", 
-  "validation_logic": "docstatus=1"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "delivery_note_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "entries", 
-  "from_table": "Sales Invoice Item", 
-  "to_table": "Delivery Note Item", 
-  "validation_logic": "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/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 4f3ddac..8756e83 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -31,7 +31,8 @@
 		
 		if(flt(doc.per_billed, 2) < 100 && doc.docstatus==1) cur_frm.add_custom_button('Make Invoice', this.make_sales_invoice);
 	
-		if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1) cur_frm.add_custom_button('Make Installation Note', cur_frm.cscript['Make Installation Note']);
+		if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1) 
+			cur_frm.add_custom_button('Make Installation Note', this.make_installation_note);
 
 		if (doc.docstatus==1) cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
 
@@ -59,7 +60,15 @@
 			method: "stock.doctype.delivery_note.delivery_note.make_sales_invoice",
 			source_name: cur_frm.doc.name
 		})
+	}, 
+	
+	make_installation_note: function() {
+		wn.model.open_mapped_doc({
+			method: "stock.doctype.delivery_note.delivery_note.make_installation_note",
+			source_name: cur_frm.doc.name
+		});
 	}
+	
 });
 
 // for backward compatibility: combine new and previous states
@@ -114,40 +123,6 @@
 	return 'SELECT DISTINCT `tabSupplier`.`name` FROM `tabSupplier` WHERE `tabSupplier`.supplier_type = "transporter" AND `tabSupplier`.docstatus != 2 AND `tabSupplier`.%(key)s LIKE "%s" ORDER BY `tabSupplier`.`name` LIMIT 50';
 }
 
-cur_frm.cscript['Make Sales Invoice'] = function() {
-	var doc = cur_frm.doc
-	n = wn.model.make_new_doc_and_get_name('Sales Invoice');
-	$c('dt_map', args={
-		'docs':wn.model.compress([locals['Sales Invoice'][n]]),
-		'from_doctype':doc.doctype,
-		'to_doctype':'Sales Invoice',
-		'from_docname':doc.name,
-		'from_to_list':"[['Delivery Note','Sales Invoice'],['Delivery Note Item','Sales Invoice Item'],['Sales Taxes and Charges','Sales Taxes and Charges'],['Sales Team','Sales Team']]"
-		}, function(r,rt) {
-			 loaddoc('Sales Invoice', n);
-		}
-	);
-}
-
-cur_frm.cscript['Make Installation Note'] = function() {
-	var doc = cur_frm.doc;
-	if(doc.per_installed < 99.99){
-		n = wn.model.make_new_doc_and_get_name('Installation Note');
-		$c('dt_map', args={
-			'docs':wn.model.compress([locals['Installation Note'][n]]),
-			'from_doctype':doc.doctype,
-			'to_doctype':'Installation Note',
-			'from_docname':doc.name,
-			'from_to_list':"[['Delivery Note','Installation Note'],['Delivery Note Item','Installation Note Item']]"
-			}, function(r,rt) {
-				 loaddoc('Installation Note', n);
-			}
-		);
-	}
-	else if(doc.per_installed >= 100)
-		msgprint("Item installation is already completed")
-}
-
 cur_frm.cscript['Make Packing Slip'] = function() {
 	n = wn.model.make_new_doc_and_get_name('Packing Slip');
 	ps = locals["Packing Slip"][n];
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index 25ba04c..aa3a4d1 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -22,6 +22,8 @@
 from webnotes.model.code import get_obj
 from webnotes import msgprint, _
 import webnotes.defaults
+from webnotes.model.mapper import get_mapped_doclist
+
 
 
 sql = webnotes.conn.sql
@@ -365,9 +367,7 @@
 			make_gl_entries(gl_entries, cancel=(self.doc.docstatus == 2))
 
 @webnotes.whitelist()
-def make_sales_invoice(source_name, target_doclist=None):
-	from webnotes.model.mapper import get_mapped_doclist
-	
+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.amount = target.export_amount / flt(source_parent.conversion_rate)
@@ -407,4 +407,35 @@
 		}
 	}, target_doclist, update_accounts)
 	
+	return [d.fields for d in doclist]
+	
+@webnotes.whitelist()
+def make_installation_note(source_name, target_doclist=None):
+	def update_item(obj, target, source_parent):
+		target.qty = flt(obj.qty) - flt(obj.installed_qty)
+	
+	doclist = get_mapped_doclist("Delivery Note", source_name, 	{
+		"Delivery Note": {
+			"doctype": "Installation Note Item", 
+			"field_map": {
+				"name": "delivery_note_no", 
+				"posting_date": "prevdoc_date"
+			},
+			"validation": {
+				"docstatus": ["=", 1]
+			}
+		}, 
+		"Delivery Note Item": {
+			"doctype": "Installation Note Item", 
+			"field_map": {
+				"name": "prevdoc_detail_docname", 
+				"parent": "prevdoc_docname", 
+				"parenttype": "prevdoc_doctype", 
+				"serial_no": "serial_no"
+			},
+			"postprocess": update_item,
+			"condition": lambda doc: doc.installed_qty < doc.qty
+		}
+	}, target_doclist)
+	
 	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt b/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
deleted file mode 100644
index da86201..0000000
--- a/support/DocType Mapper/Customer Issue-Maintenance Visit/Customer Issue-Maintenance Visit.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-[
- {
-  "owner": "ashwini@webnotestech.com", 
-  "docstatus": 0, 
-  "creation": "2010-08-08 17:09:34", 
-  "modified_by": "Administrator", 
-  "modified": "2011-09-15 15:04:41"
- }, 
- {
-  "reference_key": "prevdoc_docname", 
-  "name": "__common__", 
-  "parent": "Customer Issue-Maintenance Visit", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "from_table": "Customer Issue", 
-  "validation_logic": "docstatus=1", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "map": "Yes", 
-  "name": "__common__", 
-  "parent": "Customer Issue-Maintenance Visit", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Maintenance Visit", 
-  "module": "Support", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Customer Issue"
- }, 
- {
-  "name": "Customer Issue-Maintenance Visit", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "match_id": 0, 
-  "to_field": "customer", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "customer_issue_no", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 0, 
-  "from_field": "name"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "description", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "complaint", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "prevdoc_doctype", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "doctype"
- }, 
- {
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "name"
- }, 
- {
-  "match_id": 1, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "to_field": "maintenance_visit_details", 
-  "doctype": "Table Mapper Detail", 
-  "to_table": "Maintenance Visit Purpose"
- }, 
- {
-  "to_table": "Maintenance Visit", 
-  "match_id": 0, 
-  "doctype": "Table Mapper Detail"
- }
-]
\ No newline at end of file
diff --git a/support/DocType Mapper/Maintenance Schedule-Maintenance Visit/Maintenance Schedule-Maintenance Visit.txt b/support/DocType Mapper/Maintenance Schedule-Maintenance Visit/Maintenance Schedule-Maintenance Visit.txt
deleted file mode 100644
index 9ea33b1..0000000
--- a/support/DocType Mapper/Maintenance Schedule-Maintenance Visit/Maintenance Schedule-Maintenance Visit.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2012-06-27 13:18:25", 
-  "modified_by": "Administrator", 
-  "modified": "2012-06-27 13:18:25"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Maintenance Schedule-Maintenance Visit", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "validation_logic": "docstatus=1", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "map": "Yes", 
-  "name": "__common__", 
-  "parent": "Maintenance Schedule-Maintenance Visit", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Maintenance Visit", 
-  "module": "Support", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Maintenance Schedule"
- }, 
- {
-  "name": "Maintenance Schedule-Maintenance Visit", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "match_id": 0, 
-  "to_field": "customer", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "maintenance_schedule", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 0, 
-  "from_field": "name"
- }, 
- {
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parent"
- }, 
- {
-  "to_field": "prevdoc_doctype", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parenttype"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "maintenance_visit_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "item_maintenance_detail", 
-  "from_table": "Maintenance Schedule Item", 
-  "to_table": "Maintenance Visit Purpose"
- }, 
- {
-  "to_table": "Maintenance Visit", 
-  "doctype": "Table Mapper Detail", 
-  "match_id": 0, 
-  "from_table": "Maintenance Schedule"
- }
-]
\ No newline at end of file
diff --git a/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt b/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
deleted file mode 100644
index 7dde342..0000000
--- a/support/DocType Mapper/Sales Order-Maintenance Schedule/Sales Order-Maintenance Schedule.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2010-08-08 17:09:35", 
-  "modified_by": "Administrator", 
-  "modified": "2011-09-15 15:04:44"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Sales Order-Maintenance Schedule", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "map": "Yes", 
-  "name": "__common__", 
-  "parent": "Sales Order-Maintenance Schedule", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Maintenance Schedule", 
-  "module": "Support", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Sales Order"
- }, 
- {
-  "name": "Sales Order-Maintenance Schedule", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "match_id": 0, 
-  "to_field": "customer", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "sales_order_no", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 0, 
-  "from_field": "name"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "item_code", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "item_code", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parent"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "item_maintenance_detail", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "sales_order_details", 
-  "from_table": "Sales Order Item", 
-  "to_table": "Maintenance Schedule Item", 
-  "validation_logic": "docstatus =1"
- }, 
- {
-  "match_id": 0, 
-  "doctype": "Table Mapper Detail", 
-  "from_table": "Sales Order", 
-  "to_table": "Maintenance Schedule", 
-  "validation_logic": "docstatus=1"
- }
-]
\ No newline at end of file
diff --git a/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt b/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
deleted file mode 100644
index c2d4d02..0000000
--- a/support/DocType Mapper/Sales Order-Maintenance Visit/Sales Order-Maintenance Visit.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-[
- {
-  "owner": "ashwini@webnotestech.com", 
-  "docstatus": 0, 
-  "creation": "2010-08-08 17:09:36", 
-  "modified_by": "Administrator", 
-  "modified": "2011-09-15 15:04:45"
- }, 
- {
-  "name": "__common__", 
-  "parent": "Sales Order-Maintenance Visit", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "validation_logic": "docstatus=1", 
-  "parentfield": "table_mapper_details"
- }, 
- {
-  "map": "Yes", 
-  "name": "__common__", 
-  "parent": "Sales Order-Maintenance Visit", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
- }, 
- {
-  "name": "__common__", 
-  "to_doctype": "Maintenance Visit", 
-  "module": "Support", 
-  "doctype": "DocType Mapper", 
-  "ref_doc_submitted": 1, 
-  "from_doctype": "Sales Order"
- }, 
- {
-  "name": "Sales Order-Maintenance Visit", 
-  "doctype": "DocType Mapper"
- }, 
- {
-  "match_id": 0, 
-  "to_field": "customer", 
-  "doctype": "Field Mapper Detail", 
-  "from_field": "customer", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "sales_order_no", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 0, 
-  "from_field": "name"
- }, 
- {
-  "to_field": "prevdoc_docname", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parent"
- }, 
- {
-  "to_field": "prevdoc_doctype", 
-  "doctype": "Field Mapper Detail", 
-  "match_id": 1, 
-  "from_field": "parenttype"
- }, 
- {
-  "match_id": 1, 
-  "to_field": "maintenance_visit_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "sales_order_details", 
-  "from_table": "Sales Order Item", 
-  "to_table": "Maintenance Visit Purpose"
- }, 
- {
-  "to_table": "Maintenance Visit", 
-  "doctype": "Table Mapper Detail", 
-  "match_id": 0, 
-  "from_table": "Sales Order"
- }
-]
\ No newline at end of file