diff --git a/erpnext/accounts/doctype/payment_request/payment_request.js b/erpnext/accounts/doctype/payment_request/payment_request.js
index 5d11fb5..2665a13 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.js
+++ b/erpnext/accounts/doctype/payment_request/payment_request.js
@@ -3,11 +3,30 @@
 cur_frm.add_fetch("payment_gateway", "message", "message")
 
 frappe.ui.form.on("Payment Request", "onload", function(frm, dt, dn){
-	frappe.call({
-		method:"erpnext.accounts.doctype.payment_request.payment_request.get_print_format_list",
-		args: {"ref_doctype": frm.doc.reference_doctype},
-		callback:function(r){
-			set_field_options("print_format", r.message["print_format"])
-		}
+	if (frm.doc.reference_doctype) {
+		frappe.call({
+			method:"erpnext.accounts.doctype.payment_request.payment_request.get_print_format_list",
+			args: {"ref_doctype": frm.doc.reference_doctype},
+			callback:function(r){
+				set_field_options("print_format", r.message["print_format"])
+			}
+		})
+	}	
+})
+
+frappe.ui.form.on("Payment Request", "refresh", function(frm) {
+	frm.add_custom_button(__('Resend Payment Email'), function(){
+		frappe.call({
+			method:"erpnext.accounts.doctype.payment_request.payment_request.resend_payment_email",
+			args: {"docname": frm.doc.name},
+			freeze: true,
+			freeze_message: __("Sending"),
+			callback:function(r){
+				if(!r.exc) {
+					frappe.msgprint(__("Message Sent"))
+				}
+			}
+		})
 	})
-})
\ No newline at end of file
+})
+
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.json b/erpnext/accounts/doctype/payment_request/payment_request.json
index d69454c..64d38b3 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.json
+++ b/erpnext/accounts/doctype/payment_request/payment_request.json
@@ -37,18 +37,17 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "fieldname": "currency", 
-   "fieldtype": "Link", 
+   "fieldname": "amount", 
+   "fieldtype": "Currency", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
-   "label": "Currency", 
+   "label": "Amount", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Currency", 
    "permlevel": 0, 
-   "precision": "", 
+   "precision": "2", 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
@@ -62,17 +61,18 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "fieldname": "amount", 
-   "fieldtype": "Currency", 
+   "fieldname": "currency", 
+   "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
-   "label": "Amount", 
+   "label": "Currency", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Currency", 
    "permlevel": 0, 
-   "precision": "2", 
+   "precision": "", 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
@@ -134,6 +134,55 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "default": "Draft", 
+   "fieldname": "status", 
+   "fieldtype": "Select", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "label": "Status", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "\nDraft\nInitiated\nPaid\nFailed\nCancelled", 
+   "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": "section_break_7", 
+   "fieldtype": "Section Break", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
    "fieldname": "payment_gateway", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -159,6 +208,29 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "fieldname": "column_break_9", 
+   "fieldtype": "Column Break", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
    "fieldname": "gateway", 
    "fieldtype": "Read Only", 
    "hidden": 0, 
@@ -209,32 +281,6 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "default": "", 
-   "fieldname": "status", 
-   "fieldtype": "Select", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Status", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "\nInitiated\nPaid\nFailed\nCancelled", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
    "fieldname": "recipient_and_message", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -383,7 +429,7 @@
    "collapsible": 0, 
    "fieldname": "payment_url", 
    "fieldtype": "Data", 
-   "hidden": 0, 
+   "hidden": 1, 
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
@@ -509,7 +555,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2015-12-30 17:43:10.626907", 
+ "modified": "2016-01-06 03:53:19.686537", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Payment Request", 
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 6d1ea97..e45525c 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -15,6 +15,7 @@
 
 class PaymentRequest(Document):		
 	def validate(self):
+		self.validate_payment_gateway_account()
 		self.validate_payment_request()
 		self.validate_currency()
 
@@ -27,6 +28,17 @@
 		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
 		if ref_doc.currency != frappe.db.get_value("Account", self.payment_account, "account_currency"):
 			frappe.throw(_("Transaction currency is not similar to Gateway Currency"))
+			
+	def validate_payment_gateway_account(self):
+		if not self.payment_gateway:
+			frappe.throw(_("Payment Gateway Account is not configured"))
+			
+	def validate_payment_gateway(self):
+		if self.gateway == "PayPal":
+			if not frappe.db.get_value("PayPal Settings", None, "api_username"):
+				if not frappe.conf.paypal_username:
+					frappe.throw(_("PayPal Settings missing"))
+			
 		
 	def on_submit(self):
 		if not self.mute_email:
@@ -36,8 +48,8 @@
 		self.make_communication_entry()
 	
 	def on_cancel(self):
-		pass
-	
+		self.set_cancelled()
+		
 	def on_update_after_submit(self):
 		pass
 	
@@ -127,20 +139,20 @@
 	
 	args = frappe._dict(args)
 	ref_doc = get_reference_doc_details(args.dt, args.dn)
-	name, gateway, payment_account, message = get_gateway_details(args)
+	gateway_account = get_gateway_details(args)
 	
 	pr = frappe.new_doc("Payment Request")
 	pr.update({
-		"payment_gateway": name,
-		"gateway": gateway,
-		"payment_account": payment_account,
+		"payment_gateway": gateway_account.name,
+		"gateway": gateway_account.gateway,
+		"payment_account": gateway_account.payment_account,
 		"currency": ref_doc.currency,
 		"make_sales_invoice": args.cart or 0,
 		"amount": get_amount(ref_doc, args.dt),
 		"mute_email": args.mute_email or 0,
 		"email_to": args.recipient_id or "",
 		"subject": "Payment Request for %s"%args.dn,
-		"message": message,
+		"message": gateway_account.message,
 		"reference_doctype": args.dt,
 		"reference_name": args.dn
 	})
@@ -181,11 +193,16 @@
 def get_gateway_details(args):
 	"""return gateway and payment account of default payment gateway"""
 	if args.payemnt_gateway:
-		return frappe.db.get_value("Payment Gateway Account", args.payemnt_gateway, 
-			["name", "gateway", "payment_account", "message"])
-		
-	return frappe.db.get_value("Payment Gateway Account", {"is_default": 1}, 
-		["name", "gateway", "payment_account", "message"])
+		gateway_account = frappe.db.get_value("Payment Gateway Account", args.payemnt_gateway, 
+			["name", "gateway", "payment_account", "message"], as_dict=1)
+	
+	gateway_account = frappe.db.get_value("Payment Gateway Account", {"is_default": 1}, 
+		["name", "gateway", "payment_account", "message"], as_dict=1)
+	
+	if not gateway_account:
+		frappe.throw(_("Payment Gateway Account is not configured"))
+	
+	return gateway_account
 
 @frappe.whitelist()
 def get_print_format_list(ref_doctype):
@@ -213,4 +230,8 @@
 		frappe.respond_as_web_page(_("Invalid Payment Request"), 
 			_("Payment Request has been canceled by vendor"), success=False, 
 			http_status_code=frappe.ValidationError.http_status_code)
+			
+@frappe.whitelist(allow_guest=True)
+def resend_payment_email(docname):
+	return frappe.get_doc("Payment Request", docname).send_email()
 		
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_request/payment_request_list.js b/erpnext/accounts/doctype/payment_request/payment_request_list.js
new file mode 100644
index 0000000..0caf1c2
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_request/payment_request_list.js
@@ -0,0 +1,17 @@
+frappe.listview_settings['Payment Request'] = {
+	add_fields: ["status"],
+	get_indicator: function(doc) {
+		if(doc.status == "Draft") {
+			return [__("Draft"), "darkgrey", "status,=,Draft"];
+		}
+		else if(doc.status == "Initiated") {
+			return [__("Initiated"), "green", "status,=,Initiated"];
+		}
+		else if(doc.status == "Paid") {
+			return [__("Paid"), "blue", "status,=,Paid"];
+		}
+		else if(doc.status == "Cancelled") {
+			return [__("Cancelled"), "orange", "status,=,Cancelled"];
+		}
+	}	
+}
diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js
index d437d74..63231d9 100644
--- a/erpnext/public/js/shopping_cart.js
+++ b/erpnext/public/js/shopping_cart.js
@@ -44,13 +44,22 @@
 
 	set_cart_count: function() {
 		var cart_count = getCookie("cart_count");
-		var $cart = $('.dropdown [data-label="Cart"]');
-		var $badge = $cart.find(".badge");
+		var $cart = $('.cart-icon');
+		var $badge = $cart.find("#cart-count");
+
+		if(cart_count === "0") {
+			$cart.css("display", "none");
+		}
+		else {
+			$cart.css("display", "inline");
+		}
+		
+		
 		if(cart_count) {
-			if($badge.length === 0) {
-				var $badge = $('<span class="badge pull-right"></span>')
-					.prependTo($cart.find("a").addClass("badge-hover"));
-			}
+			// if($badge.length === 0) {
+// 				var $badge = $('<span class="badge"></span>')
+// 					.appendTo($cart.find("a").addClass("badge-hover"));
+// 			}
 			$badge.html(cart_count);
 		} else {
 			$badge.remove();
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index b721374..a6ec617 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -41,46 +41,47 @@
 					}
 				}
 
-				// material request
-				if(!doc.order_type || ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1
-					&& flt(doc.per_delivered, 2) < 100) {
-						cur_frm.add_custom_button(__('Material Request'), this.make_material_request);
-				}
-
-				// make purchase order
-				if(flt(doc.per_delivered, 2) < 100 && allow_purchase) {
-					cur_frm.add_custom_button(__('Purchase Order'), cur_frm.cscript.make_purchase_order);
-				}
-
-				if(flt(doc.per_billed)==0) {
-					cur_frm.add_custom_button(__('Payment'), cur_frm.cscript.make_bank_entry);
-					cur_frm.add_custom_button(__('Make Payment Request'), this.make_payment_request);
-				}
-
 				if (this.frm.has_perm("submit")) {
 					// stop
 					if(flt(doc.per_delivered, 2) < 100 || flt(doc.per_billed) < 100) {
-							cur_frm.add_custom_button(__('Stop'), this.stop_sales_order)
+							cur_frm.add_custom_button(__('Stop'), this.stop_sales_order, __("Status"))
 						}
 
 
-					cur_frm.add_custom_button(__('Close'), this.close_sales_order)
-				}
-
-				// maintenance
-				if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)===-1) {
-					cur_frm.add_custom_button(__('Maint. Visit'), this.make_maintenance_visit);
-					cur_frm.add_custom_button(__('Maint. Schedule'), this.make_maintenance_schedule);
+					cur_frm.add_custom_button(__('Close'), this.close_sales_order, __("Status"))
 				}
 
 				// delivery note
 				if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1 && allow_delivery) {
-					cur_frm.add_custom_button(__('Delivery'), this.make_delivery_note).addClass("btn-primary");
+					cur_frm.add_custom_button(__('Delivery'), this.make_delivery_note, __("Make"));
+					cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
 				}
 
 				// sales invoice
 				if(flt(doc.per_billed, 2) < 100) {
-					cur_frm.add_custom_button(__('Invoice'), this.make_sales_invoice).addClass("btn-primary");
+					cur_frm.add_custom_button(__('Invoice'), this.make_sales_invoice, __("Make"));
+				}
+
+				// material request
+				if(!doc.order_type || ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1
+					&& flt(doc.per_delivered, 2) < 100) {
+						cur_frm.add_custom_button(__('Material Request'), this.make_material_request, __("Make"));
+				}
+
+				// make purchase order
+				if(flt(doc.per_delivered, 2) < 100 && allow_purchase) {
+					cur_frm.add_custom_button(__('Purchase Order'), cur_frm.cscript.make_purchase_order, __("Make"));
+				}
+
+				if(flt(doc.per_billed)==0) {
+					cur_frm.add_custom_button(__('Payment Request'), this.make_payment_request, __("Make"));
+					cur_frm.add_custom_button(__('Payment'), cur_frm.cscript.make_bank_entry, __("Make"));
+				}
+
+				// maintenance
+				if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)===-1) {
+					cur_frm.add_custom_button(__('Maintenance Visit'), this.make_maintenance_visit, __("Make"));
+					cur_frm.add_custom_button(__('Maintenance Schedule'), this.make_maintenance_schedule, __("Make"));
 				}
 
 
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index dc21bd5..8bc96e6 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -288,11 +288,26 @@
 
 		frappe.db.set_value("Sales Order", self.name, "per_delivered", flt(delivered_qty/tot_qty) * 100,
 		update_modified=False)
+	
+	def set_indicator(self):
+		"""Set indicator for portal"""
+		if self.per_billed < 100 and self.per_delivered < 100:
+			self.indicator_color = "orange"
+			self.indicator_title = _("Not Paid and Not Delivered")
+		
+		elif self.per_billed == 100 and self.per_delivered < 100:
+			self.indicator_color = "orange"
+			self.indicator_title = _("Paid and Not Delivered")
 
+		else:
+			self.indicator_color = "green"
+			self.indicator_title = _("Paid")
+			
 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 Orders")
+	list_context["parents"] = [{"title": _("My Account"), "name": "me"}]
 	return list_context
 
 @frappe.whitelist()
diff --git a/erpnext/shopping_cart/utils.py b/erpnext/shopping_cart/utils.py
index 7794a8f..79c6739 100644
--- a/erpnext/shopping_cart/utils.py
+++ b/erpnext/shopping_cart/utils.py
@@ -28,12 +28,12 @@
 	cart_enabled = is_cart_enabled()
 	context["shopping_cart_enabled"] = cart_enabled
 
-	if cart_enabled:
-		post_login = [
-			{"label": _("Cart"), "url": "cart", "class": "cart-count"},
-			{"class": "divider"}
-		]
-		context["post_login"] = post_login + context.get("post_login", [])
+	# if cart_enabled:
+# 		post_login = [
+# 			{"label": _("Cart"), "url": "cart", "class": "cart-count"},
+# 			{"class": "divider"}
+# 		]
+# 		context["post_login"] = post_login + context.get("post_login", [])
 
 def update_my_account_context(context):
 	if is_cart_enabled():
diff --git a/erpnext/templates/generators/item.html b/erpnext/templates/generators/item.html
index dc48e0d..b62f306 100644
--- a/erpnext/templates/generators/item.html
+++ b/erpnext/templates/generators/item.html
@@ -71,18 +71,8 @@
                             style="display: none;
     						padding-left: 0px; padding-right: 0px;
                             padding-top: 10px;">
-    						<div>
-                                <input class="form-control"
-                                    type="text" style="max-width: 140px;">
-                            </div>
-    						<div style="margin-top: 10px;">
-    							<button class="btn btn-default btn-sm">
-                                {{ _("Update") }}</button>
-    						</div>
-                            <div style="margin-top: 5px;">
-                                <a href="/cart" class="text-muted small">
-                                    {{ _("View Cart") }}</a>
-                            </div>
+    						<div class="btn btn-success">
+    							{{ _("Item added to cart") }}</div>
     					</div>
                     </div>
 				</div>
diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html
index 36e23a5..3bd6ad3 100644
--- a/erpnext/templates/pages/order.html
+++ b/erpnext/templates/pages/order.html
@@ -1,12 +1,14 @@
 {% extends "templates/web.html" %}
 
 {% block header %}
-<h1>
-	{{ doc.name }}
-</h1>
+<h1>{{ doc.name }}</h1>
 <!-- <h6 class="text-muted">{{ doc._title or doc.doctype }}</h6> -->
 {% endblock %}
 
+{% block breadcrumbs %}
+	{% include "templates/includes/breadcrumbs.html" %}
+{% endblock %}
+
 {% block style %}
 <style>
     {% include "templates/includes/order/order.css" %}
@@ -22,12 +24,6 @@
         <span class="indicator {{ doc.indicator_color or "darkgrey" }}">
             {{ doc.indicator_title or doc.status or "Submitted" }}
         </span>
-		{% if doc.base_net_total == doc.advance_paid and payment_ref%}
-		<div>
-			<span class="indicator green" data-toggle="tooltip" title=" Reference Id: {{payment_ref}}"> Paid</span>
-		</div>
-		{% endif %}
-		
 	</div>
     <div class="col-xs-6 text-muted text-right h6">
         {{ doc.get_formatted("transaction_date") }}
@@ -87,7 +83,8 @@
 <div class="cart-taxes row small">
     <div class="col-sm-8"><!-- empty --></div>
     <div class="col-sm-4">
-        {% if doc.per_billed <= 0 %}
+        {% if (doc.doctype=="Sales Order" and doc.per_billed <= 0) 
+			or (doc.doctype=="Sales Invoice" and doc.outstanding_amount > 0) %}
 		<div class="page-header-actions-block" data-html-block="header-actions">
 			<p>
 			    <a href="/api/method/erpnext.accounts.doctype.payment_request.payment_request.make_payment_request?dn={{ doc.name }}&dt={{ doc.doctype }}&submit_doc=1&mute_email=1&cart=1"
