[projects] added ganttview, removed old timesheet
diff --git a/config.json b/config.json
index e0b85b1..33e898f 100644
--- a/config.json
+++ b/config.json
@@ -34,7 +34,7 @@
 			"type": "module",
 			"link": "projects-home",
 			"color": "#8e44ad",
-			"icon": "icon-tasks"
+			"icon": "icon-puzzle-piece"
 		},
 		"Manufacturing": {
 			"type": "module",
diff --git a/projects/doctype/project/project.js b/projects/doctype/project/project.js
index d4a034f..a6f32cb 100644
--- a/projects/doctype/project/project.js
+++ b/projects/doctype/project/project.js
@@ -15,20 +15,16 @@
 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 // show tasks
-wn.require("public/app/js/gantt_task.js");
-
 cur_frm.cscript.refresh = function(doc) {
 	if(!doc.__islocal) {
-		// refresh gantt chart
-		wn.require('app/projects/gantt_task.js');
-		if(!cur_frm.gantt_area)
-			cur_frm.gantt_area = $('<div>')
-				.appendTo(cur_frm.fields_dict.project_tasks.wrapper);
-		cur_frm.gantt_area.empty();
-		erpnext.show_task_gantt(cur_frm.gantt_area, cur_frm.docname);		
-	} else {
-		if(cur_frm.gantt_area)
-			cur_frm.gantt_area.empty();
+		cur_frm.add_custom_button("Gantt Chart", function() {
+			wn.route_options = {"project": doc.name}
+			wn.set_route("Gantt", "Task");
+		}, "icon-tasks");
+		cur_frm.add_custom_button("Tasks", function() {
+			wn.route_options = {"project": doc.name}
+			wn.set_route("List", "Task");
+		}, "icon-list");
 	}
 }
 
diff --git a/projects/doctype/project/project.py b/projects/doctype/project/project.py
index 1de551c..9455a98 100644
--- a/projects/doctype/project/project.py
+++ b/projects/doctype/project/project.py
@@ -18,57 +18,14 @@
 import webnotes
 
 from webnotes.utils import flt, getdate
-from webnotes.model import db_exists
 from webnotes.model.doc import Document
-from webnotes.model.bean import copy_doclist
 from webnotes import msgprint
 
-sql = webnotes.conn.sql
-	
-
-
 class DocType:
 	def __init__(self, doc, doclist=[]):
 		self.doc = doc
 		self.doclist = doclist
 	
-	# Get Customer Details along with its primary contact details
-	# ==============================================================
-	def get_customer_details(self):
-		details =sql("select address, territory, customer_group,customer_name from `tabCustomer` where name=%s and docstatus!=2",(self.doc.customer),as_dict=1)
-		if details:
-			ret = {
-				'customer_address'	:	details and details[0]['address'] or '',
-				'territory'			 :	details and details[0]['territory'] or '',
-				'customer_group'		:	details and details[0]['customer_group'] or '',
-	'customer_name'		 :	details and details[0]['customer_name'] or ''
-			}
-			#get primary contact details(this is done separately coz. , if join query used & no primary contact thn it would not be able to fetch customer details)
-			contact_det = sql("select contact_name, phone, email_id from `tabContact` where customer_name='%s' and is_customer=1 and is_primary_contact=1 and docstatus!=2" %(self.doc.customer), as_dict = 1)
-			ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or ''
-			ret['contact_no'] = contact_det and contact_det[0]['phone'] or ''
-			ret['email_id'] = contact_det and contact_det[0]['email_id'] or ''		
-			return ret
-		else:
-			msgprint("Customer : %s does not exist in system." % (self.doc.customer))
-			raise Exception	
-	
-	# Get customer's contact person details
-	# ==============================================================
-	def get_contact_details(self):
-		contact = sql("select contact_no, email_id from `tabContact` where contact_name = '%s' and customer_name = '%s' and docstatus != 2" %(self.doc,contact_person,self.doc.customer), as_dict=1)
-		if contact:
-			ret = {
-				'contact_no' : contact and contact[0]['contact_no'] or '',
-				'email_id' : contact and contact[0]['email_id'] or ''
-			}
-			return ret
-		else:
-			msgprint("Contact Person : %s does not exist in the system." % (self.doc,contact_person))
-			raise Exception
-	
-	#calculate gross profit
-	#=============================================
 	def get_gross_profit(self):
 		pft, per_pft =0, 0
 		pft = flt(self.doc.project_value) - flt(self.doc.est_material_cost)
@@ -77,16 +34,15 @@
 		ret = {'gross_margin_value': pft, 'per_gross_margin': per_pft}
 		return ret
 		
-	# validate
-	#================================================
 	def validate(self):
+		"""validate start date before end date"""
 		if self.doc.project_start_date and self.doc.completion_date:
 			if getdate(self.doc.completion_date) < getdate(self.doc.project_start_date):
 				msgprint("Expected Completion Date can not be less than Project Start Date")
 				raise Exception
 				
 	def on_update(self):
-		# update milestones
+		"""add events for milestones"""
 		webnotes.conn.sql("""delete from tabEvent where ref_type='Project' and ref_name=%s""",
 			self.doc.name)
 		for d in self.doclist:
@@ -103,3 +59,12 @@
 		event.ref_type = 'Project'
 		event.ref_name = self.doc.name
 		event.save(1)
+		
+	def update_percent_complete(self):
+		total = webnotes.conn.sql("""select count(*) from tabTask where project=%s""", 
+			self.doc.name)[0][0]
+		completed = webnotes.conn.sql("""select count(*) from tabTask where
+			project=%s and status='Closed'""", self.doc.name)[0][0]
+		webnotes.conn.set_value("Project", self.doc.name, "percent_complete",
+		 	int(float(completed) / total * 100))
+
diff --git a/projects/doctype/project/project.txt b/projects/doctype/project/project.txt
index 43079af..88dfb97 100644
--- a/projects/doctype/project/project.txt
+++ b/projects/doctype/project/project.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:55:07", 
   "docstatus": 0, 
-  "modified": "2013-06-03 17:03:08", 
+  "modified": "2013-06-07 12:38:37", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -26,19 +26,14 @@
  }, 
  {
   "amend": 0, 
-  "cancel": 1, 
-  "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
   "parent": "Project", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
-  "permlevel": 0, 
   "read": 1, 
   "report": 1, 
-  "role": "Projects User", 
-  "submit": 0, 
-  "write": 1
+  "submit": 0
  }, 
  {
   "doctype": "DocType", 
@@ -146,19 +141,6 @@
   "search_index": 0
  }, 
  {
-  "description": "Tasks belonging to this Project.", 
-  "doctype": "DocField", 
-  "fieldname": "sb_tasks", 
-  "fieldtype": "Section Break", 
-  "label": "Tasks"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "project_tasks", 
-  "fieldtype": "HTML", 
-  "label": "Project Tasks"
- }, 
- {
   "description": "Important dates and commitments in your project life cycle", 
   "doctype": "DocField", 
   "fieldname": "sb_milestones", 
@@ -198,6 +180,14 @@
  }, 
  {
   "doctype": "DocField", 
+  "fieldname": "percent_complete", 
+  "fieldtype": "Percent", 
+  "in_list_view": 1, 
+  "label": "Percent Complete", 
+  "read_only": 1
+ }, 
+ {
+  "doctype": "DocField", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "label": "Company", 
@@ -290,6 +280,18 @@
   "search_index": 1
  }, 
  {
-  "doctype": "DocPerm"
+  "cancel": 1, 
+  "create": 1, 
+  "doctype": "DocPerm", 
+  "permlevel": 0, 
+  "role": "Projects User", 
+  "write": 1
+ }, 
+ {
+  "cancel": 0, 
+  "create": 0, 
+  "doctype": "DocPerm", 
+  "permlevel": 1, 
+  "role": "All"
  }
 ]
\ No newline at end of file
diff --git a/projects/doctype/task/task.py b/projects/doctype/task/task.py
index ad2303e..6069073 100644
--- a/projects/doctype/task/task.py
+++ b/projects/doctype/task/task.py
@@ -15,7 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from __future__ import unicode_literals
-import webnotes
+import webnotes, json
 
 from webnotes.utils import getdate, today
 from webnotes.model import db_exists
@@ -59,4 +59,35 @@
 			
 		if self.doc.status=="Closed" and status != "Closed" and not self.doc.act_end_date:
 			self.doc.act_end_date = today()
-		
\ No newline at end of file
+			
+	def on_update(self):
+		"""update percent complete in project"""
+		if self.doc.project:
+			webnotes.bean("Project", self.doc.project).controller.update_percent_complete()
+
+@webnotes.whitelist()
+def get_events(start, end, filters=None):
+	from webnotes.widgets.reportview import build_match_conditions
+	if not webnotes.has_permission("Task"):
+		webnotes.msgprint(_("No Permission"), raise_exception=1)
+
+	conditions = build_match_conditions("Task")
+	conditions and (" and " + conditions) or ""
+	
+	if filters:
+		filters = json.loads(filters)
+		for key in filters:
+			if filters[key]:
+				conditions += " and " + key + ' = "' + filters[key].replace('"', '\"') + '"'
+	
+	data = webnotes.conn.sql("""select name, exp_start_date, exp_end_date, 
+		subject, status, project from `tabTask`
+		where ((exp_start_date between '%(start)s' and '%(end)s') \
+			or (exp_end_date between '%(start)s' and '%(end)s'))
+		%(conditions)s""" % {
+			"start": start,
+			"end": end,
+			"conditions": conditions
+		}, as_dict=True, update={"allDay": 0}, debug=1)
+
+	return data
diff --git a/projects/doctype/time_log/time_log.py b/projects/doctype/time_log/time_log.py
index 8ab46c1..0a5adba 100644
--- a/projects/doctype/time_log/time_log.py
+++ b/projects/doctype/time_log/time_log.py
@@ -5,7 +5,6 @@
 from webnotes import _
 from webnotes.utils import cstr
 
-from webnotes.widgets.reportview import build_match_conditions
 
 class OverlapError(webnotes.ValidationError): pass
 
@@ -60,6 +59,10 @@
 				
 @webnotes.whitelist()
 def get_events(start, end):
+	from webnotes.widgets.reportview import build_match_conditions
+	if not webnotes.has_permission("Time Log"):
+		webnotes.msgprint(_("No Permission"), raise_exception=1)
+
 	match = build_match_conditions("Time Log")
 	data = webnotes.conn.sql("""select name, from_time, to_time, 
 		activity_type, task, project from `tabTime Log`
diff --git a/projects/doctype/timesheet/__init__.py b/projects/doctype/timesheet/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/projects/doctype/timesheet/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/projects/doctype/timesheet/locale/_messages_doc.json b/projects/doctype/timesheet/locale/_messages_doc.json
deleted file mode 100644
index fab2534..0000000
--- a/projects/doctype/timesheet/locale/_messages_doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-[
- "Status", 
- "Timesheet By", 
- "Notes", 
- "Timesheet", 
- "Timesheet Date", 
- "Amendment Date", 
- "Cancelled", 
- "Draft", 
- "Submitted", 
- "Timesheet Details", 
- "Amended From", 
- "Projects"
-]
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/ar-doc.json b/projects/doctype/timesheet/locale/ar-doc.json
deleted file mode 100644
index 335b3a9..0000000
--- a/projects/doctype/timesheet/locale/ar-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "\u0639\u062f\u0644 \u0645\u0646", 
- "Amendment Date": "\u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u062a\u0627\u0631\u064a\u062e", 
- "Cancelled": "\u0625\u0644\u063a\u0627\u0621", 
- "Draft": "\u0645\u0633\u0648\u062f\u0629", 
- "Notes": "\u062a\u0644\u0627\u062d\u0638", 
- "Projects": "\u0645\u0634\u0627\u0631\u064a\u0639", 
- "Status": "\u062d\u0627\u0644\u0629", 
- "Submitted": "\u0627\u0644\u0645\u0642\u062f\u0645\u0629", 
- "Timesheet": "\u0633\u0627\u0639\u0627\u062a \u0627\u0644\u0639\u0645\u0644", 
- "Timesheet By": "\u0627\u0644\u062c\u062f\u0648\u0644 \u0627\u0644\u0632\u0645\u0646\u064a \u0628\u0648\u0627\u0633\u0637\u0629", 
- "Timesheet Date": "\u0627\u0644\u062c\u062f\u0648\u0644 \u0627\u0644\u0632\u0645\u0646\u064a \u062a\u0627\u0631\u064a\u062e", 
- "Timesheet Details": "\u0627\u0644\u062c\u062f\u0648\u0644 \u0627\u0644\u0632\u0645\u0646\u064a \u062a\u0641\u0627\u0635\u064a\u0644"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/de-doc.json b/projects/doctype/timesheet/locale/de-doc.json
deleted file mode 100644
index e070b21..0000000
--- a/projects/doctype/timesheet/locale/de-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "Ge\u00e4ndert von", 
- "Amendment Date": "\u00c4nderung Datum", 
- "Cancelled": "Abgesagt", 
- "Draft": "Entwurf", 
- "Notes": "Aufzeichnungen", 
- "Projects": "Projekte", 
- "Status": "Status", 
- "Submitted": "Eingereicht", 
- "Timesheet": "Timesheet", 
- "Timesheet By": "Timesheet By", 
- "Timesheet Date": "Timesheet Datum", 
- "Timesheet Details": "Timesheet Einzelheiten"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/es-doc.json b/projects/doctype/timesheet/locale/es-doc.json
deleted file mode 100644
index a769174..0000000
--- a/projects/doctype/timesheet/locale/es-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "De modificada", 
- "Amendment Date": "Enmienda Fecha", 
- "Cancelled": "Cancelado", 
- "Draft": "Borrador", 
- "Notes": "Notas", 
- "Projects": "Proyectos", 
- "Status": "Estado", 
- "Submitted": "Enviado", 
- "Timesheet": "Parte de horas", 
- "Timesheet By": "Por parte de horas", 
- "Timesheet Date": "Fecha de parte de horas", 
- "Timesheet Details": "Detalles del parte de horas"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/fr-doc.json b/projects/doctype/timesheet/locale/fr-doc.json
deleted file mode 100644
index 7fe0e38..0000000
--- a/projects/doctype/timesheet/locale/fr-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "De modifi\u00e9e", 
- "Amendment Date": "Date de la modification", 
- "Cancelled": "Annul\u00e9", 
- "Draft": "Avant-projet", 
- "Notes": "Remarques", 
- "Projects": "Projets", 
- "Status": "Statut", 
- "Submitted": "Soumis", 
- "Timesheet": "Feuille de pr\u00e9sence", 
- "Timesheet By": "Feuille de temps par", 
- "Timesheet Date": "Date de feuille de temps", 
- "Timesheet Details": "D\u00e9tails des feuilles de temps"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/hi-doc.json b/projects/doctype/timesheet/locale/hi-doc.json
deleted file mode 100644
index 18e02b7..0000000
--- a/projects/doctype/timesheet/locale/hi-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "\u0938\u0947 \u0938\u0902\u0936\u094b\u0927\u093f\u0924", 
- "Amendment Date": "\u0938\u0902\u0936\u094b\u0927\u0928 \u0924\u093f\u0925\u093f", 
- "Cancelled": "Cancelled", 
- "Draft": "\u092e\u0938\u094c\u0926\u093e", 
- "Notes": "\u0928\u094b\u091f\u094d\u0938", 
- "Projects": "\u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e\u0913\u0902", 
- "Status": "\u0939\u0948\u0938\u093f\u092f\u0924", 
- "Submitted": "\u092a\u0947\u0936", 
- "Timesheet": "Timesheet", 
- "Timesheet By": "\u0926\u094d\u0935\u093e\u0930\u093e Timesheet", 
- "Timesheet Date": "Timesheet \u0924\u093f\u0925\u093f", 
- "Timesheet Details": "Timesheet \u0935\u093f\u0935\u0930\u0923"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/hr-doc.json b/projects/doctype/timesheet/locale/hr-doc.json
deleted file mode 100644
index 5f7e1d6..0000000
--- a/projects/doctype/timesheet/locale/hr-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "Izmijenjena Od", 
- "Amendment Date": "Amandman Datum", 
- "Cancelled": "Otkazan", 
- "Draft": "Skica", 
- "Notes": "Bilje\u0161ke", 
- "Projects": "Projekti", 
- "Status": "Status", 
- "Submitted": "Prijavljen", 
- "Timesheet": "Kontrolna kartica", 
- "Timesheet By": "Timesheet Do", 
- "Timesheet Date": "Timesheet Datum", 
- "Timesheet Details": "Timesheet Detalji"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/nl-doc.json b/projects/doctype/timesheet/locale/nl-doc.json
deleted file mode 100644
index 035df4c..0000000
--- a/projects/doctype/timesheet/locale/nl-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "Gewijzigd Van", 
- "Amendment Date": "Wijziging Datum", 
- "Cancelled": "Geannuleerd", 
- "Draft": "Ontwerp", 
- "Notes": "Opmerkingen", 
- "Projects": "Projecten", 
- "Status": "Staat", 
- "Submitted": "Ingezonden", 
- "Timesheet": "Rooster", 
- "Timesheet By": "Timesheet Door", 
- "Timesheet Date": "Timesheet Datum", 
- "Timesheet Details": "Timesheet Details"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/pt-BR-doc.json b/projects/doctype/timesheet/locale/pt-BR-doc.json
deleted file mode 100644
index 5ad54cf..0000000
--- a/projects/doctype/timesheet/locale/pt-BR-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "Corrigido De", 
- "Amendment Date": "Data da Corre\u00e7\u00e3o", 
- "Cancelled": "Cancelado", 
- "Draft": "Rascunho", 
- "Notes": "Notas", 
- "Projects": "Projetos", 
- "Status": "Estado", 
- "Submitted": "Enviado", 
- "Timesheet": "Quadro de Hor\u00e1rios", 
- "Timesheet By": "Quadro de Hor\u00e1rios Por", 
- "Timesheet Date": "Data do Quadro de Hor\u00e1rios", 
- "Timesheet Details": "Detalhes do Quadro de Hor\u00e1rios"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/pt-doc.json b/projects/doctype/timesheet/locale/pt-doc.json
deleted file mode 100644
index f31ce7e..0000000
--- a/projects/doctype/timesheet/locale/pt-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "Alterado De", 
- "Amendment Date": "Data emenda", 
- "Cancelled": "Cancelado", 
- "Draft": "Rascunho", 
- "Notes": "Notas", 
- "Projects": "Projetos", 
- "Status": "Estado", 
- "Submitted": "Enviado", 
- "Timesheet": "Quadro de Hor\u00e1rios", 
- "Timesheet By": "Por Timesheet", 
- "Timesheet Date": "Data Timesheet", 
- "Timesheet Details": "Detalhes quadro de hor\u00e1rios"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/sr-doc.json b/projects/doctype/timesheet/locale/sr-doc.json
deleted file mode 100644
index c9f9d9f..0000000
--- a/projects/doctype/timesheet/locale/sr-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "\u0418\u0437\u043c\u0435\u045a\u0435\u043d\u0430 \u043e\u0434", 
- "Amendment Date": "\u0410\u043c\u0430\u043d\u0434\u043c\u0430\u043d \u0414\u0430\u0442\u0443\u043c", 
- "Cancelled": "\u041e\u0442\u043a\u0430\u0437\u0430\u043d", 
- "Draft": "\u041d\u0430\u0446\u0440\u0442", 
- "Notes": "\u0411\u0435\u043b\u0435\u0448\u043a\u0435", 
- "Projects": "\u041f\u0440\u043e\u0458\u0435\u043a\u0442\u0438", 
- "Status": "\u0421\u0442\u0430\u0442\u0443\u0441", 
- "Submitted": "\u041f\u043e\u0434\u043d\u0435\u0442", 
- "Timesheet": "\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u0446\u0430", 
- "Timesheet By": "\u041f\u043e \u0422\u0438\u043c\u0435\u0441\u0445\u0435\u0435\u0442", 
- "Timesheet Date": "\u0414\u0430\u0442\u0443\u043c \u0422\u0438\u043c\u0435\u0441\u0445\u0435\u0435\u0442", 
- "Timesheet Details": "\u0422\u0438\u043c\u0435\u0441\u0445\u0435\u0435\u0442 \u0414\u0435\u0442\u0430\u0459\u0438"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/ta-doc.json b/projects/doctype/timesheet/locale/ta-doc.json
deleted file mode 100644
index cb4cc25..0000000
--- a/projects/doctype/timesheet/locale/ta-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "\u0bae\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f", 
- "Amendment Date": "\u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bc7\u0ba4\u0bbf", 
- "Cancelled": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1", 
- "Draft": "\u0b95\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bb5\u0bc0\u0b9a\u0bcd\u0b9a\u0bc1", 
- "Notes": "\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", 
- "Projects": "\u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd", 
- "Status": "\u0b85\u0ba8\u0bcd\u0ba4\u0bb8\u0bcd\u0ba4\u0bc1", 
- "Submitted": "\u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1", 
- "Timesheet": "Timesheet", 
- "Timesheet By": "By Timesheet", 
- "Timesheet Date": "Timesheet \u0ba4\u0bc7\u0ba4\u0bbf", 
- "Timesheet Details": "Timesheet \u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/th-doc.json b/projects/doctype/timesheet/locale/th-doc.json
deleted file mode 100644
index 6003a4c..0000000
--- a/projects/doctype/timesheet/locale/th-doc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21", 
- "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02", 
- "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01", 
- "Draft": "\u0e23\u0e48\u0e32\u0e07", 
- "Notes": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38", 
- "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23", 
- "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30", 
- "Submitted": "Submitted", 
- "Timesheet": "timesheet", 
- "Timesheet By": "timesheet \u0e42\u0e14\u0e22", 
- "Timesheet Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 timesheet", 
- "Timesheet Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Timesheet"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/timesheet.js b/projects/doctype/timesheet/timesheet.js
deleted file mode 100644
index ab2e05b..0000000
--- a/projects/doctype/timesheet/timesheet.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-
-// ======================= OnLoad =============================================
-cur_frm.cscript.onload = function(doc,cdt,cdn){  
-  if(!doc.status) set_multiple(cdt,cdn,{status:'Draft'});
-  if(!doc.timesheet_date) set_multiple(cdt,cdn,{timesheet_date:get_today()});
-}
-
-cur_frm.cscript.refresh = function(doc,cdt,cdn){
-	cur_frm.set_intro("Timesheets will soon be removed. Please create a new Time Log. To create \
-	 a new Time Log, to to Projects > Time Log > New Time Log. This will be removed in a few days.")
-}
-
-
-cur_frm.fields_dict['timesheet_details'].grid.get_field("project_name").get_query = function(doc,cdt,cdn){
-  var cond=cond1='';
-  var d = locals[cdt][cdn];
-  //if(d.customer_name) cond = 'ifnull(`tabProject`.customer_name, "") = "'+d.customer_name+'" AND';
-  if(d.task_id) cond1 = 'ifnull(`tabTask`.project, "") = `tabProject`.name AND `tabTask`.name = "'+d.task_id+'" AND';
-  
-  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject`, `tabTask` WHERE %(cond1)s `tabProject`.`name` LIKE "%s" ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond1:cond1});
-}
-
-cur_frm.cscript.task_name = function(doc, cdt, cdn){
-  var d = locals[cdt][cdn];
-  if(d.task_name) get_server_fields('get_task_details', d.task_name, 'timesheet_details', doc, cdt, cdn, 1);
-}
-
-cur_frm.fields_dict['timesheet_details'].grid.get_field("task_name").get_query = function(doc,cdt,cdn){
-  var cond='';
-  var d = locals[cdt][cdn];
-  if(d.project_name) cond = 'ifnull(`tabTask`.project, "") = "'+d.project_name+'" AND';
-  
-  return repl('SELECT distinct `tabTask`.`subject` FROM `tabTask` WHERE %(cond)s `tabTask`.`subject` LIKE "%s" ORDER BY `tabTask`.`subject` ASC LIMIT 50', {cond:cond});
-}
-
-cur_frm.fields_dict.timesheet_details.grid.get_field("customer_name").get_query = 
-	erpnext.utils.customer_query;
\ No newline at end of file
diff --git a/projects/doctype/timesheet/timesheet.py b/projects/doctype/timesheet/timesheet.py
deleted file mode 100644
index 8123278..0000000
--- a/projects/doctype/timesheet/timesheet.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.	If not, see <http://www.gnu.org/licenses/>.
-
-from __future__ import unicode_literals
-import webnotes
-import time, datetime
-
-from webnotes.utils import cint, cstr, getdate, now, nowdate
-from webnotes.model import db_exists
-from webnotes.model.bean import getlist, copy_doclist
-from webnotes import msgprint
-
-sql = webnotes.conn.sql
-
-class DocType:
-	def __init__(self,doc,doclist=[]):
-		self.doc = doc
-		self.doclist = doclist
-	
-	def get_customer_details(self, project_name):
-		cust = sql("select customer, customer_name from `tabProject` where name = %s", project_name)
-		if cust:
-			ret = {'customer': cust and cust[0][0] or '', 'customer_name': cust and cust[0][1] or ''}
-			return (ret)
-	
-	def get_task_details(self, task_sub):
-		tsk = sql("select name, project, customer, customer_name from `tabTask` where subject = %s", task_sub)
-		if tsk:
-			ret = {'task_id': tsk and tsk[0][0] or '', 'project_name': tsk and tsk[0][1] or '', 'customer_name': tsk and tsk[0][3] or ''}
-			return ret
-	
-	def get_time(self, timestr):
-		if len(timestr.split(":"))==2:
-			format = "%H:%M"
-		else:
-			format = "%H:%M:%S"
-			
-		return time.strptime(timestr, format)
-	
-	def validate(self):
-		msgprint("Please create a new Time Log", raise_exception=True)
-		
-		if getdate(self.doc.timesheet_date) > getdate(nowdate()):
-			msgprint("You can not prepare timesheet for future date")
-			raise Exception
-		
-		chk = sql("select name from `tabTimesheet` where timesheet_date=%s and owner=%s and status!='Cancelled' and name!=%s", (self.doc.timesheet_date, self.doc.owner, self.doc.name))
-		if chk:
-			msgprint("You have already created timesheet "+ cstr(chk and chk[0][0] or '')+" for this date.")
-			raise Exception
-
-		for d in getlist(self.doclist, 'timesheet_details'):
-			if d.act_start_time and d.act_end_time:
-				d1 = self.get_time(d.act_start_time)
-				d2 = self.get_time(d.act_end_time)
-				
-				if d1 > d2:
-					msgprint("Start time can not be greater than end time. Check for Task Id : "+cstr(d.task_id))
-					raise Exception
-				elif d1 == d2:
-					msgprint("Start time and end time can not be same. Check for Task Id : "+cstr(d.task_id))
-					raise Exception
-	
-	def calculate_total_hr(self):
-		for d in getlist(self.doclist, 'timesheet_details'):
-			x1 = d.act_start_time.split(":")
-			x2 = d.act_end_time.split(":")
-			
-			d1 = datetime.timedelta(minutes=cint(x1[1]), hours=cint(x1[0]))			
-			d2 = datetime.timedelta(minutes=cint(x2[1]), hours=cint(x2[0]))
-			d3 = (d2 - d1).seconds
-			d.act_total_hrs = time.strftime("%H:%M:%S", time.gmtime(d3))
-			sql("update `tabTimesheet Detail` set act_total_hrs = %s where parent=%s and name=%s", (d.act_total_hrs,self.doc.name,d.name))
-	
-	def on_update(self):
-		self.calculate_total_hr()
-		webnotes.conn.set(self.doc, 'status', 'Draft')
-	
-	def on_submit(self):
-		webnotes.conn.set(self.doc, 'status', 'Submitted')
-	
-	def on_cancel(self):
-		webnotes.conn.set(self.doc, 'status', 'Cancelled')
-			
\ No newline at end of file
diff --git a/projects/doctype/timesheet/timesheet.txt b/projects/doctype/timesheet/timesheet.txt
deleted file mode 100644
index d64a3e1..0000000
--- a/projects/doctype/timesheet/timesheet.txt
+++ /dev/null
@@ -1,180 +0,0 @@
-[
- {
-  "creation": "2013-01-29 19:25:50", 
-  "docstatus": 0, 
-  "modified": "2013-02-26 13:44:35", 
-  "modified_by": "Administrator", 
-  "owner": "ashwini@webnotestech.com"
- }, 
- {
-  "autoname": "TimeSheet.#####", 
-  "doctype": "DocType", 
-  "is_submittable": 1, 
-  "module": "Projects", 
-  "name": "__common__", 
-  "search_fields": "status, owner, timesheet_date"
- }, 
- {
-  "doctype": "DocField", 
-  "name": "__common__", 
-  "parent": "Timesheet", 
-  "parentfield": "fields", 
-  "parenttype": "DocType", 
-  "permlevel": 0
- }, 
- {
-  "doctype": "DocPerm", 
-  "name": "__common__", 
-  "parent": "Timesheet", 
-  "parentfield": "permissions", 
-  "parenttype": "DocType", 
-  "read": 1
- }, 
- {
-  "doctype": "DocType", 
-  "name": "Timesheet"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "timesheet_details_section_break", 
-  "fieldtype": "Section Break", 
-  "label": "Timesheet Details"
- }, 
- {
-  "default": "Today", 
-  "doctype": "DocField", 
-  "fieldname": "timesheet_date", 
-  "fieldtype": "Date", 
-  "in_filter": 1, 
-  "label": "Timesheet Date", 
-  "oldfieldname": "timesheet_date", 
-  "oldfieldtype": "Date", 
-  "reqd": 1, 
-  "search_index": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "column_break_3", 
-  "fieldtype": "Column Break"
- }, 
- {
-  "default": "Draft", 
-  "doctype": "DocField", 
-  "fieldname": "status", 
-  "fieldtype": "Select", 
-  "in_filter": 0, 
-  "in_list_view": 1, 
-  "label": "Status", 
-  "oldfieldname": "status", 
-  "oldfieldtype": "Select", 
-  "options": "\nDraft\nSubmitted\nCancelled", 
-  "read_only": 1, 
-  "reqd": 1, 
-  "search_index": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "section_break0", 
-  "fieldtype": "Section Break", 
-  "options": "Simple"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "timesheet_details", 
-  "fieldtype": "Table", 
-  "label": "Timesheet Details", 
-  "oldfieldname": "timesheet_details", 
-  "oldfieldtype": "Table", 
-  "options": "Timesheet Detail"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "section_break_7", 
-  "fieldtype": "Section Break"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "notes", 
-  "fieldtype": "Text", 
-  "in_list_view": 1, 
-  "label": "Notes"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "owner", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Timesheet By", 
-  "oldfieldname": "owner", 
-  "oldfieldtype": "Link", 
-  "options": "Profile", 
-  "reqd": 1, 
-  "search_index": 0
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "amended_from", 
-  "fieldtype": "Data", 
-  "hidden": 1, 
-  "label": "Amended From", 
-  "oldfieldname": "amended_from", 
-  "oldfieldtype": "Data", 
-  "print_hide": 1, 
-  "read_only": 1
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "amendment_date", 
-  "fieldtype": "Date", 
-  "hidden": 1, 
-  "label": "Amendment Date", 
-  "oldfieldname": "amendment_date", 
-  "oldfieldtype": "Date", 
-  "print_hide": 1, 
-  "read_only": 1
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "report": 1, 
-  "role": "Projects User", 
-  "submit": 0, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "report": 0, 
-  "role": "Projects User", 
-  "submit": 0, 
-  "write": 0
- }, 
- {
-  "amend": 1, 
-  "cancel": 1, 
-  "create": 1, 
-  "doctype": "DocPerm", 
-  "permlevel": 0, 
-  "report": 1, 
-  "role": "System Manager", 
-  "submit": 1, 
-  "write": 1
- }, 
- {
-  "amend": 0, 
-  "cancel": 0, 
-  "create": 0, 
-  "doctype": "DocPerm", 
-  "permlevel": 1, 
-  "report": 0, 
-  "role": "System Manager", 
-  "submit": 0, 
-  "write": 0
- }
-]
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/__init__.py b/projects/doctype/timesheet_detail/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/projects/doctype/timesheet_detail/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/projects/doctype/timesheet_detail/locale/_messages_doc.json b/projects/doctype/timesheet_detail/locale/_messages_doc.json
deleted file mode 100644
index a51a3e2..0000000
--- a/projects/doctype/timesheet_detail/locale/_messages_doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-[
- "Task Id", 
- "Activity Type", 
- "Actual End Time", 
- "Actual Start Time", 
- "Project", 
- "Total Hours (Actual)", 
- "Customer Name", 
- "Additional Info", 
- "Timesheet Detail", 
- "Task Name", 
- "Projects"
-]
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/ar-doc.json b/projects/doctype/timesheet_detail/locale/ar-doc.json
deleted file mode 100644
index b4d1ce2..0000000
--- a/projects/doctype/timesheet_detail/locale/ar-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "\u0627\u0644\u0646\u0634\u0627\u0637 \u0646\u0648\u0639", 
- "Actual End Time": "\u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u0648\u0642\u062a \u0627\u0644\u0641\u0639\u0644\u064a", 
- "Actual Start Time": "\u0648\u0642\u062a \u0627\u0644\u0628\u062f\u0621 \u0627\u0644\u0641\u0639\u0644\u064a", 
- "Additional Info": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0625\u0636\u0627\u0641\u064a\u0629", 
- "Customer Name": "\u0627\u0633\u0645 \u0627\u0644\u0639\u0645\u064a\u0644", 
- "Project": "\u0645\u0634\u0631\u0648\u0639", 
- "Projects": "\u0645\u0634\u0627\u0631\u064a\u0639", 
- "Task Id": "\u0627\u0644\u0645\u0647\u0645\u0629 \u0631\u0642\u0645", 
- "Task Name": "\u0627\u0633\u0645 \u0627\u0644\u0645\u0647\u0645\u0629", 
- "Timesheet Detail": "\u0627\u0644\u062c\u062f\u0648\u0644 \u0627\u0644\u0632\u0645\u0646\u064a \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644", 
- "Total Hours (Actual)": "\u0645\u062c\u0645\u0648\u0639 \u0633\u0627\u0639\u0627\u062a (\u0627\u0644\u0641\u0639\u0644\u064a\u0629)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/de-doc.json b/projects/doctype/timesheet_detail/locale/de-doc.json
deleted file mode 100644
index 9a29d33..0000000
--- a/projects/doctype/timesheet_detail/locale/de-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Art der T\u00e4tigkeit", 
- "Actual End Time": "Tats\u00e4chliche Endzeit", 
- "Actual Start Time": "Tats\u00e4chliche Startzeit", 
- "Additional Info": "Zus\u00e4tzliche Informationen", 
- "Customer Name": "Name des Kunden", 
- "Project": "Projekt", 
- "Projects": "Projekte", 
- "Task Id": "Task-Id", 
- "Task Name": "Task-Name", 
- "Timesheet Detail": "Timesheet Details", 
- "Total Hours (Actual)": "Total Hours (Actual)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/es-doc.json b/projects/doctype/timesheet_detail/locale/es-doc.json
deleted file mode 100644
index 0a28e7f..0000000
--- a/projects/doctype/timesheet_detail/locale/es-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Tipo de actividad", 
- "Actual End Time": "Hora de finalizaci\u00f3n real", 
- "Actual Start Time": "Tiempo real de inicio", 
- "Additional Info": "Informaci\u00f3n adicional", 
- "Customer Name": "Nombre del cliente", 
- "Project": "Proyecto", 
- "Projects": "Proyectos", 
- "Task Id": "Tarea Id", 
- "Task Name": "Nombre de tarea", 
- "Timesheet Detail": "Detalle de parte de horas", 
- "Total Hours (Actual)": "Horas totales (real)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/fr-doc.json b/projects/doctype/timesheet_detail/locale/fr-doc.json
deleted file mode 100644
index 269ede8..0000000
--- a/projects/doctype/timesheet_detail/locale/fr-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Type d&#39;activit\u00e9", 
- "Actual End Time": "Heure de fin r\u00e9elle", 
- "Actual Start Time": "Heure de d\u00e9but r\u00e9elle", 
- "Additional Info": "Informations additionnelles \u00e0", 
- "Customer Name": "Nom du client", 
- "Project": "Projet", 
- "Projects": "Projets", 
- "Task Id": "T\u00e2che Id", 
- "Task Name": "Nom de la t\u00e2che", 
- "Timesheet Detail": "D\u00e9tail des feuilles de temps", 
- "Total Hours (Actual)": "Total des heures (r\u00e9elles)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/hi-doc.json b/projects/doctype/timesheet_detail/locale/hi-doc.json
deleted file mode 100644
index 4d34871..0000000
--- a/projects/doctype/timesheet_detail/locale/hi-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "\u0917\u0924\u093f\u0935\u093f\u0927\u093f \u092a\u094d\u0930\u0915\u093e\u0930", 
- "Actual End Time": "\u0935\u093e\u0938\u094d\u0924\u0935\u093f\u0915 \u0905\u0902\u0924 \u0938\u092e\u092f", 
- "Actual Start Time": "\u0935\u093e\u0938\u094d\u0924\u0935\u093f\u0915 \u092a\u094d\u0930\u093e\u0930\u0902\u092d \u0938\u092e\u092f", 
- "Additional Info": "\u0905\u0924\u093f\u0930\u093f\u0915\u094d\u0924 \u091c\u093e\u0928\u0915\u093e\u0930\u0940", 
- "Customer Name": "\u0917\u094d\u0930\u093e\u0939\u0915 \u0915\u093e \u0928\u093e\u092e", 
- "Project": "\u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e", 
- "Projects": "\u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e\u0913\u0902", 
- "Task Id": "\u091f\u093e\u0938\u094d\u0915 \u0906\u0908\u0921\u0940", 
- "Task Name": "\u0915\u093e\u0930\u094d\u092f \u0915\u093e \u0928\u093e\u092e", 
- "Timesheet Detail": "Timesheet \u0935\u093f\u0938\u094d\u0924\u093e\u0930", 
- "Total Hours (Actual)": "\u0915\u0941\u0932 \u0918\u0902\u091f\u0947 (\u0935\u093e\u0938\u094d\u0924\u0935\u093f\u0915)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/hr-doc.json b/projects/doctype/timesheet_detail/locale/hr-doc.json
deleted file mode 100644
index d19276a..0000000
--- a/projects/doctype/timesheet_detail/locale/hr-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Aktivnost Tip", 
- "Actual End Time": "Stvarni Vrijeme zavr\u0161etka", 
- "Actual Start Time": "Stvarni Vrijeme po\u010detka", 
- "Additional Info": "Dodatne informacije", 
- "Customer Name": "Naziv klijenta", 
- "Project": "Projekt", 
- "Projects": "Projekti", 
- "Task Id": "Zadatak Id", 
- "Task Name": "Zadatak Ime", 
- "Timesheet Detail": "Timesheet Detalj", 
- "Total Hours (Actual)": "Ukupno vrijeme (Stvarni)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/nl-doc.json b/projects/doctype/timesheet_detail/locale/nl-doc.json
deleted file mode 100644
index 8305440..0000000
--- a/projects/doctype/timesheet_detail/locale/nl-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Activiteit Type", 
- "Actual End Time": "Werkelijke Eindtijd", 
- "Actual Start Time": "Werkelijke Starttijd", 
- "Additional Info": "Extra informatie", 
- "Customer Name": "Klantnaam", 
- "Project": "Project", 
- "Projects": "Projecten", 
- "Task Id": "Taak-id", 
- "Task Name": "Taaknaam", 
- "Timesheet Detail": "Timesheet Detail", 
- "Total Hours (Actual)": "Totaal uren (werkelijke)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/pt-BR-doc.json b/projects/doctype/timesheet_detail/locale/pt-BR-doc.json
deleted file mode 100644
index b11f35a..0000000
--- a/projects/doctype/timesheet_detail/locale/pt-BR-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Tipo da Atividade", 
- "Actual End Time": "Tempos Final Real", 
- "Actual Start Time": "Hor\u00e1rio de In\u00edcio Real", 
- "Additional Info": "Informa\u00e7\u00f5es Adicionais", 
- "Customer Name": "Nome do cliente", 
- "Project": "Projeto", 
- "Projects": "Projetos", 
- "Task Id": "ID da Tarefa", 
- "Task Name": "Nome da Tarefa", 
- "Timesheet Detail": "Detalhe do Quadro de Hor\u00e1rios", 
- "Total Hours (Actual)": "Total de Horas (Real)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/pt-doc.json b/projects/doctype/timesheet_detail/locale/pt-doc.json
deleted file mode 100644
index b2dcf2b..0000000
--- a/projects/doctype/timesheet_detail/locale/pt-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "Tipo de Atividade", 
- "Actual End Time": "Fim dos Tempos real", 
- "Actual Start Time": "Hor\u00e1rio de in\u00edcio real", 
- "Additional Info": "Informa\u00e7\u00f5es Adicionais", 
- "Customer Name": "Nome do cliente", 
- "Project": "Projeto", 
- "Projects": "Projetos", 
- "Task Id": "Tarefa Id", 
- "Task Name": "Nome da Tarefa", 
- "Timesheet Detail": "Detalhe de quadro de hor\u00e1rios", 
- "Total Hours (Actual)": "Total de Horas (Real)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/sr-doc.json b/projects/doctype/timesheet_detail/locale/sr-doc.json
deleted file mode 100644
index b29f234..0000000
--- a/projects/doctype/timesheet_detail/locale/sr-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "\u0410\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442 \u0422\u0438\u043f", 
- "Actual End Time": "\u0421\u0443\u043d\u0446\u0435 \u041a\u0440\u0430\u0458\u045a\u0435 \u0432\u0440\u0435\u043c\u0435", 
- "Actual Start Time": "\u0421\u0443\u043d\u0446\u0435 \u0421\u0442\u0430\u0440\u0442 \u0422\u0438\u043c\u0435", 
- "Additional Info": "\u0414\u043e\u0434\u0430\u0442\u043d\u0438 \u043f\u043e\u0434\u0430\u0446\u0438", 
- "Customer Name": "\u0418\u043c\u0435 \u043a\u043b\u0438\u0458\u0435\u043d\u0442\u0430", 
- "Project": "\u041f\u0440\u043e\u0458\u0435\u043a\u0430\u0442", 
- "Projects": "\u041f\u0440\u043e\u0458\u0435\u043a\u0442\u0438", 
- "Task Id": "\u0417\u0430\u0434\u0430\u0442\u0430\u043a \u0418\u0434", 
- "Task Name": "\u041d\u0430\u0437\u0438\u0432 \u0437\u0430\u0434\u0430\u0442\u043a\u0430", 
- "Timesheet Detail": "\u0422\u0438\u043c\u0435\u0441\u0445\u0435\u0435\u0442 \u0414\u0435\u0442\u0430\u0459", 
- "Total Hours (Actual)": "\u0423\u043a\u0443\u043f\u043d\u043e \u0432\u0440\u0435\u043c\u0435 (\u0421\u0443\u043d\u0446\u0435)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/ta-doc.json b/projects/doctype/timesheet_detail/locale/ta-doc.json
deleted file mode 100644
index d6abb7f..0000000
--- a/projects/doctype/timesheet_detail/locale/ta-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "\u0ba8\u0b9f\u0bb5\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8 \u0bb5\u0b95\u0bc8", 
- "Actual End Time": "\u0b89\u0ba3\u0bcd\u0bae\u0bc8\u0baf\u0bbe\u0ba9 \u0bae\u0bc1\u0b9f\u0bbf\u0bb5\u0bc1 \u0ba8\u0bc7\u0bb0\u0bae\u0bcd", 
- "Actual Start Time": "\u0b89\u0ba3\u0bcd\u0bae\u0bc8\u0baf\u0bbe\u0ba9 \u0ba4\u0bc6\u0bbe\u0b9f\u0b95\u0bcd\u0b95 \u0ba8\u0bc7\u0bb0\u0bae\u0bcd", 
- "Additional Info": "\u0b95\u0bc2\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0b95\u0bb5\u0bb2\u0bcd", 
- "Customer Name": "\u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bcd \u0baa\u0bc6\u0baf\u0bb0\u0bcd", 
- "Project": "\u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0bae\u0bcd", 
- "Projects": "\u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd", 
- "Task Id": "\u0baa\u0ba3\u0bbf \u0b85\u0b9f\u0bc8\u0baf\u0bbe\u0bb3\u0bae\u0bcd", 
- "Task Name": "\u0baa\u0ba3\u0bbf \u0baa\u0bc6\u0baf\u0bb0\u0bcd", 
- "Timesheet Detail": "Timesheet \u0bb5\u0bbf\u0bb0\u0bbf\u0bb5\u0bbe\u0b95", 
- "Total Hours (Actual)": "\u0bae\u0bc6\u0bbe\u0ba4\u0bcd\u0ba4 \u0ba8\u0bc7\u0bb0\u0bae\u0bcd (\u0b85\u0b9a\u0bb2\u0bcd)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/th-doc.json b/projects/doctype/timesheet_detail/locale/th-doc.json
deleted file mode 100644
index 197e90f..0000000
--- a/projects/doctype/timesheet_detail/locale/th-doc.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Activity Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21", 
- "Actual End Time": "\u0e40\u0e27\u0e25\u0e32\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e08\u0e23\u0e34\u0e07", 
- "Actual Start Time": "\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07", 
- "Additional Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21", 
- "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32", 
- "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23", 
- "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23", 
- "Task Id": "\u0e23\u0e2b\u0e31\u0e2a\u0e07\u0e32\u0e19", 
- "Task Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e07\u0e32\u0e19", 
- "Timesheet Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Timesheet", 
- "Total Hours (Actual)": "\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e23\u0e27\u0e21 (\u0e08\u0e23\u0e34\u0e07)"
-}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/timesheet_detail.py b/projects/doctype/timesheet_detail/timesheet_detail.py
deleted file mode 100644
index 7f48feb..0000000
--- a/projects/doctype/timesheet_detail/timesheet_detail.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-# 
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from __future__ import unicode_literals
-import webnotes
-
-class DocType:
-	def __init__(self, d, dl):
-		self.doc, self.doclist = d, dl
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/timesheet_detail.txt b/projects/doctype/timesheet_detail/timesheet_detail.txt
deleted file mode 100644
index b99425b..0000000
--- a/projects/doctype/timesheet_detail/timesheet_detail.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-[
- {
-  "creation": "2013-01-10 16:34:18", 
-  "docstatus": 0, 
-  "modified": "2013-01-22 14:50:09", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "autoname": "TSD.#####", 
-  "doctype": "DocType", 
-  "istable": 1, 
-  "module": "Projects", 
-  "name": "__common__"
- }, 
- {
-  "doctype": "DocField", 
-  "name": "__common__", 
-  "parent": "Timesheet Detail", 
-  "parentfield": "fields", 
-  "parenttype": "DocType", 
-  "permlevel": 0
- }, 
- {
-  "doctype": "DocType", 
-  "name": "Timesheet Detail"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "act_start_time", 
-  "fieldtype": "Time", 
-  "label": "Actual Start Time", 
-  "oldfieldname": "act_start_time", 
-  "oldfieldtype": "Time", 
-  "print_width": "160px", 
-  "reqd": 1, 
-  "width": "160px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "act_end_time", 
-  "fieldtype": "Time", 
-  "label": "Actual End Time", 
-  "oldfieldname": "act_end_time", 
-  "oldfieldtype": "Time", 
-  "print_width": "160px", 
-  "reqd": 1, 
-  "width": "160px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "activity_type", 
-  "fieldtype": "Link", 
-  "label": "Activity Type", 
-  "options": "Activity Type", 
-  "print_width": "200px", 
-  "reqd": 1, 
-  "search_index": 0, 
-  "width": "200px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "other_details", 
-  "fieldtype": "Text", 
-  "label": "Additional Info", 
-  "oldfieldname": "other_details", 
-  "oldfieldtype": "Text", 
-  "print_width": "200px", 
-  "width": "200px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "act_total_hrs", 
-  "fieldtype": "Data", 
-  "label": "Total Hours (Actual)", 
-  "oldfieldname": "act_total_hrs", 
-  "oldfieldtype": "Data", 
-  "print_width": "100px", 
-  "read_only": 1, 
-  "width": "100px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "customer_name", 
-  "fieldtype": "Link", 
-  "label": "Customer Name", 
-  "oldfieldname": "customer_name", 
-  "oldfieldtype": "Data", 
-  "options": "Customer", 
-  "print_width": "150px", 
-  "width": "150px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "project_name", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Project", 
-  "oldfieldname": "project_name", 
-  "oldfieldtype": "Link", 
-  "options": "Project", 
-  "print_width": "150px", 
-  "reqd": 0, 
-  "search_index": 1, 
-  "width": "150px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "task_id", 
-  "fieldtype": "Link", 
-  "in_filter": 1, 
-  "label": "Task Id", 
-  "oldfieldname": "task_id", 
-  "oldfieldtype": "Link", 
-  "options": "Task", 
-  "print_width": "150px", 
-  "search_index": 1, 
-  "width": "150px"
- }, 
- {
-  "doctype": "DocField", 
-  "fieldname": "task_name", 
-  "fieldtype": "Data", 
-  "label": "Task Name", 
-  "oldfieldname": "task_name", 
-  "oldfieldtype": "Link", 
-  "print_width": "250px", 
-  "reqd": 0, 
-  "search_index": 0, 
-  "width": "250px"
- }
-]
\ No newline at end of file