diff --git a/accounts/Module Def/Accounts/Accounts.txt b/accounts/Module Def/Accounts/Accounts.txt
index 3d70ff8..bd3cbbf 100644
--- a/accounts/Module Def/Accounts/Accounts.txt
+++ b/accounts/Module Def/Accounts/Accounts.txt
@@ -1,722 +1,387 @@
+# Module Def, Accounts
 [
+
+	# These values are common in all dictionaries
 	{
-		'_last_update': None,
-		'creation': '2010-09-25 10:50:37',
-		'disabled': 'No',
+		'creation': '2010-09-25 10:50:34',
 		'docstatus': 0,
-		'doctype': u'Module Def',
+		'modified': '2011-07-26 18:14:48',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all Module Def Role
+	{
+		'doctype': 'Module Def Role',
+		'name': '__common__',
+		'parent': 'Accounts',
+		'parentfield': 'roles',
+		'parenttype': 'Module Def'
+	},
+
+	# These values are common for all Module Def Item
+	{
+		'doctype': 'Module Def Item',
+		'name': '__common__',
+		'parent': 'Accounts',
+		'parentfield': 'items',
+		'parenttype': 'Module Def'
+	},
+
+	# These values are common for all Module Def
+	{
+		'disabled': 'No',
+		'doctype': 'Module Def',
 		'doctype_list': 'GL Mapper, Journal Voucher\nGL Mapper, Payable Voucher\nGL Mapper, Receivable Voucher\nDocType Label, Receivable Voucher\nDocType Label, Payable Voucher',
 		'file_list': 'finance.gif,FileData/00210',
-		'idx': None,
 		'is_hidden': 'No',
 		'last_updated_date': '2010-12-08 10:13:30',
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
 		'module_desc': 'Data about your payables, receivables and books of accounts',
 		'module_icon': 'Accounts.gif',
 		'module_label': 'Accounts',
 		'module_name': 'Accounts',
-		'module_page': None,
-		'module_seq': 6,
-		'name': 'Accounts',
-		'owner': 'Administrator',
-		'parent': None,
-		'parentfield': None,
-		'parenttype': None,
-		'trash_reason': None,
-		'widget_code': ""
+		'module_seq': 3,
+		'name': '__common__'
 	},
+
+	# Module Def, Accounts
+	{
+		'doctype': 'Module Def',
+		'name': 'Accounts'
+	},
+
+	# Module Def Item
 	{
 		'click_function': "show_chart_browser('Accounts Browser','Account')",
-		'creation': '2010-10-04 17:16:24',
 		'description': 'Manage your accounts',
 		'display_name': 'Chart of Accounts',
 		'doc_name': 'Accounts Browser',
 		'doc_type': 'Pages',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 1,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01178',
-		'owner': 'harshada@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 1
 	},
+
+	# Module Def Item
 	{
 		'click_function': "show_chart_browser('Accounts Browser','Cost Center')",
-		'creation': '2010-10-05 12:51:20',
 		'description': 'Manage your cost centers',
 		'display_name': 'Chart of Cost Centers',
 		'doc_name': 'Accounts Browser',
 		'doc_type': 'Pages',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 2,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01183',
-		'owner': 'harshada@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 2
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
 		'description': 'Regular journal entry',
 		'display_name': 'Journal Voucher',
 		'doc_name': 'Journal Voucher',
 		'doc_type': 'Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
 		'fields': 'voucher_type\nvoucher_date\nfiscal_year\ntotal_debit\ntotal_credit',
-		'hide': None,
-		'icon': None,
-		'idx': 3,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01012',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 3
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
 		'description': 'Outgoing Invoice to your customers',
 		'display_name': 'Sales Invoice',
 		'doc_name': 'Receivable Voucher',
 		'doc_type': 'Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
 		'fields': 'voucher_date\ndue_date\ndebit_to\ngrand_total\noutstanding_amount',
-		'hide': None,
-		'icon': None,
-		'idx': 4,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01013',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 4
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
 		'description': 'Incoming invoice from your service providers',
 		'display_name': 'Purchase Invoice',
 		'doc_name': 'Payable Voucher',
 		'doc_type': 'Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
 		'fields': 'voucher_date\ncredit_to\nbill_no\ngrand_total\noutstanding_amount',
-		'hide': None,
-		'icon': None,
-		'idx': 5,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01014',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 5
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
+		'description': 'Lease Agreement for Vehicles',
+		'display_name': 'Lease Agreement',
+		'doc_name': 'Lease Agreement',
+		'doc_type': 'Forms',
+		'doctype': 'Module Def Item',
+		'idx': 6
+	},
+
+	# Module Def Item
+	{
 		'description': 'Profit & Loss and Balance Sheet builder',
 		'display_name': 'Financial Statements',
 		'doc_name': 'Financial Statements',
 		'doc_type': 'Pages',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
 		'icon': 'table.gif',
-		'idx': 6,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01015',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 7
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
 		'description': 'Update your actual clearance dates and find out if bank ledger tallies with your bank statement.',
 		'display_name': 'Bank Reconciliation',
 		'doc_name': 'Bank Reconciliation',
 		'doc_type': 'Single DocType',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 7,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01016',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 8
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'TDS Payment',
 		'doc_name': 'TDS Payment',
 		'doc_type': 'Setup Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 8,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01017',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 9
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'TDS Return Acknowledgement',
 		'doc_name': 'TDS Return Acknowledgement',
 		'doc_type': 'Setup Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 9,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01018',
-		'owner': 'nabin@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 10
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Form 16A',
 		'doc_name': 'Form 16A',
 		'doc_type': 'Setup Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 10,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01019',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 11
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-10-25 17:25:22',
 		'description': 'Account closing entry (Profit Booking) on any date',
 		'display_name': 'Period Closing Voucher',
 		'doc_name': 'Period Closing Voucher',
 		'doc_type': 'Setup Forms',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 11,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01188',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 12
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2011-05-24 14:47:53',
 		'description': 'You can export balance of selected ledgers within a specific period',
 		'display_name': 'Ledger Balance Export',
 		'doc_name': 'Ledger Balance Export',
 		'doc_type': 'Single DocType',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 12,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01283',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 13
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'General Ledger',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 13,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01021',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 14
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Accounts Receivable',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 14,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01022',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 15
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Accounts Payable',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 15,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01023',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 16
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Bank Reconciliation Statement',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 16,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01024',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 17
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Trial Balance',
 		'doc_name': 'Account',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 17,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01025',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 18
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Sales Register',
 		'doc_name': 'Receivable Voucher',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 18,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01026',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 19
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Purchase Register',
 		'doc_name': 'Payable Voucher',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 19,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01027',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 20
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Bank Clearance report',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 20,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01028',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 21
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Monthly Ledger Summary Report',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 21,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01031',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 22
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Collection Report',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 22,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01032',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 23
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Total amout collection for a period - Customerwise',
 		'doc_name': 'Account',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 23,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01033',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 24
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Payment Report',
 		'doc_name': 'Journal Voucher Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 24,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01034',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 25
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2011-01-19 17:41:27',
-		'description': None,
 		'display_name': 'Itemwise Sales Register',
 		'doc_name': 'RV Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 25,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01267',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 26
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Itemwise Purchase Register',
 		'doc_name': 'PV Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 26,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01035',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 27
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Cost Center wise Expense',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 27,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01036',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 28
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'TDS Return',
 		'doc_name': 'TDS Payment Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 28,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01038',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 29
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Budget Variance Report',
 		'doc_name': 'Budget Detail',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 29,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01039',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 30
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
-		'description': None,
 		'display_name': 'Payment Receipt Report',
 		'doc_name': 'GL Entry',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 30,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01040',
-		'owner': 'jai@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 31
 	},
+
+	# Module Def Item
 	{
-		'click_function': None,
-		'creation': '2010-09-25 10:50:37',
 		'description': 'Track total commission given to your Business Associate',
 		'display_name': 'Business Associate Commission Report',
 		'doc_name': 'Receivable Voucher',
 		'doc_type': 'Reports',
-		'docstatus': 0,
 		'doctype': 'Module Def Item',
-		'fields': None,
-		'hide': None,
-		'icon': None,
-		'idx': 31,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDI01041',
-		'owner': 'saumil@webnotestech.com',
-		'parent': 'Accounts',
-		'parentfield': 'items',
-		'parenttype': 'Module Def'
+		'idx': 32
 	},
+
+	# Module Def Item
 	{
-		'creation': '2010-09-25 10:50:37',
-		'docstatus': 0,
+		'display_name': 'Lease Agreement List',
+		'doc_name': 'Lease Agreement List',
+		'doc_type': 'Reports',
+		'doctype': 'Module Def Item',
+		'idx': 33
+	},
+
+	# Module Def Role
+	{
 		'doctype': 'Module Def Role',
 		'idx': 1,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDR00302',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
 		'role': 'Accounts Manager'
 	},
+
+	# Module Def Role
 	{
-		'creation': '2010-09-25 10:50:37',
-		'docstatus': 0,
 		'doctype': 'Module Def Role',
 		'idx': 2,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDR00303',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
 		'role': 'Accounts User'
 	},
+
+	# Module Def Role
 	{
-		'creation': '2010-09-25 10:50:37',
-		'docstatus': 0,
 		'doctype': 'Module Def Role',
 		'idx': 3,
-		'modified': '2011-07-01 09:36:04',
-		'modified_by': 'Administrator',
-		'name': 'MDR00304',
-		'owner': 'Administrator',
-		'parent': 'Accounts',
-		'parentfield': 'roles',
-		'parenttype': 'Module Def',
 		'role': 'Administrator'
 	}
-]
+]
\ No newline at end of file
diff --git a/accounts/doctype/gl_control/gl_control.py b/accounts/doctype/gl_control/gl_control.py
index 5ec8ecd..a346b65 100644
--- a/accounts/doctype/gl_control/gl_control.py
+++ b/accounts/doctype/gl_control/gl_control.py
@@ -12,7 +12,7 @@
 get_value = webnotes.conn.get_value
 in_transaction = webnotes.conn.in_transaction
 convert_to_lists = webnotes.conn.convert_to_lists
-	
+
 # -----------------------------------------------------------------------------------------
 from utilities.transaction_base import TransactionBase
 
@@ -30,11 +30,11 @@
 		#for r in ret:
 		#	inc = get_value('Account','Income - '+r[1], 'balance')
 		#	exp = get_value('Account','Expenses - '+r[1], 'balance')
-		#	pl[r[0]] = flt(flt(inc) - flt(exp))		
+		#	pl[r[0]] = flt(flt(inc) - flt(exp))
 		return {'cl':[r[0] for r in ret]}#, 'pl':pl}
-		
-	def get_company_currency(self,arg=''):			
-		dcc = TransactionBase().get_company_currency(arg)		
+
+	def get_company_currency(self,arg=''):
+		dcc = TransactionBase().get_company_currency(arg)
 		return dcc
 
 	# Get current balance
@@ -91,7 +91,7 @@
 
 		fy = get_defaults()['fiscal_year']
 		parent, parent_acc_name, company, type = arg.split(',')
-		
+
 		# get children account details
 		if type=='Account':
 
@@ -103,7 +103,7 @@
 
 			# remove Decimals
 			for c in cl: c['balance'] = flt(c['balance'])
-			
+
 		# get children cost center details
 		elif type=='Cost Center':
 			if parent=='Root Node':
@@ -111,7 +111,7 @@
 			else:
 				cl = sql("select name,group_or_ledger,cost_center_name from `tabCost Center` where ifnull(parent_cost_center, '')=%s and docstatus != 2 and company_name=%s order by name asc",(parent,company),as_dict=1)
 		return {'parent':parent, 'parent_acc_name':parent_acc_name, 'cl':cl}
-		
+
 	# Add a new account
 	# -----------------
 	def add_ac(self,arg):
@@ -119,14 +119,14 @@
 		ac = Document('Account')
 		for d in arg.keys():
 			ac.fields[d] = arg[d]
-		ac.old_parent = ''			
+		ac.old_parent = ''
 		ac_obj = get_obj(doc=ac)
 		ac_obj.validate()
 		ac_obj.doc.save(1)
 		ac_obj.on_update()
 
 		return ac_obj.doc.name
-	
+
 	# Add a new cost center
 	#----------------------
 	def add_cc(self,arg):
@@ -138,33 +138,33 @@
 		# map company abbr
 		other_info = sql("select company_abbr from `tabCost Center` where name='%s'"%arg['parent_cost_center'])
 		cc.company_abbr = other_info and other_info[0][0] or arg['company_abbr']
-		
+
 		cc_obj = get_obj(doc=cc)
 		cc_obj.validate()
 		cc_obj.doc.save(1)
 		cc_obj.on_update()
 
 		return cc_obj.doc.name
-		
-		
+
+
 	# Get field values from the voucher
 	#------------------------------------------
 	def get_val(self, src, d, parent=None):
-		if not src: 
+		if not src:
 			return None
 		if src.startswith('parent:'):
 			return parent.fields[src.split(':')[1]]
 		elif src.startswith('value:'):
 			return eval(src.split(':')[1])
 		elif src:
-			return d.fields.get(src)	
-			
+			return d.fields.get(src)
+
 	def check_if_in_list(self, le):
 		for e in self.entries:
 			if e.account == le.account and (cstr(e.against_voucher)==cstr(le.against_voucher)) and (cstr(e.against_voucher_type)==cstr(le.against_voucher_type)) and (cstr(e.cost_center)==cstr(le.cost_center)):
 				return [e]
 		return 0
-	
+
 	# Make a dictionary(le) for every gl entry and append to a list(self.entries)
 	#----------------------------------------------------------------------------
 	def make_single_entry(self,parent,d,le_map,cancel, merge_entries):
@@ -176,12 +176,12 @@
 			is_expense_acct = sql("select name from tabAccount where is_pl_account='Yes' and debit_or_credit='Debit' and name=%s",self.get_val(le_map['account'], d, parent))
 			if is_expense_acct and self.get_val(le_map['cost_center'], d, parent):
 				get_obj('Budget Control').check_budget([self.get_val(le_map[k], d, parent) for k in flist if k in ['account','cost_center','debit','credit','posting_date','fiscal_year','company']],cancel)
-			
+
 			# Create new GL entry object and map values
 			le = Document('GL Entry')
 			for k in flist:
 				le.fields[k] = self.get_val(le_map[k], d, parent)
-						
+
 			# if there is already an entry in this account then just add it to that entry
 			same_head = self.check_if_in_list(le)
 			if same_head and merge_entries:
@@ -190,8 +190,8 @@
 				same_head.credit = flt(same_head.credit) + flt(le.credit)
 			else:
 				self.entries.append(le)
-		
-	# Save GL Entries		 
+
+	# Save GL Entries
 	# ----------------
 	def save_entries(self, cancel, adv_adj, update_outstanding):
 		for le in self.entries:
@@ -199,7 +199,7 @@
 			if cancel or flt(le.debit) < 0 or flt(le.credit) < 0:
 				tmp=le.debit
 				le.debit, le.credit = abs(flt(le.credit)), abs(flt(tmp))
-			
+
 
 			le_obj = get_obj(doc=le)
 			# validate except on_cancel
@@ -213,11 +213,11 @@
 			# update total debit / credit
 			self.td += flt(le.debit)
 			self.tc += flt(le.credit)
-			
+
 	# Make Multiple Entries
 	# ---------------------
 	def make_gl_entries(self, doc, doclist, cancel=0, adv_adj = 0, use_mapper='', merge_entries = 1, update_outstanding='Yes'):
-		# get entries	
+		# get entries
 		le_map_list = sql("select * from `tabGL Mapper Detail` where parent = %s", use_mapper or doc.doctype, as_dict=1)
 		self.td, self.tc = 0.0, 0.0
 		for le_map in le_map_list:
@@ -228,10 +228,10 @@
 						self.make_single_entry(doc,d,le_map,cancel, merge_entries)
 			else:
 				self.make_single_entry(None,doc,le_map,cancel, merge_entries)
-				
+
 		# save entries
 		self.save_entries(cancel, adv_adj, update_outstanding)
-		
+
 		# check total debit / credit
 		# Due to old wrong entries (total debit != total credit) some voucher could be cancelled
 		if abs(self.td - self.tc) > 0.001 and not cancel:
@@ -289,7 +289,7 @@
 			add.allocate_amount = 0
 			if table_name == 'Advance Allocation Detail':
 				add.tds_amount = flt(d[4])
-	
+
 	# Clear rows which is not adjusted
 	#-------------------------------------
 	def clear_advances(self, obj,table_name,table_field_name):
@@ -297,7 +297,7 @@
 			if not flt(d.allocated_amount):
 				sql("update `tab%s` set parent = '' where name = '%s' and parent = '%s'" % (table_name, d.name, d.parent))
 				d.parent = ''
-					
+
 	# Update aginst document in journal voucher
 	#------------------------------------------
 	def update_against_document_in_jv(self, obj, table_field_name, against_document_no, against_document_doctype, account_head, dr_or_cr,doctype):
@@ -310,7 +310,7 @@
 
 				# update ref in JV Detail
 				sql("update `tabJournal Voucher Detail` set %s = '%s' where name = '%s'" % (doctype=='Payable Voucher' and 'against_voucher' or 'against_invoice', cstr(against_document_no), d.jv_detail_no))
-				
+
 				# re-submit JV
 				jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children =1)
 				get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel = 0, adv_adj =1)
@@ -319,22 +319,22 @@
 				# cancel JV
 				jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children=1)
 				get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel =1, adv_adj = 1)
-				
+
 				# add extra entries
 				self.add_extra_entry(jv_obj, d.journal_voucher, d.jv_detail_no, flt(d.allocated_amount), account_head, doctype, dr_or_cr, against_document_no)
-				
+
 				# re-submit JV
 				jv_obj = get_obj('Journal Voucher', d.journal_voucher, with_children =1)
 				get_obj(dt='GL Control').make_gl_entries(jv_obj.doc, jv_obj.doclist, cancel = 0, adv_adj = 1)
 			else:
 				msgprint("Allocation amount cannot be greater than advance amount")
 				raise Exception
-	
+
 	# Add extra row in jv detail for unadjusted amount
 	#--------------------------------------------------
 	def add_extra_entry(self,jv_obj,jv,jv_detail_no, allocate, account_head, doctype, dr_or_cr, against_document_no):
 		# get old entry details
-		
+
 		jvd = sql("select %s, cost_center, balance, against_account from `tabJournal Voucher Detail` where name = '%s'" % (dr_or_cr,jv_detail_no))
 		advance = jvd and flt(jvd[0][0]) or 0
 		balance = flt(advance) - flt(allocate)
@@ -351,7 +351,7 @@
 		add.against_account = cstr(jvd[0][3])
 		add.is_advance = 'Yes'
 		add.save(1)
-	
+
 	# check if advance entries are still valid
 	# ----------------------------------------
 	def validate_jv_entry(self, d, account_head, dr_or_cr):
@@ -406,22 +406,23 @@
 		"""
 		vl = sql("""
 			select voucher_type, voucher_no, account, sum(debit) as sum_debit, sum(credit) as sum_credit
-			from `tabGL Entry` 
+			from `tabGL Entry`
 			where is_cancelled='Yes' and creation > %s
 			group by voucher_type, voucher_no, account
 			""", after_date, as_dict=1)
-		
+
 		ac_list = []
 		for v in vl:
 			if v['sum_debit'] != 0 or v['sum_credit'] != 0:
 				ac_list.append(v['account'])
-		
-		fy_list = sql("""select name from `tabFiscal Year` 
-		where (%s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day)) 
-		or year_start_date > %s 
+
+		fy_list = sql("""select name from `tabFiscal Year`
+		where (%s between year_start_date and date_sub(date_add(year_start_date,interval 1 year), interval 1 day))
+		or year_start_date > %s
 		order by year_start_date ASC""", (after_date, after_date))
 
 		for fy in fy_list:
 			fy_obj = get_obj('Fiscal Year', fy[0])
 			for a in set(ac_list):
 				fy_obj.repost(a)
+
diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt
deleted file mode 100644
index 1260ec9..0000000
--- a/accounts/doctype/journal_voucher/journal_voucher.txt
+++ /dev/null
@@ -1,829 +0,0 @@
-# DocType, Journal Voucher
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:06',
-		'docstatus': 0,
-		'modified': '2011-04-06 14:41:47',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Journal Voucher',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1309508838',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'module': 'Accounts',
-		'name': '__common__',
-		'search_fields': 'voucher_type,posting_date, due_date, cheque_no',
-		'section_style': 'Tabbed',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'subject': ' ',
-		'tag_fields': 'voucher_type',
-		'version': 307
-	},
-
-	# These values are common for all DocFormat
-	{
-		'doctype': 'DocFormat',
-		'name': '__common__',
-		'parent': 'Journal Voucher',
-		'parentfield': 'formats',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Journal Voucher',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Journal Voucher
-	{
-		'doctype': 'DocType',
-		'name': 'Journal Voucher'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 1,
-		'permlevel': 1,
-		'role': 'Accounts Manager',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 2,
-		'permlevel': 0,
-		'role': 'Accounts Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'Accounts User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 1,
-		'role': 'Accounts User',
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocFormat
-	{
-		'doctype': 'DocFormat',
-		'format': 'Payment Receipt Voucher',
-		'idx': 1
-	},
-
-	# DocFormat
-	{
-		'doctype': 'DocFormat',
-		'format': 'Cheque Printing Format',
-		'idx': 2
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 2,
-		'label': '1. Select Series and Dates',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 3,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'voucher_type',
-		'fieldtype': 'Select',
-		'idx': 4,
-		'in_filter': 1,
-		'label': 'Voucher Type',
-		'oldfieldname': 'voucher_type',
-		'oldfieldtype': 'Select',
-		'options': '\nJournal Entry\nBank Voucher\nCash Voucher\nCredit Card Voucher\nDebit Note\nCredit Note\nContra Voucher\nExcise Voucher\nWrite Off Voucher',
-		'permlevel': 0,
-		'print_hide': 0,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.voucher_type == 'Write Off Voucher'",
-		'doctype': 'DocField',
-		'fieldname': 'write_off_amount',
-		'fieldtype': 'Currency',
-		'idx': 5,
-		'label': 'Write Off Amount <=',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Accounts Receivable',
-		'depends_on': "eval:doc.voucher_type == 'Write Off Voucher'",
-		'doctype': 'DocField',
-		'fieldname': 'write_off_based_on',
-		'fieldtype': 'Select',
-		'idx': 6,
-		'label': 'Write Off Based On',
-		'options': 'Accounts Receivable\nAccounts Payable',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'To manage multiple series please go to Setup > Manage Series',
-		'doctype': 'DocField',
-		'fieldname': 'naming_series',
-		'fieldtype': 'Select',
-		'idx': 7,
-		'label': 'Series',
-		'no_copy': 1,
-		'oldfieldname': 'naming_series',
-		'oldfieldtype': 'Select',
-		'options': 'JV',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'Today',
-		'doctype': 'DocField',
-		'fieldname': 'voucher_date',
-		'fieldtype': 'Date',
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Voucher Date',
-		'no_copy': 1,
-		'oldfieldname': 'voucher_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'description': 'The date at which current entry will get or has actually executed.',
-		'doctype': 'DocField',
-		'fieldname': 'posting_date',
-		'fieldtype': 'Date',
-		'idx': 9,
-		'in_filter': 1,
-		'label': 'Posting Date',
-		'no_copy': 1,
-		'oldfieldname': 'posting_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'due_date',
-		'fieldtype': 'Date',
-		'idx': 10,
-		'label': 'Due Date',
-		'oldfieldname': 'due_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'description': 'The date at which current entry is corrected in the system.',
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'idx': 11,
-		'label': 'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Link',
-		'idx': 12,
-		'label': 'Amended From',
-		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Link',
-		'options': 'Journal Voucher',
-		'permlevel': 1,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'depends_on': "eval:doc.voucher_type == 'Write Off Voucher'",
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 13,
-		'label': 'Get Outstanding Invoices',
-		'options': 'get_outstanding_invoices',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Server'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 14,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_no',
-		'fieldtype': 'Data',
-		'idx': 15,
-		'in_filter': 1,
-		'label': 'Cheque No',
-		'no_copy': 1,
-		'oldfieldname': 'cheque_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'cheque_date',
-		'fieldtype': 'Date',
-		'idx': 16,
-		'label': 'Cheque Date',
-		'no_copy': 1,
-		'oldfieldname': 'cheque_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'clearance_date',
-		'fieldtype': 'Date',
-		'idx': 17,
-		'in_filter': 1,
-		'label': 'Clearance Date',
-		'no_copy': 1,
-		'oldfieldname': 'clearance_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 1,
-		'print_hide': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'user_remark',
-		'fieldtype': 'Small Text',
-		'idx': 18,
-		'in_filter': 1,
-		'label': 'User Remark',
-		'no_copy': 1,
-		'oldfieldname': 'user_remark',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'description': 'User Remark will be added to Auto Remark',
-		'doctype': 'DocField',
-		'fieldname': 'remark',
-		'fieldtype': 'Small Text',
-		'idx': 19,
-		'label': 'Remark',
-		'no_copy': 1,
-		'oldfieldname': 'remark',
-		'oldfieldtype': 'Small Text',
-		'permlevel': 1,
-		'reqd': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 20,
-		'label': '2. Add / Edit GL Entries',
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'entries',
-		'fieldtype': 'Table',
-		'idx': 21,
-		'label': 'Entries',
-		'oldfieldname': 'entries',
-		'oldfieldtype': 'Table',
-		'options': 'Journal Voucher Detail',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 22,
-		'label': 'Get Balance',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_debit',
-		'fieldtype': 'Currency',
-		'idx': 23,
-		'in_filter': 1,
-		'label': 'Total Debit',
-		'no_copy': 1,
-		'oldfieldname': 'total_debit',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_credit',
-		'fieldtype': 'Currency',
-		'idx': 24,
-		'in_filter': 1,
-		'label': 'Total Credit',
-		'no_copy': 1,
-		'oldfieldname': 'total_credit',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'difference',
-		'fieldtype': 'Currency',
-		'idx': 25,
-		'label': 'Difference',
-		'no_copy': 1,
-		'oldfieldname': 'difference',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 26,
-		'label': 'Addtional Info',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 27,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bill_no',
-		'fieldtype': 'Data',
-		'idx': 28,
-		'label': 'Bill No',
-		'oldfieldname': 'bill_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bill_date',
-		'fieldtype': 'Date',
-		'idx': 29,
-		'label': 'Bill Date',
-		'oldfieldname': 'bill_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'is_opening',
-		'fieldtype': 'Select',
-		'idx': 30,
-		'in_filter': 1,
-		'label': 'Is Opening',
-		'oldfieldname': 'is_opening',
-		'oldfieldtype': 'Select',
-		'options': 'No\nYes',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'aging_date',
-		'fieldtype': 'Date',
-		'idx': 31,
-		'label': 'Aging Date',
-		'no_copy': 0,
-		'oldfieldname': 'aging_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'cancel_reason',
-		'fieldtype': 'Data',
-		'idx': 32,
-		'label': 'Cancel Reason',
-		'no_copy': 1,
-		'oldfieldname': 'cancel_reason',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'print_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'pay_to_recd_from',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 33,
-		'label': 'Pay To / Recd From',
-		'no_copy': 1,
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 34,
-		'label': 'Total Amount',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_amount_in_words',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 35,
-		'label': 'Total Amount in Words',
-		'no_copy': 1,
-		'permlevel': 1,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 36,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Select',
-		'idx': 37,
-		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Select',
-		'options': 'link:Fiscal Year',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Link',
-		'idx': 38,
-		'in_filter': 1,
-		'label': 'Company',
-		'oldfieldname': 'company',
-		'oldfieldtype': 'Link',
-		'options': 'Company',
-		'permlevel': 0,
-		'print_hide': 1,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'select_print_heading',
-		'fieldtype': 'Link',
-		'idx': 39,
-		'label': 'Select Print Heading',
-		'no_copy': 1,
-		'oldfieldname': 'select_print_heading',
-		'oldfieldtype': 'Link',
-		'options': 'Print Heading',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1,
-		'search_index': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 40,
-		'oldfieldtype': 'Section Break',
-		'options': 'Simple',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'allow_on_submit': 1,
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 41,
-		'label': 'View Ledger Entry',
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 42,
-		'label': 'TDS',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0,
-		'print_hide': 0
-	},
-
-	# DocField
-	{
-		'default': 'No',
-		'doctype': 'DocField',
-		'fieldname': 'tds_applicable',
-		'fieldtype': 'Select',
-		'idx': 43,
-		'in_filter': 1,
-		'label': 'TDS Applicable',
-		'no_copy': 1,
-		'oldfieldname': 'tds_applicable',
-		'oldfieldtype': 'Select',
-		'options': '\nYes\nNo',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'tds_category',
-		'fieldtype': 'Select',
-		'hidden': 0,
-		'idx': 44,
-		'in_filter': 1,
-		'label': 'TDS Category',
-		'no_copy': 1,
-		'oldfieldname': 'tds_category',
-		'oldfieldtype': 'Select',
-		'options': 'link:TDS Category',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'supplier_account',
-		'fieldtype': 'Link',
-		'hidden': 0,
-		'idx': 45,
-		'label': 'Supplier Account',
-		'no_copy': 1,
-		'oldfieldname': 'supplier_account',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Button',
-		'idx': 46,
-		'label': 'Get TDS',
-		'no_copy': 0,
-		'oldfieldtype': 'Button',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Tax Code will be populated based on account head mentioned in TDS Category master',
-		'doctype': 'DocField',
-		'fieldname': 'tax_code',
-		'fieldtype': 'Link',
-		'idx': 47,
-		'label': 'TDS Account Head',
-		'no_copy': 1,
-		'oldfieldname': 'tax_code',
-		'oldfieldtype': 'Link',
-		'options': 'Account',
-		'permlevel': 0,
-		'print_hide': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rate',
-		'fieldtype': 'Currency',
-		'idx': 48,
-		'label': 'Rate',
-		'no_copy': 1,
-		'oldfieldname': 'rate',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'ded_amount',
-		'fieldtype': 'Currency',
-		'idx': 49,
-		'label': 'Amount',
-		'no_copy': 1,
-		'oldfieldname': 'ded_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'print_hide': 1,
-		'trigger': 'Client'
-	}
-]
\ No newline at end of file
diff --git a/accounts/doctype/lease_agreement/__init__.py b/accounts/doctype/lease_agreement/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/doctype/lease_agreement/__init__.py
diff --git a/accounts/doctype/lease_agreement/lease_agreement.js b/accounts/doctype/lease_agreement/lease_agreement.js
new file mode 100644
index 0000000..8c681a1
--- /dev/null
+++ b/accounts/doctype/lease_agreement/lease_agreement.js
@@ -0,0 +1,66 @@
+$.extend(cur_frm.cscript, {
+	Generate: function(doc, dt, dn) {
+		cur_frm.cscript.clear_installments(doc);
+		tot=0;i=0;
+		while(tot<flt(doc.invoice_amount)-flt(doc.down_payment)){
+				d = LocalDB.add_child(doc, 'Lease Installment', 'installments');
+				d.amount = flt(doc.installment_amount) < flt(doc.invoice_amount)-flt(doc.down_payment)-tot ? flt(doc.installment_amount) : flt(doc.invoice_amount)-flt(doc.down_payment)-tot
+				d.due_date = dateutil.add_months(doc.start_date, i+1);
+				tot += flt(doc.installment_amount)
+				i++;
+		}
+		cur_frm.refresh();
+	},
+	refresh: function(doc) {
+		cur_frm.cscript.hide_show_buttons(doc);
+	},
+	hide_show_buttons: function(doc) {
+		if(doc.docstatus==0) {
+			hide_field('Installment Reciept'); show_field('Generate');
+		} else if (doc.docstatus==1) {
+			show_field('Installment Reciept');hide_field('Generate');
+		}
+	},
+	clear_installments: function(doc) {
+		$.each(getchildren('Lease Installment', doc.name, 'installments', 'Lease Agreement'),
+			function(i, d) {
+				LocalDB.delete_doc('Lease Installment', d.name);
+			}
+		)
+	},
+	no_of_installments: function(doc)
+	{
+		if(flt(doc.no_of_installments)!=0) {
+			doc.installment_amount = (flt(doc.invoice_amount)- flt(doc.down_payment))/flt(doc.no_of_installments);
+			refresh_field('installment_amount');
+		}
+	},
+	'Installment Reciept': function(doc, dt, dn) {
+		var d = new wn.widgets.Dialog({
+			width: 500,
+			title: 'Add a new payment installment',
+			fields: [
+				{fieldtype:'Data', label:'Cheque Number', fieldname:'cheque_number', reqd:1},
+				{fieldtype:'Date', label:'Cheque Date', fieldname:'cheque_date', reqd:1},
+				{fieldtype:'Link', label:'Bank Account', fieldname:'bank_account', reqd:1, options:'Account'},
+				{fieldtype:'Button', label:'Update',fieldname:'update'}
+			]
+		})
+		d.show();
+		d.fields_dict.update.input.onclick = function() {
+			var data = d.get_values();
+
+			if(data) {
+				$c_obj(make_doclist(dt,dn),'lease_installment_post',data,function(){cur_frm.refresh(); d.hide();});
+			}
+		}
+	}
+})
+
+
+cur_frm.add_fetch('invoice','grand_total','invoice_amount');
+
+cur_frm.fields_dict.invoice.get_query=function(doc){
+
+	return "SELECT tv.name FROM `tabReceivable Voucher` tv WHERE debit_to='"+doc.account+"' and  tv.%(key)s like '%s' ORDER BY tv.name LIMIT 50"
+}
\ No newline at end of file
diff --git a/accounts/doctype/lease_agreement/lease_agreement.py b/accounts/doctype/lease_agreement/lease_agreement.py
new file mode 100644
index 0000000..dd63c2e
--- /dev/null
+++ b/accounts/doctype/lease_agreement/lease_agreement.py
@@ -0,0 +1,37 @@
+import webnotes
+from webnotes.model.doc import make_autoname, Document, addchild
+from webnotes import msgprint
+from webnotes.utils import get_defaults
+import json
+from accounts.utils import post_jv
+sql = webnotes.conn.sql
+
+class DocType:
+	def __init__(self, doc, doclist):
+		self.doc, self.doclist = doc, doclist
+
+	def autoname(self):
+		"""
+			Create Lease Id using naming_series pattern
+		"""
+		self.doc.name = make_autoname(self.doc.naming_series+ '.#####')
+
+	def lease_installment_post(self, args):
+		"""
+			Posts the Installment receipt into Journal Voucher
+		"""
+		next_inst = sql("select amount,name from `tabLease Installment` where parent=%s and ifnull(cheque_number,'')='' order by due_date limit 1",self.doc.name)
+
+		data = json.loads(args)
+		data['voucher_type']='Lease Receipt'
+		data['naming_series']='JV'
+		data['amount']=next_inst[0][0]
+		data['debit_account']=data.get('bank_account')
+		data['credit_account']=self.doc.account
+		data['fiscal_year']=get_defaults()['fiscal_year']
+		data['company']=get_defaults()['company']
+		jv_name=post_jv(data)
+
+		sql("update `tabLease Installment` set cheque_number=%s, cheque_date=%s, jv_number=%s where name=%s",(data.get('cheque_number'),data.get('cheque_date'),jv_name,next_inst[0][1]))
+
+		self.doclist = [Document(d.doctype, d.name) for d in self.doclist]
diff --git a/accounts/doctype/lease_installment/__init__.py b/accounts/doctype/lease_installment/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/doctype/lease_installment/__init__.py
diff --git a/accounts/doctype/loan/__init__.py b/accounts/doctype/loan/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/doctype/loan/__init__.py
diff --git a/accounts/doctype/loan/loan.js b/accounts/doctype/loan/loan.js
new file mode 100644
index 0000000..1851a84
--- /dev/null
+++ b/accounts/doctype/loan/loan.js
@@ -0,0 +1,54 @@
+$.extend(cur_frm.cscript, {
+	Generate: function(doc, dt, dn) {
+		cur_frm.cscript.clear_installments(doc);
+		for(var i=0; i< doc.no_of_installments; i++) {
+			d = LocalDB.add_child(doc, 'Loan Installment', 'installments');
+			d.amount = doc.loan_amount / doc.no_of_installments;
+			d.due_date = dateutil.add_months(doc.start_date, i+1);
+		}
+		cur_frm.refresh();
+	},
+/*	submit:function(doc){
+		data=doc.get_values();
+
+		data['']=
+		$c_obj(make_doclist(dt,dn),'loan_post',data,function(){});
+	},*/
+	refresh: function(doc) {
+		cur_frm.cscript.hide_show_buttons(doc);
+	},
+	hide_show_buttons: function(doc) {
+		if(doc.docstatus==0) {
+			hide_field('Installment Reciept'); show_field('Generate');
+		} else if (doc.docstatus==1) {
+			show_field('Installment Reciept');hide_field('Generate');
+		}
+	},
+	clear_installments: function(doc) {
+		$.each(getchildren('Loan Installment', doc.name, 'installments', 'Loan'),
+			function(i, d) {
+				LocalDB.delete_doc('Loan Installment', d.name);
+			}
+		)
+	},
+	'Installment Reciept': function(doc, dt, dn) {
+		var d = new wn.widgets.Dialog({
+			width: 500,
+			title: 'Add a new payment installment',
+			fields: [
+				{fieldtype:'Data', label:'Cheque Number', fieldname:'cheque_number', reqd:1},
+				{fieldtype:'Date', label:'Cheque Date', fieldname:'cheque_date', reqd:1},
+				{fieldtype:'Link', label:'Bank Account', fieldname:'bank_account', reqd:1, options:'Account'},
+				{fieldtype:'Button', label:'Update',fieldname:'update'}
+			]
+		})
+		d.show();
+		d.fields_dict.update.input.onclick = function() {
+			var data = d.get_values();
+
+			if(data) {
+				$c_obj(make_doclist(dt,dn),'loan_installment_post',data,function(){cur_frm.refresh(); d.hide();});
+			}
+		}
+	}
+})
diff --git a/accounts/doctype/loan/loan.py b/accounts/doctype/loan/loan.py
new file mode 100644
index 0000000..9f0bcb5
--- /dev/null
+++ b/accounts/doctype/loan/loan.py
@@ -0,0 +1,48 @@
+import webnotes
+from webnotes.model.doc import make_autoname, Document, addchild
+from webnotes import msgprint
+from webnotes.utils import get_defaults
+import json
+from accounts.utils import post_jv
+sql = webnotes.conn.sql
+
+class DocType:
+	def __init__(self, doc, doclist):
+		self.doc, self.doclist = doc, doclist
+
+	def autoname(self):
+		"""
+			Create Loan Id using naming_series pattern
+		"""
+		self.doc.name = make_autoname(self.doc.naming_series+ '.#####')
+
+	def loan_post(self):
+		data['voucher_type']='Loan Issue'
+		data['naming_series']='JV'
+		data['fiscal_year'] = get_defaults()['fiscal_year'] # To be modified to take care
+		data['company'] = get_defaults()['company']
+		data['debit_account'] = self.doc['receivable_account']
+		data['credit_account'] = self.doc['account']
+		data['amount'] = self.doc.loan_amount
+		jv_name=post_jv(data)
+
+	def loan_installment_post(self, args):
+		"""
+			Posts the loan receipt into Journal Voucher
+		"""
+		next_inst = sql("select amount,name from `tabLoan Installment` where parent=%s and ifnull(cheque_number,'')='' order by due_date limit 1",self.doc.name)
+
+		data = json.loads(args)
+		data['voucher_type']='Loan Receipt'
+		data['naming_series']='JV'
+		data['amount']=next_inst[0][0]
+		data['debit_account']=data.get('bank_account')
+		data['credit_account']=self.doc.account
+		data['fiscal_year']=get_defaults()['fiscal_year']
+		data['company']=get_defaults()['company']
+		jv_name=post_jv(data)
+
+		sql("update `tabLoan Installment` set cheque_number=%s, cheque_date=%s, jv_number=%s where name=%s",(data.get('cheque_number'),data.get('cheque_date'),jv_name,next_inst[0][1]))
+
+		self.doclist = [Document(d.doctype, d.name) for d in self.doclist]
+
diff --git a/accounts/doctype/loan/loan.txt b/accounts/doctype/loan/loan.txt
new file mode 100644
index 0000000..001e1d3
--- /dev/null
+++ b/accounts/doctype/loan/loan.txt
@@ -0,0 +1,172 @@
+# DocType, Loan
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2011-07-15 10:35:26',
+		'docstatus': 0,
+		'modified': '2011-07-18 12:12:19',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'_last_update': '1310963215',
+		'colour': 'White:FFF',
+		'doctype': 'DocType',
+		'module': 'Accounts',
+		'name': '__common__',
+		'section_style': 'Simple',
+		'show_in_menu': 0,
+		'version': 15
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': 'DocField',
+		'name': '__common__',
+		'parent': 'Loan',
+		'parentfield': 'fields',
+		'parenttype': 'DocType',
+		'permlevel': 0
+	},
+
+	# These values are common for all DocPerm
+	{
+		'doctype': 'DocPerm',
+		'name': '__common__',
+		'parent': 'Loan',
+		'parentfield': 'permissions',
+		'parenttype': 'DocType',
+		'read': 1,
+		'role': 'Accounts User'
+	},
+
+	# DocType, Loan
+	{
+		'doctype': 'DocType',
+		'name': 'Loan'
+	},
+
+	# DocPerm
+	{
+		'cancel': 1,
+		'create': 1,
+		'doctype': 'DocPerm',
+		'idx': 1,
+		'permlevel': 0,
+		'submit': 1,
+		'write': 1
+	},
+
+	# DocPerm
+	{
+		'doctype': 'DocPerm',
+		'idx': 2,
+		'permlevel': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'naming_series',
+		'fieldtype': 'Select',
+		'idx': 1,
+		'label': 'Naming Series',
+		'options': '\nLOAN',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'account',
+		'fieldtype': 'Link',
+		'idx': 2,
+		'label': 'Account',
+		'options': 'Account',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'receivable_account',
+		'fieldtype': 'Link',
+		'idx': 3,
+		'label': 'Receivable Account',
+		'options': 'Account'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'invoice',
+		'fieldtype': 'Link',
+		'idx': 4,
+		'label': 'Invoice',
+		'options': 'Receivable Voucher',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'loan_amount',
+		'fieldtype': 'Currency',
+		'idx': 5,
+		'label': 'Loan Amount',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'start_date',
+		'fieldtype': 'Date',
+		'idx': 6,
+		'label': 'Start Date',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'no_of_installments',
+		'fieldtype': 'Int',
+		'idx': 7,
+		'label': 'No of Installments',
+		'reqd': 1
+	},
+
+	# DocField
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocField',
+		'fieldtype': 'Button',
+		'idx': 8,
+		'label': 'Generate',
+		'trigger': 'Client'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'installments',
+		'fieldtype': 'Table',
+		'idx': 9,
+		'label': 'Installments',
+		'options': 'Loan Installment'
+	},
+
+	# DocField
+	{
+		'allow_on_submit': 1,
+		'colour': 'White:FFF',
+		'doctype': 'DocField',
+		'fieldtype': 'Button',
+		'idx': 10,
+		'label': 'Installment Reciept'
+	}
+]
\ No newline at end of file
diff --git a/accounts/doctype/loan/test_loan.py b/accounts/doctype/loan/test_loan.py
new file mode 100644
index 0000000..4e72559
--- /dev/null
+++ b/accounts/doctype/loan/test_loan.py
@@ -0,0 +1,17 @@
+import unittest
+import webnotes
+from webnotes.model.code import get_obj
+
+class TestScheduleGeneartion(unittest.TestCase):
+	def setUp(self):
+		webnotes.conn.begin()
+		# create a mock loan
+		self.loan = get_obj('Loan', 'LOAN00001')
+		
+	def test_generation(self):
+		"test the genaration of loan installments"
+		self.loan.generate()
+		self.assertEqual(self.loan.get_installment_total(), self.loan.doc.loan_amount)
+		
+	def tearDown(self):
+		webnotes.conn.rollback()
diff --git a/accounts/doctype/loan_installment/__init__.py b/accounts/doctype/loan_installment/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/doctype/loan_installment/__init__.py
diff --git a/accounts/doctype/loan_installment/loan_installment.txt b/accounts/doctype/loan_installment/loan_installment.txt
new file mode 100644
index 0000000..f729e34
--- /dev/null
+++ b/accounts/doctype/loan_installment/loan_installment.txt
@@ -0,0 +1,111 @@
+# DocType, Loan Installment
+[
+
+	# These values are common in all dictionaries
+	{
+		'creation': '2011-07-15 10:36:42',
+		'docstatus': 0,
+		'modified': '2011-07-15 15:48:34',
+		'modified_by': 'Administrator',
+		'owner': 'Administrator'
+	},
+
+	# These values are common for all DocType
+	{
+		'colour': 'White:FFF',
+		'doctype': 'DocType',
+		'istable': 1,
+		'module': 'Accounts',
+		'name': '__common__',
+		'section_style': 'Simple',
+		'show_in_menu': 0,
+		'version': 4
+	},
+
+	# These values are common for all DocField
+	{
+		'doctype': 'DocField',
+		'name': '__common__',
+		'parent': 'Loan Installment',
+		'parentfield': 'fields',
+		'parenttype': 'DocType'
+	},
+
+	# DocType, Loan Installment
+	{
+		'doctype': 'DocType',
+		'name': 'Loan Installment'
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'amount',
+		'fieldtype': 'Currency',
+		'idx': 1,
+		'label': 'Amount',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'due_date',
+		'fieldtype': 'Date',
+		'idx': 2,
+		'label': 'Due Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'cheque_number',
+		'fieldtype': 'Data',
+		'idx': 3,
+		'label': 'Cheque Number',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'cheque_date',
+		'fieldtype': 'Date',
+		'idx': 4,
+		'label': 'Cheque Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'deposit_date',
+		'fieldtype': 'Date',
+		'idx': 5,
+		'label': 'Deposit Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'realized_date',
+		'fieldtype': 'Date',
+		'idx': 6,
+		'label': 'Realized Date',
+		'permlevel': 0
+	},
+
+	# DocField
+	{
+		'doctype': 'DocField',
+		'fieldname': 'jv_number',
+		'fieldtype': 'Link',
+		'hidden': 0,
+		'idx': 7,
+		'label': 'JV Number',
+		'options': 'Journal Voucher',
+		'permlevel': 1
+	}
+]
\ No newline at end of file
diff --git a/accounts/search_criteria/accounts_receivable/accounts_receivable.js b/accounts/search_criteria/accounts_receivable/accounts_receivable.js
index a51b8fb..f31dc76 100644
--- a/accounts/search_criteria/accounts_receivable/accounts_receivable.js
+++ b/accounts/search_criteria/accounts_receivable/accounts_receivable.js
@@ -5,8 +5,8 @@
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
   this.filter_fields_dict['GL Entry'+FILTER_SEP +'Account'].df.filter_hide = 0;
-  
-  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date'+NEWLINE+'Due Date',ignore : 1, parent:'Receivable Voucher', report_default:'Aging Date'});  
+
+  this.add_filter({fieldname:'aging_based_on', label:'Aging Based On', fieldtype:'Select', options:NEWLINE+'Transaction Date'+NEWLINE+'Aging Date'+NEWLINE+'Due Date',ignore : 1, parent:'Receivable Voucher', report_default:'Aging Date'});
   this.add_filter({fieldname:'range_1', label:'Range 1', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
   this.add_filter({fieldname:'range_2', label:'Range 2', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
   this.add_filter({fieldname:'range_3', label:'Range 3', fieldtype:'Data', ignore : 1, parent:'GL Entry'});
@@ -19,4 +19,4 @@
   this.dt.set_no_limit(1);
 }
 
-this.mytabs.items['Select Columns'].hide()
\ No newline at end of file
+//this.mytabs.items['Select Columns'].hide()
\ No newline at end of file
diff --git a/accounts/search_criteria/lease_agreement_list/__init__.py b/accounts/search_criteria/lease_agreement_list/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_agreement_list/__init__.py
diff --git a/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py b/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_monthly_future_installment_inflows/__init__.py
diff --git a/accounts/search_criteria/lease_over_due_list/__init__.py b/accounts/search_criteria/lease_over_due_list/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_over_due_list/__init__.py
diff --git a/accounts/search_criteria/lease_overdue_age_wise/__init__.py b/accounts/search_criteria/lease_overdue_age_wise/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_overdue_age_wise/__init__.py
diff --git a/accounts/search_criteria/lease_receipt_summary_year_to_date/__init__.py b/accounts/search_criteria/lease_receipt_summary_year_to_date/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_receipt_summary_year_to_date/__init__.py
diff --git a/accounts/search_criteria/lease_receipts_client_wise/__init__.py b/accounts/search_criteria/lease_receipts_client_wise/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_receipts_client_wise/__init__.py
diff --git a/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py b/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/accounts/search_criteria/lease_yearly_future_installment_inflows/__init__.py
diff --git a/accounts/utils/__init__.py b/accounts/utils/__init__.py
new file mode 100644
index 0000000..e8ca13e
--- /dev/null
+++ b/accounts/utils/__init__.py
@@ -0,0 +1,27 @@
+from webnotes.model.doc import make_autoname, Document, addchild
+# Posts JV
+
+def post_jv(data):
+	jv = Document('Journal Voucher')
+	jv.voucher_type = data.get('voucher_type')
+	jv.naming_series = data.get('naming_series')
+	jv.voucher_date = data.get('cheque_date')
+	jv.posting_date = data.get('cheque_date')
+	jv.cheque_no = data.get('cheque_number')
+	jv.cheque_date = data.get('cheque_date')
+	jv.fiscal_year = data.get('fiscal_year') # To be modified to take care
+	jv.company = data.get('company')
+
+	jv.save(1)
+
+	jc = addchild(jv,'entries','Journal Voucher Detail',0)
+	jc.account = data.get('debit_account')
+	jc.debit = data.get('amount')
+	jc.save()
+
+	jc = addchild(jv,'entries','Journal Voucher Detail',0)
+	jc.account = data.get('credit_account')
+	jc.credit = data.get('amount')
+	jc.save()
+
+	return jv.name
\ No newline at end of file
diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py b/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py
index 486cc6d..159d393 100644
--- a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py
+++ b/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.py
@@ -1,2 +1,3 @@
+msgprint(colwidths)
 colwidths[col_idx['Pending Quantity To Receive']] = '200px'
 colwidths[col_idx['Pending Amount To Receive']] = '200px'
\ No newline at end of file
diff --git a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt b/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
index 062e385..9708db2 100644
--- a/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
+++ b/buying/search_criteria/pending_po_items_to_receive/pending_po_items_to_receive.txt
@@ -12,7 +12,7 @@
 
 	# These values are common for all Search Criteria
 	{
-		'add_col': '`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0) AS "Pending Quantity To Receive"\n(`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0)) * `tabPO Detail`.purchase_rate AS "Pending Amount To Receive\'"',
+		'add_col': '`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0) AS "Pending Quantity To Receive"\n(`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0)) * `tabPO Detail`.purchase_rate AS "Pending Amount To Receive"',
 		'add_cond': '`tabPO Detail`.qty - ifnull(`tabPO Detail`.received_qty, 0) > 0 \n`tabPurchase Order`.status != "Stopped"',
 		'columns': 'Purchase Order\x01ID,Purchase Order\x01Supplier,Purchase Order\x01Supplier Name,Purchase Order\x01Status,Purchase Order\x01PO Date,Purchase Order\x01Fiscal Year,PO Detail\x01Indent No,PO Detail\x01Item Code,PO Detail\x01Item Name,PO Detail\x01Description,PO Detail\x01Quantity,PO Detail\x01UOM,PO Detail\x01Received Qty',
 		'criteria_name': 'Pending PO Items To Receive',
diff --git a/hr/doctype/salary_slip/salary_slip.txt b/hr/doctype/salary_slip/salary_slip.txt
deleted file mode 100644
index d50499a..0000000
--- a/hr/doctype/salary_slip/salary_slip.txt
+++ /dev/null
@@ -1,684 +0,0 @@
-# DocType, Salary Slip
-[
-
-	# These values are common in all dictionaries
-	{
-		'creation': '2010-08-08 17:09:20',
-		'docstatus': 0,
-		'modified': '2011-07-18 15:30:04',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
-	},
-
-	# These values are common for all DocType
-	{
-		'_last_update': '1310019491',
-		'colour': 'White:FFF',
-		'doctype': 'DocType',
-		'module': 'HR',
-		'name': '__common__',
-		'section_style': 'Simple',
-		'server_code_error': ' ',
-		'show_in_menu': 0,
-		'subject': 'For %(employee_name)s, %(designation)s',
-		'version': 392
-	},
-
-	# These values are common for all DocField
-	{
-		'doctype': 'DocField',
-		'name': '__common__',
-		'parent': 'Salary Slip',
-		'parentfield': 'fields',
-		'parenttype': 'DocType'
-	},
-
-	# These values are common for all DocPerm
-	{
-		'doctype': 'DocPerm',
-		'name': '__common__',
-		'parent': 'Salary Slip',
-		'parentfield': 'permissions',
-		'parenttype': 'DocType',
-		'read': 1
-	},
-
-	# DocType, Salary Slip
-	{
-		'doctype': 'DocType',
-		'name': 'Salary Slip'
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'match': 'owner',
-		'permlevel': 0,
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'match': 'owner',
-		'permlevel': 0,
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'match': 'owner',
-		'permlevel': 0,
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'cancel': 0,
-		'create': 0,
-		'doctype': 'DocPerm',
-		'match': 'owner',
-		'permlevel': 0,
-		'submit': 0,
-		'write': 0
-	},
-
-	# DocPerm
-	{
-		'amend': 0,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 3,
-		'permlevel': 0,
-		'role': 'HR User',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'amend': 1,
-		'cancel': 1,
-		'create': 1,
-		'doctype': 'DocPerm',
-		'idx': 4,
-		'permlevel': 0,
-		'role': 'HR Manager',
-		'submit': 1,
-		'write': 1
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 5,
-		'permlevel': 1,
-		'role': 'HR User'
-	},
-
-	# DocPerm
-	{
-		'doctype': 'DocPerm',
-		'idx': 6,
-		'permlevel': 1,
-		'role': 'HR Manager'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 1,
-		'label': 'Basic Info',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 2,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'employee',
-		'fieldtype': 'Link',
-		'idx': 3,
-		'in_filter': 1,
-		'label': 'Employee',
-		'oldfieldname': 'employee',
-		'oldfieldtype': 'Link',
-		'options': 'Employee',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'employee_name',
-		'fieldtype': 'Data',
-		'idx': 4,
-		'in_filter': 1,
-		'label': 'Employee Name',
-		'oldfieldname': 'employee_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'department',
-		'fieldtype': 'Link',
-		'idx': 5,
-		'in_filter': 1,
-		'label': 'Department',
-		'oldfieldname': 'department',
-		'oldfieldtype': 'Link',
-		'options': 'Department',
-		'permlevel': 1,
-		'reqd': 0,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'designation',
-		'fieldtype': 'Link',
-		'idx': 6,
-		'in_filter': 1,
-		'label': 'Designation',
-		'oldfieldname': 'designation',
-		'oldfieldtype': 'Link',
-		'options': 'Designation',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'branch',
-		'fieldtype': 'Link',
-		'idx': 7,
-		'in_filter': 1,
-		'label': 'Branch',
-		'oldfieldname': 'branch',
-		'oldfieldtype': 'Link',
-		'options': 'Branch',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'grade',
-		'fieldtype': 'Link',
-		'idx': 8,
-		'in_filter': 1,
-		'label': 'Grade',
-		'oldfieldname': 'grade',
-		'oldfieldtype': 'Link',
-		'options': 'Grade',
-		'permlevel': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'pf_no',
-		'fieldtype': 'Data',
-		'idx': 9,
-		'label': 'PF No.',
-		'oldfieldname': 'pf_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'esic_no',
-		'fieldtype': 'Data',
-		'idx': 10,
-		'label': 'ESIC No.',
-		'oldfieldname': 'esic_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Link',
-		'idx': 11,
-		'label': 'Letter Head',
-		'options': 'Letter Head',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Link',
-		'idx': 11,
-		'label': 'Letter Head',
-		'options': 'Letter Head',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'letter_head',
-		'fieldtype': 'Link',
-		'idx': 11,
-		'label': 'Letter Head',
-		'options': 'Letter Head',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 12,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'fiscal_year',
-		'fieldtype': 'Link',
-		'idx': 13,
-		'in_filter': 1,
-		'label': 'Fiscal Year',
-		'oldfieldname': 'fiscal_year',
-		'oldfieldtype': 'Data',
-		'options': 'Fiscal Year',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 14,
-		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 14,
-		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'company',
-		'fieldtype': 'Select',
-		'idx': 14,
-		'in_filter': 1,
-		'label': 'Company',
-		'options': 'link:Company',
-		'permlevel': 0,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'month',
-		'fieldtype': 'Select',
-		'idx': 15,
-		'in_filter': 1,
-		'label': 'Month',
-		'oldfieldname': 'month',
-		'oldfieldtype': 'Select',
-		'options': '\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12',
-		'permlevel': 0,
-		'reqd': 1,
-		'search_index': 1,
-		'trigger': 'Client',
-		'width': '37%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_days_in_month',
-		'fieldtype': 'Data',
-		'idx': 16,
-		'label': 'Total days in month',
-		'oldfieldname': 'total_days_in_month',
-		'oldfieldtype': 'Int',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'leave_without_pay',
-		'fieldtype': 'Currency',
-		'idx': 17,
-		'label': 'Leave Without Pay',
-		'oldfieldname': 'leave_without_pay',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0,
-		'trigger': 'Client'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'payment_days',
-		'fieldtype': 'Float',
-		'idx': 18,
-		'label': 'Payment days',
-		'oldfieldname': 'payment_days',
-		'oldfieldtype': 'Float',
-		'permlevel': 1,
-		'reqd': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bank_name',
-		'fieldtype': 'Data',
-		'idx': 19,
-		'label': 'Bank Name',
-		'oldfieldname': 'bank_name',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'bank_account_no',
-		'fieldtype': 'Data',
-		'idx': 20,
-		'label': 'Bank Account No.',
-		'oldfieldname': 'bank_account_no',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'email_check',
-		'fieldtype': 'Check',
-		'idx': 21,
-		'label': 'Email',
-		'no_copy': 1,
-		'oldfieldname': 'email_check',
-		'oldfieldtype': 'Check',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amended_from',
-		'fieldtype': 'Data',
-		'hidden': 0,
-		'idx': 22,
-		'label': 'Amended From',
-		'no_copy': 1,
-		'oldfieldname': 'amended_from',
-		'oldfieldtype': 'Data',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'amendment_date',
-		'fieldtype': 'Date',
-		'hidden': 0,
-		'idx': 23,
-		'label': 'Amendment Date',
-		'no_copy': 1,
-		'oldfieldname': 'amendment_date',
-		'oldfieldtype': 'Date',
-		'permlevel': 0,
-		'print_hide': 1,
-		'report_hide': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 24,
-		'label': 'Earning & Deduction',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 25,
-		'label': 'Earning',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'reqd': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'earning_details',
-		'fieldtype': 'Table',
-		'idx': 26,
-		'label': 'Earning Details',
-		'oldfieldname': 'earning_details',
-		'oldfieldtype': 'Table',
-		'options': 'SS Earning Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 27,
-		'label': 'Deduction',
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'deduction_details',
-		'fieldtype': 'Table',
-		'idx': 28,
-		'label': 'Deduction Details',
-		'oldfieldname': 'deduction_details',
-		'oldfieldtype': 'Table',
-		'options': 'SS Deduction Detail',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Section Break',
-		'idx': 29,
-		'label': 'Totals',
-		'oldfieldtype': 'Section Break',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 30,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'arrear_amount',
-		'fieldtype': 'Currency',
-		'idx': 31,
-		'label': 'Arrear Amount',
-		'oldfieldname': 'arrear_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'doctype': 'DocField',
-		'fieldname': 'leave_encashment_amount',
-		'fieldtype': 'Currency',
-		'idx': 32,
-		'label': 'Leave Encashment Amount',
-		'oldfieldname': 'encashment_amount',
-		'oldfieldtype': 'Currency',
-		'permlevel': 0
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'gross_pay',
-		'fieldtype': 'Currency',
-		'idx': 33,
-		'label': 'Gross Pay',
-		'oldfieldname': 'gross_pay',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'total_deduction',
-		'fieldtype': 'Currency',
-		'idx': 34,
-		'label': 'Total Deduction',
-		'oldfieldname': 'total_deduction',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldtype': 'Column Break',
-		'idx': 35,
-		'oldfieldtype': 'Column Break',
-		'permlevel': 0,
-		'width': '50%'
-	},
-
-	# DocField
-	{
-		'colour': 'White:FFF',
-		'description': 'Gross Pay + Arrear Amount +Encashment Amount - Total Deduction',
-		'doctype': 'DocField',
-		'fieldname': 'net_pay',
-		'fieldtype': 'Currency',
-		'idx': 36,
-		'label': 'Net Pay',
-		'oldfieldname': 'net_pay',
-		'oldfieldtype': 'Currency',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'doctype': 'DocField',
-		'fieldname': 'rounded_total',
-		'fieldtype': 'Currency',
-		'idx': 37,
-		'label': 'Rounded Total',
-		'permlevel': 1
-	},
-
-	# DocField
-	{
-		'description': 'Net Pay (in words) will be visible once you save the Salary Slip.',
-		'doctype': 'DocField',
-		'fieldname': 'total_in_words',
-		'fieldtype': 'Data',
-		'idx': 38,
-		'label': 'Total in words',
-		'oldfieldname': 'net_pay_in_words',
-		'oldfieldtype': 'Data',
-		'permlevel': 1
-	}
-]
\ No newline at end of file
diff --git a/setup/doctype/upload_accounts_transactions/__init__.py b/setup/doctype/upload_accounts_transactions/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/setup/doctype/upload_accounts_transactions/__init__.py
diff --git a/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js b/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js
new file mode 100644
index 0000000..041638f
--- /dev/null
+++ b/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.js
@@ -0,0 +1,18 @@
+
+//--------- ONLOAD -------------
+cur_frm.cscript.onload = function(doc, cdt, cdn) {
+}
+
+cur_frm.cscript.refresh = function(doc, cdt, cdn) {
+	if(!doc.file_list) {
+		set_field_options('Upload Accounts Transactions Help', '<div class="help_box">To upload transactions, please attach a (.csv) file with 5 columns - <b>Date, Transaction Number, Account, Debit Amount, Credit Amount</b> (no headings necessary). See attachments box in the right column</div>')
+	} else {
+		set_field_options('Upload Accounts Transactions Help', '<div class="help_box">To update transactions from the attachment, please click on "Upload Accounts Transactions"</div>')
+	}
+}
+
+cur_frm.cscript['Upload Accounts Transactions'] = function(doc, cdt, cdn) {
+	if(confirm("This action will append all transactions and cannot be un-done. Are you sure you want to continue?")) {
+		$c_obj([doc], 'upload_accounts_transactions', '', function(r, rt) { });
+	}
+}
diff --git a/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py b/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py
new file mode 100644
index 0000000..2028e5f
--- /dev/null
+++ b/setup/doctype/upload_accounts_transactions/upload_accounts_transactions.py
@@ -0,0 +1,103 @@
+# Please edit this list and import only required elements
+import webnotes
+
+from webnotes.utils import add_days, add_months, add_years, cint, cstr, date_diff, default_fields, flt, fmt_money, formatdate, generate_hash, getTraceback, get_defaults, get_first_day, get_last_day, getdate, has_common, month_name, now, nowdate, replace_newlines, sendmail, set_default, str_esc_quote, user_format, validate_email_add
+from webnotes.model import db_exists
+from webnotes.model.doc import Document, addchild, removechild, getchildren, make_autoname, SuperDocType
+from webnotes.model.doclist import getlist, copy_doclist
+from webnotes.model.code import get_obj, get_server_obj, run_server_obj, updatedb, check_syntax
+from webnotes import session, form, is_testing, msgprint, errprint
+
+set = webnotes.conn.set
+sql = webnotes.conn.sql
+get_value = webnotes.conn.get_value
+in_transaction = webnotes.conn.in_transaction
+convert_to_lists = webnotes.conn.convert_to_lists
+
+# -----------------------------------------------------------------------------------------
+
+class DocType:
+	def __init__(self, d, dl):
+		self.doc, self.doclist = d, dl
+		self.cl = []
+
+	# upload transactions
+	def upload_accounts_transactions(self):
+		import csv
+		data = csv.reader(self.get_csv_data().splitlines())
+
+		abbr = sql("select concat(' - ',abbr) as abbr from tabCompany where name=%s",self.doc.company)
+		updated = 0
+		jv_name=''
+#		jv = Document('Journal Voucher')
+		global line,jv,name,jv_go
+		for line in data:
+			if len(line)>=7: #Minimum no of fields
+				if line[3]!=jv_name: #Create JV
+					if jv_name!='':
+						jv_go = get_obj('Journal Voucher',name, with_children=1)
+						jv_go.validate()
+						jv_go.on_submit()
+
+					jv_name=line[3]
+					jv = Document('Journal Voucher')
+					jv.voucher_type = line[0]
+					jv.naming_series = line[1]
+					jv.voucher_date = formatdate(line[2])
+					jv.posting_date = formatdate(line[2])
+#					jv.name = line[3]
+					jv.fiscal_year = self.doc.fiscal_year
+					jv.company = self.doc.company
+					jv.remark = len(line)==8 and line[3]+' '+line[7] or line[3]+' Uploaded Record'
+					jv.docstatus=1
+					jv.save(1)
+					name=jv.name
+
+					jc = addchild(jv,'entries','Journal Voucher Detail',0)
+					jc.account = line[4]+abbr[0][0]
+					jc.cost_center=len(line)==9 and line[8] or self.doc.default_cost_center
+					if line[5]!='':
+						jc.debit = line[5]
+					else:
+						jc.credit = line[6]
+					jc.save()
+
+				else: #Create JV Child
+					jc = addchild(jv,'entries','Journal Voucher Detail',0)
+					jc.account = line[4]+abbr[0][0]
+					jc.cost_center=len(line)==9 and line[8] or self.doc.default_cost_center
+					if line[5]!='':
+						jc.debit = line[5]
+					else:
+						jc.credit = line[6]
+					jc.save()
+			else:
+				msgprint("[Ignored] Incorrect format: %s" % str(line))
+		if jv_name!='':
+			jv_go = get_obj('Journal Voucher',name, with_children=1)
+			jv_go.validate()
+			jv_go.on_submit()
+
+		msgprint("<b>%s</b> items updated" % updated)
+
+	# clear prices
+	def clear_prices(self):
+		cnt = sql("select count(*) from `tabRef Rate Detail` where price_list_name = %s", self.doc.name)
+		sql("delete from `tabRef Rate Detail` where price_list_name = %s", self.doc.name)
+		msgprint("%s prices cleared" % cnt[0][0])
+
+	# Update CSV data
+	def get_csv_data(self):
+		if not self.doc.file_list:
+		  msgprint("File not attached!")
+		  raise Exception
+
+		fid = self.doc.file_list.split(',')[1]
+
+		from webnotes.utils import file_manager
+		fn, content = file_manager.get_file(fid)
+
+		if not type(content) == str:
+		  content = content.tostring()
+
+		return content
diff --git a/utilities/doctype/sms_control/sms_control.py b/utilities/doctype/sms_control/sms_control.py
index c218ab8..a1edf83 100644
--- a/utilities/doctype/sms_control/sms_control.py
+++ b/utilities/doctype/sms_control/sms_control.py
@@ -58,7 +58,7 @@
 	def connect_gateway(self):
 		"login to gateway"
 		from webnotes.utils.webservice import FrameworkServer
-		fw = FrameworkServer('www.erpnext.com', '/', '__system@webnotestech.com', 'password')
+		fw = FrameworkServer('www.erpnext.com', '/', '__system@webnotestech.com', 'password', https=1)
 		return fw
 
 	def get_sender_name(self):
