built item grids for sales, purchase, stock
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 5b034f8..2f60dca 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -16,7 +16,6 @@
 		if not frozen_accounts_modifier or frozen_accounts_modifier in frappe.user.get_roles():
 			self.get("__onload").can_freeze_account = True
 
-
 	def autoname(self):
 		self.name = self.account_name.strip() + ' - ' + \
 			frappe.db.get_value("Company", self.company, "abbr")
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 8f82fc6..1205646 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -18,6 +18,10 @@
 
 from erpnext.controllers.selling_controller import SellingController
 
+form_grid_templates = {
+	"entries": "templates/form_grid/item_grid.html"
+}
+
 class SalesInvoice(SellingController):
 	tname = 'Sales Invoice Item'
 	fname = 'entries'
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index f9f5103..04ad37f 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -8,6 +8,10 @@
 from frappe.model.mapper import get_mapped_doc
 from erpnext.controllers.buying_controller import BuyingController
 
+form_grid_templates = {
+	"po_details": "templates/form_grid/item_grid.html"
+}
+
 class PurchaseOrder(BuyingController):
 	tname = 'Purchase Order Item'
 	fname = 'po_details'
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py
index 2af7bb9..d009bac 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py
@@ -6,6 +6,11 @@
 from frappe.model.mapper import get_mapped_doc
 
 from erpnext.controllers.buying_controller import BuyingController
+
+form_grid_templates = {
+	"quotation_items": "templates/form_grid/item_grid.html"
+}
+
 class SupplierQuotation(BuyingController):
 	tname = "Supplier Quotation Item"
 	fname = "quotation_items"
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 7faba41..dd58758 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -6,6 +6,7 @@
 from frappe.utils import cint, flt, rounded, cstr, comma_or
 from erpnext.setup.utils import get_company_currency
 from frappe import _, throw
+from erpnext.stock.get_item_details import get_available_qty
 
 from erpnext.controllers.stock_controller import StockController
 
@@ -17,6 +18,12 @@
 				"other_charges": "templates/print_formats/includes/taxes.html",
 			}
 
+	def onload(self):
+		if self.doctype in ("Sales Order", "Delivery Note", "Sales Invoice"):
+			for item in self.get(self.fname):
+				item.update(get_available_qty(item.item_code,
+					item.warehouse))
+
 	def validate(self):
 		super(SellingController, self).validate()
 		self.validate_max_discount()
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index f396191..ab6e4ba 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -9,6 +9,10 @@
 
 from erpnext.controllers.selling_controller import SellingController
 
+form_grid_templates = {
+	"quotation_details": "templates/form_grid/item_grid.html"
+}
+
 class Quotation(SellingController):
 	tname = 'Quotation Item'
 	fname = 'quotation_details'
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index e0a7a1d..37b26fd 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -12,6 +12,10 @@
 
 from erpnext.controllers.selling_controller import SellingController
 
+form_grid_templates = {
+	"sales_order_details": "templates/form_grid/item_grid.html"
+}
+
 class SalesOrder(SellingController):
 	tname = 'Sales Order Item'
 	fname = 'sales_order_details'
diff --git a/erpnext/selling/doctype/sales_order_item/sales_order_item.json b/erpnext/selling/doctype/sales_order_item/sales_order_item.json
index eb0c024..4ea3fec 100644
--- a/erpnext/selling/doctype/sales_order_item/sales_order_item.json
+++ b/erpnext/selling/doctype/sales_order_item/sales_order_item.json
@@ -1,443 +1,443 @@
 {
- "autoname": "SOD/.#####", 
- "creation": "2013-03-07 11:42:58", 
- "docstatus": 0, 
- "doctype": "DocType", 
+ "autoname": "SOD/.#####",
+ "creation": "2013-03-07 11:42:58",
+ "docstatus": 0,
+ "doctype": "DocType",
  "fields": [
   {
-   "fieldname": "item_code", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Item Code", 
-   "oldfieldname": "item_code", 
-   "oldfieldtype": "Link", 
-   "options": "Item", 
-   "permlevel": 0, 
-   "print_width": "150px", 
-   "read_only": 0, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "fieldname": "item_code",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Item Code",
+   "oldfieldname": "item_code",
+   "oldfieldtype": "Link",
+   "options": "Item",
+   "permlevel": 0,
+   "print_width": "150px",
+   "read_only": 0,
+   "reqd": 1,
+   "search_index": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "customer_item_code", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "in_list_view": 0, 
-   "label": "Customer's Item Code", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "customer_item_code",
+   "fieldtype": "Data",
+   "hidden": 1,
+   "in_list_view": 0,
+   "label": "Customer's Item Code",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "item_name", 
-   "fieldtype": "Data", 
-   "in_list_view": 0, 
-   "label": "Item Name", 
-   "oldfieldname": "item_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "150", 
-   "read_only": 0, 
-   "reqd": 1, 
+   "fieldname": "item_name",
+   "fieldtype": "Data",
+   "in_list_view": 0,
+   "label": "Item Name",
+   "oldfieldname": "item_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "150",
+   "read_only": 0,
+   "reqd": 1,
    "width": "150"
-  }, 
+  },
   {
-   "fieldname": "col_break1", 
-   "fieldtype": "Column Break", 
+   "fieldname": "col_break1",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "description", 
-   "fieldtype": "Small Text", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Description", 
-   "oldfieldname": "description", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_width": "300px", 
-   "read_only": 0, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "fieldname": "description",
+   "fieldtype": "Small Text",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Description",
+   "oldfieldname": "description",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_width": "300px",
+   "read_only": 0,
+   "reqd": 1,
+   "search_index": 1,
    "width": "300px"
-  }, 
+  },
   {
-   "fieldname": "quantity_and_rate", 
-   "fieldtype": "Section Break", 
-   "in_list_view": 0, 
-   "label": "Quantity and Rate", 
+   "fieldname": "quantity_and_rate",
+   "fieldtype": "Section Break",
+   "in_list_view": 0,
+   "label": "Quantity and Rate",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "qty", 
-   "fieldtype": "Float", 
-   "in_list_view": 1, 
-   "label": "Quantity", 
-   "oldfieldname": "qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_width": "100px", 
-   "read_only": 0, 
-   "reqd": 1, 
+   "fieldname": "qty",
+   "fieldtype": "Float",
+   "in_list_view": 1,
+   "label": "Quantity",
+   "oldfieldname": "qty",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_width": "100px",
+   "read_only": 0,
+   "reqd": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "price_list_rate", 
-   "fieldtype": "Currency", 
-   "in_list_view": 0, 
-   "label": "Price List Rate", 
-   "oldfieldname": "ref_rate", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "70px", 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "price_list_rate",
+   "fieldtype": "Currency",
+   "in_list_view": 0,
+   "label": "Price List Rate",
+   "oldfieldname": "ref_rate",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "70px",
+   "read_only": 1,
+   "reqd": 0,
    "width": "70px"
-  }, 
+  },
   {
-   "fieldname": "discount_percentage", 
-   "fieldtype": "Percent", 
-   "in_list_view": 0, 
-   "label": "Discount(%)", 
-   "oldfieldname": "adj_rate", 
-   "oldfieldtype": "Float", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "70px", 
-   "read_only": 0, 
+   "fieldname": "discount_percentage",
+   "fieldtype": "Float",
+   "in_list_view": 0,
+   "label": "Discount(%)",
+   "oldfieldname": "adj_rate",
+   "oldfieldtype": "Float",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "70px",
+   "read_only": 0,
    "width": "70px"
-  }, 
+  },
   {
-   "fieldname": "col_break2", 
-   "fieldtype": "Column Break", 
+   "fieldname": "col_break2",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "stock_uom", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_list_view": 0, 
-   "label": "UOM", 
-   "oldfieldname": "stock_uom", 
-   "oldfieldtype": "Data", 
-   "options": "UOM", 
-   "permlevel": 0, 
-   "print_width": "70px", 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "stock_uom",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_list_view": 0,
+   "label": "UOM",
+   "oldfieldname": "stock_uom",
+   "oldfieldtype": "Data",
+   "options": "UOM",
+   "permlevel": 0,
+   "print_width": "70px",
+   "read_only": 1,
+   "reqd": 0,
    "width": "70px"
-  }, 
+  },
   {
-   "fieldname": "base_price_list_rate", 
-   "fieldtype": "Currency", 
-   "in_list_view": 0, 
-   "label": "Price List Rate (Company Currency)", 
-   "oldfieldname": "base_ref_rate", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "100px", 
-   "read_only": 1, 
+   "fieldname": "base_price_list_rate",
+   "fieldtype": "Currency",
+   "in_list_view": 0,
+   "label": "Price List Rate (Company Currency)",
+   "oldfieldname": "base_ref_rate",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "100px",
+   "read_only": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "section_break_simple1", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_simple1",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "rate", 
-   "fieldtype": "Currency", 
-   "in_list_view": 1, 
-   "label": "Rate", 
-   "oldfieldname": "export_rate", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_width": "100px", 
-   "read_only": 0, 
-   "reqd": 0, 
+   "fieldname": "rate",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Rate",
+   "oldfieldname": "export_rate",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_width": "100px",
+   "read_only": 0,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "amount", 
-   "fieldtype": "Currency", 
-   "in_list_view": 1, 
-   "label": "Amount", 
-   "no_copy": 0, 
-   "oldfieldname": "export_amount", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_width": "100px", 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "amount",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Amount",
+   "no_copy": 0,
+   "oldfieldname": "export_amount",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_width": "100px",
+   "read_only": 1,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "col_break3", 
-   "fieldtype": "Column Break", 
+   "fieldname": "col_break3",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "base_rate", 
-   "fieldtype": "Currency", 
-   "in_list_view": 0, 
-   "label": "Basic Rate (Company Currency)", 
-   "oldfieldname": "basic_rate", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "100px", 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "base_rate",
+   "fieldtype": "Currency",
+   "in_list_view": 0,
+   "label": "Basic Rate (Company Currency)",
+   "oldfieldname": "basic_rate",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "100px",
+   "read_only": 1,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "base_amount", 
-   "fieldtype": "Currency", 
-   "in_list_view": 0, 
-   "label": "Amount (Company Currency)", 
-   "no_copy": 0, 
-   "oldfieldname": "amount", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "100px", 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "base_amount",
+   "fieldtype": "Currency",
+   "in_list_view": 0,
+   "label": "Amount (Company Currency)",
+   "no_copy": 0,
+   "oldfieldname": "amount",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "100px",
+   "read_only": 1,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "pricing_rule", 
-   "fieldtype": "Link", 
-   "label": "Pricing Rule", 
-   "options": "Pricing Rule", 
-   "permlevel": 0, 
+   "fieldname": "pricing_rule",
+   "fieldtype": "Link",
+   "label": "Pricing Rule",
+   "options": "Pricing Rule",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "warehouse_and_reference", 
-   "fieldtype": "Section Break", 
-   "in_list_view": 0, 
-   "label": "Warehouse and Reference", 
+   "fieldname": "warehouse_and_reference",
+   "fieldtype": "Section Break",
+   "in_list_view": 0,
+   "label": "Warehouse and Reference",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "warehouse", 
-   "fieldtype": "Link", 
-   "in_list_view": 0, 
-   "label": "Reserved Warehouse", 
-   "no_copy": 0, 
-   "oldfieldname": "reserved_warehouse", 
-   "oldfieldtype": "Link", 
-   "options": "Warehouse", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "150px", 
-   "read_only": 0, 
-   "reqd": 0, 
+   "fieldname": "warehouse",
+   "fieldtype": "Link",
+   "in_list_view": 0,
+   "label": "Reserved Warehouse",
+   "no_copy": 0,
+   "oldfieldname": "reserved_warehouse",
+   "oldfieldtype": "Link",
+   "options": "Warehouse",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "150px",
+   "read_only": 0,
+   "reqd": 0,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "prevdoc_docname", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "in_list_view": 0, 
-   "label": "Quotation", 
-   "no_copy": 1, 
-   "oldfieldname": "prevdoc_docname", 
-   "oldfieldtype": "Link", 
-   "options": "Quotation", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "prevdoc_docname",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "in_list_view": 0,
+   "label": "Quotation",
+   "no_copy": 1,
+   "oldfieldname": "prevdoc_docname",
+   "oldfieldtype": "Link",
+   "options": "Quotation",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "brand", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "in_filter": 1, 
-   "in_list_view": 0, 
-   "label": "Brand Name", 
-   "oldfieldname": "brand", 
-   "oldfieldtype": "Link", 
-   "options": "Brand", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "brand",
+   "fieldtype": "Link",
+   "hidden": 1,
+   "in_filter": 1,
+   "in_list_view": 0,
+   "label": "Brand Name",
+   "oldfieldname": "brand",
+   "oldfieldtype": "Link",
+   "options": "Brand",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Item Group\">Add / Edit</a>", 
-   "fieldname": "item_group", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "in_filter": 1, 
-   "in_list_view": 0, 
-   "label": "Item Group", 
-   "oldfieldname": "item_group", 
-   "oldfieldtype": "Link", 
-   "options": "Item Group", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "description": "<a href=\"#Sales Browser/Item Group\">Add / Edit</a>",
+   "fieldname": "item_group",
+   "fieldtype": "Link",
+   "hidden": 1,
+   "in_filter": 1,
+   "in_list_view": 0,
+   "label": "Item Group",
+   "oldfieldname": "item_group",
+   "oldfieldtype": "Link",
+   "options": "Item Group",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "page_break", 
-   "fieldtype": "Check", 
-   "in_list_view": 0, 
-   "label": "Page Break", 
-   "oldfieldname": "page_break", 
-   "oldfieldtype": "Check", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "page_break",
+   "fieldtype": "Check",
+   "in_list_view": 0,
+   "label": "Page Break",
+   "oldfieldname": "page_break",
+   "oldfieldtype": "Check",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 1
-  }, 
+  },
   {
-   "fieldname": "col_break4", 
-   "fieldtype": "Column Break", 
+   "fieldname": "col_break4",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "projected_qty", 
-   "fieldtype": "Float", 
-   "hidden": 1, 
-   "in_list_view": 0, 
-   "label": "Projected Qty", 
-   "no_copy": 1, 
-   "oldfieldname": "projected_qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "70px", 
-   "read_only": 1, 
+   "fieldname": "projected_qty",
+   "fieldtype": "Float",
+   "hidden": 0,
+   "in_list_view": 0,
+   "label": "Projected Qty",
+   "no_copy": 1,
+   "oldfieldname": "projected_qty",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "70px",
+   "read_only": 1,
    "width": "70px"
-  }, 
+  },
   {
-   "fieldname": "actual_qty", 
-   "fieldtype": "Float", 
-   "in_list_view": 0, 
-   "label": "Actual Qty", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "70px", 
-   "read_only": 1, 
+   "fieldname": "actual_qty",
+   "fieldtype": "Float",
+   "in_list_view": 0,
+   "label": "Actual Qty",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "70px",
+   "read_only": 1,
    "width": "70px"
-  }, 
+  },
   {
-   "fieldname": "delivered_qty", 
-   "fieldtype": "Float", 
-   "hidden": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Delivered Qty", 
-   "no_copy": 1, 
-   "oldfieldname": "delivered_qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "100px", 
-   "read_only": 1, 
-   "search_index": 0, 
+   "fieldname": "delivered_qty",
+   "fieldtype": "Float",
+   "hidden": 0,
+   "in_filter": 0,
+   "in_list_view": 0,
+   "label": "Delivered Qty",
+   "no_copy": 1,
+   "oldfieldname": "delivered_qty",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "100px",
+   "read_only": 1,
+   "search_index": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "billed_amt", 
-   "fieldtype": "Currency", 
-   "in_list_view": 0, 
-   "label": "Billed Amt", 
-   "no_copy": 1, 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "billed_amt",
+   "fieldtype": "Currency",
+   "in_list_view": 0,
+   "label": "Billed Amt",
+   "no_copy": 1,
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "description": "For Production", 
-   "fieldname": "planned_qty", 
-   "fieldtype": "Float", 
-   "hidden": 1, 
-   "in_list_view": 0, 
-   "label": "Planned Quantity", 
-   "no_copy": 1, 
-   "oldfieldname": "planned_qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "50px", 
-   "read_only": 1, 
-   "report_hide": 1, 
+   "description": "For Production",
+   "fieldname": "planned_qty",
+   "fieldtype": "Float",
+   "hidden": 1,
+   "in_list_view": 0,
+   "label": "Planned Quantity",
+   "no_copy": 1,
+   "oldfieldname": "planned_qty",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "50px",
+   "read_only": 1,
+   "report_hide": 1,
    "width": "50px"
-  }, 
+  },
   {
-   "description": "For Production", 
-   "fieldname": "produced_qty", 
-   "fieldtype": "Float", 
-   "hidden": 1, 
-   "in_list_view": 0, 
-   "label": "Produced Quantity", 
-   "oldfieldname": "produced_qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "print_width": "50px", 
-   "read_only": 1, 
-   "report_hide": 1, 
+   "description": "For Production",
+   "fieldname": "produced_qty",
+   "fieldtype": "Float",
+   "hidden": 1,
+   "in_list_view": 0,
+   "label": "Produced Quantity",
+   "oldfieldname": "produced_qty",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "print_width": "50px",
+   "read_only": 1,
+   "report_hide": 1,
    "width": "50px"
-  }, 
+  },
   {
-   "fieldname": "item_tax_rate", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "in_list_view": 0, 
-   "label": "Item Tax Rate", 
-   "oldfieldname": "item_tax_rate", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "item_tax_rate",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "in_list_view": 0,
+   "label": "Item Tax Rate",
+   "oldfieldname": "item_tax_rate",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "report_hide": 1
-  }, 
+  },
   {
-   "description": "Used for Production Plan", 
-   "fieldname": "transaction_date", 
-   "fieldtype": "Date", 
-   "hidden": 1, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Sales Order Date", 
-   "oldfieldname": "transaction_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "report_hide": 1, 
+   "description": "Used for Production Plan",
+   "fieldname": "transaction_date",
+   "fieldtype": "Date",
+   "hidden": 1,
+   "in_filter": 0,
+   "in_list_view": 0,
+   "label": "Sales Order Date",
+   "oldfieldname": "transaction_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "report_hide": 1,
    "search_index": 0
   }
- ], 
- "idx": 1, 
- "istable": 1, 
- "modified": "2014-07-31 04:55:10.143164", 
- "modified_by": "Administrator", 
- "module": "Selling", 
- "name": "Sales Order Item", 
- "owner": "Administrator", 
- "permissions": [], 
- "sort_field": "modified", 
+ ],
+ "idx": 1,
+ "istable": 1,
+ "modified": "2014-07-31 04:55:10.143164",
+ "modified_by": "Administrator",
+ "module": "Selling",
+ "name": "Sales Order Item",
+ "owner": "Administrator",
+ "permissions": [],
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 54e4fa2..e831c47 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -12,6 +12,10 @@
 from erpnext.stock.utils import update_bin
 from erpnext.controllers.selling_controller import SellingController
 
+form_grid_templates = {
+	"delivery_note_details": "templates/form_grid/item_grid.html"
+}
+
 class DeliveryNote(SellingController):
 	tname = 'Delivery Note Item'
 	fname = 'delivery_note_details'
diff --git a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
index 2f69bc9..8c5cbb7 100644
--- a/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
+++ b/erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
@@ -109,7 +109,7 @@
   }, 
   {
    "fieldname": "discount_percentage", 
-   "fieldtype": "Percent", 
+   "fieldtype": "Float", 
    "in_list_view": 0, 
    "label": "Discount (%)", 
    "oldfieldname": "adj_rate", 
@@ -365,6 +365,7 @@
    "label": "Against Sales Order", 
    "options": "Sales Order", 
    "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 1
   }, 
   {
@@ -373,6 +374,7 @@
    "label": "Against Sales Invoice", 
    "options": "Sales Invoice", 
    "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 1
   }, 
   {
@@ -429,7 +431,7 @@
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2014-07-24 05:56:00.218977", 
+ "modified": "2014-07-29 06:11:36.636120", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Delivery Note Item", 
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 9951fc8..89121e3 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -12,6 +12,11 @@
 from frappe.model.mapper import get_mapped_doc
 
 from erpnext.controllers.buying_controller import BuyingController
+
+form_grid_templates = {
+	"indent_details": "templates/form_grid/material_request_grid.html"
+}
+
 class MaterialRequest(BuyingController):
 	tname = 'Material Request Item'
 	fname = 'indent_details'
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 74f1198..5f56149 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -11,6 +11,11 @@
 from erpnext.stock.utils import update_bin
 
 from erpnext.controllers.buying_controller import BuyingController
+
+form_grid_templates = {
+	"purchase_receipt_details": "templates/form_grid/item_grid.html"
+}
+
 class PurchaseReceipt(BuyingController):
 	tname = 'Purchase Receipt Item'
 	fname = 'purchase_receipt_details'
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 861d967..413aa47 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -19,6 +19,10 @@
 
 from erpnext.controllers.stock_controller import StockController
 
+form_grid_templates = {
+	"mtn_details": "templates/form_grid/stock_entry_grid.html"
+}
+
 class StockEntry(StockController):
 	fname = 'mtn_details'
 
diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
index 0bdc9a8..e2f2c59 100644
--- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
+++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
@@ -1,6 +1,6 @@
 {
  "autoname": "MTND/.######", 
- "creation": "2013-03-29 18:22:12.000000", 
+ "creation": "2013-03-29 18:22:12", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
@@ -190,7 +190,7 @@
    "oldfieldtype": "Link", 
    "options": "Batch", 
    "permlevel": 0, 
-   "print_hide": 1, 
+   "print_hide": 0, 
    "read_only": 0
   }, 
   {
@@ -300,9 +300,10 @@
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2014-02-03 12:59:27.000000", 
+ "modified": "2014-07-29 05:28:21.872968", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Stock Entry Detail", 
- "owner": "Administrator"
+ "owner": "Administrator", 
+ "permissions": []
 }
\ No newline at end of file
diff --git a/erpnext/templates/form_grid/includes/visible_cols.html b/erpnext/templates/form_grid/includes/visible_cols.html
new file mode 100644
index 0000000..82f15c2
--- /dev/null
+++ b/erpnext/templates/form_grid/includes/visible_cols.html
@@ -0,0 +1,13 @@
+{% $.each(visible_columns || [], function(i, df) { %}
+	{% 	var val = row.get_formatted(df.fieldname);
+	if(val) { %}
+		<div class="row">
+			<div class="col-xs-3">
+				<strong>{%= __(df.label) %}:</strong>
+			</div>
+			<div class="col-xs-9">
+				{%= row.get_formatted(df.fieldname) %}
+			</div>
+		</div>
+	{% } %}
+{% }); %}
diff --git a/erpnext/templates/form_grid/item_grid.html b/erpnext/templates/form_grid/item_grid.html
new file mode 100644
index 0000000..2c03ef9
--- /dev/null
+++ b/erpnext/templates/form_grid/item_grid.html
@@ -0,0 +1,109 @@
+{% var visible_columns = row.get_visible_columns(["item_code", "item_name", "description", "qty", "rate", "amount", "stock_uom", "uom", "discount_percentage", "schedule_date", "warehouse", "against_sales_order", "sales_order"]); %}
+
+{% if(!doc) { %}
+	<div class="row">
+		<div class="col-sm-6">{%= __("Item") %}</div>
+		<div class="col-sm-2 text-right">{%= __("Qty") %}</div>
+		<div class="col-sm-2 text-right">{%= __("Rate") %}</div>
+		<div class="col-sm-2 text-right">{%= __("Amount") %}</div>
+	</div>
+{% } else { %}
+	<div class="row">
+		<div class="col-sm-6"><strong>{%= doc.item_code %}</strong>
+			{% if(doc.item_name != doc.item_code) { %}
+				<br>{%= doc.item_name %}{% } %}
+			{% if(doc.item_name != doc.description) { %}
+				<p>{%= doc.description %}</p>{% } %}
+			{% if(doc.sales_order || doc.against_sales_order) { %}
+				<p><span class="label label-default"
+					title="{%= __("Sales Order") %}">
+					<i class="icon-file"></i>
+					{%= doc.sales_order || doc.against_sales_order %}
+				</span></p>
+			{% } %}
+			{% include "templates/form_grid/includes/visible_cols.html" %}
+			{% if(doc.schedule_date) { %}
+			<br><span title="{%= __("Reqd By Date") %}" class="label {%=
+				(frappe.datetime.get_diff(doc.schedule_date) < 1
+					&& doc.received_qty < doc.qty)
+					? "label-danger" : "label-default" %}">
+					{%= row.get_formatted("schedule_date") %}</span>
+			{% } %}
+		</div>
+
+		<!-- qty -->
+		<div class="col-sm-2 text-right">
+			{%= row.get_formatted("qty") %}
+			<br><small>{%= doc.uom || doc.stock_uom %}</small>
+			{% if(in_list(["Sales Order Item", "Purchase Order Item"],
+				doc.doctype) && frm.doc.docstatus===1) {
+				var delivered = doc.doctype==="Sales Order Item" ?
+						doc.delivered_qty : doc.received_qty,
+					percent_delivered =
+						100 - cint((doc.qty - delivered) * 100 / doc.qty);
+				%}
+				<div class="progress" title="% {%= __("Delivered") %}"
+					style="margin-bottom: 4px;">
+					<div class="progress-bar" role="progressbar"
+						aria-valuenow="{%= percent_delivered %}"
+						aria-valuemin="0" aria-valuemax="100"
+						style="width: {%= percent_delivered %}%">
+						{%= percent_delivered %}%
+					</div>
+				</div>
+			{% } %}
+			{% if(doc.warehouse) {
+				var label_class = "label-default",
+					title = "Warehouse",
+					actual_qty = (doc.doctype==="Sales Order"
+						? doc.projected_qty : doc.actual_qty);
+				if(actual_qty != undefined) {
+					if(actual_qty > doc.qty) {
+						var label_class = "label-success";
+						var title = "In Stock"
+					} else {
+						var title = "Not In Stock"
+					}
+				}
+				%}
+				<div style="overflow:hidden; min-height: 25px;
+					white-space:nowrap; text-overflow: ellipsis;"
+					title="{%= title %}">
+					<span class="label {%= label_class %}">
+						{%= doc.warehouse %}
+					</span>
+				</div>
+			{% } %}
+		</div>
+
+		<!-- rate -->
+		<div class="col-sm-2 text-right">
+			{%= row.get_formatted("rate") %}
+			{% if(doc.discount_percentage) { %}
+			<br><span class="label label-default pull-right"
+				title="{%= __("Discount")  %}">
+				{%= -1 * doc.discount_percentage %}%</span>
+			{% }%}
+		</div>
+
+		<!-- amount -->
+		<div class="col-sm-2 text-right">
+			{%= row.get_formatted("amount") %}
+			{% if(in_list(["Sales Order Item", "Purchase Order Item"],
+				doc.doctype) && frm.doc.docstatus===1 && doc.amount) {
+				var percent_billed =
+					100 - cint((doc.amount - doc.billed_amt) * 100 / doc.amount);
+				%}
+				<br><small>&nbsp;</small>
+				<div class="progress" title="% {%= __("Billed") %}">
+					<div class="progress-bar" role="progressbar"
+						aria-valuenow="{%= percent_billed %}"
+						aria-valuemin="0" aria-valuemax="100"
+						style="width: {%= percent_billed %}%">
+						{%= percent_billed %}%
+					</div>
+				</div>
+			{% } %}
+		</div>
+	</div>
+{% } %}
diff --git a/erpnext/templates/form_grid/material_request_grid.html b/erpnext/templates/form_grid/material_request_grid.html
new file mode 100644
index 0000000..53b875a
--- /dev/null
+++ b/erpnext/templates/form_grid/material_request_grid.html
@@ -0,0 +1,52 @@
+{% var visible_columns = row.get_visible_columns(["item_code",
+	"item_name", "description", "amount", "stock_uom", "uom", "qty"]); %}
+
+{% if(!doc) { %}
+	<div class="row">
+		<div class="col-sm-9">{%= __("Item") %}</div>
+		<div class="col-sm-3 text-right">{%= __("Qty") %}</div>
+	</div>
+{% } else { %}
+	<div class="row">
+		<div class="col-sm-9"><strong>{%= doc.item_code %}</strong>
+			{% if(doc.item_name != doc.item_code) { %}
+				<br>{%= doc.item_name %}{% } %}
+			{% if(doc.item_name != doc.description) { %}
+				<p>{%= doc.description %}</p>{% } %}
+			{% include "templates/form_grid/includes/visible_cols.html" %}
+			{% if(doc.schedule_date) { %}
+			<br><span title="{%= __("Reqd By Date") %}" class="label {%=
+				(frappe.datetime.get_diff(doc.schedule_date) < 1
+					&& doc.ordered_qty < doc.qty)
+					? "label-danger" : "label-default" %}">
+					{%= row.get_formatted("schedule_date") %}</span>
+			{% } %}
+		</div>
+
+		<!-- qty -->
+		<div class="col-sm-3 text-right">
+			{%= row.get_formatted("qty") %}
+			<small>{%= doc.uom || doc.stock_uom %}</small>
+			{% var percent_delivered =
+				100 - cint((doc.qty - cint(doc.ordered_qty)) * 100 / doc.qty); %}
+			<div class="progress" title="% {%= __("Ordered") %}"
+				style="margin-bottom: 4px;">
+				<div class="progress-bar" role="progressbar"
+					aria-valuenow="{%= percent_delivered %}"
+					aria-valuemin="0" aria-valuemax="100"
+					style="width: {%= percent_delivered %}%">
+					{%= percent_delivered %}%
+				</div>
+			</div>
+			{% if(doc.warehouse) { %}
+				<div style="overflow:hidden; min-height: 25px;
+					white-space:nowrap; text-overflow: ellipsis;"
+					title="{%= __("For Warehouse") %}">
+					<span class="label label-default">
+						{%= doc.warehouse %}
+					</span>
+				</div>
+			{% } %}
+		</div>
+	</div>
+{% } %}
diff --git a/erpnext/templates/form_grid/stock_entry_grid.html b/erpnext/templates/form_grid/stock_entry_grid.html
new file mode 100644
index 0000000..5603305
--- /dev/null
+++ b/erpnext/templates/form_grid/stock_entry_grid.html
@@ -0,0 +1,42 @@
+{% var visible_columns = row.get_visible_columns(["item_code",
+	"item_name", "description", "amount", "stock_uom", "uom", "qty",
+	"s_warehouse", "t_warehouse", "incoming_rate"]);
+%}
+
+{% if(!doc) { %}
+	<div class="row">
+		<div class="col-sm-8">{%= __("Item") %}</div>
+		<div class="col-sm-2 text-right">{%= __("Qty") %}</div>
+		<div class="col-sm-2 text-right">{%= __("Amount") %}</div>
+	</div>
+{% } else { %}
+	<div class="row">
+		<div class="col-sm-8"><strong>{%= doc.item_code %}</strong>
+			{% if(doc.item_name != doc.item_code) { %}
+				<br>{%= doc.item_name %}{% } %}
+			{% if(doc.item_name != doc.description) { %}
+				<p>{%= doc.description %}</p>{% } %}
+			{% include "templates/form_grid/includes/visible_cols.html" %}
+			<div>
+				{% if(doc.s_warehouse) { %}<span class="label label-default">
+					{%= doc.s_warehouse || "" %}</span>{% } %}
+				<i class="icon-long-arrow-right"></i>
+				{% if(doc.t_warehouse) { %}<span class="label label-primary">
+					{%= doc.t_warehouse || "" %}</span>{% } %}
+			</div>
+		</div>
+
+		<!-- qty -->
+		<div class="col-sm-2 text-right">
+			{%= row.get_formatted("qty") %}
+			<br><small>{%= doc.uom || doc.stock_uom %}</small>
+		</div>
+
+		<!-- amount -->
+		<div class="col-sm-2 text-right">
+			{%= row.get_formatted("amount") %}
+			<div class="small text-muted">
+				{%= row.get_formatted("incoming_rate") %}</div>
+		</div>
+	</div>
+{% } %}