diff --git a/erpnext/projects/report/employee_billing_summary/__init__.py b/erpnext/projects/report/employee_billing_summary/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/projects/report/employee_billing_summary/__init__.py
diff --git a/erpnext/projects/report/employee_billing_summary/employee_billing_summary.js b/erpnext/projects/report/employee_billing_summary/employee_billing_summary.js
new file mode 100644
index 0000000..e6e6746
--- /dev/null
+++ b/erpnext/projects/report/employee_billing_summary/employee_billing_summary.js
@@ -0,0 +1,27 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+/* eslint-disable */
+
+frappe.query_reports["Employee Billing Summary"] = {
+	"filters": [
+		{
+			fieldname: "employee",
+			label: __("Employee"),
+			fieldtype: "Link",
+			options: "Employee",
+		},
+		{
+			fieldname:"from_date",
+			label: __("From Date"),
+			fieldtype: "Date",
+			default: frappe.datetime.get_today()
+		},
+		{
+			fieldname:"to_date",
+			label: __("To Date"),
+			fieldtype: "Date",
+			default: frappe.datetime.add_days(frappe.datetime.get_today(), 30)
+		},
+
+	]
+}
diff --git a/erpnext/projects/report/employee_billing_summary/employee_billing_summary.json b/erpnext/projects/report/employee_billing_summary/employee_billing_summary.json
new file mode 100644
index 0000000..433ebac
--- /dev/null
+++ b/erpnext/projects/report/employee_billing_summary/employee_billing_summary.json
@@ -0,0 +1,36 @@
+{
+ "add_total_row": 0, 
+ "creation": "2019-03-08 15:08:19.929728", 
+ "disable_prepared_report": 0, 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 0, 
+ "is_standard": "Yes", 
+ "modified": "2019-03-08 15:08:19.929728", 
+ "modified_by": "Administrator", 
+ "module": "Projects", 
+ "name": "Employee Billing Summary", 
+ "owner": "Administrator", 
+ "prepared_report": 0, 
+ "ref_doctype": "Timesheet", 
+ "report_name": "Employee Billing Summary", 
+ "report_type": "Script Report", 
+ "roles": [
+  {
+   "role": "Projects User"
+  }, 
+  {
+   "role": "HR User"
+  }, 
+  {
+   "role": "Manufacturing User"
+  }, 
+  {
+   "role": "Employee"
+  }, 
+  {
+   "role": "Accounts User"
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/projects/report/employee_billing_summary/employee_billing_summary.py b/erpnext/projects/report/employee_billing_summary/employee_billing_summary.py
new file mode 100644
index 0000000..47323ef
--- /dev/null
+++ b/erpnext/projects/report/employee_billing_summary/employee_billing_summary.py
@@ -0,0 +1,119 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+from frappe.utils import time_diff_in_hours
+
+def execute(filters=None):
+	filters = frappe._dict(filters or {})
+	print(filters)
+
+	columns = get_columns()
+
+	data = get_data(filters)
+	return columns, data
+
+def get_columns():
+	return [
+		{
+			"label": _("Employee ID"),
+			"fieldtype": "Link",
+			"fieldname": "employee",
+			"options": "Employee",
+			"width": 300
+		},
+		{
+			"label": _("Employee Name"),
+			"fieldtype": "data",
+			"fieldname": "employee_name",
+			"hidden": 1,
+			"width": 200
+		},
+		{
+			"label": _("Timesheet"),
+			"fieldtype": "Link",
+			"fieldname": "timesheet",
+			"options": "Timesheet",
+			"width": 150
+		},
+		{
+			"label": _("Date"),
+			"fieldtype": "Date",
+			"fieldname": "date",
+			"width": 150
+		},
+		{
+			"label": _("Total Billable Hours"),
+			"fieldtype": "Int",
+			"fieldname": "total_billable_hours",
+			"width": 50
+		},
+		{
+			"label": _("Total Hours"),
+			"fieldtype": "Int",
+			"fieldname": "total_hours",
+			"width": 50
+		},
+		{
+			"label": _("Amount"),
+			"fieldtype": "Int",
+			"fieldname": "amount",
+			"width": 50
+		}
+	]
+
+def get_data(filters):
+	data = []
+	if "employee" in filters:
+		record= frappe.db.sql('''SELECT
+				employee, employee_name, name, total_billable_hours, total_hours, total_billable_amount
+			FROM
+				`tabTimesheet`
+			WHERE
+				employee = %s and (start_date <= %s and end_date >= %s)''',(filters.employee, filters.to_date, filters.from_date),
+			as_dict=1
+		)
+		for entries in record:
+
+			timesheet_details = frappe.get_all(
+				"Timesheet Detail",
+				filters={"parent": entries.name},
+				fields=["*"]
+				)
+
+			total_hours = 0
+			total_billable_hours = 0
+			print("-------------------------------------------->>>>>>>")
+			for time in timesheet_details:
+				time_start = time.from_time
+				time_end = frappe.utils.add_to_date(time.from_time, hours=time.hours)
+
+				from_date = frappe.utils.get_datetime(filters.from_date)
+				to_date = frappe.utils.get_datetime(filters.to_date)
+
+				if time_start <= from_date and time_end <= to_date:
+					total_hours += abs(time_diff_in_hours(time_end, from_date))
+					print(from_date, time_end)
+					print("case 1", entries.name,time_diff_in_hours(time_end, from_date))
+				elif time_start >= from_date and time_end >= to_date:
+					total_hours += abs(time_diff_in_hours(to_date, time_start))
+					print(time_start, to_date)
+					print("case 2", entries.name,time_diff_in_hours(to_date, time_start))
+				elif time_start >= from_date and time_end <= to_date:
+					total_hours = entries.total_hours
+					print("case 3 all set", entries.name)
+
+			print(total_hours)
+			print("-------------------------------------------->>>>>>>")
+			row = {
+				"employee": entries.employee,
+				"employee_name": entries.employee_name,
+				"timesheet": entries.name,
+				"total_billable_hours": entries.total_billable_hours,
+				"total_hours": entries.total_hours,
+				"amount": 1
+			}
+			data.append(row)
+	return data
\ No newline at end of file
diff --git a/erpnext/public/node_modules b/erpnext/public/node_modules
new file mode 120000
index 0000000..229573e
--- /dev/null
+++ b/erpnext/public/node_modules
@@ -0,0 +1 @@
+/Users/anuragmishra/test/apps/erpnext/node_modules
\ No newline at end of file
