fixed conflict
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):