Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js
index 8d37b77..1a9ef60 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -394,7 +394,9 @@
 
 // ***************** Get project name *****************
 cur_frm.fields_dict['entries'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return 'SELECT `tabProject`.name FROM `tabProject` \
+		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
 
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 16973f0..ad774fe 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -376,7 +376,10 @@
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
 	var cond = '';
 	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+	return repl('SELECT `tabProject`.name FROM `tabProject` \
+		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+		AND %(cond)s `tabProject`.name LIKE "%s" \
+		ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
 }
 
 //Territory
diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js
index 0eb830b..d0d878d 100644
--- a/buying/doctype/purchase_order/purchase_order.js
+++ b/buying/doctype/purchase_order/purchase_order.js
@@ -99,7 +99,9 @@
 }
 
 cur_frm.fields_dict['po_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return 'SELECT `tabProject`.name FROM `tabProject` \
+		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
 cur_frm.fields_dict['indent_no'].get_query = function(doc) {
diff --git a/buying/doctype/supplier_quotation/supplier_quotation.js b/buying/doctype/supplier_quotation/supplier_quotation.js
index faaf296..7c9b55c 100644
--- a/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -77,7 +77,8 @@
 cur_frm.fields_dict['quotation_items'].grid.get_field('project_name').get_query = 
 	function(doc, cdt, cdn) {
 		return "select `tabProject`.name from `tabProject` \
-			where `tabProject`.status = \"Open\" and `tabProject`.name like \"%s\" \
+			where `tabProject`.status not in (\"Completed\", \"Cancelled\") \
+			and `tabProject`.name like \"%s\" \
 			order by `tabProject`.name ASC LIMIT 50";
 	}
 
diff --git a/production/doctype/bom/bom.js b/production/doctype/bom/bom.js
index 3931257..fd9be8f 100644
--- a/production/doctype/bom/bom.js
+++ b/production/doctype/bom/bom.js
@@ -145,7 +145,9 @@
 }
 
 cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return 'SELECT `tabProject`.name FROM `tabProject` \
+		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
 cur_frm.fields_dict['bom_materials'].grid.get_field('item_code').get_query = function(doc) {
diff --git a/production/doctype/production_order/production_order.js b/production/doctype/production_order/production_order.js
index 6ac7065..411f779 100644
--- a/production/doctype/production_order/production_order.js
+++ b/production/doctype/production_order/production_order.js
@@ -104,7 +104,9 @@
 }
 
 cur_frm.fields_dict['project_name'].get_query = function(doc, dt, dn) {
-  return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+  return 'SELECT `tabProject`.name FROM `tabProject` \
+	  WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+	  AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }
 
 cur_frm.fields_dict['bom_no'].get_query = function(doc)  {
diff --git a/projects/doctype/task/task.js b/projects/doctype/task/task.js
index d1317ae..295c58e 100644
--- a/projects/doctype/task/task.js
+++ b/projects/doctype/task/task.js
@@ -17,7 +17,9 @@
 cur_frm.fields_dict['project'].get_query = function(doc,cdt,cdn){
   var cond='';
   if(doc.customer) cond = 'ifnull(`tabProject`.customer, "") = "'+doc.customer+'" AND';  
-  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject` WHERE %(cond)s `tabProject`.`name` LIKE "%s" ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond:cond});
+  return repl('SELECT distinct `tabProject`.`name` FROM `tabProject` \
+  	WHERE %(cond)s `tabProject`.`name` LIKE "%s" \
+	ORDER BY `tabProject`.`name` ASC LIMIT 50', {cond:cond});
 }
 
 
diff --git a/projects/doctype/task/task.txt b/projects/doctype/task/task.txt
index 07a9343..2ced828 100644
--- a/projects/doctype/task/task.txt
+++ b/projects/doctype/task/task.txt
@@ -3,9 +3,9 @@
 
 	# These values are common in all dictionaries
 	{
-		u'creation': '2012-08-08 15:39:55',
+		u'creation': '2012-09-18 11:05:48',
 		u'docstatus': 0,
-		u'modified': '2012-09-17 10:58:32',
+		u'modified': '2012-10-29 14:24:55',
 		u'modified_by': u'Administrator',
 		u'owner': u'Administrator'
 	},
@@ -13,12 +13,14 @@
 	# These values are common for all DocType
 	{
 		'_last_update': u'1324880734',
+		'allow_attach': 1,
 		'allow_trash': 1,
 		'autoname': u'TASK.#####',
 		'colour': u'White:FFF',
 		'default_print_format': u'Standard',
 		u'doctype': u'DocType',
 		'document_type': u'Master',
+		'max_attachments': 5,
 		'module': u'Projects',
 		u'name': u'__common__',
 		'section_style': u'Tray',
@@ -298,6 +300,17 @@
 		'oldfieldtype': u'Date'
 	},
 
+	# DocField
+	{
+		u'doctype': u'DocField',
+		'fieldname': u'file_list',
+		'fieldtype': u'Text',
+		'hidden': 1,
+		'label': u'File List',
+		'no_copy': 1,
+		'print_hide': 1
+	},
+
 	# DocPerm
 	{
 		'cancel': 1,
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index d448c79..1285c84 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -168,7 +168,9 @@
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
 	var cond = '';
 	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+	return repl('SELECT `tabProject`.name FROM `tabProject` \
+	WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+	AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
 }
 
 //---- get customer details ----------------------------
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 03743e2..e1f8b37 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -150,7 +150,10 @@
 cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
 	var cond = '';
 	if(doc.customer) cond = '(`tabProject`.customer = "'+doc.customer+'" OR IFNULL(`tabProject`.customer,"")="") AND';
-	return repl('SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND %(cond)s `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
+	return repl('SELECT `tabProject`.name FROM `tabProject` \
+		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+		AND %(cond)s `tabProject`.name LIKE "%s" \
+		ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
 }
 
 
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index 9cb13f4..b943314 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -128,7 +128,9 @@
 
 // ***************** Get project name *****************
 cur_frm.fields_dict['purchase_receipt_details'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
-	return 'SELECT `tabProject`.name FROM `tabProject` WHERE `tabProject`.status = "Open" AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
+	return 'SELECT `tabProject`.name FROM `tabProject` \
+		WHERE `tabProject`.status not in ("Completed", "Cancelled") \
+		AND `tabProject`.name LIKE "%s" ORDER BY `tabProject`.name ASC LIMIT 50';
 }