Merge pull request #5298 from neilLasrado/sal-slip

Moved email salary slip to employee under HR Settings
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index e9e5b2f..01b41d2 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
 from __future__ import unicode_literals
-__version__ = '6.27.14'
+__version__ = '6.27.16'
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index 104bef7..a551d06 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -87,7 +87,7 @@
 			return
 		
 		existing_is_group = frappe.db.get_value("Account", self.name, "is_group")
-		if self.is_group != existing_is_group:
+		if cint(self.is_group) != cint(existing_is_group):
 			if self.check_gle_exists():
 				throw(_("Account with existing transaction cannot be converted to ledger"))
 			elif self.is_group:
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.js b/erpnext/accounts/doctype/payment_tool/payment_tool.js
index e15694c..8d8e0ce 100644
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.js
+++ b/erpnext/accounts/doctype/payment_tool/payment_tool.js
@@ -146,6 +146,10 @@
 					c.total_amount = d.invoice_amount;
 					c.outstanding_amount = d.outstanding_amount;
 
+					if (in_list(['Sales Invoice', 'Purchase Invoice'], d.voucher_type)){
+						c.due_date = d.due_date
+					}
+
 					if (frm.doc.set_payment_amount) {
 						c.payment_amount = d.outstanding_amount;
 					}
@@ -202,7 +206,7 @@
 	}
 
 	frappe.call({
-		method: 'erpnext.accounts.doctype.payment_tool.payment_tool.get_against_voucher_amount',
+		method: 'erpnext.accounts.doctype.payment_tool.payment_tool.get_against_voucher_details',
 		args: {
 			"against_voucher_type": row.against_voucher_type,
 			"against_voucher_no": row.against_voucher_no,
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.py b/erpnext/accounts/doctype/payment_tool/payment_tool.py
index ef8ffb1..5c5b393 100644
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.py
+++ b/erpnext/accounts/doctype/payment_tool/payment_tool.py
@@ -20,15 +20,15 @@
 		jv.company = self.company
 		jv.cheque_no = self.reference_no
 		jv.cheque_date = self.reference_date
-		
-		party_account_currency, party_account_type = frappe.db.get_value("Account", self.party_account, 
+
+		party_account_currency, party_account_type = frappe.db.get_value("Account", self.party_account,
 			["account_currency", "account_type"])
-		
+
 		bank_account_currency, bank_account_type = None, None
 		if self.payment_account:
-			bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account, 
+			bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account,
 				["account_currency", "account_type"])
-		
+
 		if not self.total_payment_amount:
 			frappe.throw(_("Please enter Payment Amount in atleast one row"))
 
@@ -36,11 +36,11 @@
 			if not frappe.db.get_value(v.against_voucher_type, {"name": v.against_voucher_no}):
 				frappe.throw(_("Row {0}: {1} is not a valid {2}").format(v.idx, v.against_voucher_no,
 					v.against_voucher_type))
-			
+
 			if v.payment_amount:
 				exchange_rate = get_exchange_rate(self.party_account, party_account_currency,
 					self.company, v.against_voucher_type, v.against_voucher_no)
-				
+
 				d1 = jv.append("accounts")
 				d1.account = self.party_account
 				d1.party_type = self.party_type
@@ -56,7 +56,7 @@
 				d1.reference_name = v.against_voucher_no
 				d1.is_advance = 'Yes' \
 					if v.against_voucher_type in ['Sales Order', 'Purchase Order'] else 'No'
-					
+
 				amount = flt(d1.debit_in_account_currency) - flt(d1.credit_in_account_currency)
 				if bank_account_currency == party_account_currency:
 					total_payment_amount += amount
@@ -65,27 +65,27 @@
 
 		d2 = jv.append("accounts")
 		if self.payment_account:
-			bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account, 
+			bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account,
 				["account_currency", "account_type"])
-				
+
 			d2.account = self.payment_account
 			d2.account_currency = bank_account_currency
 			d2.account_type = bank_account_type
-			d2.exchange_rate = get_exchange_rate(self.payment_account, bank_account_currency, self.company, 
-				debit=(abs(total_payment_amount) if total_payment_amount < 0 else 0), 
+			d2.exchange_rate = get_exchange_rate(self.payment_account, bank_account_currency, self.company,
+				debit=(abs(total_payment_amount) if total_payment_amount < 0 else 0),
 				credit=(total_payment_amount if total_payment_amount > 0 else 0))
 			d2.account_balance = get_balance_on(self.payment_account)
-		
+
 		amount_field_bank = 'debit_in_account_currency' if total_payment_amount < 0 \
 			else 'credit_in_account_currency'
-		
+
 		d2.set(amount_field_bank, abs(total_payment_amount))
-		
+
 		company_currency = frappe.db.get_value("Company", self.company, "default_currency")
 		if party_account_currency != company_currency or \
 			(bank_account_currency and bank_account_currency != company_currency):
 				jv.multi_currency = 1
-			
+
 		jv.set_amounts_in_company_currency()
 		jv.set_total_debit_credit()
 
@@ -150,7 +150,7 @@
 	return order_list
 
 @frappe.whitelist()
-def get_against_voucher_amount(against_voucher_type, against_voucher_no, party_account, company):
+def get_against_voucher_details(against_voucher_type, against_voucher_no, party_account, company):
 	party_account_currency = get_account_currency(party_account)
 	company_currency = frappe.db.get_value("Company", company, "default_currency")
 	ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
diff --git a/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json b/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json
index 765aa93..66447b0 100644
--- a/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json
+++ b/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json
@@ -16,14 +16,16 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
-   "in_list_view": 1, 
+   "in_list_view": 0, 
    "label": "Against Voucher Type", 
    "length": 0, 
    "no_copy": 0, 
    "options": "DocType", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "print_width": "", 
    "read_only": 0, 
    "report_hide": 0, 
@@ -41,6 +43,7 @@
    "fieldtype": "Dynamic Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Against Voucher No", 
@@ -49,6 +52,7 @@
    "options": "against_voucher_type", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -60,10 +64,36 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "fieldname": "due_date", 
+   "fieldtype": "Date", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "label": "Due Date", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
    "fieldname": "column_break_3", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "length": 0, 
@@ -71,6 +101,7 @@
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -86,6 +117,7 @@
    "fieldtype": "Currency", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Total Amount", 
@@ -94,6 +126,7 @@
    "options": "party_account_currency", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -109,6 +142,7 @@
    "fieldtype": "Currency", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Outstanding Amount", 
@@ -117,6 +151,7 @@
    "options": "party_account_currency", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -132,6 +167,7 @@
    "fieldtype": "Currency", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Payment Amount", 
@@ -140,6 +176,7 @@
    "options": "party_account_currency", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -150,13 +187,14 @@
  ], 
  "hide_heading": 0, 
  "hide_toolbar": 0, 
+ "idx": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2015-11-16 06:29:51.626386", 
+ "modified": "2016-05-05 06:22:24.736160", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Payment Tool Detail", 
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index c241288..3120e73 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -667,9 +667,12 @@
 def get_list_context(context=None):
 	from erpnext.controllers.website_list_for_contact import get_list_context
 	list_context = get_list_context(context)
-	list_context["title"] = _("My Invoices")
-	list_context["show_sidebar"] = True
-	list_context["show_search"] = True
+	list_context.update({
+		'show_sidebar': True,
+		'show_search': True,
+		'no_breadcrumbs': True,
+		'title': _('Invoices'),
+	})
 	return list_context
 
 @frappe.whitelist()
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 06197eb..48668fa 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -473,7 +473,8 @@
 			'posting_date': d.posting_date,
 			'invoice_amount': flt(d.invoice_amount),
 			'payment_amount': flt(d.payment_amount),
-			'outstanding_amount': flt(d.invoice_amount - d.payment_amount, precision)
+			'outstanding_amount': flt(d.invoice_amount - d.payment_amount, precision),
+			'due_date': frappe.db.get_value(d.voucher_type, d.voucher_no, "due_date")
 		})
 
 	return outstanding_invoices
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index 9187706..d5c677c 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -53,17 +53,18 @@
 
 	valid_items = frappe._dict()
 
-	select_fields = "item_code, sum(qty) as qty, rate" if doc.doctype=="Purchase Invoice" \
-		else "item_code, sum(qty) as qty, rate, serial_no, batch_no"
+	select_fields = "item_code, qty" if doc.doctype=="Purchase Invoice" \
+		else "item_code, qty, serial_no, batch_no"
 
-	for d in frappe.db.sql("""select {0} from `tab{1} Item` where parent = %s
-		group by item_code""".format(select_fields, doc.doctype), doc.return_against, as_dict=1):
-			valid_items.setdefault(d.item_code, d)
+	for d in frappe.db.sql("""select {0} from `tab{1} Item` where parent = %s"""
+		.format(select_fields, doc.doctype), doc.return_against, as_dict=1):
+			valid_items = get_ref_item_dict(valid_items, d)
+			
 
 	if doc.doctype in ("Delivery Note", "Sales Invoice"):
 		for d in frappe.db.sql("""select item_code, sum(qty) as qty, serial_no, batch_no from `tabPacked Item`
 			where parent = %s group by item_code""".format(doc.doctype), doc.return_against, as_dict=1):
-				valid_items.setdefault(d.item_code, d)
+				valid_items = get_ref_item_dict(valid_items, d)
 
 	already_returned_items = get_already_returned_items(doc)
 
@@ -86,7 +87,7 @@
 				elif abs(d.qty) > max_return_qty:
 					frappe.throw(_("Row # {0}: Cannot return more than {1} for Item {2}")
 						.format(d.idx, ref.qty, d.item_code), StockOverReturnError)
-				elif ref.batch_no and d.batch_no != ref.batch_no:
+				elif ref.batch_no and d.batch_no not in ref.batch_no:
 					frappe.throw(_("Row # {0}: Batch No must be same as {1} {2}")
 						.format(d.idx, doc.doctype, doc.return_against))
 				elif ref.serial_no:
@@ -94,9 +95,8 @@
 						frappe.throw(_("Row # {0}: Serial No is mandatory").format(d.idx))
 					else:
 						serial_nos = get_serial_nos(d.serial_no)
-						ref_serial_nos = get_serial_nos(ref.serial_no)
 						for s in serial_nos:
-							if s not in ref_serial_nos:
+							if s not in ref.serial_no:
 								frappe.throw(_("Row # {0}: Serial No {1} does not match with {2} {3}")
 									.format(d.idx, s, doc.doctype, doc.return_against))
 
@@ -107,6 +107,25 @@
 
 	if not items_returned:
 		frappe.throw(_("Atleast one item should be entered with negative quantity in return document"))
+		
+def get_ref_item_dict(valid_items, ref_item_row):
+	from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos
+	
+	valid_items.setdefault(ref_item_row.item_code, frappe._dict({
+		"qty": 0,
+		"serial_no": [],
+		"batch_no": []
+	}))
+	item_dict = valid_items[ref_item_row.item_code]
+	item_dict["qty"] += ref_item_row.qty
+	
+	if ref_item_row.get("serial_no"):
+		item_dict["serial_no"] += get_serial_nos(ref_item_row.serial_no)
+		
+	if ref_item_row.get("batch_no"):
+		item_dict["batch_no"].append(ref_item_row.batch_no)
+		
+	return valid_items
 
 def get_already_returned_items(doc):
 	return frappe._dict(frappe.db.sql("""
diff --git a/erpnext/docs/assets/img/setup/email/email-alert-condition.png b/erpnext/docs/assets/img/setup/email/email-alert-condition.png
new file mode 100644
index 0000000..8ede011
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/email/email-alert-condition.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/email/email-alert-subject.png b/erpnext/docs/assets/img/setup/email/email-alert-subject.png
new file mode 100644
index 0000000..671de9b
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/email/email-alert-subject.png
Binary files differ
diff --git a/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md b/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md
index 46af27e..7bc965b 100644
--- a/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md
+++ b/erpnext/docs/user/manual/en/customize-erpnext/articles/making-custom-reports-in-erpnext.md
@@ -12,12 +12,12 @@
 
 Query Report is written in SQL which pull values from account's database and fetch in the report. Though SQL queries can be written from front end, like HTML, its restricted in hosted users. Because it will allow users with no access to specific report to query data directly from the database.
 
-Check Purchase Order Item to be Received report in Stock module for example of Query report. Click [here](https://frappe.github.io/frappe/user/guides/reports-and-printing/how-to-make-query-report.html) to learn how to create Query Report.
+Check Purchase Order Item to be Received report in Stock module for example of Query report. Click [here](https://frappe.github.io/frappe/user/en/guides/reports-and-printing/how-to-make-query-report.html) to learn how to create Query Report.
 
 ### 3. Script Report
 
 Script Reports are written in Python and stored on server side. These are complex reports which involves logic and calculation. Since these reports are written on server side, customizing it from hosted account is not possible. 
 
-Check Financial Analytics report in Accounts module for example of Script Report. Click [here](https://frappe.github.io/frappe/user/guides/reports-and-printing/how-to-make-script-reports.html) to learn how to create Script Report.
+Check Financial Analytics report in Accounts module for example of Script Report. Click [here](https://frappe.github.io/frappe/user/en/guides/reports-and-printing/how-to-make-script-reports.html) to learn how to create Script Report.
 
 <!-- markdown --> 
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md b/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md
index b93d76e..f52cee1 100644
--- a/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md
+++ b/erpnext/docs/user/manual/en/customize-erpnext/customize-form.md
@@ -1,5 +1,5 @@
 <!--markdown-->
-Before we venture to learn form customization tool, click [here](https://frappe.github.io/frappe/user/tutorial/doctypes.html) to understand the architecture of forms in ERPNext. It shall help you in using Customize Form tool more efficiently.
+Before we venture to learn form customization tool, click [here](https://frappe.github.io/frappe/user/en/tutorial/doctypes.html) to understand the architecture of forms in ERPNext. It shall help you in using Customize Form tool more efficiently.
 
 Customize Form is the tool which allows user to customize property of the standard fields, and insert [custom fields]({{docs_base_url}}/user/manual/en/customize-erpnext/custom-field.html) as per the requirement. Let's assume we need to set Project Name field as a mandatory field in the Sales Order form. Following are the steps which shall be followed to achieve this.
 
diff --git a/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md b/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md
index 2d2c179..3cbf159 100644
--- a/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md
+++ b/erpnext/docs/user/manual/en/setting-up/articles/integrating-erpnext-with-other-application.md
@@ -2,6 +2,6 @@
 
 For now, ERPNext has out-of-the-box integration available for some applications like Shopify, your SMS gateway and payment gateway. To integrate ERPNext with other application, you can use REST API of Frappe. Check following links to learn more about REST API of Frappe.
 
-[Frappe Rest API](https://frappe.github.io/frappe/user/guides/integration/rest_api.html)
+[Frappe Rest API](https://frappe.github.io/frappe/user/en/guides/integration/rest_api.html)
 
 <!-- markdown -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md b/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md
index f4cccd3..1a5d13a 100644
--- a/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md
+++ b/erpnext/docs/user/manual/en/setting-up/email/email-alerts.md
@@ -28,6 +28,41 @@
 1. Set the recipients of this alert. The recipient could either be a field of the document or a list of fixed email ids.
 1. Compose the message
 
+
+### Setting a Subject
+You can retrieve the data for a particular field by using `doc.[field_name]`. To use it in your subject / message, you have to surround it with `{{ }}`. These are called [Jinja](http://jinja.pocoo.org/) tags. So, for example to get the name of a document, you use `{{ doc.name }}`. The below example sends an email on saving a Task with the Subject, "TASK##### has been created"
+
+<img class="screenshot" alt="Setting Subject" src="{{docs_base_url}}/assets/img/setup/email/email-alert-subject.png">
+
+### Setting Conditions
+
+Email alerts allow you to set conditions according to the field data in your documents. For example, if you want to recieve an Email if a Lead has been saved as "Interested" as it's status, you put `doc.status == "Interested"` in the conditions textbox. You can also set more complex conditions by combining them.
+
+<img class="screenshot" alt="Setting Condition" src="{{docs_base_url}}/assets/img/setup/email/email-alert-condition.png">
+
+The above example will send an Email Alert when a Task is saved with the status "Open" and the Expected End Date for the Task is the date on or before the date on which it was saved on. 
+
+### Setting a Message
+
+You can use both Jinja Tags (`{{ doc.[field_name] }}`) and HTML tags in the message textbox. 
+
+	<h3>Order Overdue</h3>
+
+	<p>Transaction {{ doc.name }} has exceeded Due Date. Please take necessary action.</p>
+
+	<!-- show last comment -->
+	{% if comments %}
+	Last comment: {{ comments[-1].comment }} by {{ comments[-1].by }}
+	{% endif %}
+
+	<h4>Details</h4>
+
+	<ul>
+	<li>Customer: {{ doc.customer }}
+	<li>Amount: {{ doc.total_amount }}
+	</ul>
+
+
 ---
 
 ### Example
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 10aaa9a..1e16c89 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -7,7 +7,7 @@
 app_description = """ERP made simple"""
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "6.27.14"
+app_version = "6.27.16"
 app_email = "info@erpnext.com"
 app_license = "GNU General Public License (v3)"
 source_link = "https://github.com/frappe/erpnext"
@@ -32,6 +32,8 @@
 on_session_creation = "erpnext.shopping_cart.utils.set_cart_count"
 on_logout = "erpnext.shopping_cart.utils.clear_cart_count"
 
+remember_selected = ['Company', 'Cost Center', 'Project']
+
 # website
 update_website_context = "erpnext.shopping_cart.utils.update_website_context"
 my_account_context = "erpnext.shopping_cart.utils.update_my_account_context"
diff --git a/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py b/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py
index 061f606..fb58d75 100755
--- a/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py
+++ b/erpnext/hr/doctype/employee_leave_approver/employee_leave_approver.py
@@ -21,4 +21,4 @@
 		user_role.role = "Leave Approver"
 		and user_role.parent = user.name and
 		user.name != %s 
-		""", name)
\ No newline at end of file
+		""", name or "")
\ No newline at end of file
diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json
index c92fbb8..17e667e 100644
--- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json
+++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.json
@@ -15,11 +15,14 @@
    "fieldtype": "Column Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -33,17 +36,20 @@
    "bold": 0, 
    "collapsible": 0, 
    "description": "Leave blank if considered for all employee types", 
-   "fieldname": "employee_type", 
+   "fieldname": "employment_type", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
-   "label": "Employee Type", 
+   "label": "Employment Type", 
+   "length": 0, 
    "no_copy": 0, 
    "options": "Employment Type", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -60,13 +66,16 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Branch", 
+   "length": 0, 
    "no_copy": 0, 
    "options": "Branch", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -83,13 +92,16 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Department", 
+   "length": 0, 
    "no_copy": 0, 
    "options": "Department", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -106,13 +118,16 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Designation", 
+   "length": 0, 
    "no_copy": 0, 
    "options": "Designation", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -128,11 +143,14 @@
    "fieldtype": "Column Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -149,13 +167,16 @@
    "fieldtype": "Date", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "From Date", 
+   "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -171,13 +192,16 @@
    "fieldtype": "Date", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "To Date", 
+   "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -193,13 +217,16 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Leave Type", 
+   "length": 0, 
    "no_copy": 0, 
    "options": "Leave Type", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -216,12 +243,15 @@
    "fieldtype": "Check", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Carry Forward", 
+   "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -237,12 +267,15 @@
    "fieldtype": "Float", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "New Leaves Allocated (In Days)", 
+   "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -258,13 +291,16 @@
    "fieldtype": "Button", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Allocate", 
+   "length": 0, 
    "no_copy": 0, 
    "options": "allocate_leave", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -282,7 +318,8 @@
  "is_submittable": 0, 
  "issingle": 1, 
  "istable": 0, 
- "modified": "2015-10-28 16:23:57.733900", 
+ "max_attachments": 0, 
+ "modified": "2016-05-05 05:45:33.355366", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Leave Control Panel", 
diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py
index 77c7ad9..b4561f1 100644
--- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py
+++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py
@@ -10,27 +10,24 @@
 
 class LeaveControlPanel(Document):
 	def get_employees(self):
-		lst1 = [[self.employee_type,"employment_type"],[self.branch,"branch"],[self.designation,"designation"],[self.department, "department"]]
-		condition = "where "
-		flag = 0
-		for l in lst1:
-			if(l[0]):
-				if flag == 0:
-					condition += l[1] + "= '" + l[0] +"'"
-				else:
-					condition += " and " + l[1]+ "= '" +l[0] +"'"
-				flag = 1
-		emp_query = "select name from `tabEmployee` "
-		if flag == 1:
-			emp_query += condition
-		e = frappe.db.sql(emp_query)
+		conditions, values = [], []
+		for field in ["employment_type", "branch", "designation", "department"]:
+			if self.get(field):
+				conditions.append("{0}=%s".format(field))
+				values.append(self.get(field))
+
+		condition_str = " and " + " and ".join(conditions) if len(conditions) else ""
+
+		e = frappe.db.sql("select name from tabEmployee where status='Active' {condition}"
+			.format(condition=condition_str), tuple(values))
+
 		return e
 
 	def validate_values(self):
 		for f in ["from_date", "to_date", "leave_type", "no_of_days"]:
 			if not self.get(f):
 				frappe.throw(_("{0} is required").format(self.meta.get_label(f)))
-	
+
 	def to_date_validation(self):
 		if date_diff(self.to_date, self.from_date) <= 0:
 			return "Invalid period"
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 97b97cd..3ee0158 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -169,7 +169,7 @@
 erpnext.patches.v6_0.multi_currency
 erpnext.patches.v5_0.repost_gle_for_jv_with_multiple_party
 erpnext.patches.v5_0.portal_fixes
-erpnext.patches.v5_0.reset_values_in_tools
+erpnext.patches.v5_0.reset_values_in_tools # 02-05-2016
 execute:frappe.delete_doc("Page", "users")
 erpnext.patches.v5_0.update_material_transferred_for_manufacturing_again
 erpnext.patches.v5_0.index_on_account_and_gl_entry
diff --git a/erpnext/patches/v5_0/reset_values_in_tools.py b/erpnext/patches/v5_0/reset_values_in_tools.py
index 2825e4f..5aac83e 100644
--- a/erpnext/patches/v5_0/reset_values_in_tools.py
+++ b/erpnext/patches/v5_0/reset_values_in_tools.py
@@ -6,6 +6,7 @@
 
 def execute():
 	for dt in ["Payment Tool", "Bank Reconciliation", "Payment Reconciliation", "Leave Control Panel", 
-		"Salary Manager", "Upload Attenadance", "Production Planning Tool", "BOM Replace Tool"]:
+		"Salary Manager", "Upload Attenadance", "Production Planning Tool", "BOM Replace Tool", "Customize Form",
+		 "Employee Attendance Tool", "Rename Tool", "BOM Replace Tool", "Process Payroll", "Naming Series"]:
 			frappe.db.sql("delete from `tabSingles` where doctype=%s", dt)
 		
\ No newline at end of file
diff --git a/erpnext/portal/doctype/homepage_featured_product/homepage_featured_product.json b/erpnext/portal/doctype/homepage_featured_product/homepage_featured_product.json
index fe93098..81c75c6 100644
--- a/erpnext/portal/doctype/homepage_featured_product/homepage_featured_product.json
+++ b/erpnext/portal/doctype/homepage_featured_product/homepage_featured_product.json
@@ -257,7 +257,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-04-22 05:57:06.261401", 
+ "modified": "2016-04-25 15:51:52.811124", 
  "modified_by": "Administrator", 
  "module": "Portal", 
  "name": "Homepage Featured Product", 
diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js
index 9148397..4835287 100644
--- a/erpnext/projects/doctype/project/project.js
+++ b/erpnext/projects/doctype/project/project.js
@@ -43,11 +43,32 @@
 				});
 			}
 
-			frm.dashboard.show_heatmap = true;
-			frm.dashboard.heatmap_message = __('This is based on the Time Logs created against this project');
-			frm.dashboard.show_dashboard();
+			frm.trigger('show_dashboard');
 		}
+	},
+	show_dashboard: function(frm) {
+		frm.dashboard.show_heatmap = true;
+		frm.dashboard.heatmap_message = __('This is based on the Time Logs created against this project');
+		frm.dashboard.show_dashboard();
 
+		if(frm.doc.__onload.activity_summary.length) {
+			var hours = $.map(frm.doc.__onload.activity_summary, function(d) { return d.total_hours });
+			var max_count = Math.max.apply(null, hours);
+			var sum = hours.reduce(function(a, b) { return a + b; }, 0);
+			var section = frm.dashboard.add_section(
+				frappe.render_template('project_dashboard',
+					{
+						data: frm.doc.__onload.activity_summary,
+						max_count: max_count,
+						sum: sum
+					}));
+
+			section.on('click', '.time-log-link', function() {
+				var activity_type = $(this).attr('data-activity_type');
+				frappe.set_route('List', 'Time Log',
+					{'activity_type': activity_type, 'project': frm.doc.name});
+			});
+		}
 	}
 });
 
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index c5808a2..e7f5b7a 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -27,6 +27,8 @@
 				})
 
 		self.set_onload('links', self.meta.get_links_setup())
+		self.set_onload('activity_summary', frappe.db.sql('''select activity_type, sum(hours) as total_hours
+			from `tabTime Log` where project=%s group by activity_type order by total_hours desc''', self.name, as_dict=True))
 
 	def __setup__(self):
 		self.onload()
@@ -183,7 +185,8 @@
 	return {
 		"show_sidebar": True,
 		"show_search": True,
-		"title": _("My Projects"),
+		'no_breadcrumbs': True,
+		"title": _("Projects"),
 		"get_list": get_project_list,
 		"row_template": "templates/includes/projects/project_row.html"
 	}
diff --git a/erpnext/projects/doctype/project/project_dashboard.html b/erpnext/projects/doctype/project/project_dashboard.html
index efd6861..34a2d04 100644
--- a/erpnext/projects/doctype/project/project_dashboard.html
+++ b/erpnext/projects/doctype/project/project_dashboard.html
@@ -1,10 +1,26 @@
-<h5 style="margin-top: 0px;">Tasks</h5>
-{% if(project.tasks.length) { %}
-	{% project.tasks.forEach(function(d) { %}
-	<p><span class="indicator {{
-		{"Open": "red", "Closed": "green", "Cancelled": "darkgrey"}[d.status] || "orange" }}"><a style="font-weight: normal"
-		href="#Form/Task/{{ d.task_id }}">{{ d.title }}</a></span></p>
-	{% }); %}
-{% } else { %}
-	<p class="text-muted small">No Tasks Defined</p>
-{% } %}
\ No newline at end of file
+<h5 style="margin-top: 0px;">Activity Summary</h5>
+<h6 style="margin-bottom: 25px;">{{ __("Total hours: {0}", [flt(sum, 2) ]) }}</h6>
+{% for d in data %}
+<div class="row">
+	<div class="col-xs-4">
+		<a class="small time-log-link" data-activity_type="{{ d.activity_type || "" }}">
+			{{ d.activity_type || __("Unknown") }}</a>
+	</div>
+	<div class="col-xs-8">
+		<span class="inline-graph">
+			<span class="inline-graph-half">
+			</span>
+			<span class="inline-graph-half" title="{{ __("hours") }}">
+				<span class="inline-graph-count">
+					{{ __("{0} hours", [flt(d.total_hours, 2)]) }}
+				</span>
+				<span class="inline-graph-bar">
+					<span class="inline-graph-bar-inner dark"
+						style="width: {{ cint(d.total_hours/max_count * 100) }}%">
+					</span>
+				</span>
+			</span>
+		</span>
+	</div>
+</div>
+{% endfor %}
\ No newline at end of file
diff --git a/erpnext/public/css/website.css b/erpnext/public/css/website.css
index 25d08f6..8566c5c 100644
--- a/erpnext/public/css/website.css
+++ b/erpnext/public/css/website.css
@@ -80,7 +80,6 @@
   background-color: #fafbfc;
 }
 .transaction-list-item .indicator {
-  font-size: inherit;
   font-weight: inherit;
   color: #8D99A6;
   margin-left: -15px;
@@ -126,6 +125,75 @@
   border-top: 1px solid #d1d8dd;
   padding-top: 15px;
 }
+.cart-container {
+  margin: 50px 0px;
+}
+.cart-container .cart-item-header .h6 {
+  padding: 7px 15px;
+}
+.cart-container .cart-items {
+  margin: 30px 0px 0px;
+}
+.cart-container .cart-item-table {
+  margin: 0px -15px;
+}
+.cart-container .cart-item-header {
+  border-bottom: 1px solid #d1d8dd;
+}
+.cart-container .cart-image-col {
+  padding-right: 0px;
+}
+.cart-container .cart-image {
+  max-width: 55px;
+  max-height: 55px;
+  margin-top: -5px;
+}
+.cart-container .cart-taxes {
+  margin-top: 30px;
+}
+.cart-container .cart-taxes .row {
+  margin-top: 15px;
+}
+.cart-container .tax-grand-total-row {
+  border-top: 1px solid #d1d8dd;
+  padding-top: 15px;
+}
+.cart-container .cart-addresses {
+  margin-top: 50px;
+}
+.cart-items .cart-dropdown,
+.item_name_dropdown {
+  display: none;
+}
+.cart-dropdown-container {
+  width: 350px;
+  padding: 15px;
+}
+.cart-dropdown-container .item-price {
+  display: block !important;
+  padding-bottom: 10px;
+}
+.cart-dropdown-container .cart-item-header {
+  border-bottom: 1px solid #d1d8dd;
+}
+.cart-dropdown-container .cart-items .cart-dropdown {
+  display: block;
+  margin-top: 15px;
+}
+.cart-dropdown-container .item_name_dropdown {
+  display: block;
+}
+.cart-dropdown-container .item-description,
+.cart-dropdown-container .cart-items .checkout,
+.cart-dropdown-container .item_name_and_description {
+  display: none;
+}
+.cart-dropdown-container .checkout-btn {
+  margin: 15px;
+}
+.cart-dropdown-container .col-name-description {
+  margin-bottom: 8px;
+}
 .product-list-link .row {
   border-bottom: 1px solid #EBEFF2;
 }
@@ -147,3 +215,36 @@
     max-width: 350px;
   }
 }
+.item-group-content {
+  margin-top: 30px;
+}
+.product-image-img {
+  border: 1px solid #EBEFF2;
+  border-radius: 3px;
+}
+.product-text {
+  border-top: 1px solid #EBEFF2;
+  padding: 15px;
+  word-wrap: break-word;
+  height: 75px;
+}
+.product-image-wrapper {
+  padding-bottom: 30px;
+}
+.featured-product-heading,
+.all-products {
+  text-transform: uppercase;
+  letter-spacing: 0.5px;
+  font-size: 12px;
+  font-weight: 500;
+}
+.all-products {
+  font-weight: 300;
+  padding-left: 25px;
+  padding-right: 25px;
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
+.homepage-tagline {
+  font-size: 40px !important;
+}
diff --git a/erpnext/public/js/conf.js b/erpnext/public/js/conf.js
index 1191c47..d8133ce 100644
--- a/erpnext/public/js/conf.js
+++ b/erpnext/public/js/conf.js
@@ -15,6 +15,7 @@
 			frappe.urllib.get_base_url()+'/assets/erpnext/images/erp-icon.svg" />');
 
 	$('[data-link="docs"]').attr("href", "https://manual.erpnext.com")
+	$('[data-link="issues"]').attr("href", "https://github.com/frappe/erpnext/issues")
 });
 
 // doctypes created via tree
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 99036aa..3f6ea5a 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -19,20 +19,20 @@
 
 		frappe.ui.form.on(this.frm.cscript.tax_table, "rate", function(frm, cdt, cdn) {
 			cur_frm.cscript.calculate_taxes_and_totals();
-		})
+		});
 
 		frappe.ui.form.on(this.frm.cscript.tax_table, "tax_amount", function(frm, cdt, cdn) {
 			cur_frm.cscript.calculate_taxes_and_totals();
-		})
+		});
 
 		frappe.ui.form.on(this.frm.cscript.tax_table, "row_id", function(frm, cdt, cdn) {
 			cur_frm.cscript.calculate_taxes_and_totals();
-		})
+		});
 
 		frappe.ui.form.on(this.frm.cscript.tax_table, "included_in_print_rate", function(frm, cdt, cdn) {
 			cur_frm.cscript.set_dynamic_labels();
 			cur_frm.cscript.calculate_taxes_and_totals();
-		})
+		});
 
 		frappe.ui.form.on(this.frm.doctype, "apply_discount_on", function(frm) {
 			if(frm.doc.additional_discount_percentage) {
@@ -40,7 +40,7 @@
 			} else {
 				cur_frm.cscript.calculate_taxes_and_totals();
 			}
-		})
+		});
 
 		frappe.ui.form.on(this.frm.doctype, "additional_discount_percentage", function(frm) {
 			if (frm.via_discount_amount) {
diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js
index a3f7d3f..c09e383 100644
--- a/erpnext/public/js/shopping_cart.js
+++ b/erpnext/public/js/shopping_cart.js
@@ -12,6 +12,19 @@
 	}
 	// update login
 	shopping_cart.set_cart_count();
+	
+	$(".shopping-cart").on('shown.bs.dropdown', function() {
+		if (!$('.shopping-cart-menu .cart-container').length) {
+			return frappe.call({
+				method: 'erpnext.shopping_cart.cart.get_shopping_cart_menu',
+				callback: function(r) {
+					if (r.message) {
+						$('.shopping-cart-menu').html(r.message);
+					}
+				}
+			});
+		}
+	});
 });
 
 $.extend(shopping_cart, {
@@ -32,7 +45,11 @@
 				},
 				btn: opts.btn,
 				callback: function(r) {
-					shopping_cart.set_cart_count();
+					shopping_cart.set_cart_count();	
+					if (r.message.shopping_cart_menu) {
+						$('.shopping-cart-menu').html(r.message.shopping_cart_menu);
+					}
+					
 					if(opts.callback)
 						opts.callback(r);
 				}
@@ -43,14 +60,9 @@
 	set_cart_count: function() {
 		var cart_count = getCookie("cart_count");
 		
-		if($(".cart-icon").length == 0) {
-			$('<div class="cart-icon small" style="float:right;padding:3px;border-radius:10px;\
-    			border: 1px solid #7575ff;">\
-				<a href="/cart" style="color:#7575ff; text-decoration: none">\
-					Cart\
-					<span style="color:#7575ff;" class="badge" id="cart-count">5</span>\
-				</a></div>').appendTo($('.shopping-cart'))
-		}
+		if(cart_count) {
+			$(".shopping-cart").toggle(true);	
+		}		
 		
 		var $cart = $('.cart-icon');
 		var $badge = $cart.find("#cart-count");
diff --git a/erpnext/public/less/website.less b/erpnext/public/less/website.less
index 0246cac..894340e 100644
--- a/erpnext/public/less/website.less
+++ b/erpnext/public/less/website.less
@@ -94,7 +94,6 @@
 	}
 
 	.indicator {
-		font-size: inherit;
 		font-weight: inherit;
 		color: @text-muted;
 		margin-left: -15px;
@@ -161,6 +160,95 @@
 	}
 }
 
+.cart-container {
+	margin: 50px 0px;
+
+	.cart-item-header .h6 {
+		padding: 7px 15px;
+	}
+
+	.cart-items {
+		margin: 30px 0px 0px;
+	}
+
+	.cart-item-table {
+		margin: 0px -15px;
+	}
+
+	.cart-item-header {
+		border-bottom: 1px solid #d1d8dd;
+	}
+
+	.cart-image-col {
+		padding-right: 0px;
+	}
+
+	.cart-image {
+		max-width: 55px;
+		max-height: 55px;
+		margin-top: -5px;
+	}
+
+	.cart-taxes {
+		margin-top: 30px;
+
+		.row {
+			margin-top: 15px;
+		}
+	}
+
+	.tax-grand-total-row {
+		border-top: 1px solid @border-color;
+		padding-top: 15px;
+	}
+	
+	.cart-addresses {
+		margin-top: 50px;
+	}
+}
+
+.cart-items .cart-dropdown,
+.item_name_dropdown {
+	display:none;
+	
+}
+.cart-dropdown-container {
+	width: 350px;
+	padding: 15px;
+	
+	.item-price {
+		display: block !important;
+		padding-bottom: 10px;
+	}
+	
+	.cart-item-header {
+		border-bottom: 1px solid #d1d8dd;
+	}
+	
+	.cart-items .cart-dropdown {
+		display:block;
+	   	margin-top:15px;
+	}
+		
+	.item_name_dropdown {
+		display:block;
+	}
+	
+	.item-description,
+	.cart-items .checkout,
+	.item_name_and_description {
+		display: none;
+	}
+	
+	.checkout-btn {
+		margin:15px;
+	}
+	.col-name-description {
+		margin-bottom:8px;
+	}
+	
+}
+
 .product-list-link {
 	.row {
 		border-bottom: 1px solid @light-border-color;
@@ -189,3 +277,43 @@
 		max-width: 350px;
 	}
 }
+
+.item-group-content {
+	margin-top: 30px;
+}
+
+.product-image-img {	
+	border: 1px solid @light-border-color;
+	border-radius: 3px;
+}
+
+.product-text {	
+	border-top: 1px solid @light-border-color;
+	padding: 15px;
+	word-wrap: break-word;
+	height: 75px;
+}
+
+.product-image-wrapper {	
+	padding-bottom: 30px;
+}
+
+
+.featured-product-heading, .all-products {
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+ font-size: 12px;
+ font-weight: 500;	
+}
+
+.all-products {
+ font-weight: 300;	
+ padding-left: 25px;
+ padding-right: 25px;
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+.homepage-tagline {
+	font-size:40px !important;
+}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index 4b26cfc..d7dae68 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -58,7 +58,7 @@
 		if start < 0:
 			start = 0
 		context.update({
-			"items": get_product_list_for_group(product_group = self.name, start=start, limit=24, search=frappe.form_dict.get("q")),
+			"items": get_product_list_for_group(product_group = self.name, start=start, limit=24, search=frappe.form_dict.get("search")),
 			"parent_groups": get_parent_item_groups(self.name),
 			"title": self.name,
 			"products_as_list": cint(frappe.db.get_single_value('Website Settings', 'products_as_list'))
diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py
index 2c3257e..c85dd8f 100644
--- a/erpnext/shopping_cart/cart.py
+++ b/erpnext/shopping_cart/cart.py
@@ -92,8 +92,9 @@
 
 	set_cart_count(quotation)
 
-	if with_items:
-		context = get_cart_quotation(quotation)
+	context = get_cart_quotation(quotation)
+	
+	if cint(with_items):
 		return {
 			"items": frappe.render_template("templates/includes/cart/cart_items.html",
 				context),
@@ -101,7 +102,17 @@
 				context),
 		}
 	else:
-		return quotation.name
+		return {
+			'name': quotation.name,
+			'shopping_cart_menu': get_shopping_cart_menu(context)
+		}
+		
+@frappe.whitelist()
+def get_shopping_cart_menu(context=None):
+	if not context:
+		context = get_cart_quotation()
+		
+	return frappe.render_template('templates/includes/cart/cart_dropdown.html', context)
 
 @frappe.whitelist()
 def update_cart_address(address_fieldname, address_name):
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 79a4ea6..6c6a3b3 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -329,9 +329,12 @@
 def get_list_context(context=None):
 	from erpnext.controllers.website_list_for_contact import get_list_context
 	list_context = get_list_context(context)
-	list_context["title"] = _("My Shipments")
-	list_context["show_sidebar"] = True
-	list_context["show_search"] = True
+	list_context.update({
+		'show_sidebar': True,
+		'show_search': True,
+		'no_breadcrumbs': True,
+		'title': _('Shipments'),
+	})
 	return list_context
 
 def get_invoiced_qty_map(delivery_note):
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index a63f32d..d403b18 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -147,7 +147,8 @@
 		file = frappe.get_all("File", filters={
 			"file_url": self.website_image
 		}, fields=["name", "is_private"], order_by="is_private asc", limit_page_length=1)
-
+		
+		
 		if file:
 			file = file[0]
 
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index d3fa482..ed67322 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -215,6 +215,8 @@
 		stock_value_change = 0
 		if incoming_rate:
 			stock_value_change = actual_qty * incoming_rate
+		elif flt(sle.outgoing_rate):
+			stock_value_change = actual_qty * flt(sle.outgoing_rate)
 		elif actual_qty < 0:
 			# In case of delivery/stock issue, get average purchase rate
 			# of serial nos of current entry
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index fcc1edf..ab8e6d8 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -55,11 +55,12 @@
 
 def get_list_context(context=None):
 	return {
-		"title": _("My Issues"),
+		"title": _("Issues"),
 		"get_list": get_issue_list,
 		"row_template": "templates/includes/issue_row.html",
 		"show_sidebar": True,
-		"show_search": True
+		"show_search": True,
+		'no_breadcrumbs': True
 	}
 
 def get_issue_list(doctype, txt, filters, limit_start, limit_page_length=20):
diff --git a/erpnext/templates/generators/item.html b/erpnext/templates/generators/item.html
index dabbf48..e074fa3 100644
--- a/erpnext/templates/generators/item.html
+++ b/erpnext/templates/generators/item.html
@@ -52,8 +52,10 @@
 				</div>
 				<br>
 				<div style="min-height: 100px; margin: 10px 0;">
-					<h4 class="item-price" itemprop="price"></h4>
-					<div class="item-stock" itemprop="availablity"></div>
+					<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
+						<h4 class="item-price" itemprop="price"></h4>
+						<div class="item-stock" itemprop="availability"></div>
+					</div>	
                     <div class="item-cart hide">
     					<div id="item-add-to-cart">
     						<button class="btn btn-primary btn-sm">
@@ -71,7 +73,7 @@
 		</div>
 		<div class="row item-website-description" style="margin-top:30px; margin-bottom:20px">
 			<div class="col-md-12">
-		<h4>{{ _("DESCRIPTION") }}</h4>
+		<div class="h6 text-uppercase">{{ _("Description") }}</div>
 		<div itemprop="description" class="item-desc">
 		{{ web_long_description or description or _("No description given") }}
 		</div>
@@ -81,7 +83,7 @@
 		{% if website_specifications -%}
 		<div class="row item-website-specification" style="margin-top: 40px">
 			<div class="col-md-12">
-				<h4>{{ _("SPECIFICATIONS") }}</h4>
+				<div class="h6 text-uppercase">{{ _("Specifications") }}</div>
 
 				<table class="table borderless" style="width: 100%">
 				{% for d in website_specifications -%}
diff --git a/erpnext/templates/generators/item_group.html b/erpnext/templates/generators/item_group.html
index d014263..b9926d6 100644
--- a/erpnext/templates/generators/item_group.html
+++ b/erpnext/templates/generators/item_group.html
@@ -1,8 +1,5 @@
 {% extends "templates/web.html" %}
 
-{#{% block header_actions %}
-{% include 'templates/includes/product_search_box.html' %}
-{% endblock %}#}
 {% block header %}<h1>{{ _("Products") }}</h1>{% endblock %}
 {% block breadcrumbs %}
  <div class="page-breadcrumbs" data-html-block="breadcrumbs">
@@ -16,7 +13,7 @@
 {% endblock %}
 
 {% block page_content %}
-<div class="item-group-content">
+<div class="item-group-content" itemscope itemtype="http://schema.org/Product">
 	<div>
 		{% if slideshow %}<!-- slideshow -->
 		{% include "templates/includes/slideshow.html" %}
diff --git a/erpnext/templates/includes/cart.css b/erpnext/templates/includes/cart.css
index 07302db..e69de29 100644
--- a/erpnext/templates/includes/cart.css
+++ b/erpnext/templates/includes/cart.css
@@ -1,32 +0,0 @@
-.cart-content {
-	min-height: 400px;
-	margin-top: 60px;
-}
-
-.cart-header, .cart-footer {
-	margin-bottom: 60px;
-}
-
-.cart-item-header {
-	padding-bottom: 10px;
-	margin-bottom: 10px;
-	border-bottom: 1px solid #d1d8dd;
-}
-
-.tax-grand-total-row {
-	font-size: 14px;
-	margin-top: 30px;
-	font-weight: bold;
-}
-
-.cart-addresses {
-	margin-top: 80px;
-	margin-bottom: 60px;
-}
-
-.cart-link {
-	margin-top: 40px;
-	text-align: right;
-
-
-}
\ No newline at end of file
diff --git a/erpnext/templates/includes/cart.js b/erpnext/templates/includes/cart.js
index 9cb5e6e..931df7a 100644
--- a/erpnext/templates/includes/cart.js
+++ b/erpnext/templates/includes/cart.js
@@ -16,6 +16,7 @@
 		shopping_cart.bind_address_select();
 		shopping_cart.bind_place_order();
 		shopping_cart.bind_change_qty();
+		shopping_cart.bind_remove_item();
 
 	},
 
@@ -71,6 +72,24 @@
 			});
 		});
 	},
+	
+	bind_remove_item: function() {
+		$(".cart-items").on("click", ".remove-item", function() {
+			var item_code = $(this).attr("data-item-code");
+			shopping_cart.update_cart({
+				item_code: item_code,
+				qty: "0",
+				callback: function(r) {
+					location.reload();
+					if(!r.exc) {
+						$(".cart-items").html(r.message.items);
+						$(".cart-tax-items").html(r.message.taxes);
+						$(".cart-icon").hide();
+					}
+				},
+			});
+		});
+	},
 
 	render_tax_row: function($cart_taxes, doc, shipping_rules) {
 		var shipping_selector;
diff --git a/erpnext/templates/includes/cart/cart_address.html b/erpnext/templates/includes/cart/cart_address.html
index 1af8f0b..29d4f4b 100644
--- a/erpnext/templates/includes/cart/cart_address.html
+++ b/erpnext/templates/includes/cart/cart_address.html
@@ -1,11 +1,10 @@
-{% from "erpnext/templates/includes/cart/cart_macros.html"
-    import show_address %}
+{% from "erpnext/templates/includes/cart/cart_macros.html" import show_address %}
 <div class="row">
 	{% if addresses|length == 1%}
 		{% set select_address = True %}
 	{% endif %}
 	<div class="col-sm-6">
-		<h4>{{ _("Shipping Address") }}</h4>
+		<div class="h6 text-uppercase">{{ _("Shipping Address") }}</div>
 		<div id="cart-shipping-address" class="panel-group"
 			data-fieldname="shipping_address_name">
             {% for address in addresses %}
@@ -16,7 +15,7 @@
 			{{ _("Manage Addresses") }}</a>
 	</div>
 	<div class="col-sm-6">
-		<h4>Billing Address</h4>
+		<div class="h6 text-uppercase">Billing Address</div>
 		<div id="cart-billing-address" class="panel-group"
 			data-fieldname="customer_address">
             {% for address in addresses %}
diff --git a/erpnext/templates/includes/cart/cart_dropdown.html b/erpnext/templates/includes/cart/cart_dropdown.html
new file mode 100644
index 0000000..19892d4
--- /dev/null
+++ b/erpnext/templates/includes/cart/cart_dropdown.html
@@ -0,0 +1,26 @@
+<div class="cart-dropdown-container">
+	<div id="cart-error" class="alert alert-danger"
+	style="display: none;"></div>
+	<div class="row cart-items-dropdown cart-item-header text-muted">
+		<div class="col-sm-7 col-xs-6 h6 text-uppercase">
+		{{ _("Item") }}
+		</div>
+		<div class="col-sm-2 col-xs-2 text-right h6 text-uppercase">
+		{{ _("Qty") }}
+		</div>
+		<div class="col-sm-3 col-xs-2 text-right h6 text-uppercase">
+		{{ _("Price") }}
+		</div>
+	</div>
+	
+	{% if doc.items %}
+	<div class="cart-items">
+		{% include "templates/includes/cart/cart_items.html" %}
+	</div>
+	<div class="text-center checkout-btn">
+	<p class="text-center"><a href="/cart" class="btn btn-primary">{{ _("Checkout") }}</a></p>
+	</div>
+	{% else %}
+	<p>{{ _("Cart is Empty") }}</p>
+	{% endif %}
+</div>
diff --git a/erpnext/templates/includes/cart/cart_items.html b/erpnext/templates/includes/cart/cart_items.html
index f7efa78..cd0bb86 100644
--- a/erpnext/templates/includes/cart/cart_items.html
+++ b/erpnext/templates/includes/cart/cart_items.html
@@ -1,23 +1,34 @@
 {% from "erpnext/templates/includes/order/order_macros.html" import item_name_and_description %}
 
 {% for d in doc.items %}
-<div class="cart-item">
-    <div class="row">
-        <div class="col-sm-8 col-xs-6" style="margin-bottom: 10px;">
-            {{ item_name_and_description(d) }}
-        </div>
-        <div class="col-sm-2 col-xs-3 text-right">
-            <span style="max-width: 50px; display: inline-block">
-                <input class="form-control text-right cart-qty"
-                value = "{{ d.get_formatted('qty') }}"
-                data-item-code="{{ d.item_code }}"></span>
-    		<p class="text-muted small" style="margin-top: 10px;">
-                {{ _("Rate") + ': ' + d.get_formatted("rate") }}
-            </p>
-    	</div>
-        <div class="col-sm-2 col-xs-3 text-right">
-            {{ d.get_formatted("amount") }}
-        </div>
+<div class="row cart-items checkout">
+    <div class="col-sm-8 col-xs-6 col-name-description">
+        {{ item_name_and_description(d) }}
+    </div>
+    <div class="col-sm-2 col-xs-3 text-right col-qty">
+        <span style="max-width: 50px; display: inline-block">
+            <input class="form-control text-right cart-qty"
+            value = "{{ d.get_formatted('qty') }}"
+            data-item-code="{{ d.item_code }}"></span>    	
+			<span class="text-muted small remove-item" data-item-code="{{ d.item_code }}">{{_("Remove")}}</span>	
+	</div>
+    <div class="col-sm-2 col-xs-3 text-right col-amount">
+        {{ d.get_formatted("amount") }}
+        <p class="text-muted small item-rate">{{
+            _("Rate: {0}").format(d.get_formatted("rate")) }}</p>
     </div>
 </div>
-{% endfor %}
+
+<div class="row cart-items cart-dropdown">
+    <div class="col-sm-7 col-xs-6 col-name-description">
+        {{ item_name_and_description(d) }}
+    </div>
+    <div class="col-sm-2 col-xs-2 text-right col-qty">
+		{{ d.get_formatted('qty') }}
+	</div>
+    <div class="col-sm-3 col-xs-2 text-right col-amount">
+        {{ d.get_formatted("amount") }}
+
+    </div>
+</div>
+{% endfor %}
\ No newline at end of file
diff --git a/erpnext/templates/includes/issue_row.html b/erpnext/templates/includes/issue_row.html
index c090f93..5414d7c 100644
--- a/erpnext/templates/includes/issue_row.html
+++ b/erpnext/templates/includes/issue_row.html
@@ -1,11 +1,11 @@
-<div class="web-list-item">
-    <a class="no-decoration" href="/issues?name={{ doc.name }}">
+<div class="web-list-item transaction-list-item">
+    <a href="/issues?name={{ doc.name }}">
     <div class="row">
         <div class="col-xs-8">
             <span class="indicator {{ "red" if doc.status=="Open" else "darkgrey"   }}">
                 {{ doc.name }}</span>
-                <span style="margin-left: 15px;">
-                    {{ doc.subject }}</span>
+                <div class="items-preview text-ellipsis">
+                    {{ doc.subject }}</div>
         </div>
         <div class="col-xs-4 text-right small text-muted">
             {{ frappe.format_date(doc.modified) }}
diff --git a/erpnext/templates/includes/macros.html b/erpnext/templates/includes/macros.html
index 05181c0..8dc433a 100644
--- a/erpnext/templates/includes/macros.html
+++ b/erpnext/templates/includes/macros.html
@@ -1,4 +1,5 @@
 {% macro product_image_square(website_image, css_class="") %}
+{% if website_image -%} <meta itemprop="image" content="{{ frappe.utils.quoted(website_image) | abs_url }}"></meta>{%- endif %}
 <div class="product-image product-image-square {% if not website_image -%} missing-image {%- endif %} {{ css_class }}"
 	{% if website_image -%} style="background-image: url('{{ frappe.utils.quoted(website_image) | abs_url }}');" {%- endif %}>
 </div>
@@ -7,7 +8,7 @@
 {% macro product_image(website_image, css_class="") %}
     <div class="product-image {% if not website_image -%} missing-image {%- endif %} {{ css_class }}">
     	{% if website_image -%}
-    		<img src="{{ frappe.utils.quoted(website_image) | abs_url }}" class="img-responsive">
+    		<img itemprop="image" src="{{ frappe.utils.quoted(website_image) | abs_url }}" class="img-responsive">
     	{%- endif %}
     </div>
 {% endmacro %}
diff --git a/erpnext/templates/includes/navbar/navbar_items.html b/erpnext/templates/includes/navbar/navbar_items.html
new file mode 100644
index 0000000..9cdbd98
--- /dev/null
+++ b/erpnext/templates/includes/navbar/navbar_items.html
@@ -0,0 +1,12 @@
+{% extends 'frappe/templates/includes/navbar/navbar_items.html' %}
+
+{% block navbar_right_extension %}
+	<li class="dropdown shopping-cart">
+		<div class="cart-icon small">
+			<a class="dropdown-toggle" href="#" data-toggle="dropdown" id="navLogin">
+				Cart <span class="badge-wrapper" id="cart-count"></span>
+			</a>
+			<div class="dropdown-menu shopping-cart-menu"></div>
+		</div>
+	 </li>
+{% endblock %}
\ No newline at end of file
diff --git a/erpnext/templates/includes/order/order_macros.html b/erpnext/templates/includes/order/order_macros.html
index af974aa..1b0e889 100644
--- a/erpnext/templates/includes/order/order_macros.html
+++ b/erpnext/templates/includes/order/order_macros.html
@@ -1,7 +1,7 @@
 {% from "erpnext/templates/includes/macros.html" import product_image_square %}
 
 {% macro item_name_and_description(d) %}
-    <div class="row">
+    <div class="row item_name_and_description">
         <div class="col-xs-4 col-sm-2 order-image-col">
             <div class="order-image">
                 {{ product_image_square(d.image) }}
@@ -9,7 +9,18 @@
         </div>
         <div class="col-xs-8 col-sm-10">
             {{ d.item_code }}
-            <p class="text-muted small">{{ d.description }}</p>
+            <p class="text-muted small item-description">{{ d.description }}</p>
         </div>
     </div>
-{% endmacro %}
+	
+    <div class="row item_name_dropdown">
+        <div class="col-xs-4 col-sm-4 order-image-col">
+            <div class="order-image">
+                {{ product_image_square(d.image) }}
+            </div>
+        </div>
+        <div class="col-xs-8 col-sm-8">
+            {{ d.item_code }}
+        </div>
+    </div>
+{% endmacro %}
\ No newline at end of file
diff --git a/erpnext/templates/includes/products_as_grid.html b/erpnext/templates/includes/products_as_grid.html
index ff39f1f..0a66de2 100644
--- a/erpnext/templates/includes/products_as_grid.html
+++ b/erpnext/templates/includes/products_as_grid.html
@@ -1,8 +1,10 @@
 {% from "erpnext/templates/includes/macros.html" import product_image_square %}
 
 <a class="product-link" href="{{ (route or page_name)|abs_url }}">
-	<div class="col-sm-2 col-xs-4 product-image-wrapper">
+	<div class="col-sm-4 col-xs-4 product-image-wrapper">
+		<div class="product-image-img">
 		{{ product_image_square(thumbnail or website_image) }}
-		<div class="text-ellipsis inline-block small product-text">{{ item_name }}</div>
+		<div class="product-text" itemprop="name">{{ item_name }}</div>
+		</div>
 	</div>
 </a>
diff --git a/erpnext/templates/includes/projects.css b/erpnext/templates/includes/projects.css
index e4aa81b..1f758e3 100644
--- a/erpnext/templates/includes/projects.css
+++ b/erpnext/templates/includes/projects.css
@@ -83,7 +83,6 @@
 }
 
 .progress-hg{
-	margin-bottom: 0!important;
-	margin-top: 30px!important;
-	height:5px;
+	margin-bottom: 30!important;
+	height:2px;
 }
\ No newline at end of file
diff --git a/erpnext/templates/includes/transaction_row.html b/erpnext/templates/includes/transaction_row.html
index 05aed90..5c7b3be 100644
--- a/erpnext/templates/includes/transaction_row.html
+++ b/erpnext/templates/includes/transaction_row.html
@@ -2,22 +2,18 @@
 	<a href="/{{ pathname }}/{{ doc.name }}">
 		<div class="row">
 			<div class="col-sm-6">
-				<span>{{ doc.name }}</span>
-				<div class="small text-muted items-preview text-ellipsis">
+				<span class="indicator small {{ doc.indicator_color or "darkgrey" }}">
+				{{ doc.name }}</span>
+				<div class="items-preview text-ellipsis">
 					{{ doc.items_preview }}
 				</div>
 			</div>
-			<div class="col-sm-4">
-				<span class="indicator {{ doc.indicator_color or "darkgrey" }}">
-					{{ doc.indicator_title or doc.status }}
-				</span>
+			<div class="col-sm-6 text-right">
 				<div class="small text-muted transaction-time"
 					title="{{ frappe.utils.format_datetime(doc.modified, "medium") }}">
-					{{ frappe.utils.pretty_date(doc.modified) }}
+					{{ frappe.utils.format_datetime(doc.modified, "medium") }}
 				</div>
-			</div>
-			<div class="col-sm-2 text-right">
-				{{ doc.get_formatted("grand_total") }}
+				{{ doc.get_formatted("grand_total") }}				
 			</div>
 			<!-- <div class="col-sm-3 text-right">
 
diff --git a/erpnext/templates/pages/cart.html b/erpnext/templates/pages/cart.html
index afba9b8..229d6d6 100644
--- a/erpnext/templates/pages/cart.html
+++ b/erpnext/templates/pages/cart.html
@@ -8,12 +8,6 @@
 <script>{% include "templates/includes/cart.js" %}</script>
 {% endblock %}
 
-{% block style %}
-<style>
-    {% include "templates/includes/cart.css" %}
-</style>
-{% endblock %}
-
 
 {% block header_actions %}
 {% if doc.items %}
@@ -27,57 +21,55 @@
 
 {% from "templates/includes/macros.html" import item_name_and_description %}
 
-<div class="cart-content">
-	<div id="cart-container">
-		<div id="cart-error" class="alert alert-danger"
-            style="display: none;"></div>
-    	<div id="cart-items">
-            <div class="row cart-item-header">
-                <div class="col-sm-8 col-xs-6">
-                    Items
-                </div>
-                <div class="col-sm-2 col-xs-3 text-right">
-                    Qty
-            	</div>
-                <div class="col-sm-2 col-xs-3 text-right">
-                    Amount
-            	</div>
-            </div>
-            {% if doc.items %}
-            <div class="cart-items">
-            {% include "templates/includes/cart/cart_items.html" %}
-            </div>
-            {% else %}
-            <p>{{ _("Cart is Empty") }}</p>
-            {% endif %}
-    	</div>
-        {% if doc.items %}
-        <!-- taxes -->
-        <div class="cart-taxes row small">
-            <div class="col-sm-8"><!-- empty --></div>
-            <div class="col-sm-4 cart-tax-items">
-                {% include "templates/includes/order/order_taxes.html" %}
-            </div>
-        </div>
-    	<div id="cart-totals">
-    	</div>
-        {% if doc.tc_name %}
-          <div class="cart-terms" style="display: none;" title={{doc.tc_name}}>
-          {{doc.tc_name}}
-          {{doc.terms}}
-          </div>
-          <div class="cart-link">
-            <a href="#" onclick="show_terms();return false;">*Terms and Conditions</a>
-          </div>
-        {% endif %}
-    	<div class="cart-addresses">
-            {% include "templates/includes/cart/cart_address.html" %}
-    	</div>
-    	<p class="cart-footer text-right">
-            <button class="btn btn-primary btn-place-order btn-sm" type="button">
-    		{{ _("Place Order") }}</button></p>
-        {% endif %}
-    </div>
+<div class="cart-container">
+	<div id="cart-error" class="alert alert-danger"
+	style="display: none;"></div>
+	<div class="row cart-items cart-item-header text-muted">
+		<div class="col-sm-8 col-xs-6 h6 text-uppercase">
+		{{ _("Item") }}
+		</div>
+		<div class="col-sm-2 col-xs-3 text-right h6 text-uppercase">
+		{{ _("Qty") }}
+		</div>
+		<div class="col-sm-2 col-xs-3 text-right h6 text-uppercase">
+		{{ _("Subtotal") }}
+		</div>
+	</div>
+	{% if doc.items %}
+	<div class="cart-items">
+		{% include "templates/includes/cart/cart_items.html" %}
+	</div>
+	{% else %}
+	<p>{{ _("Cart is Empty") }}</p>
+	{% endif %}
+
+	{% if doc.items %}
+	<!-- taxes -->
+	<div class="row cart-taxes">
+		<div class="col-sm-6"><!-- empty --></div>
+		<div class="col-sm-6 text-right">
+		{% include "templates/includes/order/order_taxes.html" %}
+		</div>
+	</div>
+
+	{% if doc.tc_name %}
+		<div class="cart-terms" style="display: none;" title={{doc.tc_name}}>
+			{{doc.tc_name}}
+			{{doc.terms}}
+		</div>
+		<div class="cart-link">
+			<a href="#" onclick="show_terms();return false;">*Terms and Conditions</a>
+		</div>
+	{% endif %}
+
+	<div class="cart-addresses">
+	{% include "templates/includes/cart/cart_address.html" %}
+	</div>
+
+	<p class="cart-footer text-right">
+	<button class="btn btn-primary btn-place-order btn-sm" type="button">
+	{{ _("Place Order") }}</button></p>
+	{% endif %}
 </div>
 
 <!-- no-sidebar -->
diff --git a/erpnext/templates/pages/home.html b/erpnext/templates/pages/home.html
index e6cfc90..5ec396d 100644
--- a/erpnext/templates/pages/home.html
+++ b/erpnext/templates/pages/home.html
@@ -7,32 +7,27 @@
 
 <div class="row">
 	<div class="col-sm-12">
-		<h2 class="text-center">{{ homepage.tag_line or '' }}</h2>
-		<p class="lead text-center">{{ homepage.description or '' }}</p>
-		<p class="text-center">
-			<a href="/login" class="btn btn-primary text-center">Login</a>
-		</p>
-
+		<div class="homepage-tagline h1 text-center">{{ homepage.tag_line or '' }}</div>
+		<p class="text-center">{{ homepage.description or '' }}</p>
 		{% if homepage.products %}
-		<!-- TODO: styling of this section -->
-		<div class='featured-products-section'>
-			<h5 class='text-uppercase'>{{ _("Featured Products") }}</h5>
+		<div class='featured-products-section' itemscope itemtype="http://schema.org/Product">
+			<h5 class='featured-product-heading'>{{ _("Featured Products") }}</h5>
 			<div class="featured-products">
 				<div id="search-list" class="row" style="margin-top:40px;">
 					{% for item in homepage.products %}
-						<a class="product-link" href="{{ item.route | abs_url }}">
-							<div class="col-sm-4 product-image-wrapper">
-								{{ product_image_square(item.thumbnail or item.image) }}
-								<div class="text-ellipsis inline-block small product-text">
-									{{ item.item_name }}
-								</div>
+					<a class="product-link" href="{{ item.route|abs_url }}">
+						<div class="col-sm-4 col-xs-4 product-image-wrapper">
+							<div class="product-image-img">
+							{{ product_image_square(item.thumbnail or item.image) }}
+							<div class="product-text" itemprop="name">{{ item.item_name }}</div>
 							</div>
-						</a>
+						</div>
+					</a>
 					{% endfor %}
 				</div>
 			</div>
 			<!-- TODO: remove hardcoding of /products -->
-			<p class="text-center"><a href="/products" class="btn btn-primary">More Products</a></p>
+			<div class=" text-center text-uppercase"><a href="/products" class="btn btn-primary all-products">  {{ _("View All Products") }}</a></div>
 		</div>
 		{% endif %}
 	</div>
@@ -42,7 +37,16 @@
 {% block style %}
 <style>
 	.featured-products-section {
-		margin-top: 75px;
+		margin-top: 95px;
 	}
+
+	.home-login {
+		margin-top: 30px;
+	}
+	.btn-login {
+		width: 80px;
+	}
+	
+	
 </style>
 {% endblock %}
diff --git a/erpnext/templates/pages/home.py b/erpnext/templates/pages/home.py
index 9488efe..e7ff2ce 100644
--- a/erpnext/templates/pages/home.py
+++ b/erpnext/templates/pages/home.py
@@ -11,34 +11,11 @@
 
 def get_context(context):
 	homepage = frappe.get_doc('Homepage')
+	
+	for item in homepage.products:
+		item.route = '/' + '/'.join(frappe.db.get_value('Item', item.item_code, ['parent_website_route', 'page_name']))
+		
+	
 	return {
 		'homepage': homepage
-	}
-
-
-@frappe.whitelist(allow_guest=True)
-def get_product_list(search=None, start=0, limit=6):
-	# limit = 12 because we show 12 items in the grid view
-
-	# base query
-	query = """select name, item_name, page_name, website_image, thumbnail, item_group,
-			web_long_description as website_description, parent_website_route
-		from `tabItem`
-		where show_in_website = 1
-			and disabled=0
-			and (end_of_life is null or end_of_life='0000-00-00' or end_of_life > %(today)s)
-			and (variant_of is null or variant_of = '')"""
-
-	# order by
-	query += """ order by weightage desc, idx desc, modified desc limit %s, %s""" % (start, limit)
-
-	data = frappe.db.sql(query, {
-		"today": nowdate()
-	}, as_dict=1)
-
-	for d in data:
-		d.route = ((d.parent_website_route + "/") if d.parent_website_route else "") \
-			+ (d.page_name or "")
-
-	return [get_item_for_list_in_html(r) for r in data]
-
+	}
\ No newline at end of file
diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html
index 191b078..98f7431 100644
--- a/erpnext/templates/pages/order.html
+++ b/erpnext/templates/pages/order.html
@@ -4,6 +4,9 @@
 {% block breadcrumbs %}
 	{% include "templates/includes/breadcrumbs.html" %}
 {% endblock %}
+{% block title %}
+{{ doc.name }}
+{% endblock %}
 
 {% block header %}
 <h1>{{ doc.name }}</h1>
diff --git a/erpnext/templates/pages/projects.html b/erpnext/templates/pages/projects.html
index 1cac25e..f50d455 100644
--- a/erpnext/templates/pages/projects.html
+++ b/erpnext/templates/pages/projects.html
@@ -3,27 +3,10 @@
 {% block title %}{{ doc.project_name }}{% endblock %}
 
 {%- from "templates/includes/projects/macros.html" import back_link -%}
-{% block header %}<h1>{{ doc.project_name }}</h1>{% endblock %}
-{% block header_actions %}{% if doc.percent_complete %}
-		<div class="progress progress-hg">
-		  <div class="progress-bar progress-bar-{{ "warning" if doc.percent_complete|round < 100 else "success" }} active" role="progressbar"
-		  	aria-valuenow="{{ doc.percent_complete|round|int }}"
-		  	aria-valuemin="0" aria-valuemax="100" style="width:{{ doc.percent_complete|round|int }}%;">
-		  </div>
-		</div>
-	{% endif %}{% endblock %}
-{% block breadcrumbs %}
-   <div class="page-breadcrumbs" data-html-block="breadcrumbs">
-   	<ul class="breadcrumb">
-   		<li>
-   			<span class="icon icon-angle-left"></span>
-   			<a href="/project">Projects</a>
-   		</li>
-   	</ul>
-   </div>
+{% block header %}
+	<h1>{{ doc.project_name }}</h1>
 {% endblock %}
 
-
 {% block style %}
 	<style>
 		{% include "templates/includes/projects.css" %}
@@ -32,7 +15,13 @@
 
 
 {% block page_content %}
-
+{% if doc.percent_complete %}
+<div class="progress progress-hg">
+	<div class="progress-bar progress-bar-{{ "warning" if doc.percent_complete|round < 100 else "success" }} active" 				role="progressbar" aria-valuenow="{{ doc.percent_complete|round|int }}"
+	aria-valuemin="0" aria-valuemax="100" style="width:{{ doc.percent_complete|round|int }}%;">
+	</div>
+</div>
+{% endif %}		
 
 <div class="clearfix">
   <h4 style="float: left;">{{ _("Tasks") }}</h4>
diff --git a/erpnext/templates/pages/projects.py b/erpnext/templates/pages/projects.py
index f10b2fb..0f021a6 100644
--- a/erpnext/templates/pages/projects.py
+++ b/erpnext/templates/pages/projects.py
@@ -18,10 +18,10 @@
 	project.has_permission('read')
 	
 	project.tasks = get_tasks(project.name, start=0, item_status='open',
-		search=frappe.form_dict.get("q"))
+		search=frappe.form_dict.get("search"))
 
 	project.timelogs = get_timelogs(project.name, start=0,
-		search=frappe.form_dict.get("q"))
+		search=frappe.form_dict.get("search"))
 
 
 	context.doc = project
diff --git a/erpnext/utilities/doctype/address/address.py b/erpnext/utilities/doctype/address/address.py
index a94bd56..f613faa 100644
--- a/erpnext/utilities/doctype/address/address.py
+++ b/erpnext/utilities/doctype/address/address.py
@@ -122,9 +122,10 @@
 def get_list_context(context=None):
 	from erpnext.shopping_cart.cart import get_address_docs
 	return {
-		"title": _("My Addresses"),
+		"title": _("Addresses"),
 		"get_list": get_address_docs,
 		"row_template": "templates/includes/address_row.html",
+		'no_breadcrumbs': True,
 	}
 
 def has_website_permission(doc, ptype, user, verbose=False):
diff --git a/setup.py b/setup.py
index 27f4604..ce447d5 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 from pip.req import parse_requirements
 
-version = "6.27.14"
+version = "6.27.16"
 requirements = parse_requirements("requirements.txt", session="")
 
 setup(