Fixes in Project
diff --git a/erpnext/projects/doctype/project/project.json b/erpnext/projects/doctype/project/project.json
index 4490b61..62210b8 100644
--- a/erpnext/projects/doctype/project/project.json
+++ b/erpnext/projects/doctype/project/project.json
@@ -131,7 +131,7 @@
    "options": "Project Task", 
    "permlevel": 0, 
    "precision": "", 
-   "reqd": 0
+   "reqd": 1
   }, 
   {
    "fieldname": "percent_complete", 
@@ -279,7 +279,7 @@
  "icon": "icon-puzzle-piece", 
  "idx": 1, 
  "max_attachments": 4, 
- "modified": "2015-03-31 06:12:03.372091", 
+ "modified": "2015-04-10 05:11:18.849171", 
  "modified_by": "Administrator", 
  "module": "Projects", 
  "name": "Project", 
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 1fc327f..b481ee4 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -35,17 +35,12 @@
 
 	def validate(self):
 		self.validate_dates()
-		self.validate_tasks()
 		self.sync_tasks()
 
 	def validate_dates(self):
 		if self.project_start_date and self.completion_date:
 			if getdate(self.completion_date) < getdate(self.project_start_date):
 				frappe.throw(_("Expected Completion Date can not be less than Project Start Date"))
-				
-	def validate_tasks(self):
-		if not self.tasks:
-			frappe.throw("Task is mandatory against a project")
 
 	def sync_tasks(self):
 		"""sync tasks and remove table"""
@@ -74,8 +69,6 @@
 		for t in frappe.get_all("Task", ["name"], {"project": self.name, "name": ("not in", task_names)}):
 			frappe.delete_doc("Task", t.name)
 
-		self.tasks = []
-
 	def update_percent_complete(self):
 		total = frappe.db.sql("""select count(*) from tabTask where project=%s""",
 			self.name)[0][0]
@@ -85,7 +78,6 @@
 			frappe.db.set_value("Project", self.name, "percent_complete",
 			 	int(float(completed) / total * 100))
 
-
 @frappe.whitelist()
 def get_cost_center_name(project_name):
 	return frappe.db.get_value("Project", project_name, "cost_center")
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index fdd225d..6178099 100644
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -61,14 +61,11 @@
 		self.act_end_date= tl.end_date
 			
 	def update_project(self):
-		if self.project:
-			total_activity_cost = frappe.db.sql("""select sum(actual_cost) from `tabTask` 
-				where project = %s""",self.project)
-			frappe.db.set_value("Project", self.project, "total_activity_cost", total_activity_cost)
-	
-			total_expense_claim = frappe.db.sql("""select sum(total_expense_claim) from `tabTask` 
-				where project = %s""",self.project)
-			frappe.db.set_value("Project", self.project, "total_expense_claim", total_expense_claim)
+		if self.project and frappe.db.exists("Project", self.project):
+			total_cost = frappe.db.sql("""select sum(actual_cost) as actual_cost, sum(total_expense_claim) as expense_claim
+				from `tabTask` where project = %s""", self.project, as_dict=1)[0]
+			frappe.db.set_value("Project", self.project, "total_activity_cost", total_cost.actual_cost)
+			frappe.db.set_value("Project", self.project, "total_expense_claim", total_cost.expense_claim)
 
 @frappe.whitelist()
 def get_events(start, end, filters=None):