diff --git a/erpnext/accounts/doctype/account/account_tree.js b/erpnext/accounts/doctype/account/account_tree.js
index 3252788..b24a17d 100644
--- a/erpnext/accounts/doctype/account/account_tree.js
+++ b/erpnext/accounts/doctype/account/account_tree.js
@@ -27,13 +27,13 @@
 		{fieldtype:'Select', fieldname:'root_type', label:__('Root Type'),
 			options: ['Asset', 'Liability', 'Equity', 'Income', 'Expense'].join('\n')},
 		{fieldtype:'Select', fieldname:'account_type', label:__('Account Type'),
-			options: ['', 'Bank', 'Cash', 'Warehouse', 'Tax', 'Chargeable'].join('\n'),
+			options: ['', 'Bank', 'Cash', 'Stock', 'Tax', 'Chargeable'].join('\n'),
 			description: __("Optional. This setting will be used to filter in various transactions."),
 			depends_on: 'eval:doc.is_group==1'},
 		{fieldtype:'Float', fieldname:'tax_rate', label:__('Tax Rate'),
 			depends_on: 'eval:doc.is_group==1&&doc.account_type=="Tax"'},
 		{fieldtype:'Link', fieldname:'warehouse', label:__('Warehouse'), options:"Warehouse",
-			depends_on: 'eval:(doc.is_group==1&&doc.account_type=="Warehouse")'},
+			depends_on: 'eval:(!doc.is_group&&doc.account_type=="Warehouse")'},
 		{fieldtype:'Link', fieldname:'account_currency', label:__('Currency'), options:"Currency",
 			description: __("Optional. Sets company's default currency, if not specified.")}
 	],
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 1e02415..de65485 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -49,7 +49,7 @@
 				"fieldname": "purchase_receipt",
 				"doctype": "Purchase Invoice Item",
 				"filters": [
-					["Purchase Invoice Item", "parent", "=", self.item],
+					["Purchase Invoice Item", "parent", "=", self.name],
 					["Purchase Invoice Item", "purchase_receipt", "!=", ""]
 				]
 			}
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 2f1ecf1..470ea91 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -237,7 +237,7 @@
 			return {"print_format": pos.get("print_format") }
 
 	def update_time_sheet(self, sales_invoice):
-		for d in self.get("timesheets"):
+		for d in self.timesheets:
 			if d.time_sheet:
 				timesheet = frappe.get_doc("Time Sheet", d.time_sheet)
 				timesheet.sales_invoice = sales_invoice
@@ -246,7 +246,7 @@
 				timesheet.save()
 
 	def validate_time_sheets_are_submitted(self):
-		for data in self.get("timesheets"):
+		for data in self.timesheets:
 			if data.time_sheet:
 				status = frappe.db.get_value("Time Sheet", data.time_sheet, "status")
 				if status not in ['Submitted', 'Payslip']:
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index f3c8c33..6d3ef3d 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -681,7 +681,7 @@
 		this.page.set_secondary_action(__("New"), function() {
 			me.save_previous_entry();
 			me.create_new();
-		});
+		}).addClass("btn-primary");
 	},
 
 	print_document: function(html){
@@ -876,6 +876,7 @@
 		var me = this;
 		this.customer_validate();
 		this.item_validate();
+		this.validate_mode_of_payments()
 	},
 
 	item_validate: function(){
@@ -883,7 +884,13 @@
 			frappe.throw(__("Select items to save the invoice"))
 		}
 	},
-
+	
+	validate_mode_of_payments: function(){
+		if (this.frm.doc.payments.length === 0){
+			frappe.throw(__("Payment Mode is not configured. Please check, whether account has been set on Mode of Payments or on POS Profile."))
+		}
+	},
+	
 	validate_serial_no: function(){
 		var me = this;
 		var item_code = serial_no = '';
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index aab006f..f35c3b7 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -4,7 +4,7 @@
 
 {% include 'erpnext/buying/doctype/purchase_common/purchase_common.js' %};
 
-
+cur_frm.add_fetch('contact', 'email_id', 'email_id')
 
 frappe.ui.form.on("Request for Quotation",{
 	setup: function(frm){
@@ -23,7 +23,7 @@
 		];
 		
 		frm.get_field('suppliers').grid.editable_fields = [
-			{fieldname: 'supplier', columns: 5},
+			{fieldname: 'supplier', columns: 4},
 			{fieldname: 'contact', columns: 3},
 			{fieldname: 'email_id', columns: 3}
 		];
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json
index 7f1988a..2ce5c5c 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json
@@ -3,6 +3,7 @@
  "allow_import": 1, 
  "allow_rename": 0, 
  "autoname": "naming_series:", 
+ "beta": 0, 
  "creation": "2016-02-25 01:24:07.224790", 
  "custom": 0, 
  "docstatus": 0, 
@@ -70,6 +71,33 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "description": "For individual supplier", 
+   "fieldname": "vendor", 
+   "fieldtype": "Link", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "label": "Supplier", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Supplier", 
+   "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_break1", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -603,13 +631,14 @@
  "hide_toolbar": 0, 
  "icon": "icon-shopping-cart", 
  "idx": 0, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 1, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-03-29 06:18:26.398938", 
+ "modified": "2016-06-30 01:57:49.233065", 
  "modified_by": "Administrator", 
  "module": "Buying", 
  "name": "Request for Quotation", 
@@ -757,6 +786,7 @@
    "write": 0
   }
  ], 
+ "quick_entry": 0, 
  "read_only": 0, 
  "read_only_onload": 1, 
  "search_fields": "status, transaction_date", 
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
index c2aca1c..ddf2c8c 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
@@ -8,6 +8,8 @@
 from frappe.model.mapper import get_mapped_doc
 from frappe.utils import get_url, random_string
 from frappe.utils.user import get_user_fullname
+from frappe.desk.form.load import get_attachments
+from frappe.core.doctype.communication.email import make
 from erpnext.accounts.party import get_party_account_currency, get_party_details
 from erpnext.stock.doctype.material_request.material_request import set_missing_values
 from erpnext.controllers.buying_controller import BuyingController
@@ -34,6 +36,10 @@
 			if not rfq_supplier.email_id:
 				rfq_supplier.email_id = frappe.db.get_value("Contact", rfq_supplier.contact, "email_id")
 
+	def validate_email_id(self, args):
+		if not args.email_id:
+			frappe.throw(_("Row {0}: For supplier {0} email id is required to send email").format(args.idx, args.supplier))
+
 	def on_submit(self):
 		frappe.db.set(self, 'status', 'Submitted')
 
@@ -41,42 +47,61 @@
 		frappe.db.set(self, 'status', 'Cancelled')
 
 	def send_to_supplier(self):
-		link = get_url("/rfq/" + self.name)
 		for rfq_supplier in self.suppliers:
-			if rfq_supplier.email_id:
+			if rfq_supplier.send_email:
+				self.validate_email_id(rfq_supplier)
 
 				# make new user if required
-				update_password_link = self.create_supplier_user(rfq_supplier, link)
+				update_password_link = self.update_supplier_contact(rfq_supplier, self.get_link())
 
-				self.supplier_rfq_mail(rfq_supplier, update_password_link, link)
-			else:
-				frappe.throw(_("For supplier {0} email id is required to send email").format(rfq_supplier.supplier))
+				self.update_supplier_part_no(rfq_supplier)
+				self.supplier_rfq_mail(rfq_supplier, update_password_link, self.get_link())
 
-	def create_supplier_user(self, rfq_supplier, link):
+	def get_link(self):
+		# RFQ link for supplier portal
+		return get_url("/rfq/" + self.name)
+
+	def update_supplier_part_no(self, args):
+		self.vendor = args.supplier
+		for item in self.items:
+			item.supplier_part_no = frappe.db.get_value('Item Supplier',
+				{'parent': item.item_code, 'supplier': args.supplier}, 'supplier_part_no')
+
+	def update_supplier_contact(self, rfq_supplier, link):
 		'''Create a new user for the supplier if not set in contact'''
 		update_password_link = ''
 
-		contact = frappe.get_doc("Contact", rfq_supplier.contact)
-		if not contact.user:
-			if frappe.db.exists("User", rfq_supplier.email_id):
-				user = frappe.get_doc("User", rfq_supplier.email_id)
-			else:
-				user, update_password_link = self.create_user(rfq_supplier, link)
+		if frappe.db.exists("User", rfq_supplier.email_id):
+			user = frappe.get_doc("User", rfq_supplier.email_id)
+		else:
+			user, update_password_link = self.create_user(rfq_supplier, link)
 
-			# set user_id in contact
-			contact = frappe.get_doc('Contact', rfq_supplier.contact)
-			contact.user = user.name
-			contact.save()
+		self.update_contact_of_supplier(rfq_supplier, user)
 
 		return update_password_link
 
+	def update_contact_of_supplier(self, rfq_supplier, user):
+		if rfq_supplier.contact:
+			contact = frappe.get_doc("Contact", rfq_supplier.contact)
+		else:
+			contact = frappe.new_doc("Contact")
+			contact.first_name = rfq_supplier.supplier_name or rfq_supplier.supplier
+			contact.supplier = rfq_supplier.supplier
+
+		if not contact.email_id and not contact.user:
+			contact.email_id = user.name
+			contact.user = user.name
+
+		contact.save(ignore_permissions=True)
+
 	def create_user(self, rfq_supplier, link):
 		user = frappe.get_doc({
 			'doctype': 'User',
 			'send_welcome_email': 0,
 			'email': rfq_supplier.email_id,
-			'first_name': rfq_supplier.supplier_name,
-			'user_type': 'Website User'
+			'first_name': rfq_supplier.supplier_name or rfq_supplier.supplier,
+			'user_type': 'Website User',
+			'redirect_url': link
 		})
 		user.save(ignore_permissions=True)
 		update_password_link = user.reset_password()
@@ -98,12 +123,22 @@
 		subject = _("Request for Quotation")
 		template = "templates/emails/request_for_quotation.html"
 		sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None
+		message = frappe.get_template(template).render(args)
+		attachments = self.get_attachments()
 
-		frappe.sendmail(recipients=data.email_id, sender=sender, subject=subject,
-			message=frappe.get_template(template).render(args),
-			attachments = [frappe.attach_print('Request for Quotation', self.name)])
+		self.send_email(data, sender, subject, message, attachments)
+
+	def send_email(self, data, sender, subject, message, attachments):
+		make(subject = subject, content=message,recipients=data.email_id, 
+			sender=sender,attachments = attachments, send_email=True)["name"]
+
 		frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier))
 
+	def get_attachments(self):
+		attachments = [d.name for d in get_attachments(self.doctype, self.name)]
+		attachments.append(frappe.attach_print('Request for Quotation', self.name, doc=self))
+		return attachments
+
 @frappe.whitelist()
 def send_supplier_emails(rfq_name):
 	rfq = frappe.get_doc("Request for Quotation", rfq_name)
diff --git a/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json b/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
index 7a23f43..8c6ac91 100644
--- a/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
+++ b/erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
@@ -42,6 +42,31 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "fieldname": "supplier_part_no", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "label": "Supplier Part No", 
+   "length": 0, 
+   "no_copy": 1, 
+   "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, 
@@ -601,8 +626,8 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-06-17 12:25:37.655901", 
- "modified_by": "umair@erpnext.com", 
+ "modified": "2016-06-28 14:25:08.330508", 
+ "modified_by": "Administrator", 
  "module": "Buying", 
  "name": "Request for Quotation Item", 
  "name_case": "", 
diff --git a/erpnext/buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.json b/erpnext/buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.json
index 3399b51..5fe7456 100644
--- a/erpnext/buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.json
+++ b/erpnext/buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.json
@@ -10,6 +10,32 @@
  "document_type": "", 
  "fields": [
   {
+   "allow_on_submit": 1, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "default": "1", 
+   "fieldname": "send_email", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "label": "Send Email", 
+   "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, 
@@ -141,13 +167,14 @@
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 0, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-05-31 19:08:15.397706", 
+ "modified": "2016-06-30 02:01:54.130809", 
  "modified_by": "Administrator", 
  "module": "Buying", 
  "name": "Request for Quotation Supplier", 
diff --git a/erpnext/config/crm.py b/erpnext/config/crm.py
index 52958e3..178ee95 100644
--- a/erpnext/config/crm.py
+++ b/erpnext/config/crm.py
@@ -70,11 +70,6 @@
 			"items": [
 				{
 					"type": "doctype",
-					"name": "Newsletter",
-					"description": _("Newsletters to contacts, leads."),
-				},
-				{
-					"type": "doctype",
 					"name": "Communication",
 					"description": _("Record of all communications of type email, phone, chat, visit, etc."),
 				},
@@ -116,11 +111,6 @@
 					"description": _("Manage Sales Person Tree."),
 					"doctype": "Sales Person",
 				},
-				{
-					"type": "doctype",
-					"name": "Newsletter List",
-					"description": _("Newsletter Mailing List"),
-				},
 			]
 		},
 		{
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index 9944db9..fc2be82 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -157,5 +157,12 @@
 			"is_help": True,
 			"label": _("Learn"),
 			"hidden": 1
+		},
+		{
+			"module_name": "Maintenance",
+			"color": "#FF888B",
+			"icon": "octicon octicon-tools",
+			"type": "module",
+			"label": _("Maintenance")
 		}
 	]
diff --git a/erpnext/config/maintenance.py b/erpnext/config/maintenance.py
new file mode 100644
index 0000000..aa2f87c
--- /dev/null
+++ b/erpnext/config/maintenance.py
@@ -0,0 +1,32 @@
+from frappe import _
+
+def get_data():
+	return [
+		{
+			"label": _("Maintenance"),
+			"icon": "icon-star",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Maintenance Schedule",
+					"description": _("Plan for maintenance visits."),
+				},
+				{
+					"type": "doctype",
+					"name": "Maintenance Visit",
+					"description": _("Visit report for maintenance call."),
+				},
+				{
+					"type": "report",
+					"name": "Maintenance Schedules",
+					"is_query_report": True,
+					"doctype": "Maintenance Schedule"
+				},
+				{
+					"type": "doctype",
+					"name": "Warranty Claim",
+					"description": _("Warranty Claim against Serial No."),
+				},
+			]
+		}
+	]
\ No newline at end of file
diff --git a/erpnext/config/support.py b/erpnext/config/support.py
index 98fa595..a4a4c22 100644
--- a/erpnext/config/support.py
+++ b/erpnext/config/support.py
@@ -19,27 +19,6 @@
 			]
 		},
 		{
-			"label": _("Maintenance"),
-			"items": [
-				{
-					"type": "doctype",
-					"name": "Maintenance Schedule",
-					"description": _("Plan for maintenance visits."),
-				},
-				{
-					"type": "doctype",
-					"name": "Maintenance Visit",
-					"description": _("Visit report for maintenance call."),
-				},
-				{
-					"type": "report",
-					"name": "Maintenance Schedules",
-					"is_query_report": True,
-					"doctype": "Maintenance Schedule"
-				},
-			]
-		},
-		{
 			"label": _("Warranty"),
 			"items": [
 				{
diff --git a/erpnext/crm/doctype/newsletter/newsletter.js b/erpnext/crm/doctype/newsletter/newsletter.js
deleted file mode 100644
index 9bee9b3..0000000
--- a/erpnext/crm/doctype/newsletter/newsletter.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-cur_frm.cscript.onload = function(doc) {
-	return frappe.call({
-		method: "erpnext.crm.doctype.newsletter.newsletter.get_lead_options",
-		type: "GET",
-		callback: function(r) {
-			set_field_options("lead_source", r.message.sources.join("\n"))
-			set_field_options("lead_status", r.message.statuses.join("\n"))
-		}
-	});
-}
-
-cur_frm.cscript.refresh = function(doc) {
-	erpnext.toggle_naming_series();
-	if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved
-			&& inList(frappe.boot.user.can_write, doc.doctype)) {
-		cur_frm.add_custom_button(__('Send'), function() {
-			return $c_obj(doc, 'send_emails', '', function(r) {
-				cur_frm.refresh();
-			});
-		}, "icon-play", "btn-success");
-	}
-
-	cur_frm.cscript.setup_dashboard();
-
-	if(doc.__islocal && !doc.send_from) {
-		cur_frm.set_value("send_from",
-			repl("%(fullname)s <%(email)s>", frappe.user_info(doc.owner)));
-	}
-}
-
-cur_frm.cscript.setup_dashboard = function() {
-	cur_frm.dashboard.reset();
-	if(!cur_frm.doc.__islocal && cint(cur_frm.doc.email_sent) && cur_frm.doc.__onload && cur_frm.doc.__onload.status_count) {
-		var stat = cur_frm.doc.__onload.status_count;
-		var total = frappe.utils.sum($.map(stat, function(v) { return v; }));
-		if(total) {
-			$.each(stat, function(k, v) {
-				stat[k] = flt(v * 100 / total, 2) + '%';
-			});
-
-			cur_frm.dashboard.add_progress("Status", [
-				{
-					title: stat["Sent"] + "% Sent",
-					width: stat["Sent"],
-					progress_class: "progress-bar-success"
-				},
-				{
-					title: stat["Sending"] + "% Sending",
-					width: stat["Sending"],
-					progress_class: "progress-bar-warning"
-				},
-				{
-					title: stat["Error"] + "% Error",
-					width: stat["Error"],
-					progress_class: "progress-bar-danger"
-				}
-			]);
-		}
-	}
-}
diff --git a/erpnext/crm/doctype/newsletter/newsletter.json b/erpnext/crm/doctype/newsletter/newsletter.json
deleted file mode 100644
index 2515638..0000000
--- a/erpnext/crm/doctype/newsletter/newsletter.json
+++ /dev/null
@@ -1,281 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_import": 0, 
- "allow_rename": 1, 
- "autoname": "field:subject", 
- "beta": 0, 
- "creation": "2013-01-10 16:34:31", 
- "custom": 0, 
- "description": "Create and Send Newsletters", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Other", 
- "fields": [
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "newsletter_list", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Newsletter List", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Newsletter List", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "subject", 
-   "fieldtype": "Small Text", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Subject", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "description": "", 
-   "fieldname": "send_from", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 1, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Sender", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "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": "email_sent", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Email Sent?", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "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": "newsletter_content", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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": "message", 
-   "fieldtype": "Text Editor", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Message", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "description": "", 
-   "fieldname": "test_the_newsletter", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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, 
-   "description": "A Lead with this email id should exist", 
-   "fieldname": "test_email_id", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Test Email Id", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "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": "test_send", 
-   "fieldtype": "Button", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Test", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "test_send", 
-   "permlevel": 0, 
-   "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
-  }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "icon": "icon-envelope", 
- "idx": 1, 
- "in_create": 0, 
- "in_dialog": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "menu_index": 0, 
- "modified": "2016-05-24 16:01:54.675129", 
- "modified_by": "Administrator", 
- "module": "CRM", 
- "name": "Newsletter", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Newsletter Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 0
-  }
- ], 
- "quick_entry": 1, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "sort_order": "ASC", 
- "title_field": "subject", 
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/crm/doctype/newsletter/newsletter.py b/erpnext/crm/doctype/newsletter/newsletter.py
deleted file mode 100755
index dbf7dde..0000000
--- a/erpnext/crm/doctype/newsletter/newsletter.py
+++ /dev/null
@@ -1,189 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-
-import frappe
-import frappe.utils
-from frappe import throw, _
-from frappe.model.document import Document
-from frappe.email.queue import check_email_limit
-from frappe.utils.verified_command import get_signed_params, verify_request
-from frappe.utils.background_jobs import enqueue
-from frappe.utils.scheduler import log
-from frappe.email.queue import send
-from erpnext.crm.doctype.newsletter_list.newsletter_list import add_subscribers
-
-class Newsletter(Document):
-	def onload(self):
-		if self.email_sent:
-			self.get("__onload").status_count = dict(frappe.db.sql("""select status, count(name)
-				from `tabEmail Queue` where reference_doctype=%s and reference_name=%s
-				group by status""", (self.doctype, self.name))) or None
-
-	def test_send(self, doctype="Lead"):
-		self.recipients = frappe.utils.split_emails(self.test_email_id)
-		self.queue_all()
-		frappe.msgprint(_("Scheduled to send to {0}").format(self.test_email_id))
-
-	def send_emails(self):
-		"""send emails to leads and customers"""
-		if self.email_sent:
-			throw(_("Newsletter has already been sent"))
-
-		self.recipients = self.get_recipients()
-
-		if getattr(frappe.local, "is_ajax", False):
-			self.validate_send()
-
-			# using default queue with a longer timeout as this isn't a scheduled task
-			enqueue(send_newsletter, queue='default', timeout=1500, event='send_newsletter', newsletter=self.name)
-
-		else:
-			self.queue_all()
-
-		frappe.msgprint(_("Scheduled to send to {0} recipients").format(len(self.recipients)))
-
-		frappe.db.set(self, "email_sent", 1)
-
-	def queue_all(self):
-		if not self.get("recipients"):
-			# in case it is called via worker
-			self.recipients = self.get_recipients()
-
-		self.validate_send()
-
-		sender = self.send_from or frappe.utils.get_formatted_email(self.owner)
-
-		if not frappe.flags.in_test:
-			frappe.db.auto_commit_on_many_writes = True
-
-		send(recipients = self.recipients, sender = sender,
-			subject = self.subject, message = self.message,
-			reference_doctype = self.doctype, reference_name = self.name,
-			unsubscribe_method = "/api/method/erpnext.crm.doctype.newsletter.newsletter.unsubscribe",
-			unsubscribe_params = {"name": self.newsletter_list},
-			send_priority = 0)
-
-		if not frappe.flags.in_test:
-			frappe.db.auto_commit_on_many_writes = False
-
-	def get_recipients(self):
-		"""Get recipients from Newsletter List"""
-		return [d.email for d in frappe.db.get_all("Newsletter List Subscriber", ["email"],
-			{"unsubscribed": 0, "newsletter_list": self.newsletter_list})]
-
-	def validate_send(self):
-		if self.get("__islocal"):
-			throw(_("Please save the Newsletter before sending"))
-		check_email_limit(self.recipients)
-
-@frappe.whitelist()
-def get_lead_options():
-	return {
-		"sources": ["All"] + filter(None,
-			frappe.db.sql_list("""select distinct source from tabLead""")),
-		"statuses": ["All"] + filter(None,
-			frappe.db.sql_list("""select distinct status from tabLead"""))
-	}
-
-
-@frappe.whitelist(allow_guest=True)
-def unsubscribe(email, name):
-	if not verify_request():
-		return
-
-	subs_id = frappe.db.get_value("Newsletter List Subscriber", {"email": email, "newsletter_list": name})
-	if subs_id:
-		subscriber = frappe.get_doc("Newsletter List Subscriber", subs_id)
-		subscriber.unsubscribed = 1
-		subscriber.save(ignore_permissions=True)
-
-	frappe.db.commit()
-
-	return_unsubscribed_page(email)
-
-def return_unsubscribed_page(email):
-	frappe.respond_as_web_page(_("Unsubscribed"), _("{0} has been successfully unsubscribed from this list.").format(email))
-
-def create_lead(email_id):
-	"""create a lead if it does not exist"""
-	from email.utils import parseaddr
-	from frappe.model.naming import get_default_naming_series
-	real_name, email_id = parseaddr(email_id)
-
-	if frappe.db.get_value("Lead", {"email_id": email_id}):
-		return
-
-	lead = frappe.get_doc({
-		"doctype": "Lead",
-		"email_id": email_id,
-		"lead_name": real_name or email_id,
-		"status": "Lead",
-		"naming_series": get_default_naming_series("Lead"),
-		"company": frappe.db.get_default("Company"),
-		"source": "Email"
-	})
-	lead.insert()
-
-
-@frappe.whitelist(allow_guest=True)
-def subscribe(email):
-	url = frappe.utils.get_url("/api/method/erpnext.crm.doctype.newsletter.newsletter.confirm_subscription") +\
-		"?" + get_signed_params({"email": email})
-
-	messages = (
-		_("Thank you for your interest in subscribing to our updates"),
-		_("Please verify your email id"),
-		url,
-		_("Click here to verify")
-	)
-
-	content = """
-	<p>{0}. {1}.</p>
-	<p><a href="{2}">{3}</a></p>
-	"""
-
-	frappe.sendmail(email, subject=_("Confirm Your Email"), content=content.format(*messages))
-
-@frappe.whitelist(allow_guest=True)
-def confirm_subscription(email):
-	if not verify_request():
-		return
-
-	if not frappe.db.exists("Newsletter List", _("Website")):
-		frappe.get_doc({
-			"doctype": "Newsletter List",
-			"title": _("Website")
-		}).insert(ignore_permissions=True)
-
-
-	frappe.flags.ignore_permissions = True
-
-	add_subscribers(_("Website"), email)
-	frappe.db.commit()
-
-	frappe.respond_as_web_page(_("Confirmed"), _("{0} has been successfully added to our Newsletter list.").format(email))
-
-
-def send_newsletter(newsletter):
-	try:
-		doc = frappe.get_doc("Newsletter", newsletter)
-		doc.queue_all()
-
-	except:
-		frappe.db.rollback()
-
-		# wasn't able to send emails :(
-		doc.db_set("email_sent", 0)
-		frappe.db.commit()
-
-		log("send_newsletter")
-
-		raise
-
-	else:
-		frappe.db.commit()
-
-
-
diff --git a/erpnext/crm/doctype/newsletter/newsletter_list.js b/erpnext/crm/doctype/newsletter/newsletter_list.js
deleted file mode 100644
index e95d295..0000000
--- a/erpnext/crm/doctype/newsletter/newsletter_list.js
+++ /dev/null
@@ -1,10 +0,0 @@
-frappe.listview_settings['Newsletter'] = {
-	add_fields: ["subject", "email_sent"],
-	get_indicator: function(doc) {
-		if(doc.email_sent) {
-			return [__("Sent"), "green", "email_sent,=,Yes"];
-		} else {
-			return [__("Not Sent"), "orange", "email_sent,=,No"];
-		}
-	}
-};
diff --git a/erpnext/crm/doctype/newsletter/test_newsletter.py b/erpnext/crm/doctype/newsletter/test_newsletter.py
deleted file mode 100644
index 2019b65..0000000
--- a/erpnext/crm/doctype/newsletter/test_newsletter.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-from __future__ import unicode_literals
-
-import frappe, unittest
-
-from erpnext.crm.doctype.newsletter.newsletter import unsubscribe
-from urllib import unquote
-
-class TestNewsletter(unittest.TestCase):
-	def setUp(self):
-		if not frappe.get_all("Newsletter List Subscriber"):
-			for email in ["test_subscriber1@example.com", "test_subscriber2@example.com", 
-				"test_subscriber3@example.com"]:
-					frappe.get_doc({
-						"doctype": "Newsletter List Subscriber",
-						"email": email,
-						"newsletter_list": "_Test Newsletter List"
-					}).insert()
-		else:
-			frappe.db.sql("update `tabNewsletter List Subscriber` set unsubscribed = 0")
-
-	def test_send(self):
-		self.send_newsletter()
-		self.assertEquals(len(frappe.get_all("Email Queue")), 3)
-
-	def test_unsubscribe(self):
-		# test unsubscribe
-		self.send_newsletter()
-
-		email = unquote(frappe.local.flags.signed_query_string.split("email=")[1].split("&")[0])
-
-		unsubscribe(email, "_Test Newsletter List")
-
-		self.send_newsletter()
-		self.assertEquals(len(frappe.get_all("Email Queue")), 2)
-
-	def send_newsletter(self):
-		frappe.db.sql("delete from `tabEmail Queue`")
-		frappe.delete_doc("Newsletter", "_Test Newsletting")
-		newsletter = frappe.get_doc({
-			"doctype": "Newsletter",
-			"subject": "_Test Newsletting",
-			"newsletter_list": "_Test Newsletter List",
-			"send_from": "Test Sender <test_sender@example.com>",
-			"message": "Testing my news."
-		}).insert(ignore_permissions=True)
-
-		newsletter.send_emails()
-
-test_dependencies = ["Newsletter List"]
diff --git a/erpnext/crm/doctype/newsletter_list/newsletter_list.js b/erpnext/crm/doctype/newsletter_list/newsletter_list.js
deleted file mode 100644
index 7799627..0000000
--- a/erpnext/crm/doctype/newsletter_list/newsletter_list.js
+++ /dev/null
@@ -1,46 +0,0 @@
-frappe.ui.form.on("Newsletter List", "refresh", function(frm) {
-	if(!frm.is_new()) {
-		frm.add_custom_button(__("View Subscribers"), function() {
-			frappe.route_options = {"newsletter_list": frm.doc.name};
-			frappe.set_route("Report", "Newsletter List Subscriber");
-		}, __("View"));
-
-		frm.add_custom_button(__("Import Subscribers"), function() {
-			frappe.prompt({fieldtype:"Select", options: frm.doc.__onload.import_types,
-				label:__("Import Email From"), fieldname:"doctype", reqd:1}, function(data) {
-					frappe.call({
-						method: "erpnext.crm.doctype.newsletter_list.newsletter_list.import_from",
-						args: {
-							"name": frm.doc.name,
-							"doctype": data.doctype
-						},
-						callback: function(r) {
-							frm.set_value("total_subscribers", r.message);
-						}
-					})
-				}, __("Import Subscribers"), __("Import"));
-		}, __("Action"));
-
-		frm.add_custom_button(__("Add Subscribers"), function() {
-			frappe.prompt({fieldtype:"Text",
-				label:__("Email Ids"), fieldname:"email_list", reqd:1}, function(data) {
-					frappe.call({
-						method: "erpnext.crm.doctype.newsletter_list.newsletter_list.add_subscribers",
-						args: {
-							"name": frm.doc.name,
-							"email_list": data.email_list
-						},
-						callback: function(r) {
-							frm.set_value("total_subscribers", r.message);
-						}
-					})
-				}, __("Add Subscribers"), __("Add"));
-		}, __("Action"));
-
-		frm.add_custom_button(__("New Newsletter"), function() {
-			frappe.route_options = {"newsletter_list": frm.doc.name};
-			frappe.new_doc("Newsletter");
-		}, __("Action"));
-
-	}
-});
diff --git a/erpnext/crm/doctype/newsletter_list/newsletter_list.json b/erpnext/crm/doctype/newsletter_list/newsletter_list.json
deleted file mode 100644
index 597116f..0000000
--- a/erpnext/crm/doctype/newsletter_list/newsletter_list.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_import": 1, 
- "allow_rename": 0, 
- "autoname": "field:title", 
- "creation": "2015-03-18 06:08:32.729800", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Setup", 
- "fields": [
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "title", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Title", 
-   "length": 0, 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "default": "0", 
-   "fieldname": "total_subscribers", 
-   "fieldtype": "Int", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Total Subscribers", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "in_create": 0, 
- "in_dialog": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2015-11-16 06:29:50.643141", 
- "modified_by": "Administrator", 
- "module": "CRM", 
- "name": "Newsletter List", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Newsletter Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }
- ], 
- "read_only": 0, 
- "read_only_onload": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC"
-}
\ No newline at end of file
diff --git a/erpnext/crm/doctype/newsletter_list/newsletter_list.py b/erpnext/crm/doctype/newsletter_list/newsletter_list.py
deleted file mode 100644
index 68c445f..0000000
--- a/erpnext/crm/doctype/newsletter_list/newsletter_list.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.model.document import Document
-from frappe.utils import validate_email_add
-from frappe import _
-from email.utils import parseaddr
-
-class NewsletterList(Document):
-	def onload(self):
-		singles = [d.name for d in frappe.db.get_all("DocType", "name", {"issingle": 1})]
-		self.get("__onload").import_types = [{"value": d.parent, "label": "{0} ({1})".format(d.parent, d.label)} \
-			for d in frappe.db.get_all("DocField", ("parent", "label"), {"options": "Email"}) 
-			if d.parent not in singles]
-
-	def import_from(self, doctype):
-		"""Extract email ids from given doctype and add them to the current list"""
-		meta = frappe.get_meta(doctype)
-		email_field = [d.fieldname for d in meta.fields 
-			if d.fieldtype in ("Data", "Small Text", "Text", "Code") and d.options=="Email"][0]
-		unsubscribed_field = "unsubscribed" if meta.get_field("unsubscribed") else None
-		added = 0
-
-		for user in frappe.db.get_all(doctype, [email_field, unsubscribed_field or "name"]):
-			try:
-				email = parseaddr(user.get(email_field))[1]
-				if email:
-					frappe.get_doc({
-						"doctype": "Newsletter List Subscriber",
-						"newsletter_list": self.name,
-						"email": email,
-						"unsubscribed": user.get(unsubscribed_field) if unsubscribed_field else 0
-					}).insert(ignore_permissions=True)
-
-					added += 1
-			except frappe.UniqueValidationError:
-				pass
-
-		frappe.msgprint(_("{0} subscribers added").format(added))
-
-		return self.update_total_subscribers()
-
-	def update_total_subscribers(self):
-		self.total_subscribers = self.get_total_subscribers()
-		self.db_update()
-		return self.total_subscribers
-
-	def get_total_subscribers(self):
-		return frappe.db.sql("""select count(*) from `tabNewsletter List Subscriber`
-			where newsletter_list=%s""", self.name)[0][0]
-
-	def on_trash(self):
-		for d in frappe.get_all("Newsletter List Subscriber", "name", {"newsletter_list": self.name}):
-			frappe.delete_doc("Newsletter List Subscriber", d.name)
-
-@frappe.whitelist()
-def import_from(name, doctype):
-	nlist = frappe.get_doc("Newsletter List", name)
-	if nlist.has_permission("write"):
-		return nlist.import_from(doctype)
-
-@frappe.whitelist()
-def add_subscribers(name, email_list):
-	if not isinstance(email_list, (list, tuple)):
-		email_list = email_list.replace(",", "\n").split("\n")
-	count = 0
-	for email in email_list:
-		email = email.strip()
-		valid = validate_email_add(email, False)
-
-		if valid:
-			if not frappe.db.get_value("Newsletter List Subscriber",
-				{"newsletter_list": name, "email": email}):
-				frappe.get_doc({
-					"doctype": "Newsletter List Subscriber",
-					"newsletter_list": name,
-					"email": email
-				}).insert(ignore_permissions = frappe.flags.ignore_permissions)
-
-				count += 1
-			else:
-				pass
-		else:
-			frappe.msgprint(_("{0} is not a valid email id").format(email))
-
-	frappe.msgprint(_("{0} subscribers added").format(count))
-
-	return frappe.get_doc("Newsletter List", name).update_total_subscribers()
-
-def restrict_newsletter_list(doc, method):
-	from frappe.limits import get_limits
-
-	newsletter_list_limit = get_limits().get('newsletter_recipients')
-	if not newsletter_list_limit:
-		return
-
-	nl = frappe.get_doc("Newsletter List", doc.newsletter_list)
-	if nl.get_total_subscribers() >= newsletter_list_limit:
-		frappe.throw(_("Please Upgrade to add more than {0} subscribers").format(newsletter_list_limit))
\ No newline at end of file
diff --git a/erpnext/crm/doctype/newsletter_list/test_newsletter_list.py b/erpnext/crm/doctype/newsletter_list/test_newsletter_list.py
deleted file mode 100644
index ebc094e..0000000
--- a/erpnext/crm/doctype/newsletter_list/test_newsletter_list.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import frappe
-import unittest
-
-class TestNewletterList(unittest.TestCase):
-	def test_import(self):
-		new_list = frappe.get_doc({
-			"doctype": "Newsletter List",
-			"title": "_Test Newsletter List 1"
-		}).insert()
-
-		n_leads = frappe.db.sql("select count(distinct email_id) from `tabLead`")[0][0]
-		
-		added = new_list.import_from("Lead")
-		self.assertEquals(added, n_leads)
-
-	def tearDown(self):
-		frappe.delete_doc("Newsletter List", "_Test Newsletter List 1")
-
-test_dependencies = ["Lead"]
-
diff --git a/erpnext/crm/doctype/newsletter_list/test_records.json b/erpnext/crm/doctype/newsletter_list/test_records.json
deleted file mode 100644
index ed2f89e..0000000
--- a/erpnext/crm/doctype/newsletter_list/test_records.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
-	{
-		"doctype": "Newsletter List",
-		"title": "_Test Newsletter List"
-	}
-]
diff --git a/erpnext/crm/doctype/newsletter_list_subscriber/__init__.py b/erpnext/crm/doctype/newsletter_list_subscriber/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/crm/doctype/newsletter_list_subscriber/__init__.py
+++ /dev/null
diff --git a/erpnext/crm/doctype/newsletter_list_subscriber/newsletter_list_subscriber.json b/erpnext/crm/doctype/newsletter_list_subscriber/newsletter_list_subscriber.json
deleted file mode 100644
index 08208b8..0000000
--- a/erpnext/crm/doctype/newsletter_list_subscriber/newsletter_list_subscriber.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_import": 1, 
- "allow_rename": 0, 
- "autoname": "hash", 
- "creation": "2015-03-18 06:15:59.321619", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Document", 
- "fields": [
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "newsletter_list", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Newsletter List", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Newsletter List", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "email", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Email", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "unsubscribed", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Unsubscribed", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "in_create": 0, 
- "in_dialog": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2015-11-16 06:29:50.675306", 
- "modified_by": "Administrator", 
- "module": "CRM", 
- "name": "Newsletter List Subscriber", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Newsletter Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }
- ], 
- "read_only": 0, 
- "read_only_onload": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "title_field": "email"
-}
\ No newline at end of file
diff --git a/erpnext/crm/doctype/newsletter_list_subscriber/newsletter_list_subscriber.py b/erpnext/crm/doctype/newsletter_list_subscriber/newsletter_list_subscriber.py
deleted file mode 100644
index c036adc..0000000
--- a/erpnext/crm/doctype/newsletter_list_subscriber/newsletter_list_subscriber.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.model.document import Document
-
-class NewsletterListSubscriber(Document):
-	pass
-
-def after_doctype_insert():
-	frappe.db.add_unique("Newsletter List Subscriber", ("newsletter_list", "email"))
diff --git a/erpnext/crm/doctype/newsletter_list_subscriber/test_newsletter_list_subscriber.py b/erpnext/crm/doctype/newsletter_list_subscriber/test_newsletter_list_subscriber.py
deleted file mode 100644
index 24a0788..0000000
--- a/erpnext/crm/doctype/newsletter_list_subscriber/test_newsletter_list_subscriber.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import frappe
-import unittest
-
-# test_records = frappe.get_test_records('Newsletter List Subscriber')
-
-class TestNewsletterListSubscriber(unittest.TestCase):
-	pass
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index a648155..d20e20b 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -137,10 +137,6 @@
 		"validate": "erpnext.shopping_cart.cart.set_customer_in_address"
 	},
 
-	"Newsletter List Subscriber": {
-		"validate": "erpnext.crm.doctype.newsletter_list.newsletter_list.restrict_newsletter_list"
-	},
-
 	# bubble transaction notification on master
 	('Opportunity', 'Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice',
 		'Supplier Quotation', 'Purchase Order', 'Purchase Receipt',
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.js b/erpnext/hr/doctype/salary_slip/salary_slip.js
index 643139a..a62d03e 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.js
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.js
@@ -9,8 +9,7 @@
 		frm.fields_dict["timesheets"].grid.get_field("time_sheet").get_query = function(){
 			return {
 				filters: {
-					employee: frm.doc.employee,
-					make_for: 'Salary Slip'
+					employee: frm.doc.employee
 				}
 			}
 		}
@@ -32,13 +31,10 @@
 	},
 
 	toggle_fields: function(frm) {
-		if(frm.doc.salary_slip_based_on_timesheet) {
-			hide_field(['fiscal_year', 'month', 'total_days_in_month', 'leave_without_pay', 'payment_days'])
-			unhide_field(['start_date', 'end_date', 'hourly_wages', 'timesheets'])
-		}else {
-			unhide_field(['fiscal_year', 'month', 'total_days_in_month', 'leave_without_pay', 'payment_days'])
-			hide_field(['start_date', 'end_date', 'hourly_wages', 'timesheets'])
-		}
+		frm.toggle_display(['start_date', 'end_date', 'hourly_wages', 'timesheets'],
+			cint(frm.doc.salary_slip_based_on_timesheet)==1);
+		frm.toggle_display(['fiscal_year', 'month', 'total_days_in_month', 'leave_without_pay', 'payment_days'],
+			cint(frm.doc.salary_slip_based_on_timesheet)==0);
 	}
 })
 
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index d95cbf4..a15af7d 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -80,12 +80,11 @@
 			self.end_date = m['month_end_date']
 
 	def check_sal_struct(self, joining_date, relieving_date):
-		timesheet = 1 if self.salary_slip_based_on_timesheet else 0
 		struct = frappe.db.sql("""select name from `tabSalary Structure`
 			where employee=%s and is_active = 'Yes'
 			and (from_date <= %s or from_date <= %s)
-			and (to_date is null or to_date >= %s or to_date >= %s) and salary_slip_based_on_timesheet=%s""",
-			(self.employee, self.start_date, joining_date, self.end_date, relieving_date, timesheet))
+			and (to_date is null or to_date >= %s or to_date >= %s) order by from_date desc limit 1""",
+			(self.employee, self.start_date, joining_date, self.end_date, relieving_date))
 
 		if not struct:
 			self.salary_structure = None
diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.js b/erpnext/hr/doctype/salary_structure/salary_structure.js
index 6668067..b04aeb4 100755
--- a/erpnext/hr/doctype/salary_structure/salary_structure.js
+++ b/erpnext/hr/doctype/salary_structure/salary_structure.js
@@ -12,13 +12,27 @@
 }
 
 cur_frm.cscript.refresh = function(doc, dt, dn){
-	if((!doc.__islocal) && (doc.is_active == 'Yes') && (doc.salary_slip_based_on_timesheet == 0)){
+	if((!doc.__islocal) && (doc.is_active == 'Yes') && cint(doc.salary_slip_based_on_timesheet == 0)){
 		cur_frm.add_custom_button(__('Salary Slip'),
 			cur_frm.cscript['Make Salary Slip'], __("Make"));
 		cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
 	}
 }
 
+frappe.ui.form.on('Salary Structure', {
+	refresh: function(frm) {
+		frm.trigger("toggle_fields")
+	},
+
+	salary_slip_based_on_timesheet: function(frm) {
+		frm.trigger("toggle_fields")
+	},
+
+	toggle_fields: function(frm) {
+		frm.toggle_display('time_sheet_earning_detail', cint(frm.doc.salary_slip_based_on_timesheet)==1);
+	}
+})
+
 cur_frm.cscript['Make Salary Slip'] = function() {
 	frappe.model.open_mapped_doc({
 		method: "erpnext.hr.doctype.salary_structure.salary_structure.make_salary_slip",
diff --git a/erpnext/hr/doctype/salary_structure/salary_structure.json b/erpnext/hr/doctype/salary_structure/salary_structure.json
index 9a68f9d..c85a1d4 100644
--- a/erpnext/hr/doctype/salary_structure/salary_structure.json
+++ b/erpnext/hr/doctype/salary_structure/salary_structure.json
@@ -353,7 +353,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "depends_on": "eval:!doc.__islocal", 
+   "depends_on": "", 
    "fieldname": "salary_slip_based_on_timesheet", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -379,14 +379,14 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "depends_on": "eval:doc.salary_slip_based_on_timesheet", 
-   "fieldname": "section_break_15", 
+   "fieldname": "time_sheet_earning_detail", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "label": "", 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -779,7 +779,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-06-27 16:23:16.856237", 
+ "modified": "2016-06-29 15:41:48.243771", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Salary Structure", 
diff --git a/erpnext/crm/doctype/newsletter/__init__.py b/erpnext/maintenance/__init__.py
similarity index 100%
rename from erpnext/crm/doctype/newsletter/__init__.py
rename to erpnext/maintenance/__init__.py
diff --git a/erpnext/crm/doctype/newsletter/__init__.py b/erpnext/maintenance/doctype/__init__.py
similarity index 100%
copy from erpnext/crm/doctype/newsletter/__init__.py
copy to erpnext/maintenance/doctype/__init__.py
diff --git a/erpnext/support/doctype/maintenance_schedule/README.md b/erpnext/maintenance/doctype/maintenance_schedule/README.md
similarity index 100%
rename from erpnext/support/doctype/maintenance_schedule/README.md
rename to erpnext/maintenance/doctype/maintenance_schedule/README.md
diff --git a/erpnext/crm/doctype/newsletter/__init__.py b/erpnext/maintenance/doctype/maintenance_schedule/__init__.py
similarity index 100%
copy from erpnext/crm/doctype/newsletter/__init__.py
copy to erpnext/maintenance/doctype/maintenance_schedule/__init__.py
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
similarity index 91%
rename from erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
rename to erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
index 7783b1b..cf0ee51 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
@@ -1,7 +1,7 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-frappe.provide("erpnext.support");
+frappe.provide("erpnext.maintenance");
 
 frappe.ui.form.on_change("Maintenance Schedule", "customer", function(frm) {
 	erpnext.utils.get_party_details(frm) });
@@ -13,7 +13,7 @@
 });
 
 // TODO commonify this code
-erpnext.support.MaintenanceSchedule = frappe.ui.form.Controller.extend({
+erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
 	refresh: function() {
 		var me = this;
 
@@ -34,7 +34,7 @@
 		} else if (this.frm.doc.docstatus === 1) {
 			this.frm.add_custom_button(__("Make Maintenance Visit"), function() {
 				frappe.model.open_mapped_doc({
-					method: "erpnext.support.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
+					method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
 					source_name: me.frm.doc.name,
 					frm: me.frm
 				})
@@ -79,7 +79,7 @@
 	},
 });
 
-$.extend(cur_frm.cscript, new erpnext.support.MaintenanceSchedule({frm: cur_frm}));
+$.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceSchedule({frm: cur_frm}));
 
 cur_frm.cscript.onload = function(doc, dt, dn) {
 	if(!doc.status) set_multiple(dt,dn,{status:'Draft'});
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.json b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json
similarity index 98%
rename from erpnext/support/doctype/maintenance_schedule/maintenance_schedule.json
rename to erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json
index 63af61d..77ded22 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.json
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json
@@ -3,6 +3,7 @@
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "MS.#####", 
+ "beta": 0, 
  "creation": "2013-01-10 16:34:30", 
  "custom": 0, 
  "docstatus": 0, 
@@ -608,15 +609,16 @@
  "hide_toolbar": 0, 
  "icon": "icon-calendar", 
  "idx": 1, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 1, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-04-06 03:15:16.876595", 
+ "modified": "2016-06-29 12:56:00.801674", 
  "modified_by": "Administrator", 
- "module": "Support", 
+ "module": "Maintenance", 
  "name": "Maintenance Schedule", 
  "owner": "Administrator", 
  "permissions": [
@@ -641,6 +643,7 @@
    "write": 1
   }
  ], 
+ "quick_entry": 0, 
  "read_only": 0, 
  "read_only_onload": 0, 
  "search_fields": "status,customer,customer_name", 
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
similarity index 100%
rename from erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py
rename to erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
diff --git a/erpnext/support/doctype/maintenance_schedule/test_maintenance_schedule.py b/erpnext/maintenance/doctype/maintenance_schedule/test_maintenance_schedule.py
similarity index 100%
rename from erpnext/support/doctype/maintenance_schedule/test_maintenance_schedule.py
rename to erpnext/maintenance/doctype/maintenance_schedule/test_maintenance_schedule.py
diff --git a/erpnext/support/doctype/maintenance_schedule_detail/README.md b/erpnext/maintenance/doctype/maintenance_schedule_detail/README.md
similarity index 100%
rename from erpnext/support/doctype/maintenance_schedule_detail/README.md
rename to erpnext/maintenance/doctype/maintenance_schedule_detail/README.md
diff --git a/erpnext/crm/doctype/newsletter/__init__.py b/erpnext/maintenance/doctype/maintenance_schedule_detail/__init__.py
similarity index 100%
copy from erpnext/crm/doctype/newsletter/__init__.py
copy to erpnext/maintenance/doctype/maintenance_schedule_detail/__init__.py
diff --git a/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
similarity index 86%
rename from erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
rename to erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
index af252c1..4ec39be 100644
--- a/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
+++ b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
@@ -3,10 +3,12 @@
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "hash", 
+ "beta": 0, 
  "creation": "2013-02-22 01:28:05", 
  "custom": 0, 
  "docstatus": 0, 
  "doctype": "DocType", 
+ "document_type": "Document", 
  "fields": [
   {
    "allow_on_submit": 0, 
@@ -16,6 +18,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "Item Code", 
@@ -26,6 +29,7 @@
    "options": "Item", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -41,6 +45,7 @@
    "fieldtype": "Data", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Item Name", 
@@ -50,6 +55,7 @@
    "oldfieldtype": "Data", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -65,6 +71,7 @@
    "fieldtype": "Date", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "Scheduled Date", 
@@ -74,6 +81,7 @@
    "oldfieldtype": "Date", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -89,6 +97,7 @@
    "fieldtype": "Date", 
    "hidden": 1, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Actual Date", 
@@ -98,6 +107,7 @@
    "oldfieldtype": "Date", 
    "permlevel": 0, 
    "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 1, 
    "reqd": 0, 
@@ -113,6 +123,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "Sales Person", 
@@ -123,6 +134,7 @@
    "options": "Sales Person", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -138,6 +150,7 @@
    "fieldtype": "Small Text", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "Serial No", 
@@ -147,6 +160,7 @@
    "oldfieldtype": "Small Text", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "print_width": "160px", 
    "read_only": 1, 
    "report_hide": 0, 
@@ -160,18 +174,21 @@
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 1, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2015-11-16 06:29:49.853613", 
+ "modified": "2016-06-29 12:56:24.695085", 
  "modified_by": "Administrator", 
- "module": "Support", 
+ "module": "Maintenance", 
  "name": "Maintenance Schedule Detail", 
  "owner": "Administrator", 
  "permissions": [], 
+ "quick_entry": 0, 
  "read_only": 0, 
- "read_only_onload": 0
+ "read_only_onload": 0, 
+ "track_seen": 0
 }
\ No newline at end of file
diff --git a/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
new file mode 100644
index 0000000..e69b4fb
--- /dev/null
+++ b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class MaintenanceScheduleDetail(Document):
+	pass
diff --git a/erpnext/support/doctype/maintenance_schedule_item/README.md b/erpnext/maintenance/doctype/maintenance_schedule_item/README.md
similarity index 100%
rename from erpnext/support/doctype/maintenance_schedule_item/README.md
rename to erpnext/maintenance/doctype/maintenance_schedule_item/README.md
diff --git a/erpnext/crm/doctype/newsletter/__init__.py b/erpnext/maintenance/doctype/maintenance_schedule_item/__init__.py
similarity index 100%
copy from erpnext/crm/doctype/newsletter/__init__.py
copy to erpnext/maintenance/doctype/maintenance_schedule_item/__init__.py
diff --git a/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.json b/erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.json
similarity index 92%
rename from erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.json
rename to erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.json
index 6879f06..e62e041 100644
--- a/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.json
+++ b/erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.json
@@ -3,10 +3,12 @@
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "hash", 
+ "beta": 0, 
  "creation": "2013-02-22 01:28:05", 
  "custom": 0, 
  "docstatus": 0, 
  "doctype": "DocType", 
+ "document_type": "Document", 
  "fields": [
   {
    "allow_on_submit": 0, 
@@ -16,6 +18,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "Item Code", 
@@ -42,6 +45,7 @@
    "fieldtype": "Data", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Item Name", 
@@ -67,6 +71,7 @@
    "fieldtype": "Data", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Description", 
@@ -94,6 +99,7 @@
    "fieldtype": "Section Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "", 
@@ -117,6 +123,7 @@
    "fieldtype": "Date", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "Start Date", 
@@ -142,6 +149,7 @@
    "fieldtype": "Date", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 1, 
    "label": "End Date", 
@@ -167,6 +175,7 @@
    "fieldtype": "Select", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Periodicity", 
@@ -193,6 +202,7 @@
    "fieldtype": "Int", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "No of Visits", 
@@ -218,6 +228,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 0, 
    "label": "Sales Person", 
@@ -244,6 +255,7 @@
    "fieldtype": "Section Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Reference", 
@@ -267,6 +279,7 @@
    "fieldtype": "Small Text", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Serial No", 
@@ -292,6 +305,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 1, 
    "in_list_view": 0, 
    "label": "Sales Order", 
@@ -316,18 +330,21 @@
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 1, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-02-23 04:59:32.924534", 
+ "modified": "2016-06-29 12:56:08.478478", 
  "modified_by": "Administrator", 
- "module": "Support", 
+ "module": "Maintenance", 
  "name": "Maintenance Schedule Item", 
  "owner": "Administrator", 
  "permissions": [], 
+ "quick_entry": 0, 
  "read_only": 0, 
- "read_only_onload": 0
+ "read_only_onload": 0, 
+ "track_seen": 0
 }
\ No newline at end of file
diff --git a/erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.py b/erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.py
new file mode 100644
index 0000000..1dd47fe
--- /dev/null
+++ b/erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class MaintenanceScheduleItem(Document):
+	pass
diff --git a/erpnext/support/doctype/maintenance_visit/README.md b/erpnext/maintenance/doctype/maintenance_visit/README.md
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit/README.md
rename to erpnext/maintenance/doctype/maintenance_visit/README.md
diff --git a/erpnext/crm/doctype/newsletter_list/__init__.py b/erpnext/maintenance/doctype/maintenance_visit/__init__.py
similarity index 100%
rename from erpnext/crm/doctype/newsletter_list/__init__.py
rename to erpnext/maintenance/doctype/maintenance_visit/__init__.py
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
similarity index 89%
rename from erpnext/support/doctype/maintenance_visit/maintenance_visit.js
rename to erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
index f9d5e8d..5615886 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
@@ -1,7 +1,7 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-frappe.provide("erpnext.support");
+frappe.provide("erpnext.maintenance");
 
 
 frappe.ui.form.on_change("Maintenance Visit", "customer", function(frm) {
@@ -14,13 +14,13 @@
 });
 
 // TODO commonify this code
-erpnext.support.MaintenanceVisit = frappe.ui.form.Controller.extend({
+erpnext.maintenance.MaintenanceVisit = frappe.ui.form.Controller.extend({
 	refresh: function() {
 		if (this.frm.doc.docstatus===0) {
 			cur_frm.add_custom_button(__('Maintenance Schedule'),
 				function() {
 					frappe.model.map_current_doc({
-						method: "erpnext.support.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
+						method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
 						source_doctype: "Maintenance Schedule",
 						get_query_filters: {
 							docstatus: 1,
@@ -58,7 +58,7 @@
 	},
 });
 
-$.extend(cur_frm.cscript, new erpnext.support.MaintenanceVisit({frm: cur_frm}));
+$.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({frm: cur_frm}));
 
 cur_frm.cscript.onload = function(doc, dt, dn) {
 	if(!doc.status) set_multiple(dt,dn,{status:'Draft'});
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.json b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json
similarity index 98%
rename from erpnext/support/doctype/maintenance_visit/maintenance_visit.json
rename to erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json
index 973e057..07ff450 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.json
+++ b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json
@@ -3,6 +3,7 @@
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "MV.#####", 
+ "beta": 0, 
  "creation": "2013-01-10 16:34:31", 
  "custom": 0, 
  "docstatus": 0, 
@@ -753,15 +754,16 @@
  "hide_toolbar": 0, 
  "icon": "icon-file-text", 
  "idx": 1, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 1, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-04-06 03:15:20.528791", 
+ "modified": "2016-06-29 12:55:51.677519", 
  "modified_by": "Administrator", 
- "module": "Support", 
+ "module": "Maintenance", 
  "name": "Maintenance Visit", 
  "owner": "ashwini@webnotestech.com", 
  "permissions": [
@@ -786,6 +788,7 @@
    "write": 1
   }
  ], 
+ "quick_entry": 0, 
  "read_only": 0, 
  "read_only_onload": 0, 
  "search_fields": "status,maintenance_type,customer,customer_name,mntc_date,company", 
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit/maintenance_visit.py
rename to erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit_list.js b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit_list.js
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit/maintenance_visit_list.js
rename to erpnext/maintenance/doctype/maintenance_visit/maintenance_visit_list.js
diff --git a/erpnext/support/doctype/maintenance_visit/test_maintenance_visit.py b/erpnext/maintenance/doctype/maintenance_visit/test_maintenance_visit.py
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit/test_maintenance_visit.py
rename to erpnext/maintenance/doctype/maintenance_visit/test_maintenance_visit.py
diff --git a/erpnext/support/doctype/maintenance_visit/test_records.json b/erpnext/maintenance/doctype/maintenance_visit/test_records.json
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit/test_records.json
rename to erpnext/maintenance/doctype/maintenance_visit/test_records.json
diff --git a/erpnext/support/doctype/maintenance_visit_purpose/README.md b/erpnext/maintenance/doctype/maintenance_visit_purpose/README.md
similarity index 100%
rename from erpnext/support/doctype/maintenance_visit_purpose/README.md
rename to erpnext/maintenance/doctype/maintenance_visit_purpose/README.md
diff --git a/erpnext/crm/doctype/newsletter/__init__.py b/erpnext/maintenance/doctype/maintenance_visit_purpose/__init__.py
similarity index 100%
copy from erpnext/crm/doctype/newsletter/__init__.py
copy to erpnext/maintenance/doctype/maintenance_visit_purpose/__init__.py
diff --git a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
similarity index 87%
rename from erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
rename to erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
index c89453a..652a4b0 100644
--- a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
+++ b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
@@ -3,10 +3,12 @@
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "hash", 
+ "beta": 0, 
  "creation": "2013-02-22 01:28:06", 
  "custom": 0, 
  "docstatus": 0, 
  "doctype": "DocType", 
+ "document_type": "Document", 
  "fields": [
   {
    "allow_on_submit": 0, 
@@ -16,6 +18,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Item Code", 
@@ -26,6 +29,7 @@
    "options": "Item", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -41,6 +45,7 @@
    "fieldtype": "Data", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Item Name", 
@@ -50,6 +55,7 @@
    "oldfieldtype": "Data", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 1, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -65,6 +71,7 @@
    "fieldtype": "Small Text", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Serial No", 
@@ -74,6 +81,7 @@
    "oldfieldtype": "Small Text", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -89,6 +97,7 @@
    "fieldtype": "Text Editor", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Description", 
@@ -98,6 +107,7 @@
    "oldfieldtype": "Small Text", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "print_width": "300px", 
    "read_only": 0, 
    "report_hide": 0, 
@@ -115,6 +125,7 @@
    "fieldtype": "Section Break", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "", 
@@ -122,6 +133,7 @@
    "no_copy": 0, 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 0, 
@@ -137,6 +149,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Sales Person", 
@@ -147,6 +160,7 @@
    "options": "Sales Person", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -162,6 +176,7 @@
    "fieldtype": "Small Text", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
    "label": "Work Done", 
@@ -171,6 +186,7 @@
    "oldfieldtype": "Small Text", 
    "permlevel": 0, 
    "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
    "reqd": 1, 
@@ -186,6 +202,7 @@
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Document Type", 
@@ -196,6 +213,7 @@
    "options": "DocType", 
    "permlevel": 0, 
    "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
    "report_hide": 1, 
@@ -213,6 +231,7 @@
    "fieldtype": "Dynamic Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Against Document No", 
@@ -223,6 +242,7 @@
    "options": "prevdoc_doctype", 
    "permlevel": 0, 
    "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
    "print_width": "160px", 
    "read_only": 1, 
    "report_hide": 1, 
@@ -240,6 +260,7 @@
    "fieldtype": "Data", 
    "hidden": 1, 
    "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
    "label": "Against Document Detail No", 
@@ -249,6 +270,7 @@
    "oldfieldtype": "Data", 
    "permlevel": 0, 
    "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
    "print_width": "160px", 
    "read_only": 1, 
    "report_hide": 1, 
@@ -262,18 +284,21 @@
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 1, 
+ "image_view": 0, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2015-11-16 06:29:50.082976", 
+ "modified": "2016-06-29 12:56:16.109366", 
  "modified_by": "Administrator", 
- "module": "Support", 
+ "module": "Maintenance", 
  "name": "Maintenance Visit Purpose", 
  "owner": "ashwini@webnotestech.com", 
  "permissions": [], 
+ "quick_entry": 0, 
  "read_only": 0, 
- "read_only_onload": 0
+ "read_only_onload": 0, 
+ "track_seen": 0
 }
\ No newline at end of file
diff --git a/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
new file mode 100644
index 0000000..a7f0f5b
--- /dev/null
+++ b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class MaintenanceVisitPurpose(Document):
+	pass
diff --git a/erpnext/support/report/maintenance_schedules/__init__.py b/erpnext/maintenance/report/maintenance_schedules/__init__.py
similarity index 100%
rename from erpnext/support/report/maintenance_schedules/__init__.py
rename to erpnext/maintenance/report/maintenance_schedules/__init__.py
diff --git a/erpnext/maintenance/report/maintenance_schedules/maintenance_schedules.json b/erpnext/maintenance/report/maintenance_schedules/maintenance_schedules.json
new file mode 100644
index 0000000..6076f6e
--- /dev/null
+++ b/erpnext/maintenance/report/maintenance_schedules/maintenance_schedules.json
@@ -0,0 +1,17 @@
+{
+ "apply_user_permissions": 1, 
+ "creation": "2013-05-06 14:25:21", 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 1, 
+ "is_standard": "Yes", 
+ "modified": "2014-06-29 08:18:17.144598", 
+ "modified_by": "Administrator", 
+ "module": "Support", 
+ "name": "Maintenance Schedules", 
+ "owner": "Administrator", 
+ "query": "SELECT\n    ms_sch.scheduled_date as \"Schedule Date:Date:120\",\n\tms_sch.item_code as \"Item Code:Link/Item:120\",\n\tms_sch.item_name as \"Item Name::120\",\n\tms_sch.serial_no as \"Serial No::120\",\n\tms_sch.sales_person as \"Sales Person::120\",\n\tms.customer_name as \"Customer:Link/Customer:120\",\n\tms.address_display as \"Customer Address::120\",\n\tms_item.sales_order as \"Sales Order:Link/Sales Order:120\",\n\tms.company as \"Company:Link/Company:120\"\n\t\nFROM\n\t`tabMaintenance Schedule` ms, \n    `tabMaintenance Schedule Detail` ms_sch, \n    `tabMaintenance Schedule Item` ms_item\nWHERE\n\tms.name = ms_sch.parent and ms.name = ms_item.parent and ms.docstatus = 1\nORDER BY\n\tms_sch.scheduled_date asc, ms_sch.item_code asc", 
+ "ref_doctype": "Maintenance Schedule", 
+ "report_name": "Maintenance Schedules", 
+ "report_type": "Query Report"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py
index e10459f..571f75a 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/production_order.py
@@ -160,7 +160,7 @@
 
 	def before_submit(self):
 		self.set_required_items()
-		self.make_timesheets()
+		self.make_time_logs()
 		
 	def before_cancel(self):
 		for data in self.operations:
@@ -240,7 +240,7 @@
 
 		return holidays[holiday_list]
 		
-	def make_timesheets(self):
+	def make_time_logs(self):
 		"""Capacity Planning. Plan time logs based on earliest availablity of workstation after
 			Planned Start Date. Time logs will be created and remain in Draft mode and must be submitted
 			before manufacturing entry can be made."""
@@ -267,7 +267,7 @@
 				# validate operating hours if workstation [not mandatory] is specified
 				self.check_operation_fits_in_working_hours(d)
 				try:
-					time_sheet.validate_timesheets()
+					time_sheet.validate_time_logs()
 				except OverlapError:
 					time_sheet.move_to_next_non_overlapping_slot(d.idx)
 
@@ -319,7 +319,7 @@
 			frappe.throw(_("Capacity Planning Error"))
 
 	def get_start_end_time(self, time_sheet, operation_id):
-		for data in time_sheet.timesheets:
+		for data in time_sheet.time_logs:
 			if data.operation_id == operation_id:
 				return data.from_time, data.to_time
 
@@ -518,7 +518,7 @@
 	if isinstance(args, unicode):
 		args = json.loads(args)
 
-	time_sheet.append('timesheets', args)
+	time_sheet.append('time_logs', args)
 	return time_sheet
 
 @frappe.whitelist()
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index 6ebb8e7..8b86fd7 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -89,7 +89,7 @@
 		
 
 		self.assertEqual(prod_order.name, time_sheet_doc.production_order)
-		self.assertEqual((prod_order.qty - d.completed_qty), sum([d.completed_qty for d in time_sheet_doc.timesheets]))
+		self.assertEqual((prod_order.qty - d.completed_qty), sum([d.completed_qty for d in time_sheet_doc.time_logs]))
 
 		manufacturing_settings = frappe.get_doc({
 			"doctype": "Manufacturing Settings",
@@ -106,7 +106,7 @@
 		self.assertEqual(prod_order.operations[0].actual_operating_cost, 100)
 		
 		time_sheet_doc1 = make_timesheet(prod_order.name)
-		self.assertEqual(len(time_sheet_doc1.get('timesheets')), 0)
+		self.assertEqual(len(time_sheet_doc1.get('time_logs')), 0)
 
 		time_sheet_doc.cancel()
 
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 8a49547..11a1ebe 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -11,4 +11,5 @@
 Utilities
 Shopping Cart
 Hub Node
-Portal
\ No newline at end of file
+Portal
+Maintenance
\ No newline at end of file
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index bcbe2da..db4076e 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -282,3 +282,4 @@
 erpnext.patches.v7_0.move_timelogbatch_from_salesinvoiceitem_to_salesinvoicetimesheet
 erpnext.patches.v7_0.remove_doctypes_and_reports
 erpnext.patches.v7_0.set_is_group_for_warehouse
+erpnext.patches.v7_0.update_maintenance_module_in_doctype
diff --git a/erpnext/patches/v5_0/newsletter.py b/erpnext/patches/v5_0/newsletter.py
index bd95937..c03664b 100644
--- a/erpnext/patches/v5_0/newsletter.py
+++ b/erpnext/patches/v5_0/newsletter.py
@@ -10,9 +10,9 @@
 	frappe.reload_doctype("Lead")
 	frappe.reload_doctype("Contact")
 
-	frappe.reload_doc('crm', 'doctype', 'newsletter_list')
-	frappe.reload_doc('crm', 'doctype', 'newsletter_list_subscriber')
-	frappe.reload_doc('crm', 'doctype', 'newsletter')
+	frappe.reload_doc('email', 'doctype', 'email_group')
+	frappe.reload_doc('email', 'doctype', 'email_group_member')
+	frappe.reload_doc('email', 'doctype', 'newsletter')
 
 	frappe.permissions.reset_perms("Newsletter")
 
@@ -30,7 +30,7 @@
 			user.save()
 
 	# create default lists
-	general = frappe.new_doc("Newsletter List")
+	general = frappe.new_doc("Email Group")
 	general.title = "General"
 	general.insert()
 	general.import_from("Lead")
diff --git a/erpnext/patches/v6_2/remove_newsletter_duplicates.py b/erpnext/patches/v6_2/remove_newsletter_duplicates.py
index 4f25c95..dc5b778 100644
--- a/erpnext/patches/v6_2/remove_newsletter_duplicates.py
+++ b/erpnext/patches/v6_2/remove_newsletter_duplicates.py
@@ -1,12 +1,12 @@
 import frappe
 
 def execute():
-	duplicates = frappe.db.sql("""select newsletter_list, email, count(name)
-		from `tabNewsletter List Subscriber`
-		group by newsletter_list, email
+	duplicates = frappe.db.sql("""select email_group, email, count(name)
+		from `tabEmail Group Member`
+		group by email_group, email
 		having count(name) > 1""")
 
 	# delete all duplicates except 1
-	for newsletter_list, email, count in duplicates:
-		frappe.db.sql("""delete from `tabNewsletter List Subscriber`
-			where newsletter_list=%s and email=%s limit %s""", (newsletter_list, email, count-1))
+	for email_group, email, count in duplicates:
+		frappe.db.sql("""delete from `tabEmail Group Member`
+			where email_group=%s and email=%s limit %s""", (email_group, email, count-1))
diff --git a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
index 9a77147..eb727e5 100644
--- a/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
+++ b/erpnext/patches/v7_0/convert_timelog_to_timesheet.py
@@ -2,7 +2,7 @@
 
 from erpnext.manufacturing.doctype.production_order.production_order import make_time_sheet, add_timesheet_detail
 
-def execute():	
+def execute():
 	for data in frappe.get_all('Time Log', fields=["*"],
 		filters = [["docstatus", "<", "2"]]):
 		time_sheet = make_time_sheet(data.production_order)
@@ -18,9 +18,9 @@
 		'hours': data.hours,
 		'to_time': data.to_time,
 		'project': data.project,
-		'activity_type': data.activity_type or "Planning",
+		'activity_type': data.activity_type,
 		'operation': data.operation,
 		'operation_id': data.operation_id,
 		'workstation': data.workstation,
 		'completed_qty': data.completed_qty
-	}
\ No newline at end of file
+	}
diff --git a/erpnext/patches/v7_0/convert_timelogbatch_to_timesheet.py b/erpnext/patches/v7_0/convert_timelogbatch_to_timesheet.py
index caacfe1..097097d 100644
--- a/erpnext/patches/v7_0/convert_timelogbatch_to_timesheet.py
+++ b/erpnext/patches/v7_0/convert_timelogbatch_to_timesheet.py
@@ -9,12 +9,13 @@
 		time_sheet.employee= ""
 		time_sheet.company = frappe.db.get_single_value('Global Defaults', 'default_company')
 		time_sheet.sales_invoice = tlb.sales_invoice
-		for data in tlb.time_logs:
-			args = get_timesheet_data(data)
-			add_timesheet_detail(time_sheet, args)
+		if tlb.get('time_logs'):
+			for data in tlb.time_logs:
+				args = get_timesheet_data(data)
+				add_timesheet_detail(time_sheet, args)
 
-		time_sheet.docstatus = tlb.docstatus
-		time_sheet.save(ignore_permissions=True)
+			time_sheet.docstatus = tlb.docstatus
+			time_sheet.save(ignore_permissions=True)
 
 def get_timesheet_data(data):
 	time_log = frappe.get_doc('Time Log', data.time_log)
diff --git a/erpnext/patches/v7_0/create_warehouse_nestedset.py b/erpnext/patches/v7_0/create_warehouse_nestedset.py
index aaccfb9..0fa1756 100644
--- a/erpnext/patches/v7_0/create_warehouse_nestedset.py
+++ b/erpnext/patches/v7_0/create_warehouse_nestedset.py
@@ -1,48 +1,111 @@
 import frappe
 from frappe import _
+from frappe.utils import cint
+from frappe.utils.nestedset import rebuild_tree
 
 def execute():
+	"""
+	Patch Reference:
+		1. check whether warehouse is associated to company or not
+		2. if warehouse is associated with company
+			a. create warehouse group for company
+			b. set warehouse group as parent to other warehouses and set is_group as 0
+		3. if warehouses is not associated with company
+			a. get distinct companies from stock ledger entries
+			b. if sle have only company,
+				i. set default company to all warehouse
+				ii. repeat 2.a and 2.b
+			c. if have multiple companies,
+				i. create group warehouse without company
+				ii. repeat 2.b
+	"""
+	
 	frappe.reload_doc("stock", "doctype", "warehouse")
-	
-	for company in frappe.get_all("Company", fields=["name", "abbr"]):
-		if not frappe.db.get_value("Warehouse", "{0} - {1}".format(_("All Warehouses"), company.abbr)):
-			create_default_warehouse_group(company)
-		
-		for warehouse in frappe.get_all("Warehouse", filters={"company": company.name}, fields=["name", "create_account_under",
-			"parent_warehouse", "is_group"]):
-			set_parent_to_warehouses(warehouse, company)
-			set_parent_to_warehouse_acounts(warehouse, company)
 
-def set_parent_to_warehouses(warehouse, company):
-	warehouse = frappe.get_doc("Warehouse", warehouse.name)
-	warehouse.is_group = warehouse.is_group
-	
-	if not warehouse.parent_warehouse and warehouse.name != "{0} - {1}".format(_("All Warehouses"), company.abbr):
-		warehouse.parent_warehouse = "{0} - {1}".format(_("All Warehouses"), company.abbr)
-	
-	warehouse.save(ignore_permissions=True)
+	if check_is_warehouse_associated_with_company():
+		for company in frappe.get_all("Company", fields=["name", "abbr"]):
+			make_warehouse_nestedset(company)
+	else:
+		sle_against_companies = frappe.db.sql_list("""select distinct company from `tabStock Ledger Entry`""")
+		company = frappe.defaults.get_defaults().company
 
-def set_parent_to_warehouse_acounts(warehouse, company):
-	account = frappe.db.get_value("Account", {"warehouse": warehouse.name})
-	stock_group = frappe.db.get_value("Account", {"account_type": "Stock",
-		"is_group": 1, "company": company.name})
+		if len(sle_against_companies) == 1:
+			set_company_to_warehouse(company)
+			make_warehouse_nestedset(company)
 
-	if account and account != "{0} - {1}".format(_("All Warehouses"), company.abbr):
-		account = frappe.get_doc("Account", account)
-		
-		if warehouse.create_account_under == stock_group or not warehouse.create_account_under:
-			if not warehouse.parent_warehouse:
-				account.parent_account = "{0} - {1}".format(_("All Warehouses"), company.abbr)
-			else:
-				account.parent_account = frappe.db.get_value("Account", warehouse.parent_warehouse)
+		elif len(sle_against_companies) > 1:
+			make_warehouse_nestedset()
 
-		account.save(ignore_permissions=True)
+def check_is_warehouse_associated_with_company():
+	warehouse_associcated_with_company = False
 
-def create_default_warehouse_group(company):
-	frappe.get_doc({
+	for warehouse in frappe.get_all("Warehouse", fields=["name", "company"]):
+		if warehouse.company:
+			warehouse_associcated_with_company = True
+
+	return warehouse_associcated_with_company
+
+def make_warehouse_nestedset(company=None):
+	validate_parent_account_for_warehouse(company)
+
+	if company:
+		warehouse_group = "{0} - {1}".format(_("All Warehouses"), company.abbr)
+		ignore_mandatory = False
+	else:
+		warehouse_group = _("All Warehouses")
+		ignore_mandatory = True
+
+	if not frappe.db.get_value("Warehouse", warehouse_group):
+		create_default_warehouse_group(company, ignore_mandatory)
+
+	set_parent_to_warehouse(warehouse_group, company)
+	if cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
+		set_parent_to_warehouse_acount(company)
+
+def validate_parent_account_for_warehouse(company=None):
+	if not company:
+		return
+
+	if cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
+		parent_account = frappe.db.sql("""select name from tabAccount
+			where account_type='Stock' and company=%s and is_group=1
+			and (warehouse is null or warehouse = '')""", company.name)
+
+		if not parent_account:
+			current_parent_accounts_for_warehouse = frappe.db.sql("""select parent_account from tabAccount
+				where account_type='Warehouse' and (warehouse is not null or warehouse != '') """)
+
+			if current_parent_accounts_for_warehouse:
+				frappe.db.set_value("Account", current_parent_accounts_for_warehouse[0][0], "account_type", "Stock")
+
+def create_default_warehouse_group(company=None, ignore_mandatory=False):
+	wh = frappe.get_doc({
 		"doctype": "Warehouse",
 		"warehouse_name": _("All Warehouses"),
 		"is_group": 1,
-		"company": company.name,
+		"company": company.name if company else "",
 		"parent_warehouse": ""
-	}).insert(ignore_permissions=True)
\ No newline at end of file
+	})
+
+	if ignore_mandatory:
+		wh.flags.ignore_mandatory = ignore_mandatory
+
+	wh.insert(ignore_permissions=True)
+
+def set_parent_to_warehouse(warehouse_group, company=None):
+	frappe.db.sql(""" update tabWarehouse set parent_warehouse = %s, is_group = 0
+		where (is_group = 0 or is_group is null or is_group = '') and ifnull(company, '') = %s
+		""",(warehouse_group, company.name if company else ""))
+
+	rebuild_tree("Warehouse", "parent_warehouse")
+
+def set_parent_to_warehouse_acount(company):
+	frappe.db.sql(""" update tabAccount set parent_account = %s
+		where is_group = 0 and account_type = "Warehouse"
+		and (warehouse is not null or warehouse != '') and company = %s
+		""",("{0} - {1}".format(_("All Warehouses"), company.abbr), company.name))
+
+	rebuild_tree("Account", "parent_account")
+
+def set_company_to_warehouse(company):
+	frappe.db.sql("update tabWahouse set company=%s", company)
diff --git a/erpnext/patches/v7_0/update_maintenance_module_in_doctype.py b/erpnext/patches/v7_0/update_maintenance_module_in_doctype.py
new file mode 100644
index 0000000..4c0c6a9
--- /dev/null
+++ b/erpnext/patches/v7_0/update_maintenance_module_in_doctype.py
@@ -0,0 +1,11 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.db.set_value("DocType", "Maintenance Schedule", "module", "Maintenance")
+	frappe.db.set_value("DocType", "Maintenance Schedule Detail", "module", "Maintenance")
+	frappe.db.set_value("DocType", "Maintenance Schedule Item", "module", "Maintenance")
+	frappe.db.set_value("DocType", "Maintenance Visit", "module", "Maintenance")
+	frappe.db.set_value("DocType", "Maintenance Visit Purpose", "module", "Maintenance")
\ No newline at end of file
diff --git a/erpnext/projects/doctype/time_sheet/test_time_sheet.py b/erpnext/projects/doctype/time_sheet/test_time_sheet.py
index ef3477c..cd627cf 100644
--- a/erpnext/projects/doctype/time_sheet/test_time_sheet.py
+++ b/erpnext/projects/doctype/time_sheet/test_time_sheet.py
@@ -16,8 +16,8 @@
 		time_sheet = make_time_sheet("_T-Employee-0001", True)
 
 		self.assertEquals(time_sheet.total_hours, 2)
-		self.assertEquals(time_sheet.timesheets[0].billing_rate, 50)
-		self.assertEquals(time_sheet.timesheets[0].billing_amount, 100)
+		self.assertEquals(time_sheet.time_logs[0].billing_rate, 50)
+		self.assertEquals(time_sheet.time_logs[0].billing_amount, 100)
 
 	def test_salary_slip_from_timesheet(self):
 		salary_structure = make_salary_structure("_T-Employee-0001")
@@ -58,9 +58,10 @@
 def make_salary_structure(employee):
 	name = frappe.db.get_value('Salary Structure', {'employee': employee, 'salary_slip_based_on_timesheet': 1}, 'name')
 	if name:
-		frappe.delete_doc('Salary Structure', name)
+		salary_structure = frappe.get_doc('Salary Structure', name)
+	else:
+		salary_structure = frappe.new_doc("Salary Structure")
 
-	salary_structure = frappe.new_doc("Salary Structure")
 	salary_structure.salary_slip_based_on_timesheet = 1
 	salary_structure.employee = employee
 	salary_structure.from_date = nowdate()
@@ -89,14 +90,14 @@
 	update_activity_type("_Test Activity Type")
 	time_sheet = frappe.new_doc("Time Sheet")
 	time_sheet.employee = employee
-	time_sheet_detail = time_sheet.append('timesheets', {})
+	time_sheet_detail = time_sheet.append('time_logs', {})
 	time_sheet_detail.billable = billable
 	time_sheet_detail.activity_type = "_Test Activity Type"
 	time_sheet_detail.from_time = now_datetime()
 	time_sheet_detail.hours = 2
 	time_sheet_detail.to_time = time_sheet_detail.from_time + datetime.timedelta(hours= time_sheet_detail.hours)
 
-	for data in time_sheet.get('timesheets'):
+	for data in time_sheet.get('time_logs'):
 		if simulate:
 			while True:
 				try:
diff --git a/erpnext/projects/doctype/time_sheet/time_sheet.js b/erpnext/projects/doctype/time_sheet/time_sheet.js
index 5375f93..a4cb3ae 100644
--- a/erpnext/projects/doctype/time_sheet/time_sheet.js
+++ b/erpnext/projects/doctype/time_sheet/time_sheet.js
@@ -1,11 +1,9 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-cur_frm.add_fetch("activity_type", "billing_rate", "billing_rate");
-
 frappe.ui.form.on("Time Sheet", {
 	setup: function(frm) {
-		frm.get_field('timesheets').grid.editable_fields = [
+		frm.get_field('time_logs').grid.editable_fields = [
 			{fieldname: 'activity_type', columns: 2},
 			{fieldname: 'from_time', columns: 2},
 			{fieldname: 'hours', columns: 2},
@@ -18,7 +16,7 @@
 			}
 		}
 
-		frm.fields_dict['timesheets'].grid.get_field('task').get_query = function(frm, cdt, cdn) {
+		frm.fields_dict['time_logs'].grid.get_field('task').get_query = function(frm, cdt, cdn) {
 			child = locals[cdt][cdn];
 			return{
 				filters: {
@@ -29,7 +27,7 @@
 	},
 
 	onload: function(frm){
-		if (frm.doc.__islocal && frm.doc.timesheets) {
+		if (frm.doc.__islocal && frm.doc.time_logs) {
 			frm.set_value("employee", "")
 			calculate_time_and_amount(frm);
 		}
@@ -66,7 +64,7 @@
 })
 
 frappe.ui.form.on("Time Sheet Detail", {
-	timesheets_remove: function(frm) {
+	time_logs_remove: function(frm) {
 		calculate_time_and_amount(frm);
 	},
 
@@ -94,54 +92,64 @@
 	},
 
 	billing_rate: function(frm, cdt, cdn) {
-		var child = locals[cdt][cdn]
-		if(child.hours && child.billing_rate){
-			frappe.mode.set_value(cdt, cdn, 'total_billing_amount', flt(child.billing_rate * child.hours))
-		}
-		calculate_billing_amount(frm, cdt, cdn)
+		calculate_billing_costing_amount(frm, cdt, cdn)
 	},
 
 	costing_rate: function(frm, cdt, cdn) {
-		var child = locals[cdt][cdn]
-		frappe.mode.set_value(cdt, cdn, 'total_costing_amount', flt(child.costing_rate * child.hours))
-		calculate_billing_amount(frm, cdt, cdn)
+		calculate_billing_costing_amount(frm, cdt, cdn)
 	},
 
 	billable: function(frm, cdt, cdn) {
-		calculate_billing_amount(frm, cdt, cdn)
+		calculate_billing_costing_amount(frm, cdt, cdn)
+	},
+
+	activity_type: function(frm, cdt, cdn) {
+		child = locals[cdt][cdn];
+		frappe.call({
+			method: "erpnext.projects.doctype.time_sheet.time_sheet.get_activity_cost",
+			args: {
+				employee: frm.doc.employee,
+				activity_type: child.activity_type
+			},
+			callback: function(r){
+				if(r.message){
+					frappe.model.set_value(cdt, cdn, 'billing_rate', r.message['billing_rate']);
+					frappe.model.set_value(cdt, cdn, 'costing_rate', r.message['costing_rate']);
+					calculate_billing_costing_amount(frm, cdt, cdn)
+				}
+			}
+		})
 	}
 });
 
 calculate_end_time = function(frm, cdt, cdn){
 	var child = locals[cdt][cdn];
 
-	if(!child.from_time) {
-		frappe.model.set_value(cdt, cdn, "from_time", frappe.datetime.now_datetime());
-	}
-
 	var d = moment(child.from_time);
 	d.add(child.hours, "hours");
 	frm._setting_hours = true;
 	frappe.model.set_value(cdt, cdn, "to_time", d.format(moment.defaultDatetimeFormat));
 	frm._setting_hours = false;
 
-	calculate_billing_amount(frm, cdt, cdn)
+	calculate_billing_costing_amount(frm, cdt, cdn)
 }
 
-var calculate_billing_amount = function(frm, cdt, cdn){
+var calculate_billing_costing_amount = function(frm, cdt, cdn){
 	child = locals[cdt][cdn]
-	billing_amount = 0.0
+	billing_amount = costing_amount = 0.0;
 
 	if(child.hours && child.billable){
-		billing_amount = (child.hours * child.billing_rate)	
+		billing_amount = (child.hours * child.billing_rate);
+		costing_amount = flt(child.costing_rate * child.hours);
 	}
 
-	frappe.model.set_value(cdt, cdn, 'billing_amount', billing_amount)
+	frappe.model.set_value(cdt, cdn, 'billing_amount', billing_amount);
+	frappe.model.set_value(cdt, cdn, 'costing_amount', costing_amount);
 	calculate_time_and_amount(frm)
 }
 
 var calculate_time_and_amount = function(frm) {
-	var tl = frm.doc.timesheets || [];
+	var tl = frm.doc.time_logs || [];
 	total_hr = 0;
 	total_billing_amount = 0;
 	for(var i=0; i<tl.length; i++) {
diff --git a/erpnext/projects/doctype/time_sheet/time_sheet.json b/erpnext/projects/doctype/time_sheet/time_sheet.json
index 687e24d..3cd5917 100644
--- a/erpnext/projects/doctype/time_sheet/time_sheet.json
+++ b/erpnext/projects/doctype/time_sheet/time_sheet.json
@@ -426,7 +426,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "fieldname": "timesheets", 
+   "fieldname": "time_logs", 
    "fieldtype": "Table", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -586,7 +586,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-06-27 01:45:26.226915", 
+ "modified": "2016-06-29 15:16:31.668367", 
  "modified_by": "Administrator", 
  "module": "Projects", 
  "name": "Time Sheet", 
@@ -611,46 +611,6 @@
    "share": 1, 
    "submit": 1, 
    "write": 1
-  }, 
-  {
-   "amend": 1, 
-   "apply_user_permissions": 0, 
-   "cancel": 1, 
-   "create": 0, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Projects Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 1, 
-   "write": 1
-  }, 
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Manufacturing User", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 0
   }
  ], 
  "quick_entry": 0, 
diff --git a/erpnext/projects/doctype/time_sheet/time_sheet.py b/erpnext/projects/doctype/time_sheet/time_sheet.py
index da56112..17f0023 100644
--- a/erpnext/projects/doctype/time_sheet/time_sheet.py
+++ b/erpnext/projects/doctype/time_sheet/time_sheet.py
@@ -22,9 +22,9 @@
 		self.total_hours = 0.0
 		self.total_billing_amount = 0.0
 		self.validate_dates()
-		self.validate_timesheets()
+		self.validate_time_logs()
 		self.update_cost()
-		for d in self.get("timesheets"):
+		for d in self.get("time_logs"):
 			self.total_hours += flt(d.hours)
 			if d.billable: self.total_billing_amount += flt(d.billing_amount)
 
@@ -46,8 +46,8 @@
 
 	def set_dates(self):
 		if self.docstatus < 2:
-			start_date = min([d.from_time for d in self.timesheets])
-			end_date = max([d.to_time for d in self.timesheets])
+			start_date = min([d.from_time for d in self.time_logs])
+			end_date = max([d.to_time for d in self.time_logs])
 
 			if start_date and end_date:
 				self.start_date = getdate(start_date)
@@ -73,7 +73,7 @@
 			production_order = frappe.get_doc("Production Order", self.production_order)
 			pending_qty = flt(production_order.qty) - flt(production_order.produced_qty)
 
-		for data in self.timesheets:
+		for data in self.time_logs:
 			if not data.from_time and not data.to_time:
 				frappe.throw(_("Row {0}: From Time and To Time is mandatory.").format(data.idx))
 
@@ -94,7 +94,7 @@
 		if self.production_order:
 			pro = frappe.get_doc('Production Order', self.production_order)
 
-			for timesheet in self.timesheets:
+			for timesheet in self.time_logs:
 				for data in pro.operations:
 					if data.name == timesheet.operation_id:
 						summary = self.get_actual_timesheet_summary(timesheet.operation_id)
@@ -119,7 +119,7 @@
 			(self.production_order, operation_id), as_dict=1)[0]
 
 	def update_task_and_project(self):
-		for data in self.timesheets:
+		for data in self.time_logs:
 			if data.task:
 				task = frappe.get_doc("Task", data.task)
 				task.update_time_and_costing()
@@ -129,12 +129,12 @@
 				frappe.get_doc("Project", data.project).update_project()
 
 	def validate_dates(self):
-		for data in self.timesheets:
+		for data in self.time_logs:
 			if time_diff_in_hours(data.to_time, data.from_time) < 0:
 				frappe.throw(_("To date cannot be before from date"))
 
-	def validate_timesheets(self):
-		for data in self.get('timesheets'):
+	def validate_time_logs(self):
+		for data in self.get('time_logs'):
 			self.validate_overlap(data)
 			self.check_workstation_timings(data)
 
@@ -180,8 +180,8 @@
 
 	def move_to_next_non_overlapping_slot(self, index):
 		from datetime import timedelta
-		if self.timesheets:
-			for data in self.timesheets:
+		if self.time_logs:
+			for data in self.time_logs:
 				if data.idx == index:
 					overlapping = self.get_overlap_for("workstation", data)
 					if not overlapping:
@@ -199,7 +199,7 @@
 			{'workstation': workstation}, as_dict=True)[0]
 
 	def update_cost(self):
-		for data in self.timesheets:
+		for data in self.time_logs:
 			if data.activity_type and not data.billing_amount:
 				rate = get_activity_cost(self.employee, data.activity_type)
 				hours =  data.hours or 0
@@ -253,7 +253,7 @@
 	target.salary_slip_based_on_timesheet = 1
 	target.start_date = doc.start_date
 	target.end_date = doc.end_date
-	
+
 @frappe.whitelist()
 def get_activity_cost(employee=None, activity_type=None):
 	rate = frappe.db.get_values("Activity Cost", {"employee": employee,
@@ -263,7 +263,7 @@
 			["costing_rate", "billing_rate"], as_dict=True)
 
 	return rate[0] if rate else {}
-	
+
 @frappe.whitelist()
 def get_employee_list(doctype, txt, searchfield, start, page_len, filters):
 	return frappe.db.sql("""select distinct(employee) as employee
diff --git a/erpnext/projects/doctype/time_sheet_detail/time_sheet_detail.json b/erpnext/projects/doctype/time_sheet_detail/time_sheet_detail.json
index 4a0787d..b7bda2c 100644
--- a/erpnext/projects/doctype/time_sheet_detail/time_sheet_detail.json
+++ b/erpnext/projects/doctype/time_sheet_detail/time_sheet_detail.json
@@ -295,6 +295,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "depends_on": "eval:parent.production_order", 
    "fieldname": "completed_qty", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -421,6 +422,7 @@
    "collapsible": 0, 
    "default": "0", 
    "depends_on": "", 
+   "description": "To display value check Billable", 
    "fieldname": "billing_amount", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -447,6 +449,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "default": "0", 
+   "description": "To display value check Billable", 
    "fieldname": "costing_amount", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -479,7 +482,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-06-24 15:55:30.746870", 
+ "modified": "2016-06-29 17:18:37.442965", 
  "modified_by": "Administrator", 
  "module": "Projects", 
  "name": "Time Sheet Detail", 
diff --git a/erpnext/public/css/website.css b/erpnext/public/css/website.css
index db8f2fc..065e281 100644
--- a/erpnext/public/css/website.css
+++ b/erpnext/public/css/website.css
@@ -130,6 +130,9 @@
 .cart-container {
   margin: 50px 0px;
 }
+.cart-container .checkout {
+  margin-bottom: 15px;
+}
 .cart-container .cart-item-header .h6 {
   padding: 7px 15px;
 }
@@ -163,12 +166,12 @@
 .cart-container .cart-addresses {
   margin-top: 50px;
 }
-.cart-items .cart-dropdown,
+.cart-items-dropdown .cart-dropdown,
 .item_name_dropdown {
   display: none;
 }
 .cart-dropdown-container {
-  width: 320px;
+  width: 400px;
   padding: 15px;
 }
 .cart-dropdown-container .item-price {
@@ -178,7 +181,11 @@
 .cart-dropdown-container .cart-item-header {
   border-bottom: 1px solid #d1d8dd;
 }
-.cart-dropdown-container .cart-items .cart-dropdown {
+.cart-dropdown-container .cart-items-dropdown {
+  max-height: 350px;
+  overflow: auto;
+}
+.cart-dropdown-container .cart-items-dropdown .cart-dropdown {
   display: block;
   margin-top: 15px;
 }
@@ -196,6 +203,16 @@
 .cart-dropdown-container .col-name-description {
   margin-bottom: 8px;
 }
+.number-spinner {
+  width: 100px;
+  margin-top: 5px;
+}
+.cart-btn {
+  border-color: #ccc;
+}
+.cart-qty {
+  text-align: center;
+}
 .product-list-link .row {
   border-bottom: 1px solid #EBEFF2;
 }
diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js
index 40f5b98..f5819a8 100644
--- a/erpnext/public/js/shopping_cart.js
+++ b/erpnext/public/js/shopping_cart.js
@@ -10,24 +10,29 @@
 		$('.navbar li[data-label="User"] a')
 			.html('<i class="icon-fixed-width icon-user"></i> ' + full_name);
 	}
-	// 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);
-					}
-				}
-			});
-		}
-	});
+	// update login
+	shopping_cart.show_shoppingcart_dropdown();
+	shopping_cart.set_cart_count();
+	shopping_cart.bind_dropdown_cart_buttons();
 });
 
 $.extend(shopping_cart, {
+	show_shoppingcart_dropdown: function() {
+		$(".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);
+						}
+					}
+				});
+			}
+		});
+	},
+	
 	update_cart: function(opts) {
 		if(!full_name || full_name==="Guest") {
 			if(localStorage) {
@@ -82,5 +87,49 @@
 		} else {
 			$badge.remove();
 		}
-	}
+	},
+	
+	shopping_cart_update: function(item_code, newVal, cart_dropdown) {
+		frappe.freeze();
+		shopping_cart.update_cart({
+			item_code: item_code,
+			qty: newVal,
+			with_items: 1,
+			btn: this,
+			callback: function(r) {
+				frappe.unfreeze();
+				if(!r.exc) {
+					$(".cart-items").html(r.message.items);
+					$(".cart-tax-items").html(r.message.taxes);
+					if (cart_dropdown != true) {
+						$(".cart-icon").hide();
+					}					
+				}
+			},
+		});
+	},
+	
+	
+	bind_dropdown_cart_buttons: function() {
+		$(".cart-icon").on('click', '.number-spinner button', function () {
+			var btn = $(this),
+				input = btn.closest('.number-spinner').find('input'),
+				oldValue = input.val().trim(),
+				newVal = 0;
+			
+				if (btn.attr('data-dir') == 'up') {
+					newVal = parseInt(oldValue) + 1;
+				} else {
+					if (oldValue > 1) {
+						newVal = parseInt(oldValue) - 1;
+					}
+			}
+			input.val(newVal);
+			var item_code = input.attr("data-item-code"); 
+			shopping_cart.shopping_cart_update(item_code, newVal, true);
+			return false;
+		});
+		
+	},
+	
 });
diff --git a/erpnext/public/js/website_utils.js b/erpnext/public/js/website_utils.js
index b0fc557..b541606 100644
--- a/erpnext/public/js/website_utils.js
+++ b/erpnext/public/js/website_utils.js
@@ -18,7 +18,7 @@
 erpnext.subscribe_to_newsletter = function(opts, btn) {
 	return frappe.call({
 		type: "POST",
-		method: "erpnext.crm.doctype.newsletter.newsletter.subscribe",
+		method: "frappe.email.doctype.newsletter.newsletter.subscribe",
 		btn: btn,
 		args: {"email": opts.email},
 		callback: opts.callback
diff --git a/erpnext/public/less/website.less b/erpnext/public/less/website.less
index 5d89265..4aa3940 100644
--- a/erpnext/public/less/website.less
+++ b/erpnext/public/less/website.less
@@ -165,6 +165,10 @@
 
 .cart-container {
 	margin: 50px 0px;
+	
+	.checkout {
+		margin-bottom:15px;
+	}
 
 	.cart-item-header .h6 {
 		padding: 7px 15px;
@@ -210,15 +214,16 @@
 	}
 }
 
-.cart-items .cart-dropdown,
+.cart-items-dropdown .cart-dropdown,
 .item_name_dropdown {
-	display:none;
+	display: none;
 
 }
-.cart-dropdown-container {
-	width: 320px;
-	padding: 15px;
 
+.cart-dropdown-container {
+	width: 400px;
+	padding: 15px;
+	
 	.item-price {
 		display: block !important;
 		padding-bottom: 10px;
@@ -227,8 +232,13 @@
 	.cart-item-header {
 		border-bottom: 1px solid #d1d8dd;
 	}
-
-	.cart-items .cart-dropdown {
+	
+	.cart-items-dropdown {
+		max-height: 350px;
+		overflow: auto;	
+	}
+	
+	.cart-items-dropdown .cart-dropdown {
 		display:block;
 	   	margin-top:15px;
 	}
@@ -249,7 +259,18 @@
 	.col-name-description {
 		margin-bottom:8px;
 	}
+}
 
+.number-spinner {
+	width:100px;
+	margin-top:5px;
+}
+
+.cart-btn {
+	border-color: #ccc;
+}
+.cart-qty {
+	text-align:center;
 }
 
 .product-list-link {
@@ -306,5 +327,4 @@
 
 .product-image-wrapper {
 	padding-bottom: 40px;
-}
-
+}
\ No newline at end of file
diff --git a/erpnext/setup/setup_wizard/domainify.py b/erpnext/setup/setup_wizard/domainify.py
index f4cc35a..8bba119 100644
--- a/erpnext/setup/setup_wizard/domainify.py
+++ b/erpnext/setup/setup_wizard/domainify.py
@@ -4,58 +4,62 @@
 from __future__ import unicode_literals
 import frappe
 
-domains = {
-	'Manufacturing': {
-		'desktop_icons': ['Item', 'BOM', 'Customer', 'Supplier', 'Sales Order',
-			'Production Order',  'Stock Entry', 'Purchase Order', 'Task', 'Buying', 'Selling',
-			 'Accounts', 'HR', 'ToDo'],
-		'properties': [
-			{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'collapsible_depends_on', 'value': 'is_stock_item'},
-		],
-		'set_value': [
-			['Stock Settings', None, 'show_barcode_field', 1]
-		]
-	},
+def get_domains():
+	'''Written as a function to prevent data mutation effects'''
+	return {
+		'Manufacturing': {
+			'desktop_icons': ['Item', 'BOM', 'Customer', 'Supplier', 'Sales Order',
+				'Production Order',  'Stock Entry', 'Purchase Order', 'Task', 'Buying', 'Selling',
+				 'Accounts', 'HR', 'ToDo'],
+			'properties': [
+				{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'collapsible_depends_on', 'value': 'is_stock_item'},
+			],
+			'set_value': [
+				['Stock Settings', None, 'show_barcode_field', 1]
+			]
+		},
 
-	'Retail': {
-		'desktop_icons': ['POS', 'Item', 'Customer', 'Sales Invoice',  'Purchase Order', 'Warranty Claim',
-		'Accounts', 'Buying', 'ToDo'],
-		'remove_roles': ['Manufacturing User', 'Manufacturing Manager'],
-		'properties': [
-			{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1},
-			{'doctype': 'Customer', 'fieldname': 'credit_limit_section', 'property': 'hidden', 'value': 1},
-		],
-		'set_value': [
-			['Stock Settings', None, 'show_barcode_field', 1]
-		]
-	},
+		'Retail': {
+			'desktop_icons': ['POS', 'Item', 'Customer', 'Sales Invoice',  'Purchase Order', 'Warranty Claim',
+			'Accounts', 'Buying', 'ToDo'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager'],
+			'properties': [
+				{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1},
+				{'doctype': 'Customer', 'fieldname': 'credit_limit_section', 'property': 'hidden', 'value': 1},
+			],
+			'set_value': [
+				['Stock Settings', None, 'show_barcode_field', 1]
+			]
+		},
 
-	'Distribution': {
-		'desktop_icons': ['Item', 'Customer', 'Supplier', 'Lead', 'Sales Order',
-			 'Sales Invoice', 'CRM', 'Selling', 'Buying', 'Stock', 'Accounts', 'HR', 'ToDo'],
-		'remove_roles': ['Manufacturing User', 'Manufacturing Manager'],
-		'properties': [
-			{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1},
-		],
-		'set_value': [
-			['Stock Settings', None, 'show_barcode_field', 1]
-		]
-	},
+		'Distribution': {
+			'desktop_icons': ['Item', 'Customer', 'Supplier', 'Lead', 'Sales Order',
+				 'Sales Invoice', 'CRM', 'Selling', 'Buying', 'Stock', 'Accounts', 'HR', 'ToDo'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager'],
+			'properties': [
+				{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1},
+			],
+			'set_value': [
+				['Stock Settings', None, 'show_barcode_field', 1]
+			]
+		},
 
-	'Services': {
-		'desktop_icons': ['Project', 'Time Sheet', 'Customer', 'Sales Order', 'Sales Invoice', 'Lead', 'Opportunity',
-			'Expense Claim', 'Employee', 'HR', 'ToDo'],
-		'remove_roles': ['Manufacturing User', 'Manufacturing Manager'],
-		'properties': [
-			{'doctype': 'Item', 'fieldname': 'is_stock_item', 'property': 'default', 'value': 0},
-		],
-		'set_value': [
-			['Stock Settings', None, 'show_barcode_field', 0]
-		]
+		'Services': {
+			'desktop_icons': ['Project', 'Time Sheet', 'Customer', 'Sales Order', 'Sales Invoice', 'Lead', 'Opportunity',
+				'Expense Claim', 'Employee', 'HR', 'ToDo'],
+			'remove_roles': ['Manufacturing User', 'Manufacturing Manager'],
+			'properties': [
+				{'doctype': 'Item', 'fieldname': 'is_stock_item', 'property': 'default', 'value': 0},
+			],
+			'set_value': [
+				['Stock Settings', None, 'show_barcode_field', 0]
+			]
+		}
 	}
-}
 
 def setup_domain(domain):
+	domains = get_domains()
+
 	if not domain in domains:
 		return
 
@@ -85,4 +89,4 @@
 	from frappe.desk.page.setup_wizard.setup_wizard import add_all_roles_to
 	add_all_roles_to('Administrator')
 
-	frappe.db.sql('delete from `tabProperty Setter`')
\ No newline at end of file
+	frappe.db.sql('delete from `tabProperty Setter`')
diff --git a/erpnext/stock/doctype/warehouse/warehouse.json b/erpnext/stock/doctype/warehouse/warehouse.json
index a32ec1f..86516ff 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.json
+++ b/erpnext/stock/doctype/warehouse/warehouse.json
@@ -39,7 +39,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "default": "1", 
+   "default": "0", 
    "fieldname": "is_group", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -588,8 +588,8 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-06-26 17:39:16.856800", 
- "modified_by": "s@s.com", 
+ "modified": "2016-06-29 19:47:24.336215", 
+ "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Warehouse", 
  "owner": "Administrator", 
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index 3b50f30..adef7ce 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -11,9 +11,12 @@
 	nsm_parent_field = 'parent_warehouse'
 
 	def autoname(self):
-		suffix = " - " + frappe.db.get_value("Company", self.company, "abbr")
-		if not self.warehouse_name.endswith(suffix):
-			self.name = self.warehouse_name + suffix
+		if self.company:
+			suffix = " - " + frappe.db.get_value("Company", self.company, "abbr")
+			if not self.warehouse_name.endswith(suffix):
+				self.name = self.warehouse_name + suffix
+		else:
+			self.name = self.warehouse_name
 
 	def onload(self):
 		'''load account name for General Ledger Report'''
@@ -31,6 +34,7 @@
 
 	def update_parent_account(self):
 		if not getattr(self, "__islocal", None) \
+			and cint(frappe.defaults.get_global_default("auto_accounting_for_stock")) \
 			and (self.create_account_under != frappe.db.get_value("Warehouse", self.name, "create_account_under")):
 
 				self.validate_parent_account()
@@ -113,7 +117,7 @@
 		if warehouse_account:
 			frappe.delete_doc("Account", warehouse_account)
 
-		if self.check_sle_exists():
+		if self.check_if_sle_exists():
 			throw(_("Warehouse can not be deleted as stock ledger entry exists for this warehouse."))
 
 		if self.check_if_child_exists():
@@ -251,9 +255,10 @@
 		is_group as expandable
 		from `tab{doctype}`
 		where docstatus < 2
-		and ifnull(`{parent_field}`,'') = %s and `company` = %s
-		order by name""".format(doctype=frappe.db.escape(doctype), parent_field=frappe.db.escape(parent_field)),
-		(parent, company), as_dict=1)
+		and ifnull(`{parent_field}`,'') = %s 
+		and (`company` = %s or company is null or company = '')
+		order by name""".format(doctype=frappe.db.escape(doctype),
+		parent_field=frappe.db.escape(parent_field)), (parent, company), as_dict=1)
 
 	# return warehouses
 	for wh in warehouses:
diff --git a/erpnext/stock/doctype/warehouse/warehouse_tree.js b/erpnext/stock/doctype/warehouse/warehouse_tree.js
index 9069160..0134ca7 100644
--- a/erpnext/stock/doctype/warehouse/warehouse_tree.js
+++ b/erpnext/stock/doctype/warehouse/warehouse_tree.js
@@ -13,7 +13,7 @@
 	fields:[
 		{fieldtype:'Data', fieldname: 'name_field',
 			label:__('New Warehouse Name'), reqd:true},
-		{fieldtype:'Check', fieldname:'is_group', label:__('Group Node'),
+		{fieldtype:'Check', fieldname:'is_group', label:__('Is Group'),
 			description: __("Further nodes can be only created under 'Group' type nodes")}
 	],
 	onrender: function(node) {
diff --git a/erpnext/support/doctype/maintenance_schedule/__init__.py b/erpnext/support/doctype/maintenance_schedule/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/support/doctype/maintenance_schedule/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/support/doctype/maintenance_schedule_detail/__init__.py b/erpnext/support/doctype/maintenance_schedule_detail/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/support/doctype/maintenance_schedule_detail/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py b/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
deleted file mode 100644
index 16013b5..0000000
--- a/erpnext/support/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-from frappe.model.document import Document
-
-class MaintenanceScheduleDetail(Document):
-	pass
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_schedule_item/__init__.py b/erpnext/support/doctype/maintenance_schedule_item/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/support/doctype/maintenance_schedule_item/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py b/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py
deleted file mode 100644
index 22feec3..0000000
--- a/erpnext/support/doctype/maintenance_schedule_item/maintenance_schedule_item.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-from frappe.model.document import Document
-
-class MaintenanceScheduleItem(Document):
-	pass
\ No newline at end of file
diff --git a/erpnext/support/doctype/maintenance_visit/__init__.py b/erpnext/support/doctype/maintenance_visit/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/support/doctype/maintenance_visit/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/support/doctype/maintenance_visit_purpose/__init__.py b/erpnext/support/doctype/maintenance_visit_purpose/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/support/doctype/maintenance_visit_purpose/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py b/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
deleted file mode 100644
index cb0c519..0000000
--- a/erpnext/support/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-from frappe.model.document import Document
-
-class MaintenanceVisitPurpose(Document):
-	pass
\ No newline at end of file
diff --git a/erpnext/support/report/maintenance_schedules/maintenance_schedules.json b/erpnext/support/report/maintenance_schedules/maintenance_schedules.json
deleted file mode 100644
index 2be7446..0000000
--- a/erpnext/support/report/maintenance_schedules/maintenance_schedules.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "apply_user_permissions": 1, 
- "creation": "2013-05-06 14:25:21", 
- "docstatus": 0, 
- "doctype": "Report", 
- "idx": 1, 
- "is_standard": "Yes", 
- "modified": "2014-06-03 07:18:17.144598", 
- "modified_by": "Administrator", 
- "module": "Support", 
- "name": "Maintenance Schedules", 
- "owner": "Administrator", 
- "query": "SELECT\n    ms_sch.scheduled_date as \"Schedule Date:Date:120\",\n\tms_sch.item_code as \"Item Code:Link/Item:120\",\n\tms_sch.item_name as \"Item Name::120\",\n\tms_sch.serial_no as \"Serial No::120\",\n\tms_sch.sales_person as \"Sales Person::120\",\n\tms.customer_name as \"Customer:Link/Customer:120\",\n\tms.address_display as \"Customer Address::120\",\n\tms_item.prevdoc_docname as \"Sales Order:Link/Sales Order:120\",\n\tms.company as \"Company:Link/Company:120\"\n\t\nFROM\n\t`tabMaintenance Schedule` ms, \n    `tabMaintenance Schedule Detail` ms_sch, \n    `tabMaintenance Schedule Item` ms_item\nWHERE\n\tms.name = ms_sch.parent and ms.name = ms_item.parent and ms.docstatus = 1\nORDER BY\n\tms_sch.scheduled_date asc, ms_sch.item_code asc", 
- "ref_doctype": "Maintenance Schedule", 
- "report_name": "Maintenance Schedules", 
- "report_type": "Query Report"
-}
\ No newline at end of file
diff --git a/erpnext/templates/includes/cart.js b/erpnext/templates/includes/cart.js
index d56721d..dbb93a9 100644
--- a/erpnext/templates/includes/cart.js
+++ b/erpnext/templates/includes/cart.js
@@ -16,9 +16,9 @@
 		shopping_cart.bind_address_select();
 		shopping_cart.bind_place_order();
 		shopping_cart.bind_change_qty();
-
+		shopping_cart.bind_dropdown_cart_buttons();
 	},
-
+	
 	bind_address_select: function() {
 		$(".cart-addresses").find('input[data-address-name]').on("click", function() {
 			if($(this).prop("checked")) {
@@ -54,21 +54,26 @@
 		// bind update button
 		$(".cart-items").on("change", ".cart-qty", function() {
 			var item_code = $(this).attr("data-item-code");
-			frappe.freeze();
-			shopping_cart.update_cart({
-				item_code: item_code,
-				qty: $(this).val(),
-				with_items: 1,
-				btn: this,
-				callback: function(r) {
-					frappe.unfreeze();
-					if(!r.exc) {
-						$(".cart-items").html(r.message.items);
-						$(".cart-tax-items").html(r.message.taxes);
-						$(".cart-icon").hide();
-					}
-				},
-			});
+			var newVal = $(this).val();
+			shopping_cart.shopping_cart_update(item_code, newVal);
+		});
+		
+		$(".cart-items").on('click', '.number-spinner button', function () {  
+			var btn = $(this),
+				input = btn.closest('.number-spinner').find('input'),
+				oldValue = input.val().trim(),
+				newVal = 0;
+	
+			if (btn.attr('data-dir') == 'up') {
+				newVal = parseInt(oldValue) + 1;
+			} else {
+				if (oldValue > 1) {
+					newVal = parseInt(oldValue) - 1;
+				}
+			}
+			input.val(newVal);
+			var item_code = input.attr("data-item-code"); 
+			shopping_cart.shopping_cart_update(item_code, newVal);
 		});
 	},
 	
@@ -143,7 +148,7 @@
 	}
 });
 
-$(document).ready(function() {
+frappe.ready(function() {
 	$(".cart-icon").hide();
 	shopping_cart.bind_events();
 });
diff --git a/erpnext/templates/includes/cart/cart_dropdown.html b/erpnext/templates/includes/cart/cart_dropdown.html
index 18148ad..071b281 100644
--- a/erpnext/templates/includes/cart/cart_dropdown.html
+++ b/erpnext/templates/includes/cart/cart_dropdown.html
@@ -11,8 +11,8 @@
 	</div>
 	
 	{% if doc.items %}
-	<div class="cart-items">
-		{% include "templates/includes/cart/cart_items.html" %}
+	<div class="cart-items-dropdown">
+		{% include "templates/includes/cart/cart_items_dropdown.html" %}
 	</div>
 	<div class="checkout-btn">
 	<a href="/cart" class="btn btn-block btn-primary">{{ _("Checkout") }}</a>
diff --git a/erpnext/templates/includes/cart/cart_items.html b/erpnext/templates/includes/cart/cart_items.html
index 976467d..b2e6858 100644
--- a/erpnext/templates/includes/cart/cart_items.html
+++ b/erpnext/templates/includes/cart/cart_items.html
@@ -1,4 +1,5 @@
 {% from "erpnext/templates/includes/order/order_macros.html" import item_name_and_description %}
+{% from "erpnext/templates/includes/order/order_macros.html" import item_name_and_description_cart %}
 
 {% for d in doc.items %}
 <div class="row checkout">
@@ -6,10 +7,21 @@
         {{ 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">
+        <span style="display: inline-block">
+			<div class="input-group number-spinner">
+                <span class="input-group-btn">
+                    <button class="btn btn-default cart-btn" data-dir="dwn">
+                        –</button>
+                </span>
             <input class="form-control text-right cart-qty"
             value = "{{ d.get_formatted('qty') }}"
-            data-item-code="{{ d.item_code }}"></span>    	
+            data-item-code="{{ d.item_code }}">
+                <span class="input-group-btn">
+                    <button class="btn btn-default cart-btn" data-dir="up" style="margin-left:-2px;">
+                        +</button>
+                </span>
+			</div>
+		</span>    	
 	</div>
     <div class="col-sm-2 col-xs-3 text-right col-amount">
         {{ d.get_formatted("amount") }}
@@ -17,14 +29,4 @@
             _("Rate: {0}").format(d.get_formatted("rate")) }}</p>
     </div>
 </div>
-
-<div class="row cart-dropdown">
-    <div class="col-sm-8 col-xs-8 col-name-description">
-        {{ item_name_and_description(d) }}
-    </div>
-    <div class="col-sm-4 col-xs-4 text-right col-amount">
-        {{ d.get_formatted("amount") }}
-
-    </div>
-</div>
 {% endfor %}
\ No newline at end of file
diff --git a/erpnext/templates/includes/cart/cart_items_dropdown.html b/erpnext/templates/includes/cart/cart_items_dropdown.html
new file mode 100644
index 0000000..9a3dbf8
--- /dev/null
+++ b/erpnext/templates/includes/cart/cart_items_dropdown.html
@@ -0,0 +1,13 @@
+{% from "erpnext/templates/includes/order/order_macros.html" import item_name_and_description_cart %}
+
+{% for d in doc.items %}
+<div class="row cart-dropdown">
+    <div class="col-sm-8 col-xs-8 col-name-description">
+        {{ item_name_and_description_cart(d) }}
+    </div>
+    <div class="col-sm-4 col-xs-4 text-right col-amount">
+        {{ d.get_formatted("amount") }}
+
+    </div>
+</div>
+{% endfor %}
\ No newline at end of file
diff --git a/erpnext/templates/includes/navbar/navbar_items.html b/erpnext/templates/includes/navbar/navbar_items.html
index 9cdbd98..c7af2fd 100644
--- a/erpnext/templates/includes/navbar/navbar_items.html
+++ b/erpnext/templates/includes/navbar/navbar_items.html
@@ -1,12 +1,12 @@
 {% extends 'frappe/templates/includes/navbar/navbar_items.html' %}
 
 {% block navbar_right_extension %}
-	<li class="dropdown shopping-cart">
+	<li class="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 id="cart-overlay" 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 3f8affe..41be449 100644
--- a/erpnext/templates/includes/order/order_macros.html
+++ b/erpnext/templates/includes/order/order_macros.html
@@ -12,15 +12,29 @@
             <div class="text-muted small item-description">{{ d.description }}</div>
         </div>
     </div>
-
+{% endmacro %}
+{% macro item_name_and_description_cart(d) %}
     <div class="row item_name_dropdown">
         <div class="col-xs-4 col-sm-4 order-image-col">
             <div class="order-image">
-              <span class="cart-count-badge pull-right small"> {{ d.get_formatted('qty') }} </span>{{ product_image_square(d.image) }}
+             {{ product_image_square(d.image) }}
             </div>
         </div>
         <div class="col-xs-8 col-sm-8">
-            {{ d.item_code }}
+           {{ d.item_code|truncate(25) }}			
+			<div class="input-group number-spinner">
+                <span class="input-group-btn">
+                    <button class="btn btn-default cart-btn" data-dir="dwn">
+                        –</button>
+                </span>
+            <input class="form-control text-right cart-qty"
+            value = "{{ d.get_formatted('qty') }}"
+            data-item-code="{{ d.item_code }}">
+                <span class="input-group-btn">
+                    <button class="btn btn-default cart-btn" data-dir="up">
+                        +</button>
+                </span>
+			</div>
         </div>
     </div>
 {% endmacro %}
\ No newline at end of file
diff --git a/erpnext/templates/pages/cart.html b/erpnext/templates/pages/cart.html
index 35e4989..7f6bf01 100644
--- a/erpnext/templates/pages/cart.html
+++ b/erpnext/templates/pages/cart.html
@@ -30,7 +30,7 @@
 				<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">
+				<div class="col-sm-2 col-xs-3 text-center h6 text-uppercase">
 				{{ _("Qty") }}
 				</div>
 				<div class="col-sm-2 col-xs-3 text-right h6 text-uppercase">
