"""
	This patch removes wrong indexs and add proper indexes in tables
"""


def create_proper_index():
	from webnotes.modules.export_module import export_to_files

	dt_index_fields={
						'Purchase Receipt Detail': ['prevdoc_docname', 'item_code', 'warehouse', 'prevdoc_detail_docname'], 
						'Period Closing Voucher': ['closing_account_head', 'fiscal_year'], 
						'Lead': ['lead_name', 'status', 'transaction_date'], 
						'Time Sheet Detail': ['app_name'], 
						'Item Specification Detail': [], 
						'Budget Detail': ['fiscal_year', 'account'], 
						'Grade': [], 
						'RV Tax Detail': ['parenttype', 'account_head'], 
						'TDS Category Account': ['account_head'], 
						'Role': [], 
						'Leave Allocation': ['leave_type', 'employee', 'fiscal_year'], 
						'Branch': [], 
						'Department': [], 
						'Contact Detail': [], 
						'Territory': ['lft', 'rgt', 'parent_territory'], 
						'Item Tax': ['tax_type'], 
						'Bin': ['warehouse', 'item_code'], 
						'PPW Detail': ['warehouse'], 
						'Sales Partner': ['partner_name'], 
						'Default Home Page': ['home_page', 'role'], 
						'Custom Field': ['dt'], 
						'DocFormat': ['format'], 
						'DocType Mapper': ['from_doctype', 'to_doctype'], 
						'Brand': [], 
						'Order Lost Reason': [], 
						'Journal Voucher': ['posting_date', 'voucher_type'], 
						'TDS Return Acknowledgement': ['date_of_receipt', 'acknowledgement'], 
						'BOM Report Detail': ['item_code'], 
						'Quotation Detail': ['item_code'], 
						'Update Delivery Date Detail': ['sales_order_no'], 
						'Advance Adjustment Detail': ['journal_voucher'], 
						'Authorization Rule': ['approving_user', 'system_user', 'system_role', 'approving_role'], 
						'DocPerm': ['permlevel', 'role'], 
						'Stock Entry Detail': ['item_code', 't_warehouse', 's_warehouse'], 
						'Stock Entry': ['posting_date', 'delivery_note_no', 'purchase_receipt_no', 'production_order'], 
						'Price List': [], 
						'KRA Sheet': [], 
						'Production Order': ['status', 'project_name', 'production_item'], 
						'Account': ['lft', 'rgt', 'parent_account'], 
						'Earn Deduction Detail': [], 
						'Indent': ['status', 'transaction_date'], 
						'Tag Detail': [], 
						'SS Deduction Detail': ['d_type'], 
						'Batch': ['item'], 
						'Deduction Type': [], 
						'Project': ['project_name', 'customer'], 
						'UserRole': ['role'], 
						'DocField': ['label', 'fieldtype', 'fieldname'], 
						'Property Setter': ['doc_type', 'doc_name', 'property'], 
						'Appraisal': ['status', 'employee'], 
						'Letter Head': [], 
						'Follow up': ['follow_up_by'], 
						'Project Cost Breakup': [], 
						'Table Mapper Detail': [], 
						'Campaign': [], 
						'Static Parameter Detail': [], 
						'Leave Type': [], 
						'Account Balance': ['period', 'start_date', 'end_date', 'account'], 
						'Absent Days Detail': [], 
						'Tag': [], 
						'Raw Materials Supplied': ['raw_material'], 
						'Project Activity Update': [], 
						'PR Raw Material Detail': [], 
						'Bank Reconciliation Detail': ['voucher_id'], 
						'Sales Order': ['quotation_no', 'project_name', 'customer', 'posting_date'], 
						'Chapter VI A Detail': [], 
						'Experience In Company Detail': [], 
						'Order Reconciliation Detail': ['sales_order_no'], 
						'Attendance': ['employee', 'att_date'], 
						'Previous Experience Detail': [], 
						'Earning Detail': ['e_type'], 
						'Sales Order Detail': ['item_code', 'prevdoc_docname', 'reserved_warehouse'], 
						'KRA Template': [], 
						'Budget Distribution': ['fiscal_year'], 
						'Workstation': ['warehouse'], 
						'Period': [], 
						'Training Session Details': [], 
						'Other Charges': [], 
						'State': [], 
						'Bulk Rename Tool': [], 
						'Landed Cost Master Detail': [], 
						'Employee': ['employee_name', 'designation', 'department'], 
						'Terms And Conditions': [], 
						'TC Detail': [], 
						'UOM': [], 
						'Supplier Type': [], 
						'Project Milestone': [], 
						'Landed Cost Master': [], 
						'Budget Distribution Detail': [], 
						'Form 16A Ack Detail': [], 
						'Campaign Expense': [], 
						'Time Sheet': ['employee_name', 'time_sheet_date'], 
						'File Group': ['parent_group'], 
						'Maintenance Visit Detail': ['item_code', 'service_person'], 
						'Support Ticket Response': [], 
						'PV Detail': ['item_code', 'purchase_order', 'purchase_receipt', 'expense_head', 'cost_center'], 
						'Timesheet Detail': ['project_name', 'task_id', 'customer_name'], 
						'Holiday List Detail': [], 
						'Workflow Rule Detail': [], 
						'Module Def': ['module_seq', 'module_page'], 
						'Term': [], 
						'PF Detail': ['item_code'], 
						'POS Setting': ['user', 'territory'], 
						'QA Specification Detail': [], 
						'Support Ticket': ['customer', 'allocated_to', 'status'], 
						'Project Activity': ['project'], 
						'Customer Group': ['lft', 'rgt', 'parent_customer_group'], 
						'Return Detail': ['item_code'], 
						'Series Detail': [], 
						'Event Role': ['role'], 
						'Contact': ['employee_id'], 
						'BOM Material': ['item_code', 'bom_no'], 
						'Invest 80 Declaration Detail': [], 
						'PO Raw Material Detail': [], 
						'Industry Type': [], 
						'Declaration Detail': [], 
						'Holiday List': ['fiscal_year'], 
						'Sales Person': ['lft', 'rgt', 'parent_sales_person'], 
						'RV Detail': ['item_code', 'sales_order', 'delivery_note', 'cost_center', 'income_account'], 
						'Module Def Item': [], 
						'TDS Category': [], 
						'DocTrigger': [], 
						'Print Format': ['standard'], 
						'Installed Item Details': ['prevdoc_docname', 'item_code'], 
						'Form 16A Tax Detail': [], 
						'Event': ['event_date', 'event_type'], 
						'Currency': [], 
						'Service Quotation Detail': ['item_code'], 
						'Warehouse Type': ['warehouse_type'], 
						'Sales BOM': ['item_group'], 
						'IT Checklist': ['employee'], 
						'Purchase Other Charges': [], 
						'Company': [], 
						'Call Log': [], 
						'Professional Training Details': [], 
						'Warehouse': ['warehouse_type'], 
						'Competitor': [], 
						'Mode of Payment': [], 
						'Training Session': ['customer'], 
						'Cost Center': ['lft', 'rgt', 'parent_cost_center'], 
						'Timesheet': ['status', 'timesheet_date'], 
						'Form 16A': ['party_no'], 
						'Sales BOM Detail': ['item_code'], 
						'Answer': ['question'], 
						'Supplier': [], 
						'Installation Note': ['delivery_note_no', 'customer', 'inst_date'], 
						'Expense Voucher': ['approval_status', 'employee'], 
						'Target Detail': ['from_date', 'to_date', 'fiscal_year'], 
						'Page Role': ['role'], 
						'Partner Target Detail': ['fiscal_year', 'item_group'], 
						'Shipping Address': ['customer'], 
						'Indent Detail': ['item_code', 'warehouse'], 
						'TDS Payment Detail': [], 
						'Market Segment': [], 
						'Comment Widget Record': [], 
						'Service Order Detail': ['item_code', 'prevdoc_docname'], 
						'TDS Payment': ['from_date', 'to_date', 'tds_category'], 
						'Lead Email CC Detail': [], 
						'User Setting-Role User': [], 
						'Salary Slip': ['month', 'year', 'employee'], 
						'Maintenance Schedule Detail': ['item_code', 'scheduled_date'], 
						'Employment Type': [], 
						'Advance Allocation Detail': ['journal_voucher'], 
						'Quotation': ['customer', 'transaction_date'], 
						'Deduction Detail': ['d_type'], 
						'Bill Of Materials': ['item', 'project_name'], 
						'Earning Type': [], 
						'Designation': [], 
						'BOM Replace Utility Detail': ['parent_bom'], 
						'Question': [], 
						'Stock Ledger Entry': ['item_code', 'warehouse', 'posting_date', 'posting_time'], 
						'Educational Qualifications Detail': [], 
						'BOM Operation': [], 
						'Item Group': ['lft', 'rgt', 'parent_item_group'], 
						'Workflow Action Detail': [], 
						'User Setting-Profile': [], 
						'Customer Issue': ['item_code', 'customer', 'complaint_date'], 
						'Feed': [], 
						'Purchase Tax Detail': ['account_head'], 
						'GL Mapper Detail': [], 
						'TDS Detail': [], 
						'PRO Detail': ['item_code', 'source_warehouse'], 
						'DocType Label': [], 
						'Receivable Voucher': ['posting_date', 'debit_to', 'project_name'], 
						'GL Entry': ['posting_date', 'account', 'voucher_no'], 
						'Serial No': ['status', 'warehouse'], 
						'Delivery Note': ['posting_date', 'project_name', 'customer'], 
						'UOM Conversion Detail': ['uom'], 
						'Search Criteria': ['criteria_name'], 
						'Salary Structure': [], 
						'Educational Qualifications': ['qualification'], 
						'TDS Rate Chart': ['applicable_from', 'applicable_to'], 
						'GL Mapper': [], 
						'Announcement': [], 
						'Call Log Details': [], 
						'Enquiry': ['lead', 'customer', 'transaction_date'], 
						'Flat BOM Detail': ['item_code'], 
						'Landed Cost Detail': ['account_head'], 
						'Field Mapper Detail': ['from_field', 'to_field'], 
						'File Data': [], 
						'Question Tag': [], 
						'QA Inspection Report': ['item_code', 'purchase_receipt_no', 'report_date'], 
						'Appraisal Detail': [], 
						'POS Settings': ['territory'], 
						'Delivery Note Detail': ['item_code', 'prevdoc_docname', 'warehouse', 'prevdoc_detail_docname'], 
						'Profile': [], 
						'Other Income Detail': [], 
						'Product': ['item_code', 'stock_warehouse'], 
						'PO Detail': ['prevdoc_docname', 'item_code', 'prevdoc_detail_docname', 'warehouse'], 
						'Module Def Role': ['role'], 
						'Sales Team': ['sales_person'], 
						'Enquiry Detail': ['item_code'], 
						'DocType': [], 
						'Compaint Note': ['nature_of_complaint', 'compliance_date'], 
						'Maintenance Schedule': ['customer', 'sales_order_no'], 
						'Event User': ['person'], 
						'Stock Reconciliation': ['reconciliation_date'], 
						'Purchase Receipt': ['posting_date', 'supplier', 'project_name'], 
						'Complaint Detail': ['item_name'], 
						'Address': ['customer', 'supplier'], 
						'Ticket': ['request_date', 'allocated_to', 'category', 'customer', 'project'], 
						'Territory Target Detail': ['month', 'fiscal_year'], 
						'LC PR Detail': ['purchase_receipt_no'], 
						'Customer': ['customer_name', 'customer_group'], 
						'PP SO Detail': [], 
						'PP Detail': ['document_date', 'item_code', 'parent_item'], 
						'User Setting-Role Permission': [], 
						'Custom Script': ['dt'], 
						'Country': [], 
						'DefaultValue': [], 
						'Ledger Detail': [], 
						'SS Earning Detail': ['e_type'], 
						'SMS Log': [], 
						'Expense Type': [], 
						'Item': ['item_group'], 
						'Fiscal Year': [], 
						'ToDo Item': ['role'], 
						'Payable Voucher': ['posting_date', 'credit_to', 'project_name', 'supplier'], 
						'Journal Voucher Detail': ['account', 'against_voucher', 'against_invoice', 'against_jv'], 
						'Online Contact': [], 
						'Page': ['module'], 
						'Leave Application': ['employee', 'leave_type', 'from_date', 'to_date'], 
						'Expense Voucher Detail': ['expense_type'], 
						'Maintenance Visit': ['customer', 'sales_order_no', 'customer_issue_no'], 
						'Ref Rate Detail': ['price_list_name', 'ref_currency'], 
						'Receiver Detail': [], 
						'Naming Series Options': ['doc_type'], 
						'Activity Type': [], 
						'PRO PP Detail': [], 
						'Delivery Note Packing Detail': ['item_code', 'parent_item', 'warehouse'], 
						'Workflow Rule': ['select_form'], 
						'File': ['file_group'], 
						'Item Maintenance Detail': ['item_code', 'start_date', 'end_date', 'prevdoc_docname'], 
						'Purchase Order': ['supplier', 'project_name', 'posting_date'], 
						'Print Heading': [], 
						'TDS Rate Detail': ['category']
					}
				
	for dt in dt_index_fields.keys():
		current_index = sql("show indexes from `tab%s`" % dt)
	
		proper_index = dt_index_fields[dt]
	
		for d in current_index:
			if d[4] not in ['name', 'parent', 'parenttype']:
				if d[4] not in proper_index:
					sql("ALTER TABLE `tab%s` DROP INDEX %s" % (dt, d[4]))
					sql("start transaction")
					sql("UPDATE `tabDocField` SET search_index = 0 WHERE fieldname = '%s' AND parent = '%s'" % (d[4], dt))
					sql("commit")
				else:
					proper_index.remove(d[4])
	
		for d in proper_index:
			sql("ALTER TABLE `tab%s` ADD INDEX ( `%s` ) " % (dt, d))
			sql("start transaction")
			sql("UPDATE `tabDocField` SET search_index = 1 WHERE fieldname = '%s' AND parent = '%s'" % (d, dt))
			sql("commit")

		sql("start transaction")		
		dt_module = sql("select module from `tabDocType` where name = '%s'" % dt)[0][0]
		export_to_files(record_list = [['DocType', dt]], record_module = dt_module)
		sql("commit")
