BugFix: Maintenance Visit against Customer Issue

+ Map Item details from Customer Issue into Maintenance Visit Purpose Table
+ Map Prev DocType and Prev DocName
+ Changed prevdoc_doctype and prevdoc_docname into Dynamic Link
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.json b/erpnext/support/doctype/customer_issue/customer_issue.json
index b755135..669ea5d 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.json
+++ b/erpnext/support/doctype/customer_issue/customer_issue.json
@@ -202,6 +202,7 @@
   {
    "fieldname": "resolved_by", 
    "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
    "in_filter": 1, 
    "label": "Resolved By", 
    "no_copy": 1, 
@@ -395,7 +396,7 @@
  "icon": "icon-bug", 
  "idx": 1, 
  "is_submittable": 0, 
- "modified": "2014-06-23 07:55:47.488335", 
+ "modified": "2014-07-07 02:47:56.491906", 
  "modified_by": "Administrator", 
  "module": "Support", 
  "name": "Customer Issue", 
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.py b/erpnext/support/doctype/customer_issue/customer_issue.py
index 290e74e..d6d6596 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.py
+++ b/erpnext/support/doctype/customer_issue/customer_issue.py
@@ -38,7 +38,11 @@
 
 @frappe.whitelist()
 def make_maintenance_visit(source_name, target_doc=None):
-	from frappe.model.mapper import get_mapped_doc
+	from frappe.model.mapper import get_mapped_doc, map_child_doc
+
+	def _update_links(source_doc, target_doc, source_parent):
+		target_doc.prevdoc_doctype = source_parent.doctype
+		target_doc.prevdoc_docname = source_parent.name
 
 	visit = frappe.db.sql("""select t1.name
 		from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2
@@ -46,7 +50,7 @@
 		and t1.docstatus=1 and t1.completion_status='Fully Completed'""", source_name)
 
 	if not visit:
-		doclist = get_mapped_doc("Customer Issue", source_name, {
+		target_doc = get_mapped_doc("Customer Issue", source_name, {
 			"Customer Issue": {
 				"doctype": "Maintenance Visit",
 				"field_map": {
@@ -57,4 +61,12 @@
 			}
 		}, target_doc)
 
-		return doclist
+		source_doc = frappe.get_doc("Customer Issue", source_name)
+		if source_doc.get("item_code"):
+			table_map = {
+				"doctype": "Maintenance Visit Purpose",
+				"postprocess": _update_links
+			}
+			map_child_doc(source_doc, target_doc, table_map, source_doc)
+
+		return target_doc
diff --git a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json b/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
index 32e3769..8e98397 100644
--- a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
+++ b/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
@@ -1,6 +1,6 @@
 {
  "autoname": "MVD.#####", 
- "creation": "2013-02-22 01:28:06.000000", 
+ "creation": "2013-02-22 01:28:06", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
@@ -74,13 +74,30 @@
    "reqd": 1
   }, 
   {
+   "fieldname": "prevdoc_doctype", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Document Type", 
+   "no_copy": 1, 
+   "oldfieldname": "prevdoc_doctype", 
+   "oldfieldtype": "Data", 
+   "options": "DocType", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "print_width": "150px", 
+   "read_only": 1, 
+   "report_hide": 1, 
+   "width": "150px"
+  }, 
+  {
    "fieldname": "prevdoc_docname", 
-   "fieldtype": "Data", 
+   "fieldtype": "Dynamic Link", 
    "hidden": 0, 
    "label": "Against Document No", 
    "no_copy": 1, 
    "oldfieldname": "prevdoc_docname", 
    "oldfieldtype": "Data", 
+   "options": "prevdoc_doctype", 
    "permlevel": 0, 
    "print_hide": 1, 
    "print_width": "160px", 
@@ -102,28 +119,14 @@
    "read_only": 1, 
    "report_hide": 1, 
    "width": "160px"
-  }, 
-  {
-   "fieldname": "prevdoc_doctype", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "label": "Document Type", 
-   "no_copy": 1, 
-   "oldfieldname": "prevdoc_doctype", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "150px", 
-   "read_only": 1, 
-   "report_hide": 1, 
-   "width": "150px"
   }
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2013-12-20 19:23:20.000000", 
+ "modified": "2014-07-07 02:53:48.442249", 
  "modified_by": "Administrator", 
  "module": "Support", 
  "name": "Maintenance Visit Purpose", 
- "owner": "ashwini@webnotestech.com"
+ "owner": "ashwini@webnotestech.com", 
+ "permissions": []
 }
\ No newline at end of file