Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/erpnext/home/__init__.py b/erpnext/home/__init__.py
index 2cca85a..8118ea6 100644
--- a/erpnext/home/__init__.py
+++ b/erpnext/home/__init__.py
@@ -47,7 +47,7 @@
 	# Support
 	'Customer Issue':       ['[%(status)s] %(description)s by %(customer_name)s', '#000080'],
 	'Maintenance Visit':['To %(customer_name)s', '#4169E1'],
-	'Support Ticket':       ['[%(status)s] %(subject)s', '#000080'],
+	'Support Ticket':       ["[%(status)s] %(subject)s", '#000080'],
 	
 	# Website
 	'Web Page': ['%(title)s', '#000080'],
diff --git a/erpnext/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py
index f35f475..d3a7bc7 100644
--- a/erpnext/home/page/my_company/my_company.py
+++ b/erpnext/home/page/my_company/my_company.py
@@ -67,7 +67,7 @@
 	# erpnext-saas
 	if cint(webnotes.conn.get_value('Control Panel', None, 'sync_with_gateway')):
 		from server_tools.gateway_utils import add_user_gateway
-		add_user_gateway(args['user'])
+		add_user_gateway(args)
 	
 	add_profile(args)
 	
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index c5989bb..ff9bf68 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -282,7 +282,8 @@
 			Returns start and end date depending on the frequency of email digest
 		"""
 		from datetime import datetime, date, timedelta
-		today = datetime.now().date()
+		from webnotes.utils import now_datetime
+		today = now_datetime().date()
 		year, month, day = today.year, today.month, today.day
 		
 		if self.doc.frequency == 'Daily':
@@ -409,6 +410,7 @@
 
 		from webnotes.utils.email_lib import sendmail
 		try:
+			#webnotes.msgprint('in send')
 			sendmail(
 				recipients=recipient_list,
 				sender='notifications+email_digest@erpnext.com',
@@ -419,64 +421,22 @@
 			)
 		except Exception, e:
 			webnotes.msgprint('There was a problem in sending your email. Please contact support@erpnext.com')
-			#webnotes.errprint(webnotes.getTraceback())
+			webnotes.errprint(webnotes.getTraceback())
 
 
 	def get_next_sending(self):
-		"""
-
-		"""
-		# Get TimeZone
-		# Get System TimeZone
-		import time
-		from pytz import timezone
 		import datetime
-		import webnotes.defs
-		cp = webnotes.model.doc.Document('Control Panel','Control Panel')
-		app_tz = timezone(cp.time_zone)
-		server_tz = timezone(getattr(webnotes.defs, 'system_timezone'))
 		
 		start_date, end_date = self.get_start_end_dates()
 		
-		new_date = end_date + datetime.timedelta(days=1)
-		new_time = datetime.time(hour=6)
-
-		naive_dt = datetime.datetime.combine(new_date, new_time)
-		app_dt = app_tz.localize(naive_dt)
-		server_dt = server_tz.normalize(app_dt.astimezone(server_tz))
-
-		res = {
-			'app_dt': app_dt.replace(tzinfo=None),
-			'app_tz': app_tz,
-			'server_dt': server_dt.replace(tzinfo=None),
-			'server_tz': server_tz
-		}
-
+		send_date = end_date + datetime.timedelta(days=1)
+		
 		from webnotes.utils import formatdate
-		str_date = formatdate(str(res['app_dt'].date()))
-		str_time = res['app_dt'].time().strftime('%I:%M')
+		str_date = formatdate(str(send_date))
 
-		self.doc.next_send = str_date + " at about " + str_time
+		self.doc.next_send = str_date + " at midnight"
 
-		return res
-
-
-	def get_next_execution(self):
-		"""
-
-		"""
-		from datetime import datetime, timedelta
-		dt_args = self.get_next_sending()
-		server_dt = dt_args['server_dt']
-		now_dt = datetime.now(dt_args['server_tz'])
-		if now_dt.time() <= server_dt.time():
-			next_date = now_dt.date()
-		else:
-			next_date = now_dt.date() + timedelta(days=1)
-
-		next_time = server_dt.time()
-
-		return datetime.combine(next_date, next_time)
+		return send_date
 
 
 	def onload(self):
@@ -743,21 +703,16 @@
 	""", as_list=1)
 
 	from webnotes.model.code import get_obj
-	from datetime import datetime, timedelta
-	now = datetime.now()
-	now_date = now.date()
-	now_time = (now + timedelta(hours=2)).time()
+	from webnotes.utils import now_datetime
 
+	now_date = now_datetime().date()
+	
 	for ed in edigest_list:
 		if ed[0]:
 			ed_obj = get_obj('Email Digest', ed[0])
 			ed_obj.sending = True
-			dt_dict = ed_obj.get_next_sending()
-			send_date = dt_dict['server_dt'].date()
-			send_time = dt_dict['server_dt'].time()
+			send_date = ed_obj.get_next_sending()
+			#webnotes.msgprint([ed[0], now_date, send_date])
 
 			if (now_date == send_date):
-				#webnotes.msgprint('sending ' + ed_obj.doc.name)
 				ed_obj.send()
-			#else:
-			#	webnotes.msgprint('not sending ' + ed_obj.doc.name)
diff --git a/erpnext/setup/doctype/email_settings/email_settings.py b/erpnext/setup/doctype/email_settings/email_settings.py
index 0f930bc..c670b31 100644
--- a/erpnext/setup/doctype/email_settings/email_settings.py
+++ b/erpnext/setup/doctype/email_settings/email_settings.py
@@ -35,8 +35,8 @@
 		"""
 			Update value in control panel
 		"""
-		if self.doc.fields.get(key):
-			webnotes.conn.set_value('Control Panel', None, key, self.doc.fields[key])
+		webnotes.conn.set_value('Control Panel', None, key,
+				self.doc.fields.get(key))
 
 	def validate(self):
 		"""
@@ -117,19 +117,7 @@
 		
 	def on_update(self):
 		"""
-			Sets or cancels the event in the scheduler
+			update control panel
 		"""
-		# update control panel
 		for f in ('outgoing_mail_server', 'mail_login', 'mail_password', 'auto_email_id', 'mail_port', 'use_ssl'):
 			self.set_cp_value(f)
-
-		# setup scheduler for support emails
-		if cint(self.doc.sync_support_mails):
-			if not (self.doc.support_host and self.doc.support_username and self.doc.support_password):
-				webnotes.msgprint("You must give the incoming POP3 settings for support emails to activiate mailbox integration", raise_exception=1)
-			
-			from webnotes.utils.scheduler import set_event
-			set_event('support.doctype.support_ticket.get_support_mails', 60*5, 1)
-		else:
-			from webnotes.utils.scheduler import cancel_event
-			cancel_event('support.doctype.support_ticket.get_support_mails')
diff --git a/erpnext/support/doctype/support_ticket/__init__.py b/erpnext/support/doctype/support_ticket/__init__.py
index ca27a61..eebb6cf 100644
--- a/erpnext/support/doctype/support_ticket/__init__.py
+++ b/erpnext/support/doctype/support_ticket/__init__.py
@@ -81,6 +81,7 @@
 				st.make_response_record(content, mail.mail['From'], content_type)
 				webnotes.conn.set(st.doc, 'status', 'Open')
 				update_feed(st.doc, 'on_update')
+				webnotes.conn.commit()
 				# extract attachments
 				self.save_attachments(st.doc, mail.attachments)
 				return
@@ -99,21 +100,22 @@
 		d.naming_series = (opts and opts[0] and opts[0][0] and opts[0][0].split("\n")[0]) or 'SUP'
 		try:
 			d.save(1)
+		except:
+			d.description = 'Unable to extract message'
+			d.save(1)
 
+		else:
 			# update feed
 			update_feed(d, 'on_update')
 
 			# send auto reply
 			self.send_auto_reply(d)
 
-		except:
-			d.description = 'Unable to extract message'
-			d.save(1)
-
-		else:
+			webnotes.conn.commit()
+			
 			# extract attachments
 			self.save_attachments(d, mail.attachments)
-
+			
 
 	def save_attachments(self, doc, attachment_list=[]):
 		"""
@@ -138,9 +140,10 @@
 		"""
 			Send auto reply to emails
 		"""
-		signature = self.email_settings.support_signature
+		from webnotes.utils import cstr
+		signature = self.email_settings.fields.get('support_signature') or ''
 
-		response = self.email_settings.support_autoreply or ("""
+		response = self.email_settings.fields.get('support_autoreply') or ("""
 A new Ticket has been raised for your query. If you have any additional information, please
 reply back to this mail.
 		
@@ -148,15 +151,15 @@
 
 [This is an automatic response]
 
-		""" + (signature or ''))
+		""" + cstr(signature))
 
 		from webnotes.utils.email_lib import sendmail
 		
 		sendmail(\
-			recipients = [d.raised_by], \
-			sender = self.email_settings.support_email, \
-			subject = '['+d.name+'] ' + cstr(d.subject), \
-			msg = response)
+			recipients = [cstr(d.raised_by)], \
+			sender = cstr(self.email_settings.fields.get('support_email')), \
+			subject = '['+cstr(d.name)+'] ' + cstr(d.subject), \
+			msg = cstr(response))
 		
 	def auto_close_tickets(self):
 		"""