308 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			308 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # ERPNext - web based ERP (http://erpnext.com)
 | |
| # Copyright (C) 2012 Web Notes Technologies Pvt Ltd
 | |
| # 
 | |
| # This program is free software: you can redistribute it and/or modify
 | |
| # it under the terms of the GNU General Public License as published by
 | |
| # the Free Software Foundation, either version 3 of the License, or
 | |
| # (at your option) any later version.
 | |
| # 
 | |
| # This program is distributed in the hope that it will be useful,
 | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| # GNU General Public License for more details.
 | |
| # 
 | |
| # You should have received a copy of the GNU General Public License
 | |
| # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| 
 | |
| from __future__ import unicode_literals
 | |
| 
 | |
| # mappings for table dumps
 | |
| # "remember to add indexes!"
 | |
| 
 | |
| data_map = {
 | |
| 	"Company": {
 | |
| 		"columns": ["name"],
 | |
| 		"conditions": ["docstatus < 2"]
 | |
| 	},
 | |
| 	"Fiscal Year": {
 | |
| 		"columns": ["name", "year_start_date", 
 | |
| 			"adddate(adddate(year_start_date, interval 1 year), interval -1 day) as year_end_date"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 	},
 | |
| 
 | |
| 	# Accounts
 | |
| 	"Account": {
 | |
| 		"columns": ["name", "parent_account", "lft", "rgt", "debit_or_credit", 
 | |
| 			"is_pl_account", "company", "group_or_ledger"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "lft",
 | |
| 		"links": {
 | |
| 			"company": ["Company", "name"],
 | |
| 		}
 | |
| 		
 | |
| 	},
 | |
| 	"Cost Center": {
 | |
| 		"columns": ["name", "lft", "rgt"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "lft"
 | |
| 	},
 | |
| 	"GL Entry": {
 | |
| 		"columns": ["name", "account", "posting_date", "cost_center", "debit", "credit", "is_opening",
 | |
| 			"company", "voucher_type", "voucher_no", "remarks"],
 | |
| 		"conditions": ["ifnull(is_cancelled, 'No')='No'"],
 | |
| 		"order_by": "posting_date, account",
 | |
| 		"links": {
 | |
| 			"account": ["Account", "name"],
 | |
| 			"company": ["Company", "name"],
 | |
| 			"cost_center": ["Cost Center", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 
 | |
| 	# Stock
 | |
| 	"Item": {
 | |
| 		"columns": ["name", "if(item_name=name, '', item_name) as item_name", "description", 
 | |
| 			"item_group as parent_item_group", "stock_uom", "brand", "valuation_method", 
 | |
| 			"re_order_level", "re_order_qty"],
 | |
| 		# "conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name",
 | |
| 		"links": {
 | |
| 			"parent_item_group": ["Item Group", "name"],
 | |
| 			"brand": ["Brand", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Item Group": {
 | |
| 		"columns": ["name", "parent_item_group"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "lft"
 | |
| 	},
 | |
| 	"Brand": {
 | |
| 		"columns": ["name"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name"
 | |
| 	},
 | |
| 	"Project": {
 | |
| 		"columns": ["name"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name"
 | |
| 	},
 | |
| 	"Warehouse": {
 | |
| 		"columns": ["name"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name"
 | |
| 	},
 | |
| 	"Stock Ledger Entry": {
 | |
| 		"columns": ["name", "posting_date", "posting_time", "item_code", "warehouse", 
 | |
| 			"actual_qty as qty", "voucher_type", "voucher_no", "project",
 | |
| 			"ifnull(incoming_rate,0) as incoming_rate", "stock_uom", "serial_no"],
 | |
| 		"conditions": ["ifnull(is_cancelled, 'No')='No'"],
 | |
| 		"order_by": "posting_date, posting_time, name",
 | |
| 		"links": {
 | |
| 			"item_code": ["Item", "name"],
 | |
| 			"warehouse": ["Warehouse", "name"],
 | |
| 			"project": ["Project", "name"]
 | |
| 		},
 | |
| 		"force_index": "posting_sort_index"
 | |
| 	},
 | |
| 	"Stock Entry": {
 | |
| 		"columns": ["name", "purpose"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "posting_date, posting_time, name",
 | |
| 	},
 | |
| 	"Production Order": {
 | |
| 		"columns": ["name", "production_item as item_code", 
 | |
| 			"(ifnull(qty, 0) - ifnull(produced_qty, 0)) as qty", 
 | |
| 			"fg_warehouse as warehouse"],
 | |
| 		"conditions": ["docstatus=1", "status != 'Stopped'", "ifnull(fg_warehouse, '')!=''",
 | |
| 			"ifnull(qty, 0) > ifnull(produced_qty, 0)"],
 | |
| 		"links": {
 | |
| 			"item_code": ["Item", "name"],
 | |
| 			"warehouse": ["Warehouse", "name"]
 | |
| 		},
 | |
| 	},
 | |
| 	"Material Request Item": {
 | |
| 		"columns": ["item.name as name", "item_code", "warehouse", 
 | |
| 			"(ifnull(qty, 0) - ifnull(ordered_qty, 0)) as qty"],
 | |
| 		"from": "`tabMaterial Request Item` item, `tabMaterial Request` main",
 | |
| 		"conditions": ["item.parent = main.name", "main.docstatus=1", "main.status != 'Stopped'",
 | |
| 			"ifnull(warehouse, '')!=''", "ifnull(qty, 0) > ifnull(ordered_qty, 0)"],
 | |
| 		"links": {
 | |
| 			"item_code": ["Item", "name"],
 | |
| 			"warehouse": ["Warehouse", "name"]
 | |
| 		},
 | |
| 	},
 | |
| 	"Purchase Order Item": {
 | |
| 		"columns": ["item.name as name", "item_code", "warehouse", 
 | |
| 			"(ifnull(qty, 0) - ifnull(received_qty, 0)) as qty"],
 | |
| 		"from": "`tabPurchase Order Item` item, `tabPurchase Order` main",
 | |
| 		"conditions": ["item.parent = main.name", "main.docstatus=1", "main.status != 'Stopped'", 
 | |
| 			"ifnull(warehouse, '')!=''", "ifnull(qty, 0) > ifnull(received_qty, 0)"],
 | |
| 		"links": {
 | |
| 			"item_code": ["Item", "name"],
 | |
| 			"warehouse": ["Warehouse", "name"]
 | |
| 		},
 | |
| 	},
 | |
| 	
 | |
| 	"Sales Order Item": {
 | |
| 		"columns": ["item.name as name", "item_code", "(ifnull(qty, 0) - ifnull(delivered_qty, 0)) as qty", 
 | |
| 			"reserved_warehouse as warehouse"],
 | |
| 		"from": "`tabSales Order Item` item, `tabSales Order` main",
 | |
| 		"conditions": ["item.parent = main.name", "main.docstatus=1", "main.status != 'Stopped'", 
 | |
| 			"ifnull(reserved_warehouse, '')!=''", "ifnull(qty, 0) > ifnull(delivered_qty, 0)"],
 | |
| 		"links": {
 | |
| 			"item_code": ["Item", "name"],
 | |
| 			"warehouse": ["Warehouse", "name"]
 | |
| 		},
 | |
| 	},
 | |
| 
 | |
| 	# Sales
 | |
| 	"Customer": {
 | |
| 		"columns": ["name", "if(customer_name=name, '', customer_name) as customer_name", 
 | |
| 			"customer_group as parent_customer_group", "territory as parent_territory"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name",
 | |
| 		"links": {
 | |
| 			"parent_customer_group": ["Customer Group", "name"],
 | |
| 			"parent_territory": ["Territory", "name"],
 | |
| 		}
 | |
| 	},
 | |
| 	"Customer Group": {
 | |
| 		"columns": ["name", "parent_customer_group"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "lft"
 | |
| 	},
 | |
| 	"Territory": {
 | |
| 		"columns": ["name", "parent_territory"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "lft"
 | |
| 	},
 | |
| 	"Sales Invoice": {
 | |
| 		"columns": ["name", "customer", "posting_date", "company"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "posting_date",
 | |
| 		"links": {
 | |
| 			"customer": ["Customer", "name"],
 | |
| 			"company":["Company", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Sales Invoice Item": {
 | |
| 		"columns": ["name", "parent", "item_code", "qty", "amount"],
 | |
| 		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 | |
| 		"order_by": "parent",
 | |
| 		"links": {
 | |
| 			"parent": ["Sales Invoice", "name"],
 | |
| 			"item_code": ["Item", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Sales Order": {
 | |
| 		"columns": ["name", "customer", "transaction_date as posting_date", "company"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "transaction_date",
 | |
| 		"links": {
 | |
| 			"customer": ["Customer", "name"],
 | |
| 			"company":["Company", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Sales Order Item[Sales Analytics]": {
 | |
| 		"columns": ["name", "parent", "item_code", "qty", "amount"],
 | |
| 		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 | |
| 		"order_by": "parent",
 | |
| 		"links": {
 | |
| 			"parent": ["Sales Order", "name"],
 | |
| 			"item_code": ["Item", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Delivery Note": {
 | |
| 		"columns": ["name", "customer", "posting_date", "company"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "posting_date",
 | |
| 		"links": {
 | |
| 			"customer": ["Customer", "name"],
 | |
| 			"company":["Company", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Delivery Note Item[Sales Analytics]": {
 | |
| 		"columns": ["name", "parent", "item_code", "qty", "amount"],
 | |
| 		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 | |
| 		"order_by": "parent",
 | |
| 		"links": {
 | |
| 			"parent": ["Delivery Note", "name"],
 | |
| 			"item_code": ["Item", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Supplier": {
 | |
| 		"columns": ["name", "if(supplier_name=name, '', supplier_name) as supplier_name", 
 | |
| 			"supplier_type as parent_supplier_type"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name",
 | |
| 		"links": {
 | |
| 			"parent_supplier_type": ["Supplier Type", "name"],
 | |
| 		}
 | |
| 	},
 | |
| 	"Supplier Type": {
 | |
| 		"columns": ["name"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "name"
 | |
| 	},
 | |
| 	"Purchase Invoice": {
 | |
| 		"columns": ["name", "supplier", "posting_date", "company"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "posting_date",
 | |
| 		"links": {
 | |
| 			"supplier": ["Supplier", "name"],
 | |
| 			"company":["Company", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Purchase Invoice Item": {
 | |
| 		"columns": ["name", "parent", "item_code", "qty", "amount"],
 | |
| 		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 | |
| 		"order_by": "parent",
 | |
| 		"links": {
 | |
| 			"parent": ["Purchase Invoice", "name"],
 | |
| 			"item_code": ["Item", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Purchase Order": {
 | |
| 		"columns": ["name", "supplier", "transaction_date as posting_date", "company"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "posting_date",
 | |
| 		"links": {
 | |
| 			"supplier": ["Supplier", "name"],
 | |
| 			"company":["Company", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Purchase Order Item[Purchase Analytics]": {
 | |
| 		"columns": ["name", "parent", "item_code", "qty", "amount"],
 | |
| 		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 | |
| 		"order_by": "parent",
 | |
| 		"links": {
 | |
| 			"parent": ["Purchase Order", "name"],
 | |
| 			"item_code": ["Item", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Purchase Receipt": {
 | |
| 		"columns": ["name", "supplier", "posting_date", "company"],
 | |
| 		"conditions": ["docstatus=1"],
 | |
| 		"order_by": "posting_date",
 | |
| 		"links": {
 | |
| 			"supplier": ["Supplier", "name"],
 | |
| 			"company":["Company", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	"Purchase Receipt Item[Purchase Analytics]": {
 | |
| 		"columns": ["name", "parent", "item_code", "qty", "amount"],
 | |
| 		"conditions": ["docstatus=1", "ifnull(parent, '')!=''"],
 | |
| 		"order_by": "parent",
 | |
| 		"links": {
 | |
| 			"parent": ["Purchase Receipt", "name"],
 | |
| 			"item_code": ["Item", "name"]
 | |
| 		}
 | |
| 	},
 | |
| 	# Support
 | |
| 	"Support Ticket": {
 | |
| 		"columns": ["name","status","creation","resolution_date","first_responded_on"],
 | |
| 		"conditions": ["docstatus < 2"],
 | |
| 		"order_by": "creation"
 | |
| 	}
 | |
| 	
 | |
| }
 |