Merge pull request #2002 from anandpdoshi/anand-july-29

[print] Hide Rate, Amount if Print Without Amount in Delivery Note
diff --git a/.travis.yml b/.travis.yml
index 71ab0f7..cecf966 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,7 +17,7 @@
   - wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_linux-precise-amd64.deb
   - sudo dpkg -i wkhtmltox-0.12.1_linux-precise-amd64.deb
 
-  - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@$develop &&
+  - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@develop &&
   - pip install --editable .
 
 before_script:
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index c29f2d8..44d5b3a 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -73,3 +73,4 @@
 execute:frappe.delete_doc("DocType", "Payment to Invoice Matching Tool Detail") # 29-07-2014
 execute:frappe.delete_doc("Page", "trial-balance") #2014-07-22
 erpnext.patches.v4_2.delete_old_print_formats #2014-07-29
+erpnext.patches.v4_2.toggle_rounded_total
diff --git a/erpnext/patches/v4_2/toggle_rounded_total.py b/erpnext/patches/v4_2/toggle_rounded_total.py
new file mode 100644
index 0000000..aa63fdc
--- /dev/null
+++ b/erpnext/patches/v4_2/toggle_rounded_total.py
@@ -0,0 +1,9 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	global_defaults = frappe.get_doc("Global Defaults", "Global Defaults")
+	global_defaults.toggle_rounded_total()
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index fff7ef9..20f1028 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -16,7 +16,6 @@
 erpnext.selling.SellingController = erpnext.TransactionController.extend({
 	onload: function() {
 		this._super();
-		this.toggle_rounded_total();
 		this.setup_queries();
 		this.toggle_editable_price_list_rate();
 	},
@@ -229,16 +228,6 @@
 		}
 	},
 
-	toggle_rounded_total: function() {
-		var me = this;
-		if(cint(frappe.defaults.get_global_default("disable_rounded_total"))) {
-			$.each(["rounded_total", "rounded_total_export"], function(i, fieldname) {
-				me.frm.set_df_property(fieldname, "print_hide", 1);
-				me.frm.toggle_display(fieldname, false);
-			});
-		}
-	},
-
 	toggle_editable_price_list_rate: function() {
 		var df = frappe.meta.get_docfield(this.tname, "price_list_rate", this.frm.doc.name);
 		var editable_price_list_rate = cint(frappe.defaults.get_default("editable_price_list_rate"));
diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py
index 737c17e..4764484 100644
--- a/erpnext/setup/doctype/global_defaults/global_defaults.py
+++ b/erpnext/setup/doctype/global_defaults/global_defaults.py
@@ -5,6 +5,8 @@
 """Global Defaults"""
 import frappe
 import frappe.defaults
+from frappe.utils import cint
+from frappe.core.doctype.property_setter.property_setter import make_property_setter
 
 keydict = {
 	# "key in defaults": "key in Global Defaults"
@@ -42,8 +44,19 @@
 		if self.default_currency:
 			frappe.db.set_value("Currency", self.default_currency, "enabled", 1)
 
+		self.toggle_rounded_total()
+
 		# clear cache
 		frappe.clear_cache()
 
 	def get_defaults(self):
 		return frappe.defaults.get_defaults()
+
+	def toggle_rounded_total(self):
+		self.disable_rounded_total = cint(self.disable_rounded_total)
+
+		# Make property setters to hide rounded total fields
+		for doctype in ("Quotation", "Sales Order", "Sales Invoice", "Delivery Note"):
+			for fieldname in ("rounded_total", "rounded_total_export"):
+				make_property_setter(doctype, fieldname, "hidden", self.disable_rounded_total, "Check")
+				make_property_setter(doctype, fieldname, "print_hide", self.disable_rounded_total, "Check")
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 13da907..54e4fa2 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -40,6 +40,20 @@
 			total_qty = sum((item.qty for item in self.get("delivery_note_details")))
 			self.get("__onload").billing_complete = (billed_qty[0][0] == total_qty)
 
+	def before_print(self):
+		def toggle_print_hide(meta, fieldname):
+			df = meta.get_field(fieldname)
+			if self.get("print_without_amount"):
+				df.set("__print_hide", 1)
+			else:
+				df.delete_key("__print_hide")
+
+		toggle_print_hide(self.meta, "currency")
+
+		item_meta = frappe.get_meta("Delivery Note Item")
+		for fieldname in ("rate", "amount", "price_list_rate", "discount_percentage"):
+			toggle_print_hide(item_meta, fieldname)
+
 	def get_portal_page(self):
 		return "shipment" if self.docstatus==1 else None
 
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.json b/erpnext/stock/doctype/stock_entry/stock_entry.json
index a455a3b..1a5bd18 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.json
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.json
@@ -1,646 +1,646 @@
 {
- "allow_attach": 0, 
- "allow_copy": 0, 
- "allow_import": 1, 
- "allow_rename": 0, 
- "autoname": "naming_series:", 
- "creation": "2013-04-09 11:43:55", 
- "docstatus": 0, 
- "doctype": "DocType", 
+ "allow_attach": 0,
+ "allow_copy": 0,
+ "allow_import": 1,
+ "allow_rename": 0,
+ "autoname": "naming_series:",
+ "creation": "2013-04-09 11:43:55",
+ "docstatus": 0,
+ "doctype": "DocType",
  "fields": [
   {
-   "fieldname": "col1", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_width": "50%", 
-   "read_only": 0, 
+   "fieldname": "col1",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_width": "50%",
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "naming_series", 
-   "fieldtype": "Select", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Series", 
-   "no_copy": 1, 
-   "oldfieldname": "naming_series", 
-   "oldfieldtype": "Select", 
-   "options": "STE-", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
+   "allow_on_submit": 0,
+   "fieldname": "naming_series",
+   "fieldtype": "Select",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Series",
+   "no_copy": 1,
+   "oldfieldname": "naming_series",
+   "oldfieldtype": "Select",
+   "options": "STE-",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "default": "Material Issue", 
-   "fieldname": "purpose", 
-   "fieldtype": "Select", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Purpose", 
-   "no_copy": 0, 
-   "oldfieldname": "purpose", 
-   "oldfieldtype": "Select", 
-   "options": "Material Issue\nMaterial Receipt\nMaterial Transfer\nManufacture/Repack\nSubcontract\nSales Return\nPurchase Return", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
+   "allow_on_submit": 0,
+   "default": "Material Issue",
+   "fieldname": "purpose",
+   "fieldtype": "Select",
+   "hidden": 0,
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Purpose",
+   "no_copy": 0,
+   "oldfieldname": "purpose",
+   "oldfieldtype": "Select",
+   "options": "Material Issue\nMaterial Receipt\nMaterial Transfer\nManufacture/Repack\nSubcontract\nSales Return\nPurchase Return",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Sales Return\"", 
-   "fieldname": "delivery_note_no", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Delivery Note No", 
-   "no_copy": 1, 
-   "oldfieldname": "delivery_note_no", 
-   "oldfieldtype": "Link", 
-   "options": "Delivery Note", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Sales Return\"",
+   "fieldname": "delivery_note_no",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Delivery Note No",
+   "no_copy": 1,
+   "oldfieldname": "delivery_note_no",
+   "oldfieldtype": "Link",
+   "options": "Delivery Note",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "depends_on": "eval:doc.purpose==\"Sales Return\"", 
-   "fieldname": "sales_invoice_no", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "label": "Sales Invoice No", 
-   "no_copy": 1, 
-   "options": "Sales Invoice", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "eval:doc.purpose==\"Sales Return\"",
+   "fieldname": "sales_invoice_no",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "label": "Sales Invoice No",
+   "no_copy": 1,
+   "options": "Sales Invoice",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
-   "fieldname": "purchase_receipt_no", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Purchase Receipt No", 
-   "no_copy": 1, 
-   "oldfieldname": "purchase_receipt_no", 
-   "oldfieldtype": "Link", 
-   "options": "Purchase Receipt", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Purchase Return\"",
+   "fieldname": "purchase_receipt_no",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Purchase Receipt No",
+   "no_copy": 1,
+   "oldfieldname": "purchase_receipt_no",
+   "oldfieldtype": "Link",
+   "options": "Purchase Receipt",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "col2", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_width": "50%", 
-   "read_only": 0, 
+   "fieldname": "col2",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_width": "50%",
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "default": "Today", 
-   "fieldname": "posting_date", 
-   "fieldtype": "Date", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "in_list_view": 0, 
-   "label": "Posting Date", 
-   "no_copy": 1, 
-   "oldfieldname": "posting_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
+   "allow_on_submit": 0,
+   "default": "Today",
+   "fieldname": "posting_date",
+   "fieldtype": "Date",
+   "hidden": 0,
+   "in_filter": 1,
+   "in_list_view": 0,
+   "label": "Posting Date",
+   "no_copy": 1,
+   "oldfieldname": "posting_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "posting_time", 
-   "fieldtype": "Time", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Posting Time", 
-   "no_copy": 1, 
-   "oldfieldname": "posting_time", 
-   "oldfieldtype": "Time", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
+   "allow_on_submit": 0,
+   "fieldname": "posting_time",
+   "fieldtype": "Time",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Posting Time",
+   "no_copy": 1,
+   "oldfieldname": "posting_time",
+   "oldfieldtype": "Time",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "items_section", 
-   "fieldtype": "Section Break", 
-   "label": "Items", 
-   "oldfieldtype": "Section Break", 
-   "permlevel": 0, 
+   "fieldname": "items_section",
+   "fieldtype": "Section Break",
+   "label": "Items",
+   "oldfieldtype": "Section Break",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "from_warehouse", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Default Source Warehouse", 
-   "no_copy": 1, 
-   "oldfieldname": "from_warehouse", 
-   "oldfieldtype": "Link", 
-   "options": "Warehouse", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "fieldname": "from_warehouse",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "in_list_view": 1,
+   "label": "Default Source Warehouse",
+   "no_copy": 1,
+   "oldfieldname": "from_warehouse",
+   "oldfieldtype": "Link",
+   "options": "Warehouse",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "cb0", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "cb0",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "to_warehouse", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Default Target Warehouse", 
-   "no_copy": 1, 
-   "oldfieldname": "to_warehouse", 
-   "oldfieldtype": "Link", 
-   "options": "Warehouse", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "fieldname": "to_warehouse",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "in_list_view": 1,
+   "label": "Default Target Warehouse",
+   "no_copy": 1,
+   "oldfieldname": "to_warehouse",
+   "oldfieldtype": "Link",
+   "options": "Warehouse",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "sb0", 
-   "fieldtype": "Section Break", 
-   "options": "Simple", 
-   "permlevel": 0, 
+   "fieldname": "sb0",
+   "fieldtype": "Section Break",
+   "options": "Simple",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "mtn_details", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "MTN Details", 
-   "no_copy": 0, 
-   "oldfieldname": "mtn_details", 
-   "oldfieldtype": "Table", 
-   "options": "Stock Entry Detail", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "fieldname": "mtn_details",
+   "fieldtype": "Table",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "MTN Details",
+   "no_copy": 0,
+   "oldfieldname": "mtn_details",
+   "oldfieldtype": "Table",
+   "options": "Stock Entry Detail",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "description": "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.", 
-   "fieldname": "get_stock_and_rate", 
-   "fieldtype": "Button", 
-   "label": "Get Stock and Rate", 
-   "oldfieldtype": "Button", 
-   "options": "get_stock_and_rate", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "description": "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.",
+   "fieldname": "get_stock_and_rate",
+   "fieldtype": "Button",
+   "label": "Get Stock and Rate",
+   "oldfieldtype": "Button",
+   "options": "get_stock_and_rate",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "eval:(doc.purpose!==\"Sales Return\" && doc.purpose!==\"Purchase Return\")", 
-   "fieldname": "sb1", 
-   "fieldtype": "Section Break", 
-   "label": "From Bill of Materials", 
-   "permlevel": 0, 
+   "depends_on": "eval:(doc.purpose!==\"Sales Return\" && doc.purpose!==\"Purchase Return\")",
+   "fieldname": "sb1",
+   "fieldtype": "Section Break",
+   "label": "From Bill of Materials",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:inList([\"Material Transfer\", \"Manufacture/Repack\"], doc.purpose)", 
-   "fieldname": "production_order", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Production Order", 
-   "no_copy": 0, 
-   "oldfieldname": "production_order", 
-   "oldfieldtype": "Link", 
-   "options": "Production Order", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:inList([\"Material Transfer\", \"Manufacture/Repack\"], doc.purpose)",
+   "fieldname": "production_order",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Production Order",
+   "no_copy": 0,
+   "oldfieldname": "production_order",
+   "oldfieldtype": "Link",
+   "options": "Production Order",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
-   "fieldname": "bom_no", 
-   "fieldtype": "Link", 
-   "label": "BOM No", 
-   "options": "BOM", 
-   "permlevel": 0, 
+   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)",
+   "fieldname": "bom_no",
+   "fieldtype": "Link",
+   "label": "BOM No",
+   "options": "BOM",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
-   "description": "As per Stock UOM", 
-   "fieldname": "fg_completed_qty", 
-   "fieldtype": "Float", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Manufacturing Quantity", 
-   "no_copy": 0, 
-   "oldfieldname": "fg_completed_qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)",
+   "description": "As per Stock UOM",
+   "fieldname": "fg_completed_qty",
+   "fieldtype": "Float",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Manufacturing Quantity",
+   "no_copy": 0,
+   "oldfieldname": "fg_completed_qty",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "cb1", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "cb1",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "default": "1", 
-   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
-   "description": "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.", 
-   "fieldname": "use_multi_level_bom", 
-   "fieldtype": "Check", 
-   "label": "Use Multi-Level BOM", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "default": "1",
+   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)",
+   "description": "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.",
+   "fieldname": "use_multi_level_bom",
+   "fieldtype": "Check",
+   "label": "Use Multi-Level BOM",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)", 
-   "fieldname": "get_items", 
-   "fieldtype": "Button", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Get Items", 
-   "no_copy": 0, 
-   "oldfieldtype": "Button", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:!inList([\"Sales Return\", \"Purchase Return\"], doc.purpose)",
+   "fieldname": "get_items",
+   "fieldtype": "Button",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Get Items",
+   "no_copy": 0,
+   "oldfieldtype": "Button",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "depends_on": "eval:(doc.purpose==\"Sales Return\" || doc.purpose==\"Purchase Return\")", 
-   "fieldname": "contact_section", 
-   "fieldtype": "Section Break", 
-   "label": "Contact Info", 
-   "permlevel": 0, 
+   "depends_on": "eval:(doc.purpose==\"Sales Return\" || doc.purpose==\"Purchase Return\")",
+   "fieldname": "contact_section",
+   "fieldtype": "Section Break",
+   "label": "Contact Info",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
-   "fieldname": "supplier", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Supplier", 
-   "no_copy": 1, 
-   "oldfieldname": "supplier", 
-   "oldfieldtype": "Link", 
-   "options": "Supplier", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Purchase Return\"",
+   "fieldname": "supplier",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Supplier",
+   "no_copy": 1,
+   "oldfieldname": "supplier",
+   "oldfieldtype": "Link",
+   "options": "Supplier",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
-   "fieldname": "supplier_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Supplier Name", 
-   "no_copy": 1, 
-   "oldfieldname": "supplier_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Purchase Return\"",
+   "fieldname": "supplier_name",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Supplier Name",
+   "no_copy": 1,
+   "oldfieldname": "supplier_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Purchase Return\"", 
-   "fieldname": "supplier_address", 
-   "fieldtype": "Small Text", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Supplier Address", 
-   "no_copy": 1, 
-   "oldfieldname": "supplier_address", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Purchase Return\"",
+   "fieldname": "supplier_address",
+   "fieldtype": "Small Text",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Supplier Address",
+   "no_copy": 1,
+   "oldfieldname": "supplier_address",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Sales Return\"", 
-   "fieldname": "customer", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Customer", 
-   "no_copy": 1, 
-   "oldfieldname": "customer", 
-   "oldfieldtype": "Link", 
-   "options": "Customer", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Sales Return\"",
+   "fieldname": "customer",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Customer",
+   "no_copy": 1,
+   "oldfieldname": "customer",
+   "oldfieldtype": "Link",
+   "options": "Customer",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Sales Return\"", 
-   "fieldname": "customer_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Customer Name", 
-   "no_copy": 1, 
-   "oldfieldname": "customer_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Sales Return\"",
+   "fieldname": "customer_name",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Customer Name",
+   "no_copy": 1,
+   "oldfieldname": "customer_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "depends_on": "eval:doc.purpose==\"Sales Return\"", 
-   "fieldname": "customer_address", 
-   "fieldtype": "Small Text", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Customer Address", 
-   "no_copy": 1, 
-   "oldfieldname": "customer_address", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "depends_on": "eval:doc.purpose==\"Sales Return\"",
+   "fieldname": "customer_address",
+   "fieldtype": "Small Text",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Customer Address",
+   "no_copy": 1,
+   "oldfieldname": "customer_address",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "more_info", 
-   "fieldtype": "Section Break", 
-   "label": "More Info", 
-   "oldfieldtype": "Section Break", 
-   "permlevel": 0, 
+   "fieldname": "more_info",
+   "fieldtype": "Section Break",
+   "label": "More Info",
+   "oldfieldtype": "Section Break",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "project_name", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Project Name", 
-   "oldfieldname": "project_name", 
-   "oldfieldtype": "Link", 
-   "options": "Project", 
-   "permlevel": 0, 
+   "fieldname": "project_name",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Project Name",
+   "oldfieldname": "project_name",
+   "oldfieldtype": "Link",
+   "options": "Project",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "remarks", 
-   "fieldtype": "Text", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Remarks", 
-   "no_copy": 1, 
-   "oldfieldname": "remarks", 
-   "oldfieldtype": "Text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "fieldname": "remarks",
+   "fieldtype": "Text",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Remarks",
+   "no_copy": 1,
+   "oldfieldname": "remarks",
+   "oldfieldtype": "Text",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "col5", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_width": "50%", 
-   "read_only": 0, 
+   "fieldname": "col5",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "print_width": "50%",
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "total_amount", 
-   "fieldtype": "Currency", 
-   "label": "Total Amount", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
+   "fieldname": "total_amount",
+   "fieldtype": "Currency",
+   "label": "Total Amount",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "fiscal_year", 
-   "fieldtype": "Link", 
-   "in_filter": 0, 
-   "label": "Fiscal Year", 
-   "options": "Fiscal Year", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "fiscal_year",
+   "fieldtype": "Link",
+   "in_filter": 0,
+   "label": "Fiscal Year",
+   "options": "Fiscal Year",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Company", 
-   "no_copy": 0, 
-   "oldfieldname": "company", 
-   "oldfieldtype": "Link", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
+   "allow_on_submit": 0,
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Company",
+   "no_copy": 0,
+   "oldfieldname": "company",
+   "oldfieldtype": "Link",
+   "options": "Company",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "select_print_heading", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "label": "Print Heading", 
-   "no_copy": 0, 
-   "oldfieldname": "select_print_heading", 
-   "oldfieldtype": "Link", 
-   "options": "Print Heading", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "fieldname": "select_print_heading",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 0,
+   "label": "Print Heading",
+   "no_copy": 0,
+   "oldfieldname": "select_print_heading",
+   "oldfieldtype": "Link",
+   "options": "Print Heading",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "fieldname": "amended_from", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 1, 
-   "in_filter": 0, 
-   "label": "Amended From", 
-   "no_copy": 1, 
-   "oldfieldname": "amended_from", 
-   "oldfieldtype": "Link", 
-   "options": "Stock Entry", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 0,
+   "fieldname": "amended_from",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "ignore_user_permissions": 1,
+   "in_filter": 0,
+   "label": "Amended From",
+   "no_copy": 1,
+   "oldfieldname": "amended_from",
+   "oldfieldtype": "Link",
+   "options": "Stock Entry",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "report_hide": 0,
+   "reqd": 0,
    "search_index": 0
   }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "icon": "icon-file-text", 
- "idx": 1, 
- "in_create": 0, 
- "in_dialog": 0, 
- "is_submittable": 1, 
- "issingle": 0, 
- "max_attachments": 0, 
- "modified": "2014-07-24 08:52:33.496200", 
- "modified_by": "Administrator", 
- "module": "Stock", 
- "name": "Stock Entry", 
- "owner": "Administrator", 
+ ],
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "icon-file-text",
+ "idx": 1,
+ "in_create": 0,
+ "in_dialog": 0,
+ "is_submittable": 1,
+ "issingle": 0,
+ "max_attachments": 0,
+ "modified": "2014-07-24 08:52:33.496200",
+ "modified_by": "Administrator",
+ "module": "Stock",
+ "name": "Stock Entry",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Material User", 
-   "submit": 1, 
+   "amend": 1,
+   "apply_user_permissions": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Material User",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Manufacturing User", 
-   "submit": 1, 
+   "amend": 1,
+   "apply_user_permissions": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Manufacturing User",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Manufacturing Manager", 
-   "submit": 1, 
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Manufacturing Manager",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Material Manager", 
-   "submit": 1, 
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Material Manager",
+   "submit": 1,
    "write": 1
   }
- ], 
- "read_only": 0, 
- "read_only_onload": 0, 
- "search_fields": "transfer_date, from_warehouse, to_warehouse, purpose, remarks", 
- "sort_field": "modified", 
+ ],
+ "read_only": 0,
+ "read_only_onload": 0,
+ "search_fields": "from_warehouse, to_warehouse, purpose, remarks",
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/templates/print_formats/includes/item_grid.html b/erpnext/templates/print_formats/includes/item_grid.html
index 63885c0..3cc3034 100644
--- a/erpnext/templates/print_formats/includes/item_grid.html
+++ b/erpnext/templates/print_formats/includes/item_grid.html
@@ -1,6 +1,8 @@
 {%- from "templates/print_formats/standard_macros.html" import print_value -%}
 {%- set std_fields = ("item_code", "item_name", "description", "qty", "rate", "amount", "stock_uom", "uom") -%}
 {%- set visible_columns = get_visible_columns(doc.get(df.fieldname), table_meta) -%}
+{%- set hide_rate = data[0].meta.is_print_hide("rate") -%}
+{%- set hide_amount = data[0].meta.is_print_hide("amount") -%}
 
 <table class="table table-bordered">
 	<tbody>
@@ -8,8 +10,8 @@
 			<th style="width: 3%">{{ _("Sr") }}</th>
 			<th style="width: 57%">{{ _("Item") }}</th>
 			<th style="width: 10%;" class="text-right">{{ _("Qty") }}</th>
-			<th style="width: 15%;" class="text-right">{{ _("Rate") }}</th>
-			<th style="width: 15%;" class="text-right">{{ _("Amount") }}</th>
+			{% if not hide_rate -%}<th style="width: 15%;" class="text-right">{{ _("Rate") }}</th>{%- endif %}
+			{% if not hide_amount -%}<th style="width: 15%;" class="text-right">{{ _("Amount") }}</th>{%- endif %}
 		</tr>
 		{%- for row in data -%}
 		<tr>
@@ -30,17 +32,15 @@
 				{%- for field in visible_columns -%}
 					{%- if (field.fieldname not in std_fields) and
 							(row[field.fieldname] not in (None, "", 0)) -%}
-					<div><strong>{{ _(field.label) }}:</strong></div>
-						{{ row.get_formatted(field.fieldname, doc) }}
+					<div><strong>{{ _(field.label) }}:</strong>
+						{{ row.get_formatted(field.fieldname, doc) }}</div>
 					{%- endif -%}
 				{%- endfor -%}
 			</td>
 			<td style="text-align: right;">{{ row.get_formatted("qty", doc) }}<br>
 				<small>{{ row.uom or row.stock_uom }}</small></td>
-			<td style="text-align: right;">{{
-				row.get_formatted("rate", doc) }}</td>
-			<td style="text-align: right;">{{
-				row.get_formatted("amount", doc) }}</td>
+			{% if not hide_rate -%}<td style="text-align: right;">{{ row.get_formatted("rate", doc) }}</td>{%- endif %}
+			{% if not hide_amount -%}<td style="text-align: right;">{{ row.get_formatted("amount", doc) }}</td>{%- endif %}
 		</tr>
 		{%- endfor -%}
 	</tbody>