diff --git a/patches/january_2013/update_closed_on.py b/patches/january_2013/update_closed_on.py
new file mode 100644
index 0000000..138549a
--- /dev/null
+++ b/patches/january_2013/update_closed_on.py
@@ -0,0 +1,32 @@
+import webnotes
+
+def execute():
+	webnotes.reload_doc("core", "doctype", "docfield")
+	webnotes.reload_doc("support", "doctype", "support_ticket")
+	
+	# customer issue resolved_by should be Profile
+	if webnotes.conn.sql("""select count(*) from `tabCustomer Issue` 
+		where ifnull(resolved_by,"")!="" """)[0][0]:
+		webnotes.make_property_setter({
+			"doctype":"Customer Issue", 
+			"fieldname": "resolved_by", 
+			"property": "options",
+			"value": "Sales Person"
+		})
+		
+	def get_communication_time(support_ticket, sort_order = 'asc'):
+		tmp = webnotes.conn.sql("""select creation from tabCommunication where
+			support_ticket=%s order by creation %s limit 1""" % ("%s", sort_order), 
+			support_ticket)
+		return tmp and tmp[0][0] or None
+		
+	# update in support ticket
+	webnotes.conn.auto_commit_on_many_writes = True
+	for st in webnotes.conn.sql("""select name, modified, status from 
+		`tabSupport Ticket`""", as_dict=1):
+		
+		webnotes.conn.sql("""update `tabSupport Ticket` set first_responded_on=%s where 
+			name=%s""", (get_communication_time(st.name) or st.modified, st.name))
+		if st.status=="Closed":
+			webnotes.conn.sql("""update `tabSupport Ticket` set resolution_date=%s where 
+				name=%s""", (get_communication_time(st.name, 'desc') or st.modified, st.name))
diff --git a/projects/doctype/task/task.py b/projects/doctype/task/task.py
index 83f8995..79fca9a 100644
--- a/projects/doctype/task/task.py
+++ b/projects/doctype/task/task.py
@@ -17,7 +17,7 @@
 from __future__ import unicode_literals
 import webnotes
 
-from webnotes.utils import getdate
+from webnotes.utils import getdate, today
 from webnotes.model import db_exists
 from webnotes.model.wrapper import copy_doclist
 from webnotes import msgprint
@@ -40,7 +40,7 @@
 		if cust:
 			ret = {'customer_name': cust and cust[0][0] or ''}
 			return ret
-
+	
 	def validate(self):
 		if self.doc.exp_start_date and self.doc.exp_end_date and getdate(self.doc.exp_start_date) > getdate(self.doc.exp_end_date):
 			msgprint("'Expected Start Date' can not be greater than 'Expected End Date'")
@@ -49,4 +49,14 @@
 		if self.doc.act_start_date and self.doc.act_end_date and getdate(self.doc.act_start_date) > getdate(self.doc.act_end_date):
 			msgprint("'Actual Start Date' can not be greater than 'Actual End Date'")
 			raise Exception
+			
+		self.update_status()
 
+	def update_status(self):
+		status = webnotes.conn.get_value("Task", self.doc.name, "status")
+		if self.doc.status=="Working" and status !="Working" and not self.doc.act_start_date:
+			self.doc.act_start_date = today()
+			
+		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
diff --git a/projects/doctype/task/task.txt b/projects/doctype/task/task.txt
index 9b8c2eb..e95c456 100644
--- a/projects/doctype/task/task.txt
+++ b/projects/doctype/task/task.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-10-29 14:30:00", 
+  "creation": "2013-01-10 16:34:17", 
   "modified_by": "Administrator", 
-  "modified": "2013-01-02 12:40:26"
+  "modified": "2013-01-14 14:03:52"
  }, 
  {
   "autoname": "TASK.#####", 
@@ -28,6 +28,8 @@
   "parent": "Task", 
   "read": 1, 
   "doctype": "DocPerm", 
+  "submit": 0, 
+  "report": 1, 
   "parenttype": "DocType", 
   "role": "Projects User", 
   "parentfield": "permissions"
@@ -192,14 +194,6 @@
   "fieldtype": "Date"
  }, 
  {
-  "oldfieldtype": "Data", 
-  "doctype": "DocField", 
-  "label": "Total Hours (Actual)", 
-  "oldfieldname": "act_total_hrs", 
-  "fieldname": "act_total_hrs", 
-  "fieldtype": "Data"
- }, 
- {
   "oldfieldtype": "Currency", 
   "doctype": "DocField", 
   "label": "Actual Budget", 
@@ -253,7 +247,6 @@
   "amend": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
-  "submit": 0, 
   "cancel": 0, 
   "permlevel": 1
  }
diff --git a/public/js/utils.js b/public/js/utils.js
index fe79248..271dab1 100644
--- a/public/js/utils.js
+++ b/public/js/utils.js
@@ -32,6 +32,7 @@
 		
 		var defaults = {
 			posting_date: wn.datetime.get_today(),
+			posting_time: wn.datetime.now_time()
 		}
 		
 		$.each(defaults, function(k, v) {
diff --git a/startup/report_data_map.py b/startup/report_data_map.py
index 41d6cb8..228a8ae 100644
--- a/startup/report_data_map.py
+++ b/startup/report_data_map.py
@@ -219,7 +219,7 @@
 	
 	# Support
 	"Support Ticket": {
-		"columns": ["name","status","creation","modified"],
+		"columns": ["name","status","creation","resolution_date","first_responded_on"],
 		"conditions": ["docstatus < 2"],
 		"order_by": "creation"
 	}
diff --git a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index fae2fcb..3e013b6 100644
--- a/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -100,7 +100,7 @@
 
 	def validate_posting_time(self):
 		""" Validate posting time format"""
-		if self.doc.posting_time and len(self.doc.posting_time.split(':')) > 2:
+		if self.doc.posting_time and len(self.doc.posting_time.split(':')) > 3:
 			msgprint("Wrong format of posting time, can not complete the transaction. If you think \
 				you entered posting time correctly, please contact ERPNext support team.")
 			raise Exception
@@ -108,6 +108,4 @@
 	def scrub_posting_time(self):
 		if not self.doc.posting_time or self.doc.posting_time == '00:0':
 			self.doc.posting_time = '00:00'
-		if len(self.doc.posting_time.split(':')) > 2:
-			self.doc.posting_time = '00:00'
 			
\ No newline at end of file
diff --git a/support/doctype/customer_issue/customer_issue.js b/support/doctype/customer_issue/customer_issue.js
index 835509f..523b240 100644
--- a/support/doctype/customer_issue/customer_issue.js
+++ b/support/doctype/customer_issue/customer_issue.js
@@ -15,15 +15,17 @@
 // along with this program.	If not, see <http://www.gnu.org/licenses/>.
 
 cur_frm.cscript.onload = function(doc,cdt,cdn){
-	if(!doc.status) set_multiple(dt,dn,{status:'Open'});	
+	if(!doc.status) 
+		set_multiple(dt,dn,{status:'Open'});	
 	if(doc.__islocal){		
 		hide_field(['customer_address','contact_person']);
-	}	 
+	} 
 }
 
 cur_frm.cscript.refresh = function(doc,ct,cdn){
 	if(doc.docstatus == 1 && (doc.status == 'Open' || doc.status == 'Work In Progress')) 
-		cur_frm.add_custom_button('Make Maintenance Visit', cur_frm.cscript['Make Maintenance Visit']);
+		cur_frm.add_custom_button('Make Maintenance Visit', 
+			cur_frm.cscript['Make Maintenance Visit']);
 }
 
 
@@ -109,11 +111,9 @@
 cur_frm.add_fetch('serial_no', 'maintenance_status', 'warranty_amc_status');
 cur_frm.add_fetch('serial_no', 'warranty_expiry_date', 'warranty_expiry_date');
 cur_frm.add_fetch('serial_no', 'amc_expiry_date', 'amc_expiry_date');
-if (cstr(doc.customer) == '') {
-	cur_frm.add_fetch('serial_no', 'customer', 'customer');
-	cur_frm.add_fetch('serial_no', 'customer_name', 'customer_name');
-	cur_frm.add_fetch('serial_no', 'delivery_address', 'customer_address');
-}
+cur_frm.add_fetch('serial_no', 'customer', 'customer');
+cur_frm.add_fetch('serial_no', 'customer_name', 'customer_name');
+cur_frm.add_fetch('serial_no', 'delivery_address', 'customer_address');
 
 // ----------
 // item code
diff --git a/support/doctype/customer_issue/customer_issue.py b/support/doctype/customer_issue/customer_issue.py
index 0a08d82..af93f33 100644
--- a/support/doctype/customer_issue/customer_issue.py
+++ b/support/doctype/customer_issue/customer_issue.py
@@ -21,6 +21,7 @@
 from webnotes.model import db_exists
 from webnotes.model.wrapper import copy_doclist
 from webnotes import session, msgprint
+from webnotes.utils import today
 
 sql = webnotes.conn.sql
 	
@@ -43,6 +44,11 @@
 		if session['user'] != 'Guest' and not self.doc.customer:
 			msgprint("Please select Customer from whom issue is raised",
 				raise_exception=True)
+				
+		if self.doc.status=="Closed" and \
+			webnotes.conn.get_value("Customer Issue", self.doc.name, "status")!="Closed":
+			self.doc.resolution_date = today()
+			self.doc.resolved_by = webnotes.session.user
 	
 	def on_cancel(self):
 		lst = sql("select t1.name from `tabMaintenance Visit` t1, `tabMaintenance Visit Purpose` t2 where t2.parent = t1.name and t2.prevdoc_docname = '%s' and	t1.docstatus!=2"%(self.doc.name))
diff --git a/support/doctype/customer_issue/customer_issue.txt b/support/doctype/customer_issue/customer_issue.txt
index 9225eb3..1b01803 100644
--- a/support/doctype/customer_issue/customer_issue.txt
+++ b/support/doctype/customer_issue/customer_issue.txt
@@ -2,9 +2,9 @@
  {
   "owner": "harshada@webnotestech.com", 
   "docstatus": 0, 
-  "creation": "2012-11-28 11:26:23", 
+  "creation": "2013-01-10 16:34:30", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-03 17:10:41"
+  "modified": "2013-01-14 12:41:48"
  }, 
  {
   "is_submittable": 1, 
@@ -27,6 +27,7 @@
   "read": 1, 
   "doctype": "DocPerm", 
   "parenttype": "DocType", 
+  "report": 1, 
   "parentfield": "permissions"
  }, 
  {
@@ -51,7 +52,6 @@
   "permlevel": 0, 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
@@ -87,12 +87,10 @@
  {
   "print_hide": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Customer", 
   "oldfieldname": "customer", 
   "permlevel": 0, 
-  "trigger": "Client", 
   "fieldname": "customer", 
   "fieldtype": "Link", 
   "search_index": 1, 
@@ -140,28 +138,24 @@
  }, 
  {
   "description": "Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Serial No", 
-  "trigger": "Client", 
+  "options": "Serial No", 
   "fieldname": "serial_no", 
   "fieldtype": "Link", 
-  "options": "Serial No", 
   "permlevel": 0
  }, 
  {
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Item Code", 
   "oldfieldname": "item_code", 
-  "permlevel": 0, 
-  "trigger": "Client", 
+  "options": "Item", 
   "fieldname": "item_code", 
   "fieldtype": "Link", 
   "search_index": 1, 
   "reqd": 0, 
-  "options": "Item", 
+  "permlevel": 0, 
   "in_filter": 1
  }, 
  {
@@ -174,7 +168,6 @@
  }, 
  {
   "oldfieldtype": "Data", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Item Name", 
   "oldfieldname": "item_name", 
@@ -185,7 +178,6 @@
  }, 
  {
   "oldfieldtype": "Small Text", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Description", 
   "oldfieldname": "description", 
@@ -196,7 +188,6 @@
   "permlevel": 1
  }, 
  {
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Warranty / AMC Status", 
   "options": "\nUnder Warranty\nOut of Warranty\nUnder AMC\nOut of AMC", 
@@ -223,7 +214,6 @@
  {
   "description": "To assign this issue, use the \"Assign\" button in the sidebar.", 
   "oldfieldtype": "Section Break", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Resolution", 
   "options": "Simple", 
@@ -238,7 +228,7 @@
   "label": "Resolution Date", 
   "oldfieldname": "resolution_date", 
   "fieldname": "resolution_date", 
-  "fieldtype": "Date", 
+  "fieldtype": "Datetime", 
   "search_index": 1, 
   "permlevel": 0, 
   "in_filter": 1
@@ -249,7 +239,7 @@
   "doctype": "DocField", 
   "label": "Resolved By", 
   "oldfieldname": "resolved_by", 
-  "options": "Sales Person", 
+  "options": "Profile", 
   "fieldname": "resolved_by", 
   "fieldtype": "Link", 
   "search_index": 1, 
@@ -300,7 +290,6 @@
  {
   "print_hide": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Territory", 
   "oldfieldname": "territory", 
@@ -373,12 +362,10 @@
  {
   "print_hide": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Company", 
   "oldfieldname": "company", 
   "permlevel": 0, 
-  "trigger": "Client", 
   "fieldname": "company", 
   "fieldtype": "Link", 
   "search_index": 1, 
diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js
index 3484bf3..159dddd 100644
--- a/support/doctype/support_ticket/support_ticket.js
+++ b/support/doctype/support_ticket/support_ticket.js
@@ -85,25 +85,26 @@
 	}, 
 	
 	'Close Ticket': function() {
-		var doc = cur_frm.doc		
-		if(doc.name) 
-			$c_obj(make_doclist(doc.doctype, doc.name),'close_ticket','',function(r,rt) {
-				if(!r.exc) {
-					cur_frm.refresh();
-				}
-			});
+		cur_frm.cscript.set_status("Closed");
 	},
 	
 	'Re-Open Ticket': function() {
-		var doc = cur_frm.doc		
-		if(doc.name) 
-			$c_obj(make_doclist(doc.doctype, doc.name),'reopen_ticket','',function(r,rt) {
-				if(!r.exc) {
-					cur_frm.refresh();
-				}
-			});
-	}
+		cur_frm.cscript.set_status("Open");
+	},
 
+	set_status: function(status) {
+		wn.call({
+			method:"support.doctype.support_ticket.support_ticket.set_status",
+			args: {
+				name: cur_frm.doc.name,
+				status: status
+			},
+			callback: function(r) {
+				if(!r.exc) cur_frm.reload_doc();
+			}
+		})
+		
+	}
 	
 })
 
diff --git a/support/doctype/support_ticket/support_ticket.py b/support/doctype/support_ticket/support_ticket.py
index 0f4a25e..43b8283 100644
--- a/support/doctype/support_ticket/support_ticket.py
+++ b/support/doctype/support_ticket/support_ticket.py
@@ -19,6 +19,7 @@
 
 from utilities.transaction_base import TransactionBase
 from home import update_feed
+from webnotes.utils import now
 
 class DocType(TransactionBase):
 	def __init__(self, doc, doclist=[]):
@@ -40,6 +41,9 @@
 		if signature:
 			content += '<p>' + signature + '</p>'
 		return content
+	
+	def validate(self):
+		self.update_status()
 		
 	def on_communication_sent(self, comm):
 		webnotes.conn.set(self.doc, 'status', 'Waiting for Customer')
@@ -47,15 +51,23 @@
 			webnotes.conn.set(self.doc, 'lead', comm.lead)
 		if comm.contact and not self.doc.contact:
 			webnotes.conn.set(self.doc, 'contact', comm.contact)
-	
-	def close_ticket(self):
-		webnotes.conn.set(self.doc,'status','Closed')
-		update_feed(self)
-
-	def reopen_ticket(self):
-		webnotes.conn.set(self.doc,'status','Open')		
-		update_feed(self)
-		
+			
 	def on_trash(self):
 		webnotes.conn.sql("""update `tabCommunication` set support_ticket=NULL 
 			where support_ticket=%s""", (self.doc.name,))
+
+	def update_status(self):
+		status = webnotes.conn.get_value("Support Ticket", self.doc.name, "status")
+		if self.doc.status!="Open" and status =="Open":
+			self.doc.first_responded_on = now()
+		if self.doc.status=="Closed" and status !="Closed":
+			self.doc.resolution_date = now()
+		if self.doc.status=="Open" and status !="Open":
+			self.doc.resolution_date = ""
+
+@webnotes.whitelist()
+def set_status(name, status):
+	st = webnotes.model_wrapper("Support Ticket", name)
+	st.doc.status = status
+	st.save()
+	
diff --git a/support/doctype/support_ticket/support_ticket.txt b/support/doctype/support_ticket/support_ticket.txt
index b2bdadb..b475db5 100644
--- a/support/doctype/support_ticket/support_ticket.txt
+++ b/support/doctype/support_ticket/support_ticket.txt
@@ -2,9 +2,9 @@
  {
   "owner": "Administrator", 
   "docstatus": 0, 
-  "creation": "2012-11-02 17:17:05", 
+  "creation": "2013-01-10 16:34:31", 
   "modified_by": "Administrator", 
-  "modified": "2012-11-28 10:45:19"
+  "modified": "2013-01-14 14:15:37"
  }, 
  {
   "autoname": "naming_series:", 
@@ -25,10 +25,11 @@
   "name": "__common__", 
   "parent": "Support Ticket", 
   "amend": 0, 
-  "submit": 0, 
   "doctype": "DocPerm", 
+  "submit": 0, 
   "read": 1, 
   "parenttype": "DocType", 
+  "report": 1, 
   "parentfield": "permissions"
  }, 
  {
@@ -52,7 +53,6 @@
   "permlevel": 1, 
   "no_copy": 1, 
   "oldfieldtype": "Select", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Status", 
   "oldfieldname": "status", 
@@ -117,7 +117,6 @@
   "permlevel": 1
  }, 
  {
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Additional Info", 
   "fieldname": "additional_info", 
@@ -152,12 +151,10 @@
  {
   "print_hide": 1, 
   "oldfieldtype": "Link", 
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Customer", 
   "oldfieldname": "customer", 
   "permlevel": 1, 
-  "trigger": "Client", 
   "fieldname": "customer", 
   "fieldtype": "Link", 
   "search_index": 1, 
@@ -218,31 +215,26 @@
   "permlevel": 1
  }, 
  {
-  "depends_on": "eval:!doc.__islocal", 
+  "doctype": "DocField", 
+  "label": "First Responded On", 
+  "fieldname": "first_responded_on", 
+  "fieldtype": "Datetime", 
+  "permlevel": 0
+ }, 
+ {
   "no_copy": 1, 
-  "search_index": 0, 
-  "colour": "White:FFF", 
+  "depends_on": "eval:!doc.__islocal", 
   "doctype": "DocField", 
   "label": "Resolution Date", 
   "oldfieldname": "resolution_date", 
   "fieldname": "resolution_date", 
-  "fieldtype": "Date", 
+  "fieldtype": "Datetime", 
+  "search_index": 0, 
   "oldfieldtype": "Date", 
   "permlevel": 1, 
   "in_filter": 0
  }, 
  {
-  "oldfieldtype": "Time", 
-  "doctype": "DocField", 
-  "label": "Resolution Time", 
-  "oldfieldname": "resolution_time", 
-  "fieldname": "resolution_time", 
-  "fieldtype": "Time", 
-  "depends_on": "eval:!doc.__islocal", 
-  "permlevel": 1
- }, 
- {
-  "colour": "White:FFF", 
   "doctype": "DocField", 
   "label": "Content Type", 
   "fieldname": "content_type", 
diff --git a/support/page/support_analytics/support_analytics.js b/support/page/support_analytics/support_analytics.js
index e310df3..60384bb 100644
--- a/support/page/support_analytics/support_analytics.js
+++ b/support/page/support_analytics/support_analytics.js
@@ -53,8 +53,12 @@
 			checked:true};
 		var days_to_close = {status:"Days to Close", "id":"days-to-close",
 			checked:false};
+		var total_closed = {};
 		var hours_to_close = {status:"Hours to Close", "id":"hours-to-close", 
 			checked:false};
+		var hours_to_respond = {status:"Hours to Respond", "id":"hours-to-respond", 
+			checked:false};
+		var total_responded = {};
 
 		
 		$.each(wn.report_dump.data["Support Ticket"], function(i, d) {
@@ -62,25 +66,40 @@
 			var date = d.creation.split(" ")[0];
 			var col = me.column_map[date];
 			if(col) {
-				// just count
-				var day_diff = dateutil.get_diff(d.modified, d.creation);
-				var hour_diff = dateutil.get_hour_diff(d.modified, d.creation);
-
 				total_tickets[col.field] = flt(total_tickets[col.field]) + 1;
-				days_to_close[col.field] = flt(days_to_close[col.field]) + day_diff;
-				hours_to_close[col.field] = flt(hours_to_close[col.field]) + hour_diff;
+				if(d.status=="Closed") {
+					// just count
+					total_closed[col.field] = flt(total_closed[col.field]) + 1;
+
+					days_to_close[col.field] = flt(days_to_close[col.field])
+						+ dateutil.get_diff(d.resolution_date, d.creation);
+						
+					hours_to_close[col.field] = flt(hours_to_close[col.field])
+						+ dateutil.get_hour_diff(d.resolution_date, d.creation);
+
+				} 
+				if (d.first_responded_on) {
+					total_responded[col.field] = flt(total_responded[col.field]) + 1;
+					
+					hours_to_respond[col.field] = flt(hours_to_respond[col.field])
+						+ dateutil.get_hour_diff(d.first_responded_on, d.creation);
+				}
 			}
 		});
 		
 		// make averages
 		$.each(this.columns, function(i, col) {
 			if(col.formatter==me.currency_formatter && total_tickets[col.field]) {
-				days_to_close[col.field] = flt(days_to_close[col.field]) / flt(total_tickets[col.field]);
-				hours_to_close[col.field] = flt(hours_to_close[col.field]) / flt(total_tickets[col.field]);
+				days_to_close[col.field] = flt(days_to_close[col.field]) /
+					flt(total_closed[col.field]);
+				hours_to_close[col.field] = flt(hours_to_close[col.field]) /
+					flt(total_closed[col.field]);
+				hours_to_respond[col.field] = flt(hours_to_respond[col.field]) / 
+					flt(total_responded[col.field]);
 			}
 		})
 		
-		this.data = [total_tickets, days_to_close, hours_to_close];
+		this.data = [total_tickets, days_to_close, hours_to_close, hours_to_respond];
 	},
 
 	get_plot_points: function(item, col, idx) {
