diff --git a/crm/doctype/quotation/quotation.js b/crm/doctype/quotation/quotation.js
index bdf6781..f21df25 100644
--- a/crm/doctype/quotation/quotation.js
+++ b/crm/doctype/quotation/quotation.js
@@ -21,11 +21,6 @@
   //if(!doc.price_list_name && sys_defaults.price_list_name) set_multiple(cdt,cdn,{price_list_name:sys_defaults.price_list_name});
   if(!doc.company && sys_defaults.company) set_multiple(cdt,cdn,{company:sys_defaults.company});
   if(!doc.fiscal_year && sys_defaults.fiscal_year) set_multiple(cdt,cdn,{fiscal_year:sys_defaults.fiscal_year});
-
-  // load default charges
-  if(doc.__islocal && !getchildren('RV Tax Detail', doc.name, 'other_charges', doc.doctype).length) cur_frm.cscript.load_taxes(doc, cdt, cdn);
-
-  if(doc.__islocal==1){  cur_frm.cscript.price_list_name(doc, cdt, cdn);}
   
   if(doc.quotation_to) {
     if(doc.quotation_to == 'Customer') {
@@ -37,6 +32,12 @@
   }
 }
 
+cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
+  // load default charges
+  if(doc.__islocal && !getchildren('RV Tax Detail', doc.name, 'other_charges', doc.doctype).length) 
+    cur_frm.cscript.load_taxes(doc, cdt, cdn);
+}
+
 // hide - unhide fields based on lead or customer..
 // =======================================================================================================================
 cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){
diff --git a/material_management/doctype/stock_ledger/stock_ledger.py b/material_management/doctype/stock_ledger/stock_ledger.py
index a52dae7..e67afa6 100644
--- a/material_management/doctype/stock_ledger/stock_ledger.py
+++ b/material_management/doctype/stock_ledger/stock_ledger.py
@@ -235,3 +235,10 @@
 		sle_obj.validate()
 		sle.save(new = 1)
 		return sle.name
+		
+	def repost(self):
+		"""
+		Repost everything!
+		"""
+		for wh in sql("select name from tabWarehouse"):
+			get_obj('Warehouse', wh[0]).repost_stock()
diff --git a/setup/doctype/sales_person/sales_person.py b/setup/doctype/sales_person/sales_person.py
index f085376..04a40bd 100644
--- a/setup/doctype/sales_person/sales_person.py
+++ b/setup/doctype/sales_person/sales_person.py
@@ -6,6 +6,7 @@
 from webnotes.model.code import get_obj
 from webnotes import session, form, is_testing, msgprint, errprint
 
+
 sql = webnotes.conn.sql
 convert_to_lists = webnotes.conn.convert_to_lists
 	
@@ -36,7 +37,7 @@
 
 
   def validate(self): 
-
+	from webnotes.utils import flt
     for d in getlist(self.doclist, 'target_details'):
       if not flt(d.target_qty) and not flt(d.target_amount):
         msgprint("Either target qty or target amount is mandatory.")
diff --git a/setup/doctype/setup_control/setup_control.py b/setup/doctype/setup_control/setup_control.py
index 9712860..02fd573 100644
--- a/setup/doctype/setup_control/setup_control.py
+++ b/setup/doctype/setup_control/setup_control.py
@@ -142,23 +142,27 @@
   # Create Profile
   # --------------
   def create_profile(self, user_email, user_fname, user_lname):
-    roles_list = ['System Manager','Sales Manager','Sales User','Purchase Manager','Purchase User','Material Manager','Material User','Accounts Manager','Accounts User','HR Manager','HR User','Production Manager','Production User','Sales Master Manager','Purchase Master Manager','Material Master Manager','Quality Manager','Maintenance User','Maintenance Manager']
     pr = Document('Profile')
     pr.first_name = user_fname
     pr.last_name = user_lname
     pr.email = user_email
     pr.enabled = 1
     pr.save(1)
+	self.add_roles(pr)
+
+  def add_roles(self, pr):
+    roles_list = ['System Manager','Sales Manager','Sales User','Purchase Manager','Purchase User','Material Manager','Material User','Accounts Manager','Accounts User','HR Manager','HR User','Production Manager','Production User','Sales Master Manager','Purchase Master Manager','Material Master Manager','Quality Manager','Maintenance User','Maintenance Manager']
     for r in roles_list:
       d = addchild(pr, 'userroles', 'UserRole', 1)
       d.role = r
-      d.save()
+      d.save(1)
+
     # Add roles to Administrator profile
     pr_obj = get_obj('Profile','Administrator')
     for r in roles_list:
       d = addchild(pr_obj.doc,'userroles', 'UserRole', 1)
       d.role = r
-      d.save()
+      d.save(1)
   
   # Update WN ERP Client Control
   # -----------------------------
