[fix] [minor] set due date in sales invoice after mapping
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index c9059cc..5fd0ba7 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -162,12 +162,22 @@
 		
 	def set_missing_values(self, for_validate=False):
 		self.set_pos_fields(for_validate)
+		
+		if not self.doc.debit_to:
+			self.doc.debit_to = self.get_customer_account()
+		if not self.doc.due_date:
+			self.doc.due_date = self.get_due_date()
+		
 		super(DocType, self).set_missing_values(for_validate)
 		
 	def set_customer_defaults(self):
 		# TODO cleanup these methods
-		self.doc.fields.update(self.get_debit_to())
-		self.get_cust_and_due_date()
+		if self.doc.customer:
+			self.doc.debit_to = self.get_customer_account()
+		elif self.doc.debit_to:
+			self.doc.customer = webnotes.conn.get_value('Account', self.doc.debit_to, 'master_name')
+		
+		self.doc.due_date = self.get_due_date()
 		
 		super(DocType, self).set_customer_defaults()
 			
@@ -243,16 +253,9 @@
 					You must first create it from the Customer Master" % 
 					(self.doc.customer, self.doc.company))
 
-	def get_debit_to(self):
-		acc_head = self.get_customer_account()
-		return acc_head and {'debit_to' : acc_head} or {}
-
-
-	def get_cust_and_due_date(self):
+	def get_due_date(self):
 		"""Set Due Date = Posting Date + Credit Days"""
-		if self.doc.debit_to:
-			self.doc.customer = webnotes.conn.get_value('Account', self.doc.debit_to, 'master_name')
-			
+		due_date = None
 		if self.doc.posting_date:
 			credit_days = 0
 			if self.doc.debit_to:
@@ -263,9 +266,11 @@
 				credit_days = webnotes.conn.get_value("Company", self.doc.company, "credit_days")
 				
 			if credit_days:
-				self.doc.due_date = add_days(self.doc.posting_date, credit_days)
+				due_date = add_days(self.doc.posting_date, credit_days)
 			else:
-				self.doc.due_date = self.doc.posting_date
+				due_date = self.doc.posting_date
+
+		return due_date
 
 	def get_barcode_details(self, barcode):
 		return get_obj('Sales Common').get_barcode_details(barcode)
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index fb762af..8d80652 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -14,12 +14,8 @@
 	def onload_post_render(self):
 		# contact, address, item details and pos details (if applicable)
 		self.set_missing_values()
-		
 		self.set_taxes("other_charges", "charge")
 		
-		if self.meta.get_field("debit_to") and not self.doc.debit_to:
-			self.doc.debit_to = self.get_debit_to().get("debit_to")
-			
 	def set_missing_values(self, for_validate=False):
 		super(SellingController, self).set_missing_values(for_validate)