diff --git a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
index f54b860..bcb128b 100644
--- a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
+++ b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe import msgprint, _
+from frappe import _
 from frappe.utils import flt
 
 def execute(filters=None):
@@ -23,7 +23,7 @@
 			purchase_receipt = d.purchase_receipt
 		elif d.po_detail:
 			purchase_receipt = ", ".join(frappe.db.sql_list("""select distinct parent
-			from `tabPurchase Receipt Item` where docstatus=1 and po_detail=%s""", d.po_detail))
+			from `tabPurchase Receipt Item` where docstatus=1 and prevdoc_detail_docname=%s""", d.po_detail))
 
 		expense_account = d.expense_account or aii_account_map.get(d.company)
 		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, d.supplier,
diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py
index 7d34413..a104ced 100644
--- a/erpnext/accounts/report/purchase_register/purchase_register.py
+++ b/erpnext/accounts/report/purchase_register/purchase_register.py
@@ -144,7 +144,7 @@
 	return invoice_expense_map, invoice_tax_map
 
 def get_invoice_po_pr_map(invoice_list):
-	pi_items = frappe.db.sql("""select parent, purchase_order, purchase_receipt, po_detail
+	pi_items = frappe.db.sql("""select parent, purchase_order, purchase_receipt, po_detail, 
 		project_name from `tabPurchase Invoice Item` where parent in (%s)
 		and (ifnull(purchase_order, '') != '' or ifnull(purchase_receipt, '') != '')""" %
 		', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
@@ -160,7 +160,7 @@
 			pr_list = [d.purchase_receipt]
 		elif d.po_detail:
 			pr_list = frappe.db.sql_list("""select distinct parent from `tabPurchase Receipt Item`
-				where docstatus=1 and po_detail=%s""", d.pr_detail)
+				where docstatus=1 and prevdoc_detail_docname=%s""", d.po_detail)
 
 		if pr_list:
 			invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("purchase_receipt", pr_list)
diff --git a/erpnext/patches/v5_0/update_projects.py b/erpnext/patches/v5_0/update_projects.py
index 71a84a1..e234246 100644
--- a/erpnext/patches/v5_0/update_projects.py
+++ b/erpnext/patches/v5_0/update_projects.py
@@ -10,13 +10,15 @@
 	for m in frappe.get_all("Project Milestone", "*"):
 		if (m.milestone and m.milestone_date
 			and frappe.db.exists("Project", m.parent)):
-			frappe.get_doc({
+			task = frappe.get_doc({
 				"doctype": "Task",
 				"subject": m.milestone,
 				"expected_start_date": m.milestone_date,
 				"status": "Open" if m.status=="Pending" else "Closed",
 				"project": m.parent,
-			}).insert(ignore_permissions=True)
+			})
+			task.flags.ignore_mandatory = True
+			task.insert(ignore_permissions=True)
 
 	# remove project milestone
 	frappe.delete_doc("DocType", "Project Milestone")
diff --git a/erpnext/templates/print_formats/includes/item_table_description.html b/erpnext/templates/print_formats/includes/item_table_description.html
index f4c3d2c..e0824a2 100644
--- a/erpnext/templates/print_formats/includes/item_table_description.html
+++ b/erpnext/templates/print_formats/includes/item_table_description.html
@@ -4,11 +4,12 @@
 </div>
 {%- endif %}
 <div>
-    {% if doc.in_format_data("item_code") -%}
+    {% if doc.in_format_data("item_code") and not doc.is_print_hide("item_code") -%}
     	<div class="primary">{{ doc.item_code }}</div>
     {%- endif %}
     {% if (doc.in_format_data("item_name") and
-    	(not doc.in_format_data("item_code") or doc.item_code != doc.item_name)) -%}
+    	(not doc.in_format_data("item_code") or doc.is_print_hide("item_code") 
+			or doc.item_code != doc.item_name)) -%}
     	<div class="primary">{{ doc.get_formatted("item_name") }}</div>
     {%- endif %}
     {% if (doc.in_format_data("description") and doc.description and
