Merge branch 'master' into edge
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py b/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
index 92c9e78..870147a 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool/test_payment_to_invoice_matching_tool.py
@@ -18,169 +18,171 @@
 import unittest
 import webnotes
 
-from webnotes.model.doc import Document
-from webnotes.model.code import get_obj
-from webnotes.utils import cstr, flt
-sql = webnotes.conn.sql
+test_records = []
 
-class TestInternalReco(unittest.TestCase):
-	def setUp(self):
-		webnotes.conn.begin()
-		
-		comp1.save(1)
-		cust1.save(1)
-		bank1.save(1)
-		rv1.save(1)
-		rv_gle.save(1)
-
-
-		for t in jv1: t.save(1)
-		for t in jv1[1:]:
-			sql("update `tabJournal Voucher Detail` set parent = '%s' where name = '%s'" % (jv1[0].name, t.name))
-			
-		ir[0].save()
-		for t in ir[1:]:
-			t.save(1)
-			sql("update `tabPayment to Invoice Matching Tool Detail` set voucher_no = '%s', voucher_detail_no = '%s' where parent = 'Payment to Invoice Matching Tool'" % (jv1[0].name, jv1[1].name))
-		
-		
-		sql("update `tabGL Entry` set voucher_no = %s, against_voucher = %s where voucher_no = 'rv1'", (rv1.name, rv1.name))
-		sql("update `tabSingles` set value = %s where doctype = 'Payment to Invoice Matching Tool' and field = 'voucher_no'", rv1.name)
-		
-		
-		self.ir = get_obj('Payment to Invoice Matching Tool', with_children=1)		
-		self.ir.reconcile()
-		
-	#===========================
-	def test_jv(self):
-		"""
-			Test whether JV has benn properly splitted and against doc has been updated
-		"""
-		amt_against_doc = [[cstr(d[0]), flt(d[1]), flt(d[2])]for d in sql("select against_invoice, debit, credit from `tabJournal Voucher Detail` where parent = %s and account = 'cust1 - c1'", jv1[0].name)]
-		self.assertTrue(amt_against_doc == [[rv1.name, 0, 100.0], ['', 0, 400.0]])
-
-	#============================		
-	def test_gl_entry(self):
-		"""
-			Check proper gl entry has been made
-		"""
-		gle = [[cstr(d[0]), flt(d[1])] for d in sql("select against_voucher, sum(credit) - sum(debit) from `tabGL Entry` where voucher_no = %s and account = 'cust1 - c1' and ifnull(is_cancelled, 'No') = 'No' group by against_voucher", jv1[0].name)]
-
-		self.assertTrue([rv1.name, 100.0] in gle)
-		self.assertTrue(['', 400.0] in gle)
-		
-	#============================
-	def test_outstanding(self):
-		"""
-			Check whether Outstanding amount has been properly updated in RV
-		"""
-		amt = sql("select outstanding_amount from `tabSales Invoice` where name = '%s'" % rv1.name)[0][0]
-		self.assertTrue(amt == 0)
-		
-	#============================
-	def tearDown(self):
-		webnotes.conn.rollback()
-	
-
-
-
-# test data
-#---------------
-rv1 = Document(fielddata={
-		'doctype':'Sales Invoice',
-		'docstatus':1,
-		'debit_to':'cust1 - c1',
-		'grand_total': 100,
-		'outstanding_amount': 100,
-		'name': 'rv1'
-	})
-	
-jv1 = [Document(fielddata={
-		'doctype':'Journal Voucher',
-		'docstatus':1,
-		'cheque_no': '163567',
-		'docstatus':1,
-		'company': 'comp1',
-		'posting_date' : '2011-05-02',
-		'remark': 'test data',
-		'fiscal_year': '2011-2012',
-		'total_debit': 500,
-		'total_credit': 500
-	}),
-	Document(fielddata = {
-		'parenttype':'Journal Voucher',
-		'parentfield':'entries',
-		'doctype':'Journal Voucher Detail',
-		'account' : 'cust1 - c1',
-		'credit':500,
-		'debit' : 0,
-		'docstatus':1
-	}),
-	Document(fielddata = {
-		'parenttype':'Journal Voucher',
-		'parentfield':'entries',
-		'doctype':'Journal Voucher Detail',
-		'account' : 'bank1 - c1',
-		'credit':0,
-		'debit' : 500,
-		'docstatus':1
-	})]
-	
-ir = [Document(fielddata = {
-		'doctype':'Payment to Invoice Matching Tool',
-		'name' : 'Payment to Invoice Matching Tool',
-		'account':'cust1 - c1',
-		'voucher_type' : 'Sales Invoice',
-		'voucher_no': 'rv1'
-	}),
-	Document(fielddata = {
-		'parenttype':'Payment to Invoice Matching Tool',
-		'parentfield':'ir_payment_details',
-		'doctype':'Payment to Invoice Matching Tool Detail',
-		'parent': 'Payment to Invoice Matching Tool',
-		'voucher_no': 'jv1',
-		'name' : '123112',
-		'voucher_detail_no' : 'jvd1',
-		'selected' : 1,
-		'amt_due' : 500,
-		'amt_to_be_reconciled':100
-	})]
-	
-cust1 = Document(fielddata={
-		'doctype':'Account',
-		'docstatus':0,
-		'account_name' : 'cust1',
-		'debit_or_credit': 'Debit',
-		'company' : 'comp1',
-		'lft': 1,
-		'rgt': 2
-	})
-	
-bank1 = Document(fielddata={
-		'doctype':'Account',
-		'docstatus':0,
-		'account_name' : 'bank1',
-		'debit_or_credit': 'Debit',
-		'company' : 'comp1',
-		'lft': 3,
-		'rgt': 4
-	})	
-	
-comp1 = Document(fielddata={
-		'doctype':'Company',
-		'abbr': 'c1',
-		'company_name' : 'comp1',
-		'name': 'comp1'
-	})
-	
-rv_gle = Document(fielddata={
-		'doctype':'GL Entry',
-		'account': 'cust1 - c1',
-		'company' : 'comp1',
-		'voucher_no': 'rv1',
-		'against_voucher': 'rv1',
-		'against_voucher_type': 'Sales Invoice',
-		'voucher_type' : 'Sales Invoice',
-		'debit': 100,
-		'credit': 0
-	})
+# from webnotes.model.doc import Document
+# from webnotes.model.code import get_obj
+# from webnotes.utils import cstr, flt
+# sql = webnotes.conn.sql
+# 
+# class TestInternalReco(unittest.TestCase):
+# 	def setUp(self):
+# 		webnotes.conn.begin()
+# 		
+# 		comp1.save(1)
+# 		cust1.save(1)
+# 		bank1.save(1)
+# 		rv1.save(1)
+# 		rv_gle.save(1)
+# 
+# 
+# 		for t in jv1: t.save(1)
+# 		for t in jv1[1:]:
+# 			sql("update `tabJournal Voucher Detail` set parent = '%s' where name = '%s'" % (jv1[0].name, t.name))
+# 			
+# 		ir[0].save()
+# 		for t in ir[1:]:
+# 			t.save(1)
+# 			sql("update `tabPayment to Invoice Matching Tool Detail` set voucher_no = '%s', voucher_detail_no = '%s' where parent = 'Payment to Invoice Matching Tool'" % (jv1[0].name, jv1[1].name))
+# 		
+# 		
+# 		sql("update `tabGL Entry` set voucher_no = %s, against_voucher = %s where voucher_no = 'rv1'", (rv1.name, rv1.name))
+# 		sql("update `tabSingles` set value = %s where doctype = 'Payment to Invoice Matching Tool' and field = 'voucher_no'", rv1.name)
+# 		
+# 		
+# 		self.ir = get_obj('Payment to Invoice Matching Tool', with_children=1)		
+# 		self.ir.reconcile()
+# 		
+# 	#===========================
+# 	def test_jv(self):
+# 		"""
+# 			Test whether JV has benn properly splitted and against doc has been updated
+# 		"""
+# 		amt_against_doc = [[cstr(d[0]), flt(d[1]), flt(d[2])]for d in sql("select against_invoice, debit, credit from `tabJournal Voucher Detail` where parent = %s and account = 'cust1 - c1'", jv1[0].name)]
+# 		self.assertTrue(amt_against_doc == [[rv1.name, 0, 100.0], ['', 0, 400.0]])
+# 
+# 	#============================		
+# 	def test_gl_entry(self):
+# 		"""
+# 			Check proper gl entry has been made
+# 		"""
+# 		gle = [[cstr(d[0]), flt(d[1])] for d in sql("select against_voucher, sum(credit) - sum(debit) from `tabGL Entry` where voucher_no = %s and account = 'cust1 - c1' and ifnull(is_cancelled, 'No') = 'No' group by against_voucher", jv1[0].name)]
+# 
+# 		self.assertTrue([rv1.name, 100.0] in gle)
+# 		self.assertTrue(['', 400.0] in gle)
+# 		
+# 	#============================
+# 	def test_outstanding(self):
+# 		"""
+# 			Check whether Outstanding amount has been properly updated in RV
+# 		"""
+# 		amt = sql("select outstanding_amount from `tabSales Invoice` where name = '%s'" % rv1.name)[0][0]
+# 		self.assertTrue(amt == 0)
+# 		
+# 	#============================
+# 	def tearDown(self):
+# 		webnotes.conn.rollback()
+# 	
+# 
+# 
+# 
+# # test data
+# #---------------
+# rv1 = Document(fielddata={
+# 		'doctype':'Sales Invoice',
+# 		'docstatus':1,
+# 		'debit_to':'cust1 - c1',
+# 		'grand_total': 100,
+# 		'outstanding_amount': 100,
+# 		'name': 'rv1'
+# 	})
+# 	
+# jv1 = [Document(fielddata={
+# 		'doctype':'Journal Voucher',
+# 		'docstatus':1,
+# 		'cheque_no': '163567',
+# 		'docstatus':1,
+# 		'company': 'comp1',
+# 		'posting_date' : '2011-05-02',
+# 		'remark': 'test data',
+# 		'fiscal_year': '2011-2012',
+# 		'total_debit': 500,
+# 		'total_credit': 500
+# 	}),
+# 	Document(fielddata = {
+# 		'parenttype':'Journal Voucher',
+# 		'parentfield':'entries',
+# 		'doctype':'Journal Voucher Detail',
+# 		'account' : 'cust1 - c1',
+# 		'credit':500,
+# 		'debit' : 0,
+# 		'docstatus':1
+# 	}),
+# 	Document(fielddata = {
+# 		'parenttype':'Journal Voucher',
+# 		'parentfield':'entries',
+# 		'doctype':'Journal Voucher Detail',
+# 		'account' : 'bank1 - c1',
+# 		'credit':0,
+# 		'debit' : 500,
+# 		'docstatus':1
+# 	})]
+# 	
+# ir = [Document(fielddata = {
+# 		'doctype':'Payment to Invoice Matching Tool',
+# 		'name' : 'Payment to Invoice Matching Tool',
+# 		'account':'cust1 - c1',
+# 		'voucher_type' : 'Sales Invoice',
+# 		'voucher_no': 'rv1'
+# 	}),
+# 	Document(fielddata = {
+# 		'parenttype':'Payment to Invoice Matching Tool',
+# 		'parentfield':'ir_payment_details',
+# 		'doctype':'Payment to Invoice Matching Tool Detail',
+# 		'parent': 'Payment to Invoice Matching Tool',
+# 		'voucher_no': 'jv1',
+# 		'name' : '123112',
+# 		'voucher_detail_no' : 'jvd1',
+# 		'selected' : 1,
+# 		'amt_due' : 500,
+# 		'amt_to_be_reconciled':100
+# 	})]
+# 	
+# cust1 = Document(fielddata={
+# 		'doctype':'Account',
+# 		'docstatus':0,
+# 		'account_name' : 'cust1',
+# 		'debit_or_credit': 'Debit',
+# 		'company' : 'comp1',
+# 		'lft': 1,
+# 		'rgt': 2
+# 	})
+# 	
+# bank1 = Document(fielddata={
+# 		'doctype':'Account',
+# 		'docstatus':0,
+# 		'account_name' : 'bank1',
+# 		'debit_or_credit': 'Debit',
+# 		'company' : 'comp1',
+# 		'lft': 3,
+# 		'rgt': 4
+# 	})	
+# 	
+# comp1 = Document(fielddata={
+# 		'doctype':'Company',
+# 		'abbr': 'c1',
+# 		'company_name' : 'comp1',
+# 		'name': 'comp1'
+# 	})
+# 	
+# rv_gle = Document(fielddata={
+# 		'doctype':'GL Entry',
+# 		'account': 'cust1 - c1',
+# 		'company' : 'comp1',
+# 		'voucher_no': 'rv1',
+# 		'against_voucher': 'rv1',
+# 		'against_voucher_type': 'Sales Invoice',
+# 		'voucher_type' : 'Sales Invoice',
+# 		'debit': 100,
+# 		'credit': 0
+# 	})
diff --git a/accounts/doctype/pos_setting/test_pos_setting.py b/accounts/doctype/pos_setting/test_pos_setting.py
index 2c45c4d..2373f85 100644
--- a/accounts/doctype/pos_setting/test_pos_setting.py
+++ b/accounts/doctype/pos_setting/test_pos_setting.py
@@ -7,8 +7,10 @@
 		"price_list_name": "_Test Price List",
 		"company": "_Test Company",
 		"warehouse": "_Test Warehouse",
+		"territory": "_Test Territory", 
 		"cash_bank_account": "_Test Account Bank Account - _TC",
 		"income_account": "Sales - _TC",
 		"cost_center": "_Test Cost Center - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 	}]
 ]
\ No newline at end of file
diff --git a/accounts/doctype/sales_invoice/test_sales_invoice.py b/accounts/doctype/sales_invoice/test_sales_invoice.py
index 7aa0c27..fd8dc64 100644
--- a/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -217,21 +217,11 @@
 		return dn
 		
 	def _insert_pos_settings(self):
+		from accounts.doctype.pos_setting.test_pos_setting \
+			import test_records as pos_setting_test_records
 		webnotes.conn.sql("""delete from `tabPOS Setting`""")
-		ps = webnotes.bean([
-			{
-				"cash_bank_account": "_Test Account Bank Account - _TC", 
-				"company": "_Test Company", 
-				"conversion_rate": 1.0, 
-				"cost_center": "_Test Cost Center - _TC", 
-				"currency": "INR", 
-				"doctype": "POS Setting", 
-				"income_account": "_Test Account Bank Account - _TC", 
-				"price_list_name": "_Test Price List", 
-				"territory": "_Test Territory", 
-				"warehouse": "_Test Warehouse"
-			}
-		])
+		
+		ps = webnotes.bean(copy=pos_setting_test_records[0])
 		ps.insert()
 		
 	def test_sales_invoice_with_advance(self):
diff --git a/accounts/report/gross_profit/gross_profit.py b/accounts/report/gross_profit/gross_profit.py
index 5c06637..7f6354b 100644
--- a/accounts/report/gross_profit/gross_profit.py
+++ b/accounts/report/gross_profit/gross_profit.py
@@ -12,7 +12,7 @@
 	
 	item_sales_bom = get_item_sales_bom()
 	
-	columns = ["Delivery Note/Sales Invoice::120", "Posting Date:Date", "Posting Time", 
+	columns = ["Delivery Note/Sales Invoice::120", "Link::30", "Posting Date:Date", "Posting Time", 
 		"Item Code:Link/Item", "Item Name", "Description", "Warehouse:Link/Warehouse",
 		"Qty:Float", "Selling Rate:Currency", "Selling Amount:Currency", "Buying Amount:Currency",
 		"Gross Profit:Currency", "Gross Profit %:Percent", "Project:Link/Project"]
@@ -32,8 +32,9 @@
 		else:
 			gross_profit = gross_profit_percent = 0.0
 		
-		name = """<a href="%s">%s</a>""" % ("/".join(["#Form", row.parenttype, row.name]), row.name)
-		data.append([name, row.posting_date, row.posting_time, row.item_code, row.item_name,
+		icon = """<a href="%s"><i class="icon icon-share" style="cursor: pointer;"></i></a>""" \
+			% ("/".join(["#Form", row.parenttype, row.name]),)
+		data.append([row.name, icon, row.posting_date, row.posting_time, row.item_code, row.item_name,
 			row.description, row.warehouse, row.qty, row.basic_rate, row.amount, buying_amount,
 			gross_profit, gross_profit_percent, row.project])
 			
@@ -57,7 +58,7 @@
 	item_sales_bom = {}
 	
 	for d in webnotes.conn.sql("""select parenttype, parent, parent_item,
-		item_code, warehouse, -1*qty as total_qty
+		item_code, warehouse, -1*qty as total_qty, parent_detail_docname
 		from `tabDelivery Note Packing Item` where docstatus=1""", as_dict=True):
 		item_sales_bom.setdefault(d.parenttype, webnotes._dict()).setdefault(d.parent,
 			webnotes._dict()).setdefault(d.parent_item, []).append(d)
diff --git a/accounts/search_criteria/purchase_register/purchase_register.py b/accounts/search_criteria/purchase_register/purchase_register.py
index 93fc323..82ab047 100644
--- a/accounts/search_criteria/purchase_register/purchase_register.py
+++ b/accounts/search_criteria/purchase_register/purchase_register.py
@@ -77,14 +77,10 @@
 	r.append(net_total)
 
 	#Get tax for account heads
-	acc_head_tax = sql("""select account_head, sum(tax_amount) 
-						  from `tabPurchase Taxes and Charges` 
-						  where parent = '%s' 
-						  and parenttype = 'Purchase Invoice' 
-						  and add_deduct_tax = 'Add' 
-						  and category in ('Total', 'Valuation and Total')
-						  group by account_head
-						""" %(r[col_idx['ID']],))
+	acc_head_tax = sql("""select account_head, 
+		sum(if(add_deduct_tax='Add', tax_amount, -tax_amount)) 
+		from `tabPurchase Taxes and Charges` where parent = %s and parenttype = 'Purchase Invoice' 
+		and category in ('Total', 'Valuation and Total') group by account_head""", r[col_idx['ID']])
 
 	#Convert the result to dictionary for easy retrieval
 	acc_head_tax_dict = {}
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index a7a148a..c0bad94 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,5 +1,7 @@
 erpnext.updates = [
 	["27th March", ["Rename multiple items together. Go to Setup > Rename Tool"]],
+	["26th March", ["Added project to Stock Ledger and Balance",
+		"Added Default Cash Account in Company."]],
 	["19th March", ["Sales and Purchase Return Tool deprecated. Use Stock Entry instead."]],
 	["12th March", ["Updates to website module. Added more options in Style Settings and Website Settings."]],
 	["5th March", ["Refactored Upload Attendance Tool"]],
diff --git a/hr/doctype/department/test_department.py b/hr/doctype/department/test_department.py
index 4012583..a5ac6c7 100644
--- a/hr/doctype/department/test_department.py
+++ b/hr/doctype/department/test_department.py
@@ -1,3 +1,5 @@
+test_ignore = ["Leave Block List"]
+
 test_records = [
 	[{"doctype":"Department", "department_name":"_Test Department"}],
 	[{"doctype":"Department", "department_name":"_Test Department 1"}]
diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py
index bc4a38c..672e668 100644
--- a/hr/doctype/leave_application/test_leave_application.py
+++ b/hr/doctype/leave_application/test_leave_application.py
@@ -29,7 +29,7 @@
 		
 		application = self.get_application(test_records[1])
 		self.assertTrue(application.insert())
-
+		
 	def test_overlap(self):
 		application = self.get_application(test_records[1])
 		self.assertRaises(OverlapError, application.insert)
@@ -57,6 +57,7 @@
 		application.doc.status = "Approved"
 		self.assertRaises(LeaveDayBlockedError, application.submit)
 		
+test_dependencies = ["Leave Block List"]		
 
 test_records = [
 	[{
diff --git a/hr/doctype/salary_manager/test_salary_manager.py b/hr/doctype/salary_manager/test_salary_manager.py
index b689b51..eb990f8 100644
--- a/hr/doctype/salary_manager/test_salary_manager.py
+++ b/hr/doctype/salary_manager/test_salary_manager.py
@@ -18,199 +18,201 @@
 import unittest
 import webnotes
 
-from webnotes.model.doc import Document
-from webnotes.model.code import get_obj
-sql = webnotes.conn.sql
+test_records = []
 
-class TestSalaryManager(unittest.TestCase):
-	def setUp(self):
-		webnotes.conn.begin()
-		for rec in [des1, dep1, branch1, grade1, comp1, emp1, emp2]:
-			rec.save(1)
-					
-		ss1[0].employee = emp1.name
-		for s in ss1: s.save(1)
-		for s in ss1[1:]:
-			sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
-			sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
-			
-		
-		ss2[0].employee = emp2.name
-		for s in ss2: s.save(1)		
-		for s in ss2[1:]:
-			sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
-			sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
-			
-		sman.save()
-		self.sm = get_obj('Salary Manager')	
-		leave.save(1)
-		self.sm.create_sal_slip()
-		
-	def test_creation(self):
-		ssid = sql("""
-			select name, department 
-			from `tabSalary Slip` 
-			where month = '08' and fiscal_year='2011-2012'""")
-
-		self.assertTrue(len(ssid)==1)
-		self.assertTrue(ssid[0][1] == 'dep1')
-		
-		
-	def test_lwp_calc(self):
-		ss = sql("""
-			select payment_days
-			from `tabSalary Slip` 
-			where month = '08' and fiscal_year='2011-2012' and employee = '%s'
-		""" % emp1.name)
-		
-		self.assertTrue(ss[0][0]==27)
-		
-	def test_net_pay(self):
-		ss = webnotes.conn.sql("""
-			select rounded_total 
-			from `tabSalary Slip` 
-			where month = '08'
-			and fiscal_year='2011-2012' and employee = '%s'""" % emp1.name)
-		self.assertTrue(ss[0][0]==67)
-
-	def test_submit(self):
-		self.sm.submit_salary_slip()
-		ss = webnotes.conn.sql("""
-			select docstatus 
-			from `tabSalary Slip` 
-			where month = '08'
-			and fiscal_year='2011-2012' and employee = '%s'""" % emp1.name)
-		self.assertTrue(ss[0][0]==1)
-		
-	def tearDown(self):
-		webnotes.conn.rollback()
-		
-#--------------------------------------------
-# test data
-#--------------------------------------------
-des1 = Document(fielddata={
-	'name':'des1',
-	'doctype':'Designation',
-	'designation_name':'des1'
-})
-
-dep1 = Document(fielddata={
-	'name':'dep1',
-	'doctype':'Department',
-	'department_name' : 'dep1'
-})
-
-branch1 = Document(fielddata={
-	'name':'branch1',
-	'doctype':'Branch',
-	'branch' : 'branch1'
-})
-
-comp1 = Document(fielddata={
-	'name':'comp1',
-	'doctype':'Company',
-	'abbr':'c1',
-	'company_name' : 'comp1'
-})
-
-grade1 = Document(fielddata={
-	'name':'grade1',
-	'doctype':'Grade',
-	'grade_name' : 'grade1'	
-})
-	
-emp1 = Document(fielddata={
-	'doctype':'Employee',
-	'employee_number':'emp1',
-	'department':'dep1',
-	'designation':'des1',
-	'branch' : 'branch1',
-	'company':'comp1',
-	'grade':'grade1',
-	'naming_series':'EMP/',
-	'status':'Active',
-	'docstatus':0,
-	'employee_name':'emp1'
-})
-
-emp2 = Document(fielddata={
-	'doctype':'Employee',
-	'employee_number':'emp2',
-	'department':'dep1',
-	'designation':'des2',
-	'branch' : 'branch1',
-	'company':'comp1',
-	'naming_series':'EMP/',
-	'grade':'grade1',
-	'status':'Active',
-
-})
-
-ss1 = [
-	Document(fielddata={
-		'doctype':'Salary Structure',
-		'docstatus':0,
-		'employee':'emp1',
-		'is_active':'Yes',
-		'department': 'dep1',
-		'designation' : 'des1',
-		'employee_name': 'emp1'
-	}),
-	Document(fielddata={
-		'parenttype':'Salary Structure',
-		'parentfield':'earning_details',
-		'doctype':'Salary Structure Earning',
-		'e_type' : 'Basic',
-		'depend_on_lwp':1,
-		'modified_value':100
-	}),
-	Document(fielddata={
-		'parenttype':'Salary Structure',
-		'parentfield':'earning_details',
-		'doctype':'Salary Structure Deduction',
-		'd_type':'TDS',
-		'd_modified_amt':20
-	})
-]
-
-ss2 = [
-	Document(fielddata={
-		'doctype':'Salary Structure',
-		'is_active':'Yes',
-		'docstatus':0,
-	}),
-	Document(fielddata={
-		'parenttype':'Salary Structure',
-		'parentfield':'deduction_details',
-		'doctype':'Salary Structure Earning',
-		'e_type' : 'Basic',
-		'modified_value':100
-	}),
-	Document(fielddata={
-		'parenttype':'Salary Structure',
-		'parentfield':'deduction_details',
-		'doctype':'Salary Structure Deduction',
-		'd_type':'TDS',
-		'd_modified_amt':20
-	})
-]
-
-sman = Document(fielddata={
-		'name':'Salary Manager',
-		'doctype':'Salary Manager',
-		'company': 'comp1',
-		'department':'dep1',
-		'designation':'des1',
-		'month': '08',
-		'fiscal_year':'2011-2012'
-	})
-	
-leave = Document(fielddata = {
-		'doctype':'Leave Application',
-		'employee':'emp1',
-		'from_date':'2011-08-12',
-		'to_date':'2011-08-15',
-		'total_leave_days':'4',
-		'leave_type':'Leave Without Pay',
-		'docstatus':1
-	})
+# from webnotes.model.doc import Document
+# from webnotes.model.code import get_obj
+# sql = webnotes.conn.sql
+# 
+# class TestSalaryManager(unittest.TestCase):
+# 	def setUp(self):
+# 		webnotes.conn.begin()
+# 		for rec in [des1, dep1, branch1, grade1, comp1, emp1, emp2]:
+# 			rec.save(1)
+# 					
+# 		ss1[0].employee = emp1.name
+# 		for s in ss1: s.save(1)
+# 		for s in ss1[1:]:
+# 			sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
+# 			sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss1[0].name, s.name))
+# 			
+# 		
+# 		ss2[0].employee = emp2.name
+# 		for s in ss2: s.save(1)		
+# 		for s in ss2[1:]:
+# 			sql("update `tabSalary Structure Earning` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
+# 			sql("update `tabSalary Structure Deduction` set parent = '%s' where name = '%s'" % (ss2[0].name, s.name))
+# 			
+# 		sman.save()
+# 		self.sm = get_obj('Salary Manager')	
+# 		leave.save(1)
+# 		self.sm.create_sal_slip()
+# 		
+# 	def test_creation(self):
+# 		ssid = sql("""
+# 			select name, department 
+# 			from `tabSalary Slip` 
+# 			where month = '08' and fiscal_year='2011-2012'""")
+# 
+# 		self.assertTrue(len(ssid)==1)
+# 		self.assertTrue(ssid[0][1] == 'dep1')
+# 		
+# 		
+# 	def test_lwp_calc(self):
+# 		ss = sql("""
+# 			select payment_days
+# 			from `tabSalary Slip` 
+# 			where month = '08' and fiscal_year='2011-2012' and employee = '%s'
+# 		""" % emp1.name)
+# 		
+# 		self.assertTrue(ss[0][0]==27)
+# 		
+# 	def test_net_pay(self):
+# 		ss = webnotes.conn.sql("""
+# 			select rounded_total 
+# 			from `tabSalary Slip` 
+# 			where month = '08'
+# 			and fiscal_year='2011-2012' and employee = '%s'""" % emp1.name)
+# 		self.assertTrue(ss[0][0]==67)
+# 
+# 	def test_submit(self):
+# 		self.sm.submit_salary_slip()
+# 		ss = webnotes.conn.sql("""
+# 			select docstatus 
+# 			from `tabSalary Slip` 
+# 			where month = '08'
+# 			and fiscal_year='2011-2012' and employee = '%s'""" % emp1.name)
+# 		self.assertTrue(ss[0][0]==1)
+# 		
+# 	def tearDown(self):
+# 		webnotes.conn.rollback()
+# 		
+# #--------------------------------------------
+# # test data
+# #--------------------------------------------
+# des1 = Document(fielddata={
+# 	'name':'des1',
+# 	'doctype':'Designation',
+# 	'designation_name':'des1'
+# })
+# 
+# dep1 = Document(fielddata={
+# 	'name':'dep1',
+# 	'doctype':'Department',
+# 	'department_name' : 'dep1'
+# })
+# 
+# branch1 = Document(fielddata={
+# 	'name':'branch1',
+# 	'doctype':'Branch',
+# 	'branch' : 'branch1'
+# })
+# 
+# comp1 = Document(fielddata={
+# 	'name':'comp1',
+# 	'doctype':'Company',
+# 	'abbr':'c1',
+# 	'company_name' : 'comp1'
+# })
+# 
+# grade1 = Document(fielddata={
+# 	'name':'grade1',
+# 	'doctype':'Grade',
+# 	'grade_name' : 'grade1'	
+# })
+# 	
+# emp1 = Document(fielddata={
+# 	'doctype':'Employee',
+# 	'employee_number':'emp1',
+# 	'department':'dep1',
+# 	'designation':'des1',
+# 	'branch' : 'branch1',
+# 	'company':'comp1',
+# 	'grade':'grade1',
+# 	'naming_series':'EMP/',
+# 	'status':'Active',
+# 	'docstatus':0,
+# 	'employee_name':'emp1'
+# })
+# 
+# emp2 = Document(fielddata={
+# 	'doctype':'Employee',
+# 	'employee_number':'emp2',
+# 	'department':'dep1',
+# 	'designation':'des2',
+# 	'branch' : 'branch1',
+# 	'company':'comp1',
+# 	'naming_series':'EMP/',
+# 	'grade':'grade1',
+# 	'status':'Active',
+# 
+# })
+# 
+# ss1 = [
+# 	Document(fielddata={
+# 		'doctype':'Salary Structure',
+# 		'docstatus':0,
+# 		'employee':'emp1',
+# 		'is_active':'Yes',
+# 		'department': 'dep1',
+# 		'designation' : 'des1',
+# 		'employee_name': 'emp1'
+# 	}),
+# 	Document(fielddata={
+# 		'parenttype':'Salary Structure',
+# 		'parentfield':'earning_details',
+# 		'doctype':'Salary Structure Earning',
+# 		'e_type' : 'Basic',
+# 		'depend_on_lwp':1,
+# 		'modified_value':100
+# 	}),
+# 	Document(fielddata={
+# 		'parenttype':'Salary Structure',
+# 		'parentfield':'earning_details',
+# 		'doctype':'Salary Structure Deduction',
+# 		'd_type':'TDS',
+# 		'd_modified_amt':20
+# 	})
+# ]
+# 
+# ss2 = [
+# 	Document(fielddata={
+# 		'doctype':'Salary Structure',
+# 		'is_active':'Yes',
+# 		'docstatus':0,
+# 	}),
+# 	Document(fielddata={
+# 		'parenttype':'Salary Structure',
+# 		'parentfield':'deduction_details',
+# 		'doctype':'Salary Structure Earning',
+# 		'e_type' : 'Basic',
+# 		'modified_value':100
+# 	}),
+# 	Document(fielddata={
+# 		'parenttype':'Salary Structure',
+# 		'parentfield':'deduction_details',
+# 		'doctype':'Salary Structure Deduction',
+# 		'd_type':'TDS',
+# 		'd_modified_amt':20
+# 	})
+# ]
+# 
+# sman = Document(fielddata={
+# 		'name':'Salary Manager',
+# 		'doctype':'Salary Manager',
+# 		'company': 'comp1',
+# 		'department':'dep1',
+# 		'designation':'des1',
+# 		'month': '08',
+# 		'fiscal_year':'2011-2012'
+# 	})
+# 	
+# leave = Document(fielddata = {
+# 		'doctype':'Leave Application',
+# 		'employee':'emp1',
+# 		'from_date':'2011-08-12',
+# 		'to_date':'2011-08-15',
+# 		'total_leave_days':'4',
+# 		'leave_type':'Leave Without Pay',
+# 		'docstatus':1
+# 	})
diff --git a/patches/february_2013/p03_material_request.py b/patches/february_2013/p03_material_request.py
index 612c108..66b2bf6 100644
--- a/patches/february_2013/p03_material_request.py
+++ b/patches/february_2013/p03_material_request.py
@@ -3,8 +3,11 @@
 def execute():
 	webnotes.reload_doc("core", "doctype", "doctype")
 	
-	webnotes.rename_doc("DocType", "Purchase Request Item", "Material Request Item", force=True)
-	webnotes.rename_doc("DocType", "Purchase Request", "Material Request", force=True)
+	tables = webnotes.conn.sql_list("show tables")
+	if not "tabMaterial Request Item" in tables:
+		webnotes.rename_doc("DocType", "Purchase Request Item", "Material Request Item", force=True)
+	if not "tabMaterial Request" in tables:
+		webnotes.rename_doc("DocType", "Purchase Request", "Material Request", force=True)
 	webnotes.reload_doc("buying", "search_criteria", "pending_po_items_to_bill")
 	webnotes.reload_doc("buying", "search_criteria", "pending_po_items_to_receive")
 
@@ -19,4 +22,4 @@
 	os.system("rm -rf app/hr/doctype/holiday_block_list")
 	os.system("rm -rf app/hr/doctype/holiday_block_list_allow")
 	os.system("rm -rf app/hr/doctype/holiday_block_list_date")
-	
\ No newline at end of file
+	
diff --git a/patches/march_2013/p10_set_fiscal_year_for_stock.py b/patches/march_2013/p10_set_fiscal_year_for_stock.py
new file mode 100644
index 0000000..c9d5202
--- /dev/null
+++ b/patches/march_2013/p10_set_fiscal_year_for_stock.py
@@ -0,0 +1,18 @@
+import webnotes
+from accounts.utils import get_fiscal_year, FiscalYearError
+
+def execute():
+	webnotes.reload_doc("stock", "doctype", "stock_entry")
+	webnotes.reload_doc("stock", "doctype", "stock_reconciliation")
+	
+	for doctype in ["Stock Entry", "Stock Reconciliation"]:
+		for name, posting_date in webnotes.conn.sql("""select name, posting_date from `tab%s`
+				where ifnull(fiscal_year,'')='' and docstatus=1""" % doctype):
+			try:
+				fiscal_year = get_fiscal_year(posting_date, 0)[0]
+				webnotes.conn.sql("""update `tab%s` set fiscal_year=%s where name=%s""" % \
+					(doctype, "%s", "%s"), (fiscal_year, name))
+			except FiscalYearError:
+				pass
+			
+	
\ No newline at end of file
diff --git a/patches/march_2013/p11_update_attach_files.py b/patches/march_2013/p11_update_attach_files.py
new file mode 100644
index 0000000..769463a
--- /dev/null
+++ b/patches/march_2013/p11_update_attach_files.py
@@ -0,0 +1,16 @@
+import webnotes
+
+def execute():
+	for f in webnotes.conn.sql("""select parent, fieldname 
+		from tabDocField where options="attach_files:" """, as_dict=1):
+		if webnotes.conn.get_value("DocType", f.parent, "issingle"):
+			fname = webnotes.conn.get_value(f.parent, None, f.fieldname)
+			if fname:
+				if not (fname.startswith("http") or fname.startswith("files")):
+					webnotes.conn.set_value(f.parent, None, f.fieldname, "files/" + fname)
+		else:
+			webnotes.conn.sql("""update `tab%(parent)s`
+				set %(fieldname)s = 
+					if(substr(%(fieldname)s,0,4)='http' or substr(%(fieldname)s, 0, 5)='files',
+					 	%(fieldname)s, 
+						concat('files/', %(fieldname)s))""" % f)
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 0c5427b..5502385 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -216,7 +216,13 @@
 	"patches.march_2013.p06_remove_sales_purchase_return_tool",
 	"execute:webnotes.bean('Global Defaults').save()",
 	"patches.march_2013.p07_update_project_in_stock_ledger",
+	"execute:webnotes.reload_doc('stock', 'doctype', 'item') #2013-03-25",
+	"execute:webnotes.reload_doc('setup', 'doctype', 'item_group') #2013-03-25",
+	"execute:webnotes.reload_doc('website', 'doctype', 'blog_post') #2013-03-25",
+	"execute:webnotes.reload_doc('website', 'doctype', 'web_page') #2013-03-25",
 	"execute:webnotes.bean('Style Settings').save() #2013-03-25",
 	"execute:webnotes.conn.set_value('Email Settings', None, 'send_print_in_body_and_attachment', 1)",
 	"patches.march_2013.p09_unset_user_type_partner",
+	"patches.march_2013.p10_set_fiscal_year_for_stock",
+	"patches.march_2013.p11_update_attach_files",
 ]
\ No newline at end of file
diff --git a/projects/doctype/activity_type/activity_type.txt b/projects/doctype/activity_type/activity_type.txt
index 028db2b..9866500 100644
--- a/projects/doctype/activity_type/activity_type.txt
+++ b/projects/doctype/activity_type/activity_type.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-03-05 12:53:23", 
+  "creation": "2013-03-05 10:14:59", 
   "docstatus": 0, 
-  "modified": "2013-03-05 12:54:22", 
+  "modified": "2013-03-28 07:18:24", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -10,7 +10,7 @@
   "autoname": "field:activity_type", 
   "doctype": "DocType", 
   "document_type": "Master", 
-  "in_dialog": 1, 
+  "in_dialog": 0, 
   "module": "Projects", 
   "name": "__common__"
  }, 
diff --git a/projects/doctype/time_log/test_time_log.py b/projects/doctype/time_log/test_time_log.py
index 1168c01..8f1848f 100644
--- a/projects/doctype/time_log/test_time_log.py
+++ b/projects/doctype/time_log/test_time_log.py
@@ -9,6 +9,7 @@
 		self.assertRaises(OverlapError, ts.insert)
 
 test_records = [[{
+	"doctype": "Time Log",
 	"from_time": "2013-01-01 10:00:00",
 	"to_time": "2013-01-01 11:00:00",
 	"activity_type": "_Test Activity Type",
diff --git a/setup/doctype/brand/brand.txt b/setup/doctype/brand/brand.txt
index 2264678..cddd918 100644
--- a/setup/doctype/brand/brand.txt
+++ b/setup/doctype/brand/brand.txt
@@ -1,74 +1,74 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2013-02-22 01:27:54", 
   "docstatus": 0, 
-  "creation": "2012-07-03 13:30:03", 
+  "modified": "2013-03-28 07:18:30", 
   "modified_by": "Administrator", 
-  "modified": "2012-12-25 13:20:51"
+  "owner": "Administrator"
  }, 
  {
-  "name": "__common__", 
   "autoname": "field:brand", 
-  "module": "Setup", 
   "doctype": "DocType", 
-  "in_dialog": 1, 
-  "document_type": "Master"
+  "document_type": "Master", 
+  "in_dialog": 0, 
+  "module": "Setup", 
+  "name": "__common__"
  }, 
  {
-  "read_only": 0, 
+  "doctype": "DocField", 
   "name": "__common__", 
   "parent": "Brand", 
-  "doctype": "DocField", 
+  "parentfield": "fields", 
   "parenttype": "DocType", 
   "permlevel": 0, 
-  "parentfield": "fields"
+  "read_only": 0
  }, 
  {
-  "name": "__common__", 
-  "parent": "Brand", 
-  "read": 1, 
   "doctype": "DocPerm", 
+  "name": "__common__", 
+  "parent": "Brand", 
+  "parentfield": "permissions", 
   "parenttype": "DocType", 
-  "report": 1, 
   "permlevel": 0, 
-  "parentfield": "permissions"
+  "read": 1, 
+  "report": 1
  }, 
  {
-  "name": "Brand", 
-  "doctype": "DocType"
+  "doctype": "DocType", 
+  "name": "Brand"
  }, 
  {
-  "oldfieldtype": "Data", 
   "doctype": "DocField", 
-  "label": "Brand Name", 
-  "oldfieldname": "brand", 
   "fieldname": "brand", 
   "fieldtype": "Data", 
+  "label": "Brand Name", 
+  "oldfieldname": "brand", 
+  "oldfieldtype": "Data", 
   "reqd": 1
  }, 
  {
-  "oldfieldtype": "Text", 
   "doctype": "DocField", 
+  "fieldname": "description", 
+  "fieldtype": "Text", 
   "label": "Description", 
   "oldfieldname": "description", 
-  "width": "300px", 
-  "fieldname": "description", 
-  "fieldtype": "Text"
+  "oldfieldtype": "Text", 
+  "width": "300px"
  }, 
  {
+  "cancel": 1, 
   "create": 1, 
   "doctype": "DocPerm", 
-  "write": 1, 
   "role": "Material Master Manager", 
-  "cancel": 1
+  "write": 1
  }, 
  {
   "amend": 0, 
+  "cancel": 0, 
   "create": 0, 
   "doctype": "DocPerm", 
-  "submit": 0, 
-  "write": 0, 
   "role": "Material User", 
-  "cancel": 0
+  "submit": 0, 
+  "write": 0
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 931b776..802771c 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -235,9 +235,8 @@
 			clear_cache(self.doc.page_name)
 			
 	def prepare_template_args(self):
-		from website.helpers.product import get_parent_item_groups, url_for_website
+		from website.helpers.product import get_parent_item_groups
 		self.parent_groups = get_parent_item_groups(self.doc.item_group) + [{"name":self.doc.name}]
-		self.doc.website_image = url_for_website(self.doc.website_image)
 		self.doc.title = self.doc.item_name
 
 		if self.doc.slideshow:
diff --git a/stock/doctype/material_request/test_material_request.py b/stock/doctype/material_request/test_material_request.py
index 44f82d2..080989f 100644
--- a/stock/doctype/material_request/test_material_request.py
+++ b/stock/doctype/material_request/test_material_request.py
@@ -24,7 +24,8 @@
 				"doctype": "Stock Entry", 
 				"posting_date": "2013-03-01", 
 				"posting_time": "00:00:00", 
-				"purpose": "Material Receipt"
+				"purpose": "Material Receipt",
+				"fiscal_year": "_Test Fiscal Year 2013",
 			}, 
 			{
 				"conversion_factor": 1.0, 
@@ -125,7 +126,8 @@
 			["Material Request Item", "Stock Entry Detail"]], mr.doc.name)
 		se_doclist[0].fields.update({
 			"posting_date": "2013-03-01",
-			"posting_time": "01:00"
+			"posting_time": "01:00",
+			"fiscal_year": "_Test Fiscal Year 2013",
 		})
 		se_doclist[1].fields.update({
 			"qty": 27.0,
@@ -186,7 +188,8 @@
 			["Material Request Item", "Stock Entry Detail"]], mr.doc.name)
 		se_doclist[0].fields.update({
 			"posting_date": "2013-03-01",
-			"posting_time": "00:00"
+			"posting_time": "00:00",
+			"fiscal_year": "_Test Fiscal Year 2013",
 		})
 		se_doclist[1].fields.update({
 			"qty": 60.0,
@@ -239,7 +242,8 @@
 			["Material Request Item", "Stock Entry Detail"]], mr.doc.name)
 		se_doclist[0].fields.update({
 			"posting_date": "2013-03-01",
-			"posting_time": "00:00"
+			"posting_time": "00:00",
+			"fiscal_year": "_Test Fiscal Year 2013",
 		})
 		se_doclist[1].fields.update({
 			"qty": 60.0,
diff --git a/stock/utils.py b/stock/utils.py
index 1406af6..d75c1d4 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -170,9 +170,10 @@
 		# sales bom item
 		buying_amount = 0.0
 		for bom_item in item_sales_bom[item_code]:
-			buying_amount += _get_buying_amount(voucher_type, voucher_no, "[** No Item Row **]",
-				bom_item.item_code, bom_item.warehouse or warehouse, 
-				bom_item.total_qty or (bom_item.qty * qty), stock_ledger_entries)
+			if bom_item.get("parent_detail_docname")==voucher_detail_no:
+				buying_amount += _get_buying_amount(voucher_type, voucher_no, "[** No Item Row **]",
+					bom_item.item_code, bom_item.warehouse or warehouse, 
+					bom_item.total_qty or (bom_item.qty * qty), stock_ledger_entries)
 		return buying_amount
 	else:
 		# doesn't have sales bom
@@ -181,13 +182,16 @@
 		
 def _get_buying_amount(voucher_type, voucher_no, item_row, item_code, warehouse, qty, 
 		stock_ledger_entries):
-	for i, sle in enumerate(stock_ledger_entries):
+	relevant_stock_ledger_entries = [sle for sle in stock_ledger_entries 
+		if sle.item_code == item_code and sle.warehouse == warehouse]
+		
+	for i, sle in enumerate(relevant_stock_ledger_entries):
 		if sle.voucher_type == voucher_type and sle.voucher_no == voucher_no and \
-			(sle.voucher_detail_no == item_row or (sle.voucher_type != "Stock Reconciliation" 
-			and sle.item_code == item_code and sle.warehouse == warehouse and flt(sle.qty) == qty)):
-				previous_stock_value = len(stock_ledger_entries) > i+1 and \
-					flt(stock_ledger_entries[i+1].stock_value) or 0.0
-					
+			((sle.voucher_detail_no == item_row) or (sle.voucher_type != "Stock Reconciliation" 
+			and flt(sle.qty) == qty)):
+				previous_stock_value = len(relevant_stock_ledger_entries) > i+1 and \
+					flt(relevant_stock_ledger_entries[i+1].stock_value) or 0.0
+				
 				buying_amount =  previous_stock_value - flt(sle.stock_value)						
 				
 				return buying_amount
diff --git a/support/doctype/newsletter/test_newsletter.py b/support/doctype/newsletter/test_newsletter.py
index 4650c0a..0813cfe 100644
--- a/support/doctype/newsletter/test_newsletter.py
+++ b/support/doctype/newsletter/test_newsletter.py
@@ -38,18 +38,21 @@
 
 test_records =[
 	[{
+		"doctype": "Newsletter",
 		"subject": "_Test Newsletter to Lead",
 		"send_to_type": "Lead",
 		"lead_source": "All",
 		"message": "This is a test newsletter"
 	}],
 	[{
+		"doctype": "Newsletter",
 		"subject": "_Test Newsletter to Contact",
 		"send_to_type": "Contact",
 		"contact_type": "Customer",
 		"message": "This is a test newsletter"
 	}],
 	[{
+		"doctype": "Newsletter",
 		"subject": "_Test Newsletter to Custom",
 		"send_to_type": "Custom",
 		"email_list": "test_custom@example.com, test_custom1@example.com, test_custom2@example.com",
diff --git a/website/doctype/about_us_settings/about_us_settings.py b/website/doctype/about_us_settings/about_us_settings.py
index e291aa8..fb3dcc9 100644
--- a/website/doctype/about_us_settings/about_us_settings.py
+++ b/website/doctype/about_us_settings/about_us_settings.py
@@ -2,7 +2,6 @@
 
 from __future__ import unicode_literals
 import webnotes
-from website.utils import url_for_website
 
 class DocType:
 	def __init__(self, d, dl):
@@ -14,9 +13,6 @@
 		
 def get_args():
 	obj = webnotes.get_obj("About Us Settings")
-	for d in obj.doclist.get({"doctype":"About Us Team Member"}):
-		if not "/" in d.image_link:
-			d.image_link = "files/" + d.image_link
 	return {
 		"obj": obj
 	}
\ No newline at end of file
diff --git a/website/doctype/blog_post/blog_post.py b/website/doctype/blog_post/blog_post.py
index ff6cc99..90f72f2 100644
--- a/website/doctype/blog_post/blog_post.py
+++ b/website/doctype/blog_post/blog_post.py
@@ -78,8 +78,6 @@
 		self.doc.content_html = self.doc.content
 		if self.doc.blogger:
 			self.doc.blogger_info = webnotes.doc("Blogger", self.doc.blogger).fields
-			if self.doc.blogger_info.avatar and not "/" in self.doc.blogger_info.avatar:
-				self.doc.blogger_info.avatar = "files/" + self.doc.blogger_info.avatar
 		
 		self.doc.description = self.doc.blog_intro or self.doc.content[:140]
 		
diff --git a/website/doctype/style_settings/custom_template.css b/website/doctype/style_settings/custom_template.css
index fcb2276..f055b78 100644
--- a/website/doctype/style_settings/custom_template.css
+++ b/website/doctype/style_settings/custom_template.css
@@ -4,7 +4,7 @@
 
 body {
 {% if doc.background_image %}
-	background: url("../files/{{ doc.background_image }}") repeat;
+	background: url("../{{ doc.background_image }}") repeat;
 {% elif doc.background_color %}
 	background-color: #{{ doc.background_color }};
 	background-image: none;
@@ -67,16 +67,10 @@
 
 /* Bootstrap Navbar */
 .navbar-inverse .navbar-inner {
+	box-shadow: none;
     background-color: #{{ doc.top_bar_background or "444444"}};
     background-repeat: repeat-x;
 	background-image: none;
-}
-
-.navbar-inner {
-	box-shadow: none;
-}
-
-.navbar-inner {
 	border-bottom: 1px solid {% if doc.top_bar_background == doc.page_background -%}
 		#{{ get_hex_shade(doc.page_background or "ffffff", 15) }};
 	{%- else -%}
diff --git a/website/doctype/website_settings/website_settings.js b/website/doctype/website_settings/website_settings.js
index 67e4941..5858926 100644
--- a/website/doctype/website_settings/website_settings.js
+++ b/website/doctype/website_settings/website_settings.js
@@ -48,7 +48,6 @@
 		msgprint(wn._("Select a Banner Image first."));
 	}
 	var src = doc.banner_image;
-	if(src.indexOf("/")==-1) src = "files/" + src;
 	cur_frm.set_value("banner_html", "<a href='/'><img src='"+ src
 		+"' style='max-width: 200px;'></a>");
 }
\ No newline at end of file
diff --git a/website/helpers/blog.py b/website/helpers/blog.py
index 1f25ac0..4044353 100644
--- a/website/helpers/blog.py
+++ b/website/helpers/blog.py
@@ -46,8 +46,6 @@
 		if not res['content']:
 			res['content'] = website.utils.get_html(res['page_name'])
 		res['content'] = res['content'][:140]
-		if res.avatar and not "/" in res.avatar:
-			res.avatar = "files/" + res.avatar
 		
 	return result
 
@@ -133,9 +131,6 @@
 def get_writers_args():
 	bloggers = webnotes.conn.sql("""select * from `tabBlogger` 
 	 	order by posts desc""", as_dict=1)
-	for blogger in bloggers:
-		if blogger.avatar and not "/" in blogger.avatar:
-			blogger.avatar = "files/" + blogger.avatar
 		
 	args = {
 		"bloggers": bloggers,
diff --git a/website/helpers/product.py b/website/helpers/product.py
index ef433b1..f79d207 100644
--- a/website/helpers/product.py
+++ b/website/helpers/product.py
@@ -5,7 +5,7 @@
 
 import webnotes
 from webnotes.utils import cstr
-from website.utils import build_html, url_for_website, delete_page_cache
+from website.utils import build_html, delete_page_cache
 
 
 @webnotes.whitelist(allow_guest=True)
@@ -90,7 +90,6 @@
 		r.website_description = "No description given"
 	if len(r.website_description.split(" ")) > 24:
 		r.website_description = " ".join(r.website_description.split(" ")[:24]) + "..."
-	r.website_image = url_for_website(r.website_image)
 
 def get_parent_item_groups(item_group_name):
 	item_group = webnotes.doc("Item Group", item_group_name)
diff --git a/website/helpers/slideshow.py b/website/helpers/slideshow.py
index 0afd80a..4c64c55 100644
--- a/website/helpers/slideshow.py
+++ b/website/helpers/slideshow.py
@@ -20,7 +20,4 @@
 	slideshow = webnotes.bean("Website Slideshow", obj.doc.slideshow)
 	obj.slides = slideshow.doclist.get({"doctype":"Website Slideshow Item"})
 	obj.doc.slideshow_header = slideshow.doc.header or ""
-	for s in obj.slides:
-		if s.image and not s.image.lower().startswith("http"):
-			s.image = "files/" + s.image
 	
\ No newline at end of file
diff --git a/website/templates/html/base.html b/website/templates/html/base.html
index 6889d67..cfba1a5 100644
--- a/website/templates/html/base.html
+++ b/website/templates/html/base.html
@@ -10,13 +10,8 @@
 	<script type="text/javascript" src="js/wn-web.js"></script>
 	<link type="text/css" rel="stylesheet" href="css/all-web.css">
 	<link type="text/css" rel="stylesheet" href="css/wn-web.css">
-	{%- if favicon %}
-	<link rel="shortcut icon" href="files/{{ favicon }}" type="image/x-icon">
-	<link rel="icon" href="files/{{ favicon }}" type="image/x-icon">
-	{% else %}
-	<link rel="shortcut icon" href="app/images/favicon.ico" type="image/x-icon">
-	<link rel="icon" href="app/images/favicon.ico" type="image/x-icon">
-	{% endif -%}	
+	<link rel="shortcut icon" href="{{ favicon }}" type="image/x-icon">
+	<link rel="icon" href="{{ favicon }}" type="image/x-icon">
 	{% if description -%}
 	<meta name="description" content="{{ description }}">	
 	{%- endif %}
diff --git a/website/utils.py b/website/utils.py
index 14e3e13..2528859 100644
--- a/website/utils.py
+++ b/website/utils.py
@@ -192,6 +192,7 @@
 	return None, None
 	
 def get_outer_env(page_name, args):
+	
 	from webnotes.utils import get_request_site_address
 	from urllib import quote
 	
@@ -238,7 +239,7 @@
 	args.update(ret)
 	
 	settings = webnotes.doc("Website Settings", "Website Settings")
-	for k in ["banner_html", "brand_html", "copyright", "address", "twitter_share_via"
+	for k in ["banner_html", "brand_html", "copyright", "address", "twitter_share_via",
 		"favicon", "facebook_share", "google_plus_one", "twitter_share", "linked_in_share"]:
 		if k in settings.fields:
 			args[k] = settings.fields.get(k)
@@ -280,13 +281,7 @@
 def delete_page_cache(page_name):
 	if page_name:
 		webnotes.cache().delete_value("page:" + page_name)
-	
-def url_for_website(url):
-	if url and not url.lower().startswith("http"):
-		return "files/" + url
-	else:
-		return url
-		
+			
 def get_hex_shade(color, percent):
 	
 	def p(c):