[new-module] crm
diff --git a/erpnext/config/crm.py b/erpnext/config/crm.py
new file mode 100644
index 0000000..74909c4
--- /dev/null
+++ b/erpnext/config/crm.py
@@ -0,0 +1,126 @@
+from frappe import _
+
+def get_data():
+	return [
+		{
+			"label": _("Documents"),
+			"icon": "icon-star",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Lead",
+					"description": _("Database of potential customers."),
+				},
+				{
+					"type": "doctype",
+					"name": "Customer",
+					"description": _("Customer database."),
+				},
+				{
+					"type": "doctype",
+					"name": "Opportunity",
+					"description": _("Potential opportunities for selling."),
+				},
+				{
+					"type": "doctype",
+					"name": "Contact",
+					"description": _("All Contacts."),
+				},
+				{
+					"type": "doctype",
+					"name": "Newsletter",
+					"description": _("Newsletters to contacts, leads."),
+				},
+			]
+		},
+		{
+			"label": _("Tools"),
+			"icon": "icon-wrench",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "SMS Center",
+					"description":_("Send mass SMS to your contacts"),
+				},
+			]
+		},
+		{
+			"label": _("Setup"),
+			"icon": "icon-cog",
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Campaign",
+					"description": _("Sales campaigns."),
+				},
+				{
+					"type": "page",
+					"label": _("Customer Group"),
+					"name": "Sales Browser",
+					"icon": "icon-sitemap",
+					"link": "Sales Browser/Customer Group",
+					"description": _("Manage Customer Group Tree."),
+					"doctype": "Customer Group",
+				},
+				{
+					"type": "page",
+					"label": _("Territory"),
+					"name": "Sales Browser",
+					"icon": "icon-sitemap",
+					"link": "Sales Browser/Territory",
+					"description": _("Manage Territory Tree."),
+					"doctype": "Territory",
+				},
+				{
+					"type": "page",
+					"label": _("Sales Person"),
+					"name": "Sales Browser",
+					"icon": "icon-sitemap",
+					"link": "Sales Browser/Sales Person",
+					"description": _("Manage Sales Person Tree."),
+					"doctype": "Sales Person",
+				},
+				{
+					"type": "doctype",
+					"name": "SMS Settings",
+					"description": _("Setup SMS gateway settings")
+				},
+			]
+		},
+		{
+			"label": _("Main Reports"),
+			"icon": "icon-table",
+			"items": [
+				{
+					"type": "page",
+					"name": "sales-funnel",
+					"label": _("Sales Funnel"),
+					"icon": "icon-bar-chart",
+				},
+			]
+		},
+		{
+			"label": _("Standard Reports"),
+			"icon": "icon-list",
+			"items": [
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Lead Details",
+					"doctype": "Lead"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Customer Addresses and Contacts",
+					"doctype": "Contact"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Customers Not Buying Since Long Time",
+					"doctype": "Sales Order"
+				},
+			]
+		},
+	]
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index 7d2a620..dbeb8d1 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -45,6 +45,11 @@
 			"icon": "octicon octicon-tag",
 			"type": "module"
 		},
+		"CRM": {
+			"color": "#EF4DB6",
+			"icon": "octicon octicon-broadcast",
+			"type": "module"
+		},
 		"Stock": {
 			"color": "#f39c12",
 			"icon": "icon-truck",
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 0e56fc7..4e06b6b 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -55,7 +55,7 @@
 			self.update_if_missing(party_details)
 
 		elif getattr(self, "lead", None):
-			from erpnext.selling.doctype.lead.lead import get_lead_details
+			from erpnext.crm.doctype.lead.lead import get_lead_details
 			self.update_if_missing(get_lead_details(self.lead))
 
 	def set_price_list_and_item_details(self):
diff --git a/erpnext/crm/__init__.py b/erpnext/crm/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/crm/__init__.py
diff --git a/erpnext/crm/doctype/__init__.py b/erpnext/crm/doctype/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/crm/doctype/__init__.py
diff --git a/erpnext/crm/doctype/lead/.py b/erpnext/crm/doctype/lead/.py
new file mode 100644
index 0000000..70a6b22
--- /dev/null
+++ b/erpnext/crm/doctype/lead/.py
@@ -0,0 +1,9 @@
+# Copyright (c) 2013, Web Notes 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 Lead(Document):
+	pass
diff --git a/erpnext/crm/doctype/lead/__init__.py b/erpnext/crm/doctype/lead/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/crm/doctype/lead/__init__.py
diff --git a/erpnext/selling/doctype/lead/lead.js b/erpnext/crm/doctype/lead/lead.js
similarity index 93%
rename from erpnext/selling/doctype/lead/lead.js
rename to erpnext/crm/doctype/lead/lead.js
index 170e718..b2eab16 100644
--- a/erpnext/selling/doctype/lead/lead.js
+++ b/erpnext/crm/doctype/lead/lead.js
@@ -41,14 +41,14 @@
 
 	create_customer: function() {
 		frappe.model.open_mapped_doc({
-			method: "erpnext.selling.doctype.lead.lead.make_customer",
+			method: "erpnext.crm.doctype.lead.lead.make_customer",
 			frm: cur_frm
 		})
 	},
 
 	create_opportunity: function() {
 		frappe.model.open_mapped_doc({
-			method: "erpnext.selling.doctype.lead.lead.make_opportunity",
+			method: "erpnext.crm.doctype.lead.lead.make_opportunity",
 			frm: cur_frm
 		})
 	}
diff --git a/erpnext/selling/doctype/lead/lead.json b/erpnext/crm/doctype/lead/lead.json
similarity index 98%
rename from erpnext/selling/doctype/lead/lead.json
rename to erpnext/crm/doctype/lead/lead.json
index de43be7..32b604d 100644
--- a/erpnext/selling/doctype/lead/lead.json
+++ b/erpnext/crm/doctype/lead/lead.json
@@ -331,9 +331,9 @@
  ], 
  "icon": "icon-user", 
  "idx": 1, 
- "modified": "2015-02-05 05:11:40.379661", 
+ "modified": "2015-02-16 23:54:10.622839", 
  "modified_by": "Administrator", 
- "module": "Selling", 
+ "module": "CRM", 
  "name": "Lead", 
  "owner": "Administrator", 
  "permissions": [
diff --git a/erpnext/selling/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py
similarity index 100%
rename from erpnext/selling/doctype/lead/lead.py
rename to erpnext/crm/doctype/lead/lead.py
diff --git a/erpnext/selling/doctype/lead/test_lead.py b/erpnext/crm/doctype/lead/test_lead.py
similarity index 90%
rename from erpnext/selling/doctype/lead/test_lead.py
rename to erpnext/crm/doctype/lead/test_lead.py
index 218e75a..181d75b 100644
--- a/erpnext/selling/doctype/lead/test_lead.py
+++ b/erpnext/crm/doctype/lead/test_lead.py
@@ -10,7 +10,7 @@
 
 class TestLead(unittest.TestCase):
 	def test_make_customer(self):
-		from erpnext.selling.doctype.lead.lead import make_customer
+		from erpnext.crm.doctype.lead.lead import make_customer
 
 		frappe.delete_doc_if_exists("Customer", "_Test Lead")
 
diff --git a/erpnext/selling/doctype/lead/test_records.json b/erpnext/crm/doctype/lead/test_records.json
similarity index 100%
rename from erpnext/selling/doctype/lead/test_records.json
rename to erpnext/crm/doctype/lead/test_records.json
diff --git a/erpnext/selling/doctype/opportunity/README.md b/erpnext/crm/doctype/opportunity/README.md
similarity index 100%
rename from erpnext/selling/doctype/opportunity/README.md
rename to erpnext/crm/doctype/opportunity/README.md
diff --git a/erpnext/crm/doctype/opportunity/__init__.py b/erpnext/crm/doctype/opportunity/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/crm/doctype/opportunity/__init__.py
diff --git a/erpnext/selling/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js
similarity index 93%
rename from erpnext/selling/doctype/opportunity/opportunity.js
rename to erpnext/crm/doctype/opportunity/opportunity.js
index 1180793..a0ebcce 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.js
+++ b/erpnext/crm/doctype/opportunity/opportunity.js
@@ -7,12 +7,12 @@
 frappe.ui.form.on_change("Opportunity", "contact_person", erpnext.utils.get_contact_details);
 
 
-frappe.provide("erpnext.selling");
+frappe.provide("erpnext.crm");
 frappe.require("assets/erpnext/js/utils.js");
 cur_frm.email_field = "contact_email";
 
 // TODO commonify this code
-erpnext.selling.Opportunity = frappe.ui.form.Controller.extend({
+erpnext.crm.Opportunity = frappe.ui.form.Controller.extend({
 	onload: function() {
 		if(!this.frm.doc.enquiry_from && this.frm.doc.customer)
 			this.frm.doc.enquiry_from = "Customer";
@@ -62,13 +62,13 @@
 
 	create_quotation: function() {
 		frappe.model.open_mapped_doc({
-			method: "erpnext.selling.doctype.opportunity.opportunity.make_quotation",
+			method: "erpnext.crm.doctype.opportunity.opportunity.make_quotation",
 			frm: cur_frm
 		})
 	}
 });
 
-$.extend(cur_frm.cscript, new erpnext.selling.Opportunity({frm: cur_frm}));
+$.extend(cur_frm.cscript, new erpnext.crm.Opportunity({frm: cur_frm}));
 
 cur_frm.cscript.refresh = function(doc, cdt, cdn) {
 	erpnext.toggle_naming_series();
@@ -102,7 +102,7 @@
 cur_frm.cscript.lead = function(doc, cdt, cdn) {
 	cur_frm.toggle_display("contact_info", doc.customer || doc.lead);
 	frappe.model.map_current_doc({
-		method: "erpnext.selling.doctype.lead.lead.make_opportunity",
+		method: "erpnext.crm.doctype.lead.lead.make_opportunity",
 		source_name: cur_frm.doc.lead,
 		frm: cur_frm
 	});
diff --git a/erpnext/selling/doctype/opportunity/opportunity.json b/erpnext/crm/doctype/opportunity/opportunity.json
similarity index 99%
rename from erpnext/selling/doctype/opportunity/opportunity.json
rename to erpnext/crm/doctype/opportunity/opportunity.json
index 980de56..751df21 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.json
+++ b/erpnext/crm/doctype/opportunity/opportunity.json
@@ -391,9 +391,9 @@
  "icon": "icon-info-sign", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2015-02-05 05:11:41.732687",
+ "modified": "2015-02-16 23:52:23.489259", 
  "modified_by": "Administrator", 
- "module": "Selling", 
+ "module": "CRM", 
  "name": "Opportunity", 
  "owner": "Administrator", 
  "permissions": [
diff --git a/erpnext/selling/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
similarity index 100%
rename from erpnext/selling/doctype/opportunity/opportunity.py
rename to erpnext/crm/doctype/opportunity/opportunity.py
diff --git a/erpnext/selling/doctype/opportunity/opportunity_list.js b/erpnext/crm/doctype/opportunity/opportunity_list.js
similarity index 100%
rename from erpnext/selling/doctype/opportunity/opportunity_list.js
rename to erpnext/crm/doctype/opportunity/opportunity_list.js
diff --git a/erpnext/selling/doctype/opportunity/test_opportunity.py b/erpnext/crm/doctype/opportunity/test_opportunity.py
similarity index 100%
rename from erpnext/selling/doctype/opportunity/test_opportunity.py
rename to erpnext/crm/doctype/opportunity/test_opportunity.py
diff --git a/erpnext/selling/doctype/opportunity/test_records.json b/erpnext/crm/doctype/opportunity/test_records.json
similarity index 100%
rename from erpnext/selling/doctype/opportunity/test_records.json
rename to erpnext/crm/doctype/opportunity/test_records.json
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 243c2d8..255fbc5 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -1,10 +1,11 @@
 Accounts
+CRM
 Buying
-HR
-Manufacturing
 Projects
 Selling
 Setup
+HR
+Manufacturing
 Stock
 Support
 Utilities
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 00db68f..849e953 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -108,3 +108,5 @@
 erpnext.patches.v5_0.update_companywise_payment_account
 erpnext.patches.v5_0.remove_birthday_events
 erpnext.patches.v5_0.update_item_name_in_bom
+execute:frappe.reload_doc('crm', 'doctype', 'lead')
+execute:frappe.reload_doc('crm', 'doctype', 'opportunity')
diff --git a/erpnext/selling/doctype/lead/README.md b/erpnext/selling/doctype/lead/README.md
deleted file mode 100644
index a12dcf6..0000000
--- a/erpnext/selling/doctype/lead/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Prospective customer / prospect database. List of all prospects that could be source of business.
\ No newline at end of file
diff --git a/erpnext/selling/doctype/lead/__init__.py b/erpnext/selling/doctype/lead/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/selling/doctype/lead/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/selling/doctype/lead/lead_list.js b/erpnext/selling/doctype/lead/lead_list.js
deleted file mode 100644
index 9bbde6c..0000000
--- a/erpnext/selling/doctype/lead/lead_list.js
+++ /dev/null
@@ -1,9 +0,0 @@
-frappe.listview_settings['Lead'] = {
-	add_fields: ["territory", "company_name", "status", "source"],
-	get_indicator: function(doc) {
-		var indicator = [__(doc.status), "darkgrey", "status,=," + doc.status];
-		if(doc.status==="Open") indicator[1] = "red";
-		if(doc.status==="Opportunity") indicator[1] = "green";
-		return indicator;
-	}
-};
diff --git a/erpnext/selling/doctype/opportunity/__init__.py b/erpnext/selling/doctype/opportunity/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/selling/doctype/opportunity/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 776671a..c950056 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -32,7 +32,7 @@
 			cur_frm.add_custom_button(__('From Opportunity'),
 				function() {
 					frappe.model.map_current_doc({
-						method: "erpnext.selling.doctype.opportunity.opportunity.make_quotation",
+						method: "erpnext.crm.doctype.opportunity.opportunity.make_quotation",
 						source_doctype: "Opportunity",
 						get_query_filters: {
 							docstatus: 1,
@@ -94,7 +94,7 @@
 	lead: function() {
 		var me = this;
 		frappe.call({
-			method: "erpnext.selling.doctype.lead.lead.get_lead_details",
+			method: "erpnext.crm.doctype.lead.lead.get_lead_details",
 			args: { "lead": this.frm.doc.lead },
 			callback: function(r) {
 				if(r.message) {
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index 5a05220..2c2b51b 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -149,7 +149,7 @@
 		customer_name = frappe.db.get_value("Customer", {"lead_name": lead_name},
 			["name", "customer_name"], as_dict=True)
 		if not customer_name:
-			from erpnext.selling.doctype.lead.lead import _make_customer
+			from erpnext.crm.doctype.lead.lead import _make_customer
 			customer_doclist = _make_customer(lead_name, ignore_permissions=ignore_permissions)
 			customer = frappe.get_doc(customer_doclist)
 			customer.flags.ignore_permissions = ignore_permissions
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index 96f75c0..4e0d766 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -17,7 +17,8 @@
 		"invoiced_amount", "payables"]],
 	["Bank Balance", ["bank_balance"]],
 	["Buying", ["new_purchase_requests", "new_supplier_quotations", "new_purchase_orders"]],
-	["Selling", ["new_leads", "new_enquiries", "new_quotations", "new_sales_orders"]],
+	["CRM", ["new_leads", "new_enquiries"]],
+	["Selling", ["new_quotations", "new_sales_orders"]],
 	["Stock", ["new_delivery_notes",  "new_purchase_receipts", "new_stock_entries"]],
 	["Support", ["new_communications", "new_support_tickets", "open_tickets"]],
 	["Projects", ["new_projects"]],
diff --git a/erpnext/setup/doctype/item_group/item_group.json b/erpnext/setup/doctype/item_group/item_group.json
index 3124e11..32d0bb6 100644
--- a/erpnext/setup/doctype/item_group/item_group.json
+++ b/erpnext/setup/doctype/item_group/item_group.json
@@ -9,6 +9,13 @@
  "document_type": "Master", 
  "fields": [
   {
+   "fieldname": "gs", 
+   "fieldtype": "Section Break", 
+   "in_list_view": 0, 
+   "label": "General Settings", 
+   "permlevel": 0
+  }, 
+  {
    "fieldname": "item_group_name", 
    "fieldtype": "Data", 
    "in_list_view": 1, 
@@ -21,13 +28,6 @@
    "search_index": 0
   }, 
   {
-   "fieldname": "gs", 
-   "fieldtype": "Section Break", 
-   "in_list_view": 0, 
-   "label": "General Settings", 
-   "permlevel": 0
-  }, 
-  {
    "description": "", 
    "fieldname": "parent_item_group", 
    "fieldtype": "Link", 
@@ -190,7 +190,7 @@
  "in_create": 1, 
  "issingle": 0, 
  "max_attachments": 3, 
- "modified": "2015-02-16 05:44:59.435380", 
+ "modified": "2015-02-16 23:50:48.113171", 
  "modified_by": "Administrator", 
  "module": "Setup", 
  "name": "Item Group",