diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 1306278..de1c3f8 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -25,13 +25,13 @@
 					"description": task.description,
 					"task_id": task.name
 				})
-			
+
 	def __setup__(self):
 		self.onload()
-	
+
 	def get_tasks(self):
 		return frappe.get_all("Task", "*", {"project": self.name}, order_by="exp_start_date asc")
-		
+
 	def validate(self):
 		self.validate_dates()
 		self.sync_tasks()
@@ -74,7 +74,7 @@
 		for t in frappe.get_all("Task", ["name"], {"project": self.name, "name": ("not in", task_names)}):
 			frappe.delete_doc("Task", t.name)
 			task_added_or_deleted = True
-			
+
 		if task_added_or_deleted:
 			self.update_project()
 
@@ -87,12 +87,12 @@
 		if total:
 			completed = frappe.db.sql("""select count(*) from tabTask where
 				project=%s and status in ('Closed', 'Cancelled')""", self.name)[0][0]
-				
+
 			self.percent_complete = flt(completed) / total * 100
 
 	def update_costing(self):
-		total_cost = frappe.db.sql("""select sum(total_costing_amount) as costing_amount,
-			sum(total_billing_amount) as billing_amount, sum(total_expense_claim) as expense_claim,
+		total_cost = frappe.db.sql("""select sum(ifnull(total_costing_amount, 0)) as costing_amount,
+			sum(ifnull(total_billing_amount, 0)) as billing_amount, sum(ifnull(total_expense_claim, 0)) as expense_claim,
 			min(act_start_date) as start_date, max(act_end_date) as end_date, sum(actual_time) as time
 			from `tabTask` where project = %s""", self.name, as_dict=1)[0]
 
@@ -105,12 +105,12 @@
 		self.gross_margin = flt(total_cost.billing_amount) - flt(total_cost.costing_amount)
 		if self.total_billing_amount:
 			self.per_gross_margin = (self.gross_margin / flt(self.total_billing_amount)) *100
-			
+
 	def update_purchase_costing(self):
-		total_purchase_cost = frappe.db.sql("""select sum(base_net_amount)
-			from `tabPurchase Invoice Item` where project_name = %s and docstatus=1 """, self.name)
-			
-		self.total_purchase_cost = total_purchase_cost[0][0] if total_purchase_cost else 0
+		total_purchase_cost = frappe.db.sql("""select sum(ifnull(base_net_amount, 0))
+			from `tabPurchase Invoice Item` where project_name = %s and docstatus=1""", self.name)
+
+		self.total_purchase_cost = total_purchase_cost and total_purchase_cost[0][0] or 0
 
 @frappe.whitelist()
 def get_cost_center_name(project_name):
