fix: Made employee optional in sales person
diff --git a/erpnext/setup/doctype/sales_person/sales_person.json b/erpnext/setup/doctype/sales_person/sales_person.json
index 73f7623..1c34657 100644
--- a/erpnext/setup/doctype/sales_person/sales_person.json
+++ b/erpnext/setup/doctype/sales_person/sales_person.json
@@ -22,6 +22,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "name_and_employee_id", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -54,6 +55,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "sales_person_name", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -88,6 +90,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "Select company name first.", 
+   "fetch_if_empty": 0, 
    "fieldname": "parent_sales_person", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -122,6 +125,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "commission_rate", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -154,6 +158,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "is_group", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -189,6 +194,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "1", 
+   "fetch_if_empty": 0, 
    "fieldname": "enabled", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -221,6 +227,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "cb0", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -251,6 +258,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "employee", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -270,7 +278,7 @@
    "read_only": 0, 
    "remember_last_selected_value": 0, 
    "report_hide": 0, 
-   "reqd": 1, 
+   "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
    "translatable": 0, 
@@ -284,6 +292,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "fetch_from": "employee.department", 
+   "fetch_if_empty": 0, 
    "fieldname": "department", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -317,6 +326,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "lft", 
    "fieldtype": "Int", 
    "hidden": 1, 
@@ -350,6 +360,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "rgt", 
    "fieldtype": "Int", 
    "hidden": 1, 
@@ -383,6 +394,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "old_parent", 
    "fieldtype": "Data", 
    "hidden": 1, 
@@ -417,6 +429,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "Set targets Item Group-wise for this Sales Person.", 
+   "fetch_if_empty": 0, 
    "fieldname": "target_details_section_break", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -450,6 +463,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "targets", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -485,6 +499,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "Select Monthly Distribution to unevenly distribute targets across months.", 
+   "fetch_if_empty": 0, 
    "fieldname": "distribution_id", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -524,7 +539,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2019-01-30 11:28:16.966735", 
+ "modified": "2019-04-09 20:03:35.967037", 
  "modified_by": "Administrator", 
  "module": "Setup", 
  "name": "Sales Person", 
@@ -594,7 +609,7 @@
  "search_fields": "parent_sales_person", 
  "show_name_in_global_search": 1, 
  "sort_order": "ASC", 
- "track_changes": 1, 
+ "track_changes": 0, 
  "track_seen": 0, 
  "track_views": 0
 }
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_person/sales_person.py b/erpnext/setup/doctype/sales_person/sales_person.py
index ab65f74..3379534 100644
--- a/erpnext/setup/doctype/sales_person/sales_person.py
+++ b/erpnext/setup/doctype/sales_person/sales_person.py
@@ -21,18 +21,18 @@
 		self.load_dashboard_info()
 
 	def load_dashboard_info(self):
-		company_default_currency = get_default_currency() 
+		company_default_currency = get_default_currency()
 
 		allocated_amount = frappe.db.sql("""
 			select sum(allocated_amount)
-			from `tabSales Team` 
+			from `tabSales Team`
 			where sales_person = %s and docstatus=1 and parenttype = 'Sales Order'
 		""",(self.sales_person_name))
 
 		info = {}
 		info["allocated_amount"] = flt(allocated_amount[0][0]) if allocated_amount else 0
 		info["currency"] = company_default_currency
-		
+
 		self.set_onload('dashboard_info', info)
 
 	def on_update(self):
@@ -48,10 +48,11 @@
 				return frappe.db.get_value("User", user, "email") or user
 
 	def validate_employee_id(self):
-		sales_person = frappe.db.get_value("Sales Person", {"employee": self.employee})
-		
-		if sales_person and sales_person != self.name:
-			frappe.throw(_("Another Sales Person {0} exists with the same Employee id").format(sales_person))
+		if self.employee:
+			sales_person = frappe.db.get_value("Sales Person", {"employee": self.employee})
+
+			if sales_person and sales_person != self.name:
+				frappe.throw(_("Another Sales Person {0} exists with the same Employee id").format(sales_person))
 
 def on_doctype_update():
 	frappe.db.add_index("Sales Person", ["lft", "rgt"])
@@ -65,7 +66,7 @@
 		from
 			`tabSales Order` dt, `tabSales Team` st
 		where
-			st.sales_person = %s and st.parent = dt.name and dt.transaction_date > date_sub(curdate(), interval 1 year) 
+			st.sales_person = %s and st.parent = dt.name and dt.transaction_date > date_sub(curdate(), interval 1 year)
 			group by dt.transaction_date ''', name)))
 
 	sales_invoice = dict(frappe.db.sql('''select
@@ -75,7 +76,7 @@
 		where
 			st.sales_person = %s and st.parent = dt.name and dt.posting_date > date_sub(curdate(), interval 1 year)
 			group by dt.posting_date ''', name))
-	
+
 	for key in sales_invoice:
 		if out.get(key):
 			out[key] += sales_invoice[key]
@@ -97,5 +98,3 @@
 			out[key] = delivery_note[key]
 
 	return out
-
-