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';
}
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 75f4141..2373066 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -28,13 +28,9 @@
# -----------------------
def get_default_customer_address(self, args=''):
address_text, address_name = self.get_address_text(customer=self.doc.customer)
- contact_text, contact_name, contact_email, contact_mobile = self.get_contact_text(customer=self.doc.customer)
self.doc.customer_address = address_name or ''
- self.doc.contact_person = contact_name or ''
self.doc.address_display = address_text or ''
- self.doc.contact_display = contact_text or ''
- self.doc.contact_email = contact_email or ''
- self.doc.contact_mobile = contact_mobile or ''
+ self.doc.fields.update(self.get_contact_text(customer=self.doc.customer))
if args != 'onload':
self.get_customer_details(self.doc.customer)
@@ -44,13 +40,9 @@
# -----------------------
def get_default_customer_shipping_address(self, args=''):
address_text, address_name = self.get_address_text(customer=self.doc.customer,is_shipping_address=1)
- contact_text, contact_name, contact_email, contact_mobile = self.get_contact_text(customer=self.doc.customer)
self.doc.customer_address = address_name or ''
- self.doc.contact_person = contact_name or ''
self.doc.address_display = address_text or ''
- self.doc.contact_display = contact_text or ''
- self.doc.contact_email = contact_email or ''
- self.doc.contact_mobile = contact_mobile or ''
+ self.doc.fields.update(self.get_contact_text(customer=self.doc.customer))
if self.doc.doctype != 'Quotation' and args != 'onload':
self.get_customer_details(self.doc.customer)
@@ -61,15 +53,13 @@
def get_customer_address(self, args):
args = load_json(args)
address_text, address_name = self.get_address_text(address_name=args['address'])
- contact_text, contact_name, contact_email, contact_mobile = self.get_contact_text(contact_name=args['contact'])
ret = {
'customer_address' : address_name,
- 'contact_person' : contact_name,
'address_display' : address_text,
- 'contact_display' : contact_text,
- 'contact_email' : contact_email,
- 'contact_mobile' : contact_mobile
}
+
+ ret.update(self.get_contact_text(contact_name=args['contact']))
+
return ret
# Get Address Text
@@ -112,11 +102,15 @@
contact_display = ''.join([a[0]+cstr(extract(a[1])) for a in contact_fields if extract(a[1])])
if contact_display.startswith('\n'): contact_display = contact_display[1:]
- contact_name = details and details[0]['name'] or ''
- contact_email = details and details[0]['email_id'] or ''
- contact_mobile = details and details[0]['mobile_no'] or ''
- return contact_display, contact_name, contact_email, contact_mobile
-
+ return {
+ "contact_display": contact_display,
+ "contact_person": details and details[0]["name"] or "",
+ "contact_email": details and details[0]["email_id"] or "",
+ "contact_mobile": details and details[0]["mobile_no"] or "",
+ "contact_designation": details and details[0]["designation"] or "",
+ "contact_department": details and details[0]["department"] or "",
+ }
+
def get_customer_details(self, name):
"""
Get customer details like name, group, territory
@@ -185,15 +179,11 @@
def get_default_supplier_address(self, args):
args = load_json(args)
address_text, address_name = self.get_address_text(supplier=args['supplier'])
- contact_text, contact_name, contact_email, contact_mobile = self.get_contact_text(supplier=args['supplier'])
ret = {
'supplier_address' : address_name,
'address_display' : address_text,
- 'contact_person' : contact_name,
- 'contact_display' : contact_text,
- 'contact_email' : contact_email,
- 'contact_mobile' : contact_mobile
}
+ ret.update(self.get_contact_text(supplier=args['supplier']))
ret.update(self.get_supplier_details(args['supplier']))
return ret
@@ -202,15 +192,11 @@
def get_supplier_address(self, args):
args = load_json(args)
address_text, address_name = self.get_address_text(address_name=args['address'])
- contact_text, contact_name, contact_email, contact_mobile = self.get_contact_text(contact_name=args['contact'])
ret = {
'supplier_address' : address_name,
'address_display' : address_text,
- 'contact_person' : contact_name,
- 'contact_display' : contact_text,
- 'contact_email' : contact_email,
- 'contact_mobile' : contact_mobile
}
+ ret.update(self.get_contact_text(contact_name=args['contact']))
return ret
# Get Supplier Details